Devops范儿!

警告
本文最后更新于 2023-07-19,文中内容可能已过时。

什么是 Devops

我不想用一些晦涩难懂的文字来解释 Devops。

首先,我们需要认识到 Devops 是一种概念而不是某项技术。

然后,Devops 旨在消除“开发团队”与“运维团队”的隔阂,“开发人员”实现功能代码后不能撒手不管,而是要跟“运维人员”一起参与到代码部署与维护的环节中去,对代码的整个生命周期负责。

Devops 与微服务架构、敏捷开发等概念是相辅相承的。在最初,公司项目只有一个代码仓库,开发只关心代码实现,运维只负责部署与维护,这没什么问题。但是在业务膨胀后,一些公司尤其是大厂可能有上千台服务器,一个巨型的项目可能被拆成 N 个微服务,再加上敏捷开发(快速迭代、快速试错)的流行,运维的工作量暴涨,运维同学表示搞个锤子!老子不干了!

1

在这种情况下,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?

Buy me a coffee~
室长 支付宝支付宝
室长 微信微信
0%