猜你喜欢
微服务运维实战(第一卷)

微服务运维实战(第一卷)

书籍作者:Viktor Farcic ISBN:9787568041614
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:1187
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介
《微服务运维实战(第1卷)》详细讲解微服务和容器在软件持续集成和部署中的应用。将微服务打包成不可变的容器,通过配置管理工具实现自动化测试和持续部署,同时保证零停机且随时能回滚。采用集中日志对集群进行记录和监控,轻松实现服务器扩展。作者通过讲解相关工具(Docker、Kubernetes、Ansible、Consul等)的用法,分享自己的工作经验,帮助读者构建高效、可靠、可快速恢复的软件系统。
作者简介

Viktor Farcic是CloudBees公司的资深架构师、咨询师,他有着二十多年的软件开发经验,精通多种编程语言(包括C、C++、C#、Java、Perl、Python、Scala、JavaScript等),目前他感兴趣的领域是微服务、持续集成、持续部署、测试驱动开发。
编辑推荐
采用业界新的工具和方法开展微服务开发与部署,快速构建现代软件系统。
前言
我的职业生涯是从程序员开始的。那段日子,我所知道的只是编写代码。我以为出色的软件设计师就是精通编码的人,而精通的途径是对所选的一种编程语言做到了如指掌。后来,我的想法变了,我开始对不同的编程语言产生兴趣。我从Pascal换到Basic,而后换到ASP。Java和.NETet让我了解到面向对象编程的好处。Python、Perl、Bash、HTML、JavasScript、Scala,每种编程语言都带来一些新东西并教给我如何以不同的方式思考。我学会了为手头的任务挑选正确的工具。每学会一种新语言,我就感觉距离成为专家又近了一点。我只想成为一名资深程序员,这个想法随着时间的推移发生了改变。我认识到,如果要把自己的工作做好,我得成为一名软件艺匠。我学习的东西远不止输入代码。有段时间我痴迷于测试,现在我认为测试是开发不可或缺的一部分。除非有特殊原因,否则我编写的每行代码都是通过测试驱动开发(test-driven development,TDD)来完成的。测试驱动开发已它成为我手上必不可少的工具。另外我还认识到,在确定应该做什么时,我必须接近客户与他们肩并肩地工作。所有这些事情都将我引向软件架构领域。
我在软件行业工作的这些年,没有哪个工具、框架或者实践能像持续集成(continuous integration,CI)以及之后的持续交付(continuous delivery,CD)那样让我着迷。起初,我以为CI/CD意味着了解Jenkins并且能够书写脚本。随着时间的推移,我认识到CI/CD几乎牵涉了软件开发的方方面面。而我是在付出一定代价后才有了这样的认识。
我不止一次尝试为我开发的应用创建CI管道,但都失败了,因为我采用的方法是错误的。不考虑架构问题,CI/CD是无法实现的。类似的道理亦适用于测试、配置、环境、容错等等方面。要成功实施CI/CD,我们需要做出很多改变,这些改变第1眼看上去似乎没有直接的关联。我们需要从一开始就应用一些模式和实践。我们还得考虑架构、测试、耦合、打包、容错,以及其它他许多事情。通过实践CI/CD,我们正影响和改善软件开发生命周期的方方面面。
要真正精通CI/CD,我们需要对运维更为加熟悉。DevOps运动将开发所能带来的优势与传统运维相结合,这是一个显著的改善。但我认为这还不够。如果想要获得CI/CD所能带来的全部好处,我们需要深入理解架构、测试、开发、运维,甚至客户洽谈,并做出相应的改变。用DevOps这个名字来概括CI/CD其实是不合适的,因为DevOps不仅仅关系到开发和运维,其还关系到软件开发的所有方面,需要架构师、测试人员,甚至管理者的共同参与。DevOps将传统运维与开发相结合是一个巨大的进步。就当前的业务需求而言,手工运维几乎是行不通的,而自动化需要开发工作。我认为应该扩展DevOps的定义。我本打算把它重新命名为DevOpsArchTestManageAndEverythingElse,但这个名字过于繁琐而且几乎不可能读出来,因此我用DevOps 2.0来代替。DevOps 2.0不但要实现运维自动化,而且要让整个系统变得自动化、快速、可扩展、容错、零宕机、易于监控。这无法通过某个单一的工具实现,只能通过深入到技术层面和流规层面重构整个系统来实现。
本书介绍快速构建现代软件系统的方法,我们将微服务打包成不可变的容器,通过配置管理工具实现自动化测试和持续部署,同时保证零停机且随时能回滚。设计能够从硬件和软件故障中恢复的自愈系统,采用集中日志对集群进行记录和监控,轻松实现服务器扩展。
换言之,本书采用业界新的工具和方法开展微服务开发与部署。我们将用到Docker、Kubernetes、Ansible、Ubuntu、Docker Swarm、Docker Compose、Consul、etcd、Registrator、confd、Jenkins。
本书是写给那些对持续部署和微服务感兴趣的专业人士看的,涉及的内容非常宽泛,目标读者包括想了解如何围绕微服务设计系统的架构师,想了解如何应用现代配置管理实践和持续部署容器化应用的DevOps人员,希望将整个流程掌控在自己手中的开发人员,以及想要更好地理解软件交付流程的管理人员。我们会谈及系统的扩展和监控,。我们甚至会设计(并实现)能够从(硬件或软件)故障中自愈的系统。

本书内容涉及从设计、开发、测试、部署到运维的所有阶段。我们介绍的流程是业界新的佳实践。
目录
第1章 DevOps的理想 1
1.1 持续集成、交付和部署 2
架构 3
部署 4
编排 5
1.2 部署流水线的曙光 5
· · · · · · (更多)
短评

实用

2018-06-22

标签
微服务,Docker,DevOps,Ansible,运维,容器,MSA,Consul