七款做好DevOps的强大工具
原文链接: 7 cool tools for doing devops right
传统把开发和运营割裂开的做法,实则不适合现代产品和服务开发的需求,如今把开发和运营作为整体来看待的DevOps工程思想逐步深入人心,随之也逐步有了对DevOps系统的需求,现在给大家推荐七款做好DevOps的强大工具。
以前,开发(Development)和运维(Operations)总是相互指责。程序代码永远不会按照开发者的意愿及时更新,服务器的管理人员则对开发者随意简化进程搁置服务请求十分恼火。
直到DevOps的到来,一些工具消除了双方之间的隔阂,提供了从配置管理到应用程序移植的服务,这条战线便消失了。这里介绍几款最近颇受好评的DevOps工具。
1. Atlas
HashiCorp最新推出的Atlas提供了可视化的基础设施,在配置管理和服务搜寻之外,还提供了服务器、包容器和虚拟机。该项目是在其广受欢迎的开源项目Vagrant、Packer、Serf、Consul 和Terraform的基础上建立的,其特有闭源模式能使DevOps在AWS、谷歌计算引擎、Azure以及OpenStack等各种云服务中运行自如,此外,Atlas还提供了可用于开发、资源配置和维护应用程序的仪表板。
Lithium Technologies 工程师Justin Franks目前所用的开发工具是Vagrant,他正在考虑使用Atlas为公司的客户互动平台服务。Franks 说Atlas在Lithium Technologies已经投入使用,现在主要在测试其持续集成和配置的能力。“有很多的工具,比如Jenkins、Travis和Bamboo,它们都过不了最后资源配置的那一关。”弗兰克如是说。
Atlas自购系统的安装预计在今年年初进行。
2. Chef
Chef是一个系统和云端基础架构的框架,它可以通过被称为“recipes”的简短可重复脚本自行操作基础设施的建立、配置和管理。但Chef的实权其实只在于操作其可插拔的配置模块(又名“食谱”),而在Chef中有近2000个这样的模块。作为Chef的高调用户之一,Facebook最近开放了一些自己的Chef“食谱”的源代码,包括Taste Tester测试框架和Grocery Delivery,后者是用于监测源代码回购(如Git)并保持本地Chef服务器同步的工具。
宾夕法尼亚大学沃顿商学院也是Chef的用户之一。“Chef可自动化操作一些时间密集型和资源密集型的复杂任务,更重要的是它使我们能够集中精力进行创新和提高服务质量,”该校的技术总监Sanjay Modi在Chef网站的个案分析上说,“Chef也将为组织内的协作和工作效率提高带来更多的可能。” Chef已被使用于沃顿商学院的Amazon EC2资源、Linux节点和本地虚拟机的自动化配置管理。
3. Docker
Docker以其集装化技术为应用程序带来便携性,在Docker中,应用程序可以跨平台运行自给系统。Docker是由Docker引擎和Docker集线器组成的,前者是一个轻量级的运行时间和包装工具,后者则是应用程序共享和工作流程自动化的云服务。
“Docker已成为Yelp下一代测试和服务管理基础设施的重要组成部分,”Yelp 的技术总监Sam Eaton在Docker网站上的案例研究中说,“依赖性隔离和‘集装箱’的快速旋转使得开发周期和测试速度提高了不只4倍。”
4. Puppet
通过机器和软件的自动化配置和管理,Puppet公司从Puppet实验室提供数据中心的业务流程。最新发布的3.7版本推出了Puppet Apps,这是一款专用于应用IT自动化的应用,其包含的Node Manager,可用于管理大量常变系统。Puppet的开源版本也已推出。
斯坦福大学采用Puppet的开源版本来“解决开发新型数字图书馆服务和保持这些服务高性能安全运行之间的矛盾,”斯坦福大学的Bess Sadler在Puppet网站的视频推荐中如是说。
她还指出开发者应更多地参与系统管理,而系统管理员也同样参与了软件开发,于是,应用开发也就更加快捷省时。
5. SaltStack
SaltStack提供数据自动化、服务器配置、云端建设和应用程序配置的系统管理。事件驱动的云端基础架构自动化工具,可以自动运行DevOps工作流程中的任务。Deseret Digital Media已经采用SaltStack自动化运行环境长达两年,其特点是大约200个虚拟机用于运转生产和登台环境。
Deseret Digital的开发部主管Justin Carmony表示,SaltStack“使操作更加贴近开发者”。Deseret Digital有三个运营人员和30个开发者:SaltStack让研发与运营统一战线,比如在新服务器配置上。一般来说,运营和研发会一直争吵,无法达成统一意见。而SaltStack提供了一种通用的方法和通用语言来管理服务器,从而有助于双方消除误会,方便沟通。
6. ScriptRock GuardRail
GuardRail提供了配置监控,连续监测机器的配置状态。它可以确保用户的生产环境是符合质量保证以及测试和开发环境的。VersionOne,一个灵活项目管理平台的制造商,在遇到的配置漂移和自动化的挑战后,果断转向了GuardRail。
“开发者走捷径使自动化更易实现。为了在新的代理上运行已有创建,他们改变了之前用于其他创建的代码。于是基础设施的不稳定破坏了兼容多个生成代理的可能性。” VersionOne 的产品经理Ian Buchanan在案例分析中如是说。“而有了GuardRail,我们现在可以了解到任何生成代理是如何配置的,所以我们能够依照我们的意愿,确实地扩展到尽可能多的代理。”现在,VersionOne可以直观的看到配置漂移,可以记录预期,并创造了人类可读的测试,这相当于节省了一个专职的测试人员。
7. Splunk
Splunk是在整个应用程序的生命周期中实时寻找和修复问题的工具,它使开发者能够直接看到生产环境中的数据,而无需访问生产机器。Splunk协助用户进行DevOps过程,包括持续的集成和资源配置。
User EnerNOC使用Splunk大概五年了,这是一家为电网运营商等提供能量智能软件的公司。“Splunk从根本上改变我们操作生产系统的方式,”EnerNOC 公司的首席工程师James Nichol介绍说,“它使技术和非技术用户都能够深入了解一个非常复杂的系统,这个系统原本是他们无法了解的。我们已经有了虚拟服务器和开发经理,服务台运营商也建立了仪表板和警报,并开始深入挖掘数据——没有Splunk,这些都是不可能实现的。”