Devops范儿!
什么是 Devops
我不想用一些晦涩难懂的文字来解释 Devops。
首先,我们需要认识到 Devops 是一种概念而不是某项技术。
然后,Devops 旨在消除“开发团队”与“运维团队”的隔阂,“开发人员”实现功能代码后不能撒手不管,而是要跟“运维人员”一起参与到代码部署与维护的环节中去,对代码的整个生命周期负责。
Devops 与微服务架构、敏捷开发等概念是相辅相承的。在最初,公司项目只有一个代码仓库,开发只关心代码实现,运维只负责部署与维护,这没什么问题。但是在业务膨胀后,一些公司尤其是大厂可能有上千台服务器,一个巨型的项目可能被拆成 N 个微服务,再加上敏捷开发(快速迭代、快速试错)的流行,运维的工作量暴涨,运维同学表示搞个锤子!老子不干了!
在这种情况下,Devops 的出现极大的减轻了运维的工作压力,通过自动化重复的部署工作,提高了研发人员的效率。
Devops 的各种实践
持续集成&持续部署
持续集成&持续部署(Continuous integration & Continuous deployment),简称 CI/CD。
在这种模式下,开发人员将代码合并到仓库后,系统会自动运行构建(比如构建Docker镜像)、测试和部署操作。
CI/CD 的主要作用有:
- 强制执行测试,快速发现软件缺陷。
- 自动化部署,减轻人员部署工作压力、避免人工出错的可能。
- 更快的软件交付。
在 Kubernetes、Docker 的支撑下,CI/CD 的实现变得非常容易。Drone、Jenkins 等软件提供了丰富的插件,以实现自动的打包、测试、部署。
监控与告警
自动化的监控与告警帮助开发人员快速响应故障,借助 CI/CD 及时修复软件缺陷。
其中,监控包括软件性能监控,也包括日志监控:
- 性能监控包括 CPU、内存、网络等压力,也包括容器的意外重启。
- 日志监控包括 500 等错误收集、也包括开发人员自行打印的告警日志。
系统在捕捉到异常信息后,会立即通过邮件等方式告知到研发人员。
在业界,常用 Prometheus、Grafana、ELK 实现系统的自动化监控与告警。
总结
软件工程一直在变化,Devops 概念的流行在我看来是软件工程领域的一次巨大进步。在 Devops 的概念下,CI/CD、自动化监控与告警相继诞生,将运维从重复、繁杂的工作中拯救出来,将开发从业务代码的“空中楼阁”中释放出来,这是非常有意义的一件事。
参考:https://aws.amazon.com/cn/devops/what-is-devops/
转载声明:本文允许转载,原文地址:如何做一名Devopser?