【编者按】: 当今任何企业与工作都离不开运维的支持,只有运维做好才会让企业正常的工作运转。近些年来,运维被广泛关注,我们在微信和活动中看到很多高价值的运维文章。此次特别分享“高效运维”公众号的一篇文章《“DevOps年中盘点:国外最受欢迎的10篇技术文章(上) ”》。
编辑 王鹏(翻译)高浩淼(整理&发布)
在2014年年底,SEI 博客发表了一系列有关 DevOps① 的博客文章,提供指南,实用的建议和教程。这些帖子针对越来越多的采用 DevOps 的企业(2011年以来,高达26%)。
根据最近的 研究② ,这些组织部署变更代码比传统的方式快 30倍。
尽管 DevOps 的好处显而易见,但是许多企业仍不敢采用 DevOps, 因为这需要转变心态、文化和技术要求,对于传统企业是非常大的挑战。
鉴于这些障碍,CERT 研究人员的文章主要集中在介绍 Amazon③ 和 Netflix④ DevOps 的成功案例,以及一些 DevOps 流行技术的教程,如 Fabric⑤ 、 Ansible⑤ 和 Docker⑥ 。
我们将介绍2015年过去的六个月,10个最流行的 DevOps 相关文章(根据访问次数排序)。本文介绍前5篇文章,后续有文介绍后5篇文章。点击文末的“阅读原文”即可欣赏本文的英文出处。
这篇博客文章中,作者重点描述了使用 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阅读完整的文章,DevOps 之 Docker,请访问
http://blog.sei.cmu.edu/post.cfm/devops-docker-015
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经常阅读 DevOps 博客的读者会发现这个系列中会反复出现的主题:
DevOps 本质上是通过精心的构建组织过程、加强沟通和工作流程来提升质量。
本文⑫中,主要分享了 Amazon DevOps 的经验。
阅读完整的文章, DevOps 示例:Amazon AWS, 请访问
http://blog.sei.cmu.edu/post.cfm/devops-casestudy-amazon-aws-036DevOps 经常被运用在如敏捷开发、自动化和持续交付,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每两周,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/
更多好文章请点击如下链接
【大运维之一】自动化实践探索的最优路 http://www.csdn.net/article/2015-08-05/2825387
重要提示:运维在“云江湖”的地位毋庸置疑。为给CSDN的读者提供更多高质量内容,CSDN云计算频道已与“高效运维”微信公众号(如下二维码)达成合作,众多深度分享文章均将首发在CSDN。欢迎关注。