六、IAC

基础设施即代码(IAC)是一种通过源代码来定义计算和网络基础设施的方法,可以将它作为一个软件系统对待。这些代码可以放在一个源码管理系统以便于审计、可复现,满足测试实践以及CD的原则。随着云计算的兴起,它已经被使用了许多年,并且今后将继续成为处理云基础设施的主要方法。

云计算到来之前,要发布一个新的应用需要购买硬件资源、按需配置然后部署应用到硬件上。这一系列的步骤需要花费大量的时间。但云计算到来后,这些步骤可以在分钟内完成,只是需要一个网络连接和一个信用卡(付费的)。

实践

IAC的一些实践:

  • 使用定义的文件:所有的配置定义在可执行的配置文件中,比如shell脚本,ansilbe playbooks,Chef recipes, 或者 Puppet manifests。任何时候任何人都不应该登陆主机,然后做一个变更。任何这样的修修补补都有风险,因此,只有在开发作为持久定义的代码时才应该这样做。这意味着使用代码来做更新应该很快。幸运的是计算机执行代码很快,特别是要更新成百上千台机器的时候。
  • 自记录的系统和过程:与记录文档的一些指令相比,代码执行更加准确和一致,而不会出现不同的人看文档有不同的理解。如果有必要,可读性的文档可以从代码中产生。
  • 把所有的东西都版本化: 使用源码控制来保存代码。这样每一个配置和变更都会被记录下来,而且出问题也可以帮助诊断。
  • 持续的测试系统和过程: 测试可以让计算机快速发现配置中的问题。现代软件系统,可以为IAC设置 DeploymentPipelines ,以便于为IAC进行 ContinuousDelivery
  • 小的改变而不是批量: 代码更新越大,更可能包含错误,而且更不容易发现错误。小的变更更容易发现错误和修复错误。当修改代码时遵循FrequencyReducesDifficulty.
  • 保持服务一直可用: 越来越多的系统无法承受停机来进行升级或修复。 BlueGreenDeploymentParallelChange 可以用来进行不停服升级
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 原文如下:http://martinfowler.com/articles/microservices.html ...
    jacky_谦阅读 4,524评论 0 1
  • 微服务 这个新架构术语的定义 在过去的几年中,出现了“微服务体系结构”一词,用于描述将软件应用程序设计为可独立部署...
    Locker阅读 16,420评论 0 10
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,266评论 19 139
  • 原文https://martinfowler.com/bliki/InfrastructureAsCode.htm...
    麦芽面包阅读 3,655评论 0 0
  • 久违的晴天,家长会。 家长大会开好到教室时,离放学已经没多少时间了。班主任说已经安排了三个家长分享经验。 放学铃声...
    飘雪儿5阅读 12,239评论 16 22

友情链接更多精彩内容