基于Ansible和CodeDeploy的DevOps方案( 三 )


基于Ansible和CodeDeploy的DevOps方案文章插图
图8 环境管理、创建应用
持续部署CD中最重要的是代码部署引擎 , 即按照用户预先定义的事件脚本来实现自动化部署 。 FIT2CLOUD DevOps解决方案中的代码部署引擎 , 遵从于前文提到的AWS CodeDeploy部署规范 。 与之有所区别的是 , 此方案中的代码部署引擎适用于各种公有云、私有云 , 以及本地物理裸机环境 。
基于Ansible和CodeDeploy的DevOps方案文章插图
图9 AWS CodeDepoly 部署规范
应用的打包内容除了应用程序代码外 , 只需要一个AppSpec.yml文件和一些用于处理安装中一个或多个事件的脚本文件 。 AppSpec.yml 脚本不仅定义了代码部署的路径 , 还指定了要在部署过程的各个阶段在每个实例上运行的脚本文件 。
一般的部署事件有7个 , 如图9所示 , 以Install为中心 , 在安装部署包前后会自动且规范化地做一些譬如应用停止、依赖检查、依赖安装、部署后的验证等操作 。 企业可以根据情况按需选择 , 往往这些步骤只需要脚本化即可 。
基于Ansible和CodeDeploy的DevOps方案文章插图
图10 FIT2CLOUD 多云管理平台应用部署流程
值得一提的是 , 上述代码部署引擎的实现 , 是通过开源自动化运维工具Ansible作为命令下发的组件 。 与其他一些自动化运维工具相比 , Ansible是无客户端Agent的 , 底层通过SSH通信 。 因此 , 用户无需在客户机上安装或配置任何程序 , 就可以运行Ansible任务 , 这样减少了许多管理开销 。
基于Ansible和CodeDeploy的DevOps方案文章插图
图11 Ansible 组件执行部署动作的输出日志
3. 在监控层面 , FIT2CLOUD多云管理平台选用Prometheus作为集中的监控告警系统 , 通过在监控对象上安装部署各种Prometheus Exporter来采集不同维度的监控数据 。 监控告警中心会根据Exporter自动给监控对象进行归类 , 并且支持从业务系统维度对监控对象进行管理 。
监控告警中心提供了灵活的自定义监控面板的功能 , 用户可以根据自己的需要自行分组和设置各自所需的监控图表 。 除此之外 , 监控告警中心还结合了Grafana的监控展示功能 , 天然支持所有Grafana的展示面板 , 给用户提供了更好的体验 。
基于Ansible和CodeDeploy的DevOps方案文章插图
图12 Grafana监控面板
总体来看 , FIT2CLOUD DevOps 解决方案体现了DevOps企业环境落地四个着力点:
首先 , 注重规范性的建设 , 尤其是基于AWS CodeDeploy的部署规范 , 在对项目现有代码及架构无侵入、无限制的前提下 , 有效保证了CD过程的高效性与可靠性;
其次 , 在工具的选择上 , FIT2CLOUD多云管理平台集成了主流开源技术 , 例如Prometheus、Grafana、Ansible、Jenkins、Nexus等 , 并且在代码仓库、制品库等方面提供多种类型工具的支持;
第三 , 在流程约束方面 , 多云管理平台在代码到制品库、制品库到可运行的服务 , 以及开发环境到生产环境三条线路上都建立了完备的流程体系 , 并且这些体系在很多项目上都经过了时间的验证 , 可以很大程度地改善了企业DevOps流程混乱的问题 。
最后 , 无论是什么样的企业 , 有着怎样的业务背景或需求 , 在建设DevOps系统的过程中 , 也需要同步建设DevOps企业文化 。 加强开发与运维部门之间的沟通与协作 , 让流程中各个角色的员工都参与其中 , FIT2CLOUD飞致云会与各个客户一起持续地学习和改进 。
基于Ansible和CodeDeploy的DevOps方案文章插图