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

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

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

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

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

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

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

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

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

快速发展和准备 毫不费力地修复错误 保持服务器一致性 专注于创造的价值
请注意,很多QCon大会的演说会在会后几周内在InfoQ网站上免费提供。
本文转自d1net(转载)

时间: 2024-09-24 17:21:24

Kief Morris:实现基础设施即代码的相关文章

解读基础设施即代码

现代软件开发对基础设施的管理提出了更苛刻的要求.产品要适应瞬息万变的市场,要求基础设施要有更快的响应速度.而持续交付和DevOps的推行要求产品团队对部署和运维要有更高的自主性.技术的快速进步和演化,也使得基础设施的配置不得不频繁变化.在这种快速变化的过程中,要求基础设施既要灵活,也要安全.可靠. 而传统的基础设施运维管理具有以下几个问题. 被动响应. 产品团队获取服务器资源采用的是申请制,中间存在若干审批过程,以及需要等待运维团队实施,响应不及时. 自动化缺乏串联.虽然有一定的自动化,但不能做

基础设施即代码让混合多云管理更为复杂

对于任何一个力,都存在着一个与其大小相等方向相反的反作用力.这个物理学上的牛顿第三定律也同样适用于IaC:虽然这一服务是有优势的,但它也带来了一些问题. 本文是针对混合云和多个云管理使用基础设施即代码系列中的一部分. 基础设施即代码是一个强大的工具,它可以帮助简化混合云和多个云的管理工作,因为它能够实现服务器.容器以及虚拟机的部署与配置操作的自动化.但是,它也可能会导致出现低效过程.部署错误以及常见混乱等问题.那么,用户应当如何解决实施能够确定成功与否的基础设施即代码所带来的挑战呢? 在实施基础

云计算基础设施持续集成实践

[演讲PDF]: https://yq.aliyun.com/attachment/download/?id=1837 [演讲视频]: https://yq.aliyun.com/edu/lesson/551 研发和传统基础设施交互方式 通常情况下,在开发过程中需要和基础设施打交道,需要在项目中申请开发.测试以及预发生产环境.在IDC时代,我们需要向IT部门申请这些资源,其批准后,我们才能获得这些资源.如果这些资源恰巧不足,我们只能等待购买新的资源或者更换其他资源. 当拿到这些资源之后,需要对开

打造云上代码交付链,CodePipeline实践分享

在2017在线技术峰会--首届阿里巴巴研发效能嘉年华上,来自阿里云飞天研发部的工程师莫源分享了<打造云上代码交付链,CodePipeline实践分享>.他在云计算和云平台.持续集成流程.DevOps的基础上,详细分享了Alibaba Cloud CodePipeline优于Jenkins的性能和实践. 以下内容根据直播视频整理而成. 直播视频:https://yq.aliyun.com/edu/lesson/549 PDF下载:https://yq.aliyun.com/attachment/

揭秘HPE的最新一代组合式基础设施Synergy

 HPE公司的Synergy将成为下一代服务器的代表,将拥有超越超融合型基础设施系统的容量水平,且能够实现裸机配置.承载虚拟化工作负载以及容器化负载等多种用途--至少HPE自身对此抱有信心.   不过对这套方案进行深入剖析仍然颇具难度.它到底属不属于一套具备独立可扩展计算.存储与网络机制的动态可重新配置超融合型基础设施(简称HCI)设备?答案是肯定的,至少在一定程度上是如此,但HPE方面坚持将其与HCI区分开来.这一点我们稍后将详加阐述. Synergy的基础是一台10U机架级机柜,其有点类似于

优质的基础设施如何帮助数据中心应对业务中断

随着现如今的企业组织纷纷都在积极的将自身打造成为一家具有变革能力的企业组织,故而您企业的IT部门所关注的重点需要从此前的单纯的解决业务中断领域方面进行转型. 然而,为了摆脱采取被动的方法来应对和解决造成业务中断的因素,您企业将需要一套更为综合的.灵活的数据中心基础设施. 通过借鉴参考本文这篇来自Frost & Sullivan的调研报告,相信将有助于广大读者们了解如何构建一款更好的基础设施,来使得您所在的企业组织能够充分利用强大的自动化工具.高性能的管理和报告平台.实现理想的灵活性等. 几年前,

“安全即代码”:整合安全团队和DevOps团队

随着云计算开发和部署变得越来越快且越来越灵活,安全团队意识到,保护云应用和系统部署的唯一有效方法是开发可整合到部署管道的安全控制,以及尽可能自动化.安全社区很多人将这种方法称为安全即代码,这是采用基础设施即代码的概念,即将所有虚拟和基于云的堆栈组件定义为可配置元素,这些元素只是被视为一种软件定义,并在在配置文件和模板中进行管理. 然而,很多安全团队在采用这种方法时并不顺利.大多数安全专业人士并没有软件开发背景,并且,他们通常与DevOps团队脱节,DevOps团队使用高度自动化和灵活的工具及流程

开源管理指南:成功开放项目基础设施的四种方式

开源代表的绝不只是放开代码--我们亦需要构建一套支持基础设施,邀请人们加入并作出贡献.为了建立一个充满活力.不断发展且令人兴奋的项目,社区需要让更多人参与到治理.文档编写.代码创建以及结构调整的工作中来. 尽管很多项目打着"开放一切"的旗号,但其基础设施的大门却往往拒绝访问.通常情况下,开源项目只由少数人管理其基础设施并保持正常运作.虽然将王国核心宝库的钥匙交给每一个人并不靠谱,但我们也确实需要对每位参与者给予一定程度的信任. 过去几年以来,Ansible.Chef以及Puppet等基

关于DevOps你必须知道的11件事

关于作者 Gene Kim在多个角色上屡获殊荣:CTO.研究者和作家.他曾是Tripwire的创始人 并担任了13年的CTO.他写过两本书,其中包括<The Visible Ops Handbook>,目前他正在编写<The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win>和<DevOps Cookbook>.Gene是 IT运维的超级粉丝,痴迷于改进运维流程--在不影响当