DevOps(Development和Operations的组合词)是一种软件开发与IT运维的融合文化,旨在提高组织的敏捷性、效率和可靠性。它强调软件开发(Dev)和IT运营(Ops)之间的协作和沟通,通过自动化工具和流程来加速软件交付,并确保系统的稳定性和安全性。
以下是对DevOps概念的深度理解和实现相关工具的笔记:
一、DevOps概念提出
1. 单体架构+瀑布模式:在业务规模较小时,开发人员同时负责开发和运维,采用单体应用架构,如LNMP,开发流程简单,瀑布模式开发。
2. 分布式架构+敏捷开发模式:随着业务增长,需要多人协同开发,采用分布式架构,引入了如nginx、cdn、缓存等基础服务。敏捷开发模式强调小步快跑,持续迭代,测试与开发同步进行。
3. 微服务架构+DevOps:在大型公司中,项目变得庞大,难以维护。微服务架构将项目拆分为小型、独立部署的服务,通过API相互通信,促进了DevOps的发展。
二、DevOps深度理解
1.软件交付过程:从产品规划到最终交付,包括开发编码、构建、QA测试、发布、部署和维护。
2.端到端概念:DevOps扩大到整个软件交付过程,而不仅仅是开发和运维的结合。
3.三大支柱:人(People)、流程(Process)、平台(Platform)。
DevOps=人+流程+平台
人 + 流程 = 文化
流程 + 平台 = 工具
平台 + 人 = 赋能
三、DevOps实现相关工具
1.项目管理(PM):Jira
2.代码管理:GitLab
3.持续集成CI:GitLab CI
4.持续交付CD:GitLab CD
5.镜像仓库:VMware Harbor 或 Nexus
6.容器:Docker
7.编排:Kubernetes (K8S)
8.服务治理:Consul
9.脚本语言:Python
10.日志管理:Cat + Sentry 或 ELK
11.系统监控:Prometheus
12.负载均衡:Nginx
13.网关:Kong 或 Zuul
14.链路追踪:Zipkin
15.产品和UI图:蓝湖
16.公司内部文档:Confluence
17.报警:推送到工作群
这些工具可以帮助团队成员无阻碍地协调工作,提高开发效率和软件质量。