Cloudformation的相关概念
AWS cloudformation是一项典型的基础架构即代码服务。通过编写模板对亚马逊云服务的资源进行调用和编排。借助cloudformation可以极大帮助DevOps提升工作效率,减少重复劳动,配置和部署相关服务的时间,并把更多的精力花在应用程序领域。

引用AWS官网https://docs.aws.amazon.com对cloudformation服务的优势总结:

  1. 简化基础设施管理
  2. 快速复制基础设施
  3. 轻松控制和跟踪基础设施层的变更

部署业务:传统环境VS AWS云环境

上图:传统环境以硬件为主,采购部署耗时耗力,资金,场地,设备等资源开销和大量浪费情况比比皆是,做不到按需使用按需付费。一个传统硬件数据中心从部署到正式运营需要数月的时间!后期运维还要面对各类设备故障和安全问题。
AWS云环境中,传统环境的硬件设备均虚拟化/逻辑化。部署灵活方便,资金开销低,无场地需求,按需使用按需付费。点几下鼠标就可完成基础设施构建,分钟级的云上数据中心从部署到使用时间。AWS云的各种特性优势例如auto-recovery可以让用户最大限度无视底层硬件设备故障等问题。从资金开销到技术保障的丰富方面秒杀传统硬件环境数据中心。

部署业务:不使用cloudformation VS 使用cloudformation

上图:不采用cloudformation的部署方式时,假设某个业务需要EC2+mysql+S3+pipeline的几个服务组成。用户需要在Development环境先部署,测试通过后再部署到Staging环境,通过测试后再部署到Production环境。同样的工作需要重复3遍,这还只是某个单一业务。这种手动部署的速度和灵活程度虽远远快于传统硬件数据中心,但任然达不到高效率DevOps工作的要求。真正的DevOps on AWS往往会采用下一种方式。

上图:cloudformation模板部署业务方式,通过事先编写好的Yaml或者Json语言的模板进行AWS云平台的资源编排。把EC2+mysql+S3+pipeline等资源用模板进行声明并调用。在Development环境执行模板部署只需几分钟内即可完成,测试完成后在Staging和Production环境中部署时无需像以前那样再次搭建各种基础设施修改配置文件这类大量而且重复耗时的工作而是只需再次调用事先准备好的cloudformation模板即可。