IaC带来的好处

Terraform Up & Running (Writing Infrastructure as Code)

摘录来自
Terraform
Yevgeniy Brikman

The Benefits of Infrastructure as Code

前文我们已经了解了不同类型的IAC工具,但问题是我们为什么要去学习一大堆语言和工具去难为自己呢?原因是代码真的很强大。通过前期将大量的手工维护过程代码化后,将会在软件交付能力上带来大幅提升。根据“2016 State of DevOps Report”,采用IaC实践理念企业比未采用的企业在部署频率上快两百倍;故障恢复时间快24倍;交付时间缩减2555倍。
当您通过代码的方式定义基础设施,您可以使用各种各样的软件工程实践来大幅改进您的软件交付流程,包括以下内容:
自服务(Self-service)
大部分采用手工部署代码的团队通常拥有少数几个系统管理员(通常只有一个),有且仅有他们拥有直接访问生产系统的权限并且了解完成一次交付所需的全部咒语。这已成为制约公司发展的主要瓶颈。而如果基础设施通过代码定义,整个部署过程都是自动化的,开发人员可以在必要时发起自己的部署过程。
快速安全(Speed and Safety)
如果部署流程是自动化的,那将极大的加速这个流程。由计算机去完成部署的全部流程远比手工操作的方式快,并且更安全。因为自动化过程将更加一致,更可重复,并且不容易出现手动错误。
可记录(Documentation)
IaC可以将全部的基础设施状态记录在源代码里,而不是锁在某个系统管理员的脑袋里。换言之,IaC可以作为文档记录,允许组织中每一个人理解基础设施如何运行,哪怕系统管理员正在休假。
版本控制(Version control)
你可以将IaC源码存储在代码控制系统中(e.g. git、VCS等),这意味着基础设施的全部历史记录都会被记录在提交日志(commit log)中。版本控制系统将成为强大问题分析工具,因为任何时候出现问题,首先会排查提交日志,找出基础设施发生了哪些变化,其次可能是通过版本回滚将基础设施恢复到一个最近的已知的正常状态下已减少问题影响。
验证(Validation)
如果基础架构的状态在代码中定义,对于每一次变更,都可以通过代码审查、自动化测试、静态分析等软件代码工程方法去降低缺陷率。
复用
可以将基础设施封装成一个个可复用的单元,而不是让每一个产品、在每一套环境下的每一次部署都从零开始。而是基于一个个被熟知、被记录以及经过生产检验的模块去构建更可靠的基础设施交付流程。
幸福感
还有一个推荐使用IaC非常重要且经常被忽视的理由就是“幸福感”。手工部署代码和管理基础设施是种重复且乏味的工作。开发人员和系统管理员都讨厌这种没有创新、没有挑战、没有认可的工作。您可能持续且完美的部署了数个月的基础设施都没有人注意到,直到某天出错,引发了生产故障,一炮走红。这造成一种高压且不愉快的工作环境。IaC提供了一个更好的替代方案,让计算机做他们最擅长的事情(自动化)和开发人员做他们最擅长的事情(编码)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值