基本信息

  • 出版社 : 电子工业出版社; 第1版 (2019年8月5日)
  • 出版日期 : 2019年7月1日
  • 品牌 : 电子工业出版社
  • 语言 : 简体中文
  • 文件大小 : 24026 KB
  • 纸书页数 : 432页
  • 史天 (作者), 肖力 (作者), 等 (作者)
  • 下载格式:azw3、epub、mobi 

编辑推荐

  通过本书,你将能够快速学习并掌握Kubernetes与DevOps的知识和技能:1、学习基础和高级DevOps技能和工具。2、全面理解容器技术。3、了解如何将应用程序打包到容器中。4、了解如何使用Kubernetes管理应用程序。5、通过Kubernetes和持续交付缩短产品上市时间。6、了解如何使用Kubernetes进行应用程序的监控和日志管理。

内容简介

  容器化被认为是实现DevOps的最佳方式。谷歌开发了Kubernetes,它有效地协调容器,被认为是容器编排的领跑者。Kubernetes是一个协调器,可以在服务集群上创建和管理容器。本书将指导管理 Kubernetes集群,然后学习如何在DevOps中监控、记录日志和持续部署。 本书将介绍DevOps和容器的基本概念,部署和将应用程序容器化,并介绍Kubernetes中的网络和存储。然后,使用先进的DevOps技能,如通过基于属性的访问控制和基于角色的访问控制,监控、记录和连续引入Kubernetes资源的权限控制。本书还涵盖部署和管理Amazon Web Services和Google Cloud Platform相关内容。最后,讨论了其他编排框架,如Docker Swarm模式、Amazon ECS和Apache Mesos。

作者简介

  中联润通运维总监,云技术社区创始人.曾在盛大游戏 金山西山居负责系统运维工作。__eol__维护有微信订阅号:”云技术实践”__eol__著有《深度实践KVM》一书 《Ceph手册》中文版译者之一 《运维前线》系列图书策划人。

精彩书摘

  这种方式和实物交付完美匹配,因为它需要与制作与交付软盘/CD-ROM 给用户的物流管理协调一致。瀑布模型和实物交付通常需要很长时间,一般是一年到几年。
  敏捷模型和电子交付
  几年之后,互联网被广泛接受,随之软件交付从实物转变成电子交付,比如在线下载。因此,许多软件公司(也称为dot-com网络公司)试图找出如何缩短SDLC流程,以交付能够击败竞争对手的软件。
  许多开发者开始采用新的方法,比如增量、迭代和敏捷模型,以便更快地交付给用户。即使发现了新的错误,现在也可以更容易地通过电子交付给用户更新和打补丁。微软也从Windows 98开始引入Windows update更新。
  在这种情况下,软件开发者只需要写很少的逻辑和模块,而不是一次性编写整个应用程序。然后交付给质量保证工程师(QA),接着开发者可以继续添加新模块,最后再将其交付给质量保证工程师(QA)。
  当所需的模块或功能准备就绪时,它将会被发布,如下图所示。
  该模型使SDLC循环和软件交付更快,并且在此过程中也易于调整,因为循环一般持续几周到几个月,这个周期足以进行快速调整。
  尽管敏捷模型目前受到大多数人的喜爱,但在当时应用软件交付意味着软件二进制文件,例如 EXE 程序,被设计用于在客户的PC上安装和运行。另一方面,基础设施(例如服务器和网络)是静态的,并且需要事先设置好。因此,SDLC的范围不倾向于涉及这些基础设施。
  云端的软件交付
  几年之后,智能手机(例如iPhone)和无线技术(例如Wi-Fi和4G网络)被广泛接受,软件应用程序也从二进制转变为在线服务,网络浏览器是应用程序软件的交互界面,客户不再需要安装应用程序。另外一方面,基础设施转变为动态的,因为应用程序需求不断变化,并且容量也需要持续增长。
  虚拟化技术和软件定义网络(SDN)使服务器更加动态化。现在,像Amazon Web Services(AWS)和Google Cloud Platform(GCP)这样的云服务,可以轻松创建和管理动态基础设施。
  现在,基础设施被纳入软件开发交付周期的范围,并且是重要的组件之一,因为应用程序被安装并且运行在服务器上,而不再是客户的 PC 机上。因此,软件和服务交付周期缩短为几天到几周。
  持续集成
  如上文所述,软件交付环境不断变化,交付周期也越来越短。为了实现更高质量的快速交付,开发者和 QA开始采用一些自动化技术。其中一项流行的自动化技术就是持续集成(Continuous Integration,CI),CI包含一系列工具的组合,例如版本控制系统(Version Control Systems,VCS)、构建服务器和自动化测试工具。
  VCS帮助开发者在中心服务器上维护程序源代码。它阻止开发者的代码被覆盖或者和其他开发者的代码冲突,并且可以保留历史记录。因此,它可以更容易地保持源代码的一致性,直到下一个交付周期。
  与 VCS相同,持续集成中有一个集中的构建服务器,它连接到 VCS,定期或者在开发者更新代码到VCS时自动检索源代码,然后触发新构建。如果构建失败,它会及时通知开发者。因此,当有人将损坏的代码提交到VCS时,构建服务器可以帮助开发者及时调整。
  自动化测试工具也与构建服务器集成。当构建成功后,它会调用单元测试程序,然后将结果通知给开发者和QA。这有助于识别何时有人编写错误的代码,并存储到VCS。
  整个CI的流程如下图所示:
  CI不仅可以帮助开发者和QA提升代码质量,并且缩短了程序归档或者模块打包周期。在电子交付的时代,CI足够应付。然而,交付到用户即意味着需要将应用程序部署到服务器。
  持续交付
  CI加上自动化部署是服务器上的应用程序向用户提供服务的理想过程。但是,还有一些技术挑战需要解决。如何将软件交付给服务器?如何优雅地关闭已有的应用程序?如何替换或者回滚应用程序?如果系统库也要更新,如何升级或者替换?如果需要,如何修改操作系统中的用户和组设置?
  因为基础设施包含服务器和网络,所以这些都取决于开发、QA、预发布、生产等环境。每个环境都有不同的服务器配置和IP地址。
  持续交付(Continuous Delivery,CD)是一种可以实现的最佳实践,它是CI工具、配置管理工具和编排工具的组合:
  配置管理
  配置管理工具帮助配置操作系统,包括用户、用户组和系统库,并且可以管理多台服务器,以便我们更换服务器时与所需的状态或者配置保持一致。
  它不是脚本语言,因为脚本语言是逐行执行的命令。如果我们两次运行脚本,则可能导致一些错误,举个例子,如尝试两次创建同一个用户。另外一方面,配置管理会检查状态,所以,如果用户已经创建,配置管理工具不会执行任何操作。但是,如果我们意外或者故意删除用户,配置管理工具将再次创建用户。
  它还支持将应用程序部署或安装到服务器中。因为如果你告诉配置管理工具下载应用程序,然后设置并运行应用程序,它就会尝试这样做。
  此外,如果你告诉配置管理工具关闭应用程序,然后下载并替换为新的可用的软件包,然后重新启动应用程序,它将保持新版本。
  当然,一些用户希望仅在需要时更新应用程序,例如蓝绿部署。配置管理工具将允许你手工触发执行。
  蓝绿部署是一种准备两组应用程序堆栈的技术,只有一个环境(例如蓝色)为生产服务。当你需要部署新版本的应用程序时,部署到另一个环境(例如绿色),然后执行最终测试。如果一切工作正常,更改负载均衡器或路由器设置,将网络流量从蓝色切换为绿色。然后绿色变为生产服务,而蓝色变为休眠状态,并等待下一个版本部署。
  基础设施即代码
  配置管理工具不仅支持操作系统或者虚拟机,还支持云基础设施。如果你需要在云端创建并且配置网络、存储和虚拟机,则需要一些云端操作。
  配置管理工具可以通过配置文件自动化设置云基础设施,如下图所示:
  配置管理相对于标准操作过程(Standard Operation Procedure,SOP)有一些优势。例如,使用VCS(比如Git)维护配置文件,可以跟踪环境设置的更改历史记录。
  复制环境也变得容易。例如,你需要在云上部署一套额外的环境。如果你遵循传统方法(即读取SOP文档来操作云环境),它总是存在潜在的人为和操作失误。另一方面,我们可以通过配置管理工具执行操作,快速自动地在云上创建环境。
  基础设施即代码可能包含也可能不包含在持续交付(CD)过程中,因为基础设施更换或者更新成本高于仅替换服务器上的应用程序二进制文件。


资源下载付费资源价格2立即支付
支付后请复制提取码进入网盘下载,电子书格式请参考“基本信息”说明, 如未显示下载按钮,请刷新网页或扫码关注公众号联系客服处理。