• 微服务运维实战(第1卷)
21年品牌 40万+商家 超1.5亿件商品

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

支持七天无理由 ,不清楚的请咨询客服。

79.16 6.9折 115 全新

库存4件

广东东莞
认证卖家担保交易快速发货售后保障

作者Viktor Farcic

出版社华中科技大学出版社

ISBN9787568041614

出版时间2018-07

装帧平装

开本32开

定价115元

货号25299268

上书时间2024-10-22

休闲图书吧

三年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
前言

  我的职业生涯是从程序员开始的。那段日子,我所知道的只是编写代码。我以为出色的软件设计师就是精通编码的人,而精通的途径是对所选的一种编程语言做到了如指掌。后来,我的想法变了,我开始对不同的编程语言产生兴趣。我从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卷)》详细讲解微服务和容器在软件持续集成和部署中的应用。将微服务打包成不可变的容器,通过配置管理工具实现自动化测试和持续部署,同时保证零停机且随时能回滚。采用集中日志对集群进行记录和监控,轻松实现服务器扩展。作者通过讲解相关工具(Docker、Kubernetes、Ansible、Consul等)的用法,分享自己的工作经验,帮助读者构建高效、可靠、可快速恢复的软件系统。



目录

第1章  DevOps的理想 1


1.1  持续集成、交付和部署 2


架构 3


部署 4


编排 5


1.2  部署流水线的曙光 5


第2章  实现突破——持续部署、微服务和容器 7


2.1  持续集成 7


推送到代码库 9


静态分析 10


部署前测试 12


打包并部署到测试环境 13


部署后测试 13


2.2  持续交付和部署 15


微服务 18


容器 18


2.3  三个火枪手——持续部署、微服务和容器的协作 20


第3章  系统架构 23


3.1  单块应用 24


微服务 27


3.2  单块应用与微服务的比较 29


运维和部署的复杂性 30


规模 31


部署、回滚和故障隔离 32


承诺期限 32


3.3  微服务的实践 41


容器 41


3.4  代理微服务或API网关 44


反向代理 44


极简主义方法 45


配置管理 45


跨职能团队 45


API版本化 46


后的思考 46


第4章  使用Vagrant和Docker搭建开发环境 49


4.1  结合微服务架构和容器技术 50


Vagrant与Docker 52


4.2  开发环境搭建 55


开发环境使用 58


第5章  部署流水线的实现——初始阶段 63


5.1  启动持续部署虚拟机 63


5.2  部署流水线步骤 65


构建Docker容器 67


第6章  Docker世界中的配置管理 79


6.1  CFEngine 79


Puppet 80


Chef 80


后几点思考 82


配置生产环境 83


设置Ansible Playbook 86


第7章  部署管道的实现——中间阶段 91


7.1  在生产服务器上部署容器 92


检查清单 97


第8章  发现服务——分布式服务的关键 99


8.1  服务注册表 101


服务注册 101


主动注册 102


注册服务 103


服务发现 103


服务发现工具 104


手动配置 106


Zookeeper 106


etcd 107


配置Registrator 130


Consul Health Checks、Web UI和数据中心 138


8.2  服务发现工具的比较 141


第9章  代理服务 143


9.1  反向代理服务 144


代理服务对我们的项目有何帮助 146


nginx 146


nginx 146


HAProxy 158


9.2  代理工具的比较 163


第10章  部署流水线的实现——后期阶段 167


10.1  启动容器 169


10.2  集成服务 170


10.3  运行部署后测试 171


10.4  将测试容器推送到镜像库 172


10.5  检查表 173


第11章  部署流水线的自动化实现 175


11.1  部署流水线的步骤 175


Playbook和Role 178


部署前任务 179


部署任务 182


部署后任务 185


11.2  运行自动部署流水线 186


第12章  持续集成、交付和部署的工具 187


12.1  CI/CD工具对比 188


CI/CD工具的简史 189


运行Jenkins作业 203


创建Jenkins Workflow作业 206


安装Jenkins Multibranch Workflow和Jenkinsfile 215


后的想法 217


第13章  蓝绿部署 219


13.1  蓝绿部署的流程 220


13.2  手动执行蓝绿部署 223


部署蓝色版本 224


集成蓝色版本 226


部署绿色版本 228


集成绿色版本 230


移除蓝色版本 231


发现应部署哪个版本以及回滚 233


13.3  使用Jenkins workflow自动化蓝绿部署 239


蓝绿部署角色 240


运行蓝绿部署 245


第14章  服务集群和扩展 249


14.1  可扩展性 250


轴线扩展 252


集群 254


Docker集群工具大比拼——Kubernetes、Docker Swarm和


  Mesos对比 256


搭建 258


运行容器 260


选择 262


14.2  Docker Swarm漫步 263


14.3  搭建Docker Swarm 268


使用Docker Swarm部署 274


使用Docker Swarm无链接部署 275


使用Docker Swarm和Docker Networking部署 276


使用Docker Swarm扩展服务 283


根据预留的CPU和内存调度容器 284


14.4  使用Docker Swarm和Ansible自动化部署 288


检验Swarm部署playbook 290


第15章  自我修复系统 297


15.1  自我修复等级和类型 298


应用程序级别的自我修复 299


系统级别的自我修复 300


硬件级别的自我修复 302


反应式自我修复 303


预防式自我修复 303


15.2  自我修复架构 305


15.3  Docker、Consul Watches和Jenkins组成的自我修复系统 311


搭建环境 311


15.4  自动设置Consul健康检查和watches来监测硬件 322


15.5  预设扩展和收缩的预防式自我修复 334


采用Docker重启策略的预防式自我修复 339


将On-Premise与云节点结合 341


15.6  自我修复系统(到目前为止)总结 342


第16章  集中日志和监控 343


16.1  集中日志的需求 344


16.2  向ElasticSearch发送日志条目 347


解析文件条目 354


发送日志条目到集中式LogStash 358


发送Docker日志条目到集中式LogStash实例 363


16.3  基于软件数据的自修复系统 375


硬件状态日志 381


基于硬件数据的自修复系统 388


后的想法 388


第17章  结语 391


附录A  Docker Flow 393


A.1  背景 394


标准搭建环境 394


问题 396


Docker Flow漫谈 398


零停机事件部署新版本 404


索引 415



内容摘要

 《微服务运维实战(第1卷)》详细讲解微服务和容器在软件持续集成和部署中的应用。将微服务打包成不可变的容器,通过配置管理工具实现自动化测试和持续部署,同时保证零停机且随时能回滚。采用集中日志对集群进行记录和监控,轻松实现服务器扩展。作者通过讲解相关工具(Docker、Kubernetes、Ansible、Consul等)的用法,分享自己的工作经验,帮助读者构建高效、可靠、可快速恢复的软件系统。



主编推荐

 采用业界新的工具和方法开展微服务开发与部署,快速构建现代软件系统。



媒体评论


  Viktor Farcic是CloudBees公司的资深架构师、咨询师,他有着二十多年的软件开发经验,精通多种编程语言(包括C、C 、C#、Java、Perl、Python、Scala、JavaScript等),目前他感兴趣的领域是微服务、持续集成、持续部署、测试驱动开发。



   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP