本文根据高效运维系列微信群的群友投稿整理而成。“高效运维”公众号作为本系列群的官方唯一公众号,原创并独家首发。
欢迎关注“高效运维”公众号,以免费参加「运维讲坛」每月一次的线下交流活动;并抢先赏阅干货满满的各种原创文章(详见文末)。
编辑
王鹏(翻译)
高浩淼(整理&发布)
引言
【编者按】近日,国外有技术专家在 SEI 攥文盘点了当下流行的 DevOps 思想和工具,其中包括Fabric、Ansible、Docker、Chaos Monkey等。本文系OneAPM与高效运维联合编译整理:
在2014年年底,SEI 博客发表了一系列有关 DevOps① 的博客文章,提供指南,实用的建议和教程。这些帖子针对越来越多的采用 DevOps 的企业(2011年以来,高达26%)。
根据最近的研究②,这些组织部署变更代码比传统的方式快30倍。
尽管 DevOps 的好处显而易见,但是许多企业仍不敢采用 DevOps,因为这需要转变心态、文化和技术要求,对于传统企业是非常大的挑战。
鉴于这些障碍,CERT 研究人员的文章主要集中在介绍 Amazon③ 和 Netflix④ DevOps 的成功案例,以及一些 DevOps 流行技术的教程,如 Fabric⑤、Ansible⑤ 和 Docker⑥。
我们将介绍2015年过去的六个月,10个最流行的 DevOps 相关文章(根据访问次数排序)。本文介绍前5篇文章,后续有文介绍后5篇文章。点击文末的“阅读原文”即可欣赏本文的英文出处。
1. DevOps技术:Fabric与Ansible
这篇博客文章中,作者重点描述了使用 DevOps 部署过程相关的情况,包括评估资源需求、设计生产系统、配置和生产服务器的配置、同步代码等等。
以下为摘录:
部署代码的工作流程几乎和代码本身一样古老。有许多与部署过程相关联的用例,包括评估资源需求、设计一个生产系统、配置和配置生产服务器、同步代码等等。
在这篇博客文章中,我将会专注于配置一个远程服务器上的软件包和必要的软件来执行您的代码。这个用例可以使用许多不同的,相互竞争的技术完成:
如:Chef、Puppet、Fabric、Ansible、Salt、Foreman,这些只是少数你可能已经听到过的有关 DevOps 自动化运维之路的技术。
所有这些技术都有提供仓库,可以提交脚本到仓库,并完成任务。这篇文章更深入的探讨了Fabric 和 Ansible。要了解更多关于其他基础设施即代码的解决方案,看看关于 Docker 的文章⑥或关于 Vagrant 的文章⑦。
Fabric 和 Ansible 之间的一个区别是,Fabric 会让你在几分钟内看到结果,而 Ansible 需要付出更多的努力去理解。通常来说,Ansible 是更强大的:
因为它提供了更深入和更复杂的多层架构模型的语义,如 Web 和数据库主机阵列。
从运维的角度看,Fabric 具有更直接和基本 API,可以使用 Python 编写,而 Ansible 使用 YAML,提供了丰富的操作(我以后再讨论这篇文章)。我们将通过这篇文章中的例子来说明。
阅读完整的文章,DevOps 技术:Fabric 与 Ansible,请访问
http://blog.sei.cmu.edu/post.cfm/devops-technologies-fabric-or-ansible
2. DevOps 之 Docker
阅读完整的文章,DevOps 之 Docker,请访问
http://blog.sei.cmu.edu/post.cfm/devops-docker-015
3.使用Docker做开发
Docker 这些日子在 DevOps 社区是相当火爆,这有很好的理由。Docker 容器使开发和部署应用软件达到可控制的、隔离的、灵活的和高度可移植的基础设施。
在这篇文章中,作者⑧介绍了使用 Docker 开发和部署软件应用程序的可扩展性,资源效率,以及弹性。
以下为摘录:
Linux 容器技术(LXC),为 Docker 的建立提供了基础,然而这并不是一个新想法。LXC 早已出现在 Linux 内核2.6.24版本中,当控制族群(或 cgroups)正式被集成时。
实际上谷歌早在2006就使用了 Cgroups 技术,因为谷歌一直在寻找,在共享硬件上进行资源隔离和运行的方式。
事实上,谷歌承认每周会启动200万个容器,使用自己发布的 LXC 容器imctfy ⑨。
不幸的是,这种技术并不容易被采用,直到 Docker 来简化容器技术,使它更易于使用。
在没有 Docker 的时代,开发者很难访问,实现,更不用说要理解 LXC 的优点。DotCloud⑩创始人、现任首席技术官 Solomon Hykes 发现 Docker 的潜力,在2013年三月份Docker作为开源项目被发布。
Docker的易用性是由于其高层次抽象的API以及文档。这使得 DevOps 社区充满力量,并创建 Docker 教程、官方化应用程序和许多其他的技术。通过降低进入容器技术的门槛,Docker 已经改变了开发人员共享、测试和部署应用程序的方式。
在这篇文章使用 Docker 开发⑪中,Yankel 描述了如何开始使用 Docker 在一个普通的软件开发环境开发相应的软件,通过启动一个数据库容器(MongoDB),一个 Web 服务容器(Python Bottle APP),并配置它们可以互相访问。这是一个多容器应用程序。
阅读完整的文章,使用 Docker 开发,请访问
http://blog.sei.cmu.edu/post.cfm/development-with-docker
4.DevOps 示例:Amazon AWS
经常阅读 DevOps 博客的读者会发现这个系列中会反复出现的主题:
DevOps 本质上是通过精心的构建组织过程、加强沟通和工作流程来提升质量。
在本文⑫中,主要分享了 Amazon DevOps 的经验。
阅读完整的文章, DevOps 示例:Amazon AWS, 请访问
http://blog.sei.cmu.edu/post.cfm/devops-casestudy-amazon-aws-036
5.DevOps示例:Netfix的Chaos Monkey
DevOps 经常被运用在如敏捷开发、自动化和持续交付,DevOps 的精神可以应用在很多方面。在这篇博客中,作者分享了另外一个具有开创性的 DevOps 案例研究,Netflix⑭的一些开箱即用的方式。
以下为摘录:
Netflix 是一个奇妙的案例研究,因为他们的 DevOps 软件工程过程,展示了一个对 DevOps 本质的了解,专注通过 DevOps 自动化辅助过程来达到质量要求。
DevOps 从业者信奉一种注重质量属性的驱动来满足业务需求,利用自动化过程实现一致性和效率。
Netflix 的流媒体服务是一个托管在AWS的大型分布式系统。由于这么多组件一起工作,为各个地区的客户提供可靠的视频流,Netflix 工程师需要侧重于服务端-客户端组件质量属性的可靠性和鲁棒性的。
总之,他们得出结论认为,处理失败的唯一方法是不断实践失败。
为了实现如此可信赖的,质量达标的水平,使用 DevOps 的风格,Netflix 公司的工程师开始使用自动化故障方案。
阅读完整的文章,DevOps 示例:Netfix 的 Chaos Monkey,请访问
http://blog.sei.cmu.edu/post.cfm/devops-case-study-netflix-and-the-chaos-monkey
说明
后 5 篇文章也是非常的精彩哦。敬请期待。
每两周,SEI 会发布一篇新的博客,为那些尝试采用 DevOps 的组织提供指南,实用的建议和教程。我们欢迎您对本系列文章提供反馈,以及对未来内容的建议。请在下面的评论部分反馈意见。
① http://blog.sei.cmu.edu/post.cfm/what-is-devops-324
② http://readwrite.com/2014/02/11/devops-future-diy-it-gartner-nosql
③ http://blog.sei.cmu.edu/post.cfm/devops-casestudy-amazon-aws-036
④ http://blog.sei.cmu.edu/post.cfm/devops-case-study-netflix-and-the-chaos-monkey
⑤ http://blog.sei.cmu.edu/post.cfm/devops-technologies-fabric-or-ansible
⑥ http://blog.sei.cmu.edu/post.cfm/devops-docker-015
⑦ http://blog.sei.cmu.edu/post.cfm/devops-technologies-vagrant-345
⑧ http://www.sei.cmu.edu/about/people/profile.cfm?id=yankel_15790
⑨ https://github.com/google/lmctfy
⑩ https://www.dotcloud.com/
⑪ http://blog.sei.cmu.edu/post.cfm/development-with-docker
⑫ http://blog.sei.cmu.edu/post.cfm/devops-casestudy-amazon-aws-036
⑬ http://aws.amazon.com/
⑭ http://www.netflix.com/
如何一起愉快地发展
“高效运维”公众号(如下二维码)值得您的关注,作为高效运维系列微信群(国内领先的运维垂直社区)的唯一官方公众号,每周发表多篇干货满满的原创好文:来自于系列群的讨论精华、运维讲坛精彩分享及群友原创等。“高效运维”也是互联网专栏《高效运维最佳实践》及运维2.0官方公众号。
提示:目前高效运维两个微信主群仅有少量珍贵席位,如您愿意,可添加萧田国个人微信号 xiaotianguo 为好友,进行申请;或申请加入我们技术交流群(技术讨论为主,没有主群那么多规矩,更热闹)。
重要提示:除非事先获得授权,请在本公众号发布2天后,才能转载本文。尊重知识,请必须全文转载,并包括本行及如下二维码。