BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Kief Morris:实现基础设施即代码

| 作者 Ralph Winzinger 关注 0 他的粉丝 ,译者 刘嘉洋 关注 0 他的粉丝 发布于 2016年6月20日. 估计阅读时间: 3 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。

将应用程序迁移至云端在不知不觉中已经走向普及化、商品化,不仅仅是大企业可以实现,对于注重应用程序灵活性和资源应用的小企业,这也是一项很好的选择。在QCon New York 2016大会上,ThoughWorks公司云实践领导人Kief Morris给出了题为“实现基础设施即代码”的演说,他分享了如何充分利用基于云端的基础设施的一些关键原则和建议。

为了引出后面的讨论,Morris首先阐述了使用云基础设施的动机和挑战。通常情况下,公司会着重于速度——用最快速度获得一个最小化可行的产品投放于市场,之后再慢慢改进它。云技术为这种做法扫除了很多障碍,但与此同时仍然存在一些风险,比如在安全性、性能或是稳定性方面的风险值得大家注意。

总体目标必须在提高速度的同时,仍有所保留。需要快速修复一切会影响产品质量的东西,而不是在故障发生之后再进行修复,并且在最后拿出的是总体质量很高的产品。

Morris接着提出了,仅仅用鼠标点击搭建服务器还是远远不够的。这往往会导致产生大量服务器,并造成配置漂移。由于不一致的服务器很难自动化维护,要维护这些服务器需要手动完成,这就会造成更多的不一致。

基础设施即代码就是在这种环境下引入的,它可以解决这些问题,并搭建严格定义的服务器:使用类似Puppet或者Chef工具的“无人自动化”模式。这些工具可以按进度自己运行,而不需要人工介入做出修改。在底层模板和配置,即使是很小的问题也需要得到妥善修复,最后才能产生不变的或是高度集成化的服务器,而不需要手动维护。在不同环境下搭建服务器的时候也必须借鉴这个方法。尽可能多地在不同阶段重复使用模板和配置。

自动化操作节约了大量人力劳动,Morris还提到了使用持续交付对于软件质量保证起到很大的作用。通过自动化交付,引入管道化步骤检验服务器配置的正确性,保证每一个安全要求都得到满足,所以在最终产生产品之前,每一个变化都会在不同阶段进行测试。通过使用自动化手段,可以有效地管理过程。

Morris讲述了更多的优势,但是它还是有一些缺点缺陷的。正如在其他被多个团队开发和维护的系统一样,你必须关注到其中的整合点、瓶颈以及相互之间的依赖。比如说,你需要提供为服务测试实例并利用消费者或是合同来促进测试,这可以确保所有服务按照计划合作工作。如果部分的模板或是配置像共享库一样使用,在交给其他团队之前还需要进行彻底测试。

Morris在最后还是强调了人们从自动化开发系统中可以获得的根本利益:

  • 快速发展和准备
  • 毫不费力地修复错误
  • 保持服务器一致性
  • 专注于创造的价值

请注意,很多QCon大会的演说会在会后几周内在InfoQ网站上免费提供。

查看英文原文Kief Morris: Implementing Infrastructure as Code


感谢张龙对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

深度内容

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT