香港正版免费资料 · 
小团队如何从零搭建一个自动化运维体系?超级
发布时间: 2020-01-26

  现在行业内各巨头自动化运维架构的最终样子大家都知道了,但是如何根据自己团队当前的情况一步步向这个目标演进?

  笔者所在团队,三个半开发,要维护几十台云机器,部署了十来个应用,这些应用 90% 都是遗留系统。

  应用系统的编译打包基本在程序员自己的电脑上。分支管理也清一色的 dev 分支开发,测试通过后,再合并到 master 分支。

  生产环境的应用配置要登录上具体的机器看才知道,更不用说配置中心及配置版本化了。对了,连基本的机器级别的基础监控都没有。

  我平时的工作是 50% 业务开发,50% 运维。面对这么多问题,我就想,如何在低成本情况下实现自动化运维。

  事情有轻重缓急,监控和告警是我觉得一开始就要做的,即使业务开发被拖慢。只有知道了当前的情况,你才好做下一步计划。vivox20有nfc功能吗本港台现场直播开奖记录

  以上三者,我基本都要重新学,我为什么不学一个 Google SRE 书上推荐的呢?

  之前我们已经介绍过,人少机器多,所以安装 Prometheus 的过程也必须要自动化,同时版本化。我使用的是 Ansible + Git 实现。

  有了监控数据后,我们就可以对数据进行可视化,波肖门尾图库,Grafana 和 Prometheus 集成得非常好,所以我们又部署了 Grafana:

  可是,我们不可能 24 小时盯着屏幕看 CPU 负载有没有超吧?这时候就要上告警了,Promehtues 默认集成了 N 多告警渠道,可惜没有集成钉钉。

  完成以上工作后,我们基础监控的架子就完成了,这为我们后期上 Redis 监控、JVM 监控等更上层的监控做好了准备。

  在搭建监控系统的过程中,我们已经将配置抽离出来,放到一个单独的代码仓库进行管理。以后所有部署,我们都会将配置和部署逻辑分离。

  现阶段,我们所有的配置都以文本的方式存储,将来要切换成使用 Consul 做配置中心,也非常的方便,因为 Ansible 2.0 以上的版本已经原生集成了Consul:consul_module[5]。

  Tips:Ansible 的配置变量是有层次的,这为我们的配置管理提供了非常大的灵活性。

  我们要将所有项目的打包工作交给 Jenkins。当然,现实中我们是先将一些项目放到 Jenkins 上打包,然后逐步将项目放上 Jenkins。

  注意了,在网上看到的大多文章告诉你 Jenkins 都是需要手工安装插件的,而我们使用的这个 ansible-role-jenkins 实现了自动安装插件,你只需要加一个配置变量 jenkins_plugins 就可以了。

  搭建好 Jenkins 后,就要集成 Gitlab 了。我们原来就有 Gitlab ,所以不需要重新搭建。

  关于 Jenkins master 与 Jenkins agent 的连接方式,由于网络环境各不相同,网上也有很多种方式,大家自行选择适合的方式。

  现在我们需要告诉 Jenkins 如何对我们的业务代码进行编译打包,有两种方法:

  那么 Jenkinsfile 放哪里呢?答案是和业务代码放在一起,类似这样每个工程各自管理自己的 Jenkinsfile:

  这时,我们就可以在 Jenkins 上创建一个 pipleline Job了。关于分支管理,我们人少,所以,建议所有项目统一在 master 分支进行开发并发布。

  之前我们都是在程序员的电脑执行 Ansible 的,现在我们要把这项工作交给 Jenkins。

  我们已经知道各个项目各自负责自己的自动化构建,所以 Jenkinfile 就放到各自项目中。

  那项目的部署呢?同样的道理,我们觉得也应该由各个项目自行负责,所以我们的每个要进行部署的项目下都会有一个 Ansible 目录,用于存放 Ansible 脚本。

  但是,怎么用呢?我们会在打包阶段将 Ansible 目录进行 zip 打包,到真正部署时,再解压执行里面的 playbook。

  上面,我们将一个项目进行 Jenkins 化和 Ansible 化,但是我们还有很多项目需要进行同样的动作。

  考虑到这是体力活,而且以后我们还会经常做这样事,所以我决定使用 cookiecutter[11] 技术自动生成 Jenkinsfile 及 Ansible 脚本,创建一个项目,像这样:

  以上只是一个架子,基于这个“架子”,就可以向那些大厂高大上的架构进行演进了,比如:

  以上就是我关于自动化运维的一些实践,但是还在演进的路上,希望能与大家交流。


本港台同步现场报码| 最快开奖结果现场直播| 1183图库| 天机子高手论坛| 王中王铁算盘开奖结果889918| 324444抓码王| 香港马报资料大全| www.188336.com| 管家婆中特网免费公开资料| 六合彩官网| 正版铁算盘| 白小姐中特|