DevOps简介

目录

1、概念

2、解决的痛点

[3、核心理念:CALMS 模型](#3、核心理念:CALMS 模型)

[4、DevOps 的生命周期](#4、DevOps 的生命周期)

[5、 常见的 DevOps 工具链](#5、 常见的 DevOps 工具链)


1、概念

DevOps不是某个具体职位,而是一套文化、实践和工具的集合,旨在缩短系统开发生命周期,提供高质量的持续交付。

它试图打破开发团队(追求快速变更)和运维团队(追求系统稳定)之间传统的壁垒和矛盾。

2、解决的痛点

在 DevOps 出现之前,大多数企业采用传统的"瀑布模型"或类似的孤岛式工作方式:

  • 开发与运维的目标冲突: 开发团队的目标是快速推出新功能,而运维团队的目标是确保生产环境的稳定。这种冲突常常导致互相指责。

  • 发布周期漫长: 从开发完成到最终上线,需要经过复杂的集成、测试和部署流程,耗时数周甚至数月。

  • 手动操作易错: 部署过程大量依赖手动操作,容易出错,且难以复现。

  • 问题反馈滞后: 问题只有在部署到生产环境后才会被发现,此时修复成本极高。

  • 效率低下: 团队将大量时间花费在等待、排查部署问题等非增值活动上。

3、核心理念:CALMS 模型

CALMS 是一个广泛用于评估和实现 DevOps 文化的框架。

  • C - Culture(文化): 这是 DevOps 的基石。强调共享责任、打破部门墙、信任与协作。开发需要关心代码的运行状况,运维需要提前参与设计阶段。

  • A - Automation(自动化): 凡是重复性的工作,都应自动化。 这是实现 DevOps 速度与可靠性的关键技术手段。自动化测试、自动化部署、自动化监控等。

  • L - Lean(精益): 借鉴精益制造思想,关注价值流动,减少浪费(如等待时间、不必要的流程)。追求小批量、持续不断地交付价值。

  • M - Measurement(度量): 用数据和指标驱动决策和改进。常见的指标包括:部署频率、变更前置时间、变更失败率、平均恢复时间(MTTR)。没有度量,就无法改进。

  • S - Sharing(分享): 鼓励知识、工具和经验的透明共享。避免信息孤岛,建立共同的学习型组织。

4、DevOps 的生命周期

DevOps 实践通常贯穿整个应用生命周期,形成一个无限的循环(称为"无限循环"),象征着持续交付和持续改进。这个循环通常包含以下八个阶段:

  1. 计划: 定义功能和要求,跟踪进度。工具如 Jira, Confluence。实践: 敏捷开发。

  2. 编码: 编写代码和代码仓库管理。实践: 版本控制(如 Git)、分支策略(如 GitFlow)。

  3. 构建: 将代码编译成可执行文件。实践: 持续集成。开发人员频繁地将代码合并到主干,并自动触发构建和单元测试。工具如 Jenkins, GitLab CI。

  4. 测试: 确保代码质量。实践: 自动化测试(单元测试、集成测试、端到端测试)。工具如 Selenium, JUnit。

  5. 发布: 准备将应用部署到生产环境。实践: 持续交付。确保代码始终处于可部署状态。

  6. 部署: 将构建好的应用发布到生产环境。实践: 持续部署(自动部署)、基础设施即代码(IaC,用代码管理和配置服务器,如 Terraform, Ansible)、容器化(如 Docker, Kubernetes)。

  7. 运维: 维护应用程序在生产环境中的运行。实践: 监控和日志记录(如 Prometheus, ELK Stack),保证系统稳定性和性能。

  8. 监控: 收集应用和环境的运行数据。实践: 通过监控发现问题,并将反馈(如用户反馈、性能瓶颈)快速传递回"计划"阶段,开启新的循环。

5、常见的 DevOps 工具链

  • 版本控制: Git, GitHub, GitLab, Bitbucket

  • 持续集成/持续交付: Jenkins, GitLab CI/CD, CircleCI, Travis CI

    • CI阶段 :代码拉取 -> 编译(mvn compile) -> 运行单元测试(mvn test) -> 打包(mvn package) -> 制品上传(到Nexus/JFrog Artifactory)。

    • CD阶段:从制品库拉取包 -> 构建Docker镜像 -> 推送镜像到仓库 -> 部署到测试/生产环境(通常调用K8s或云平台API)。

  • 配置管理和IaC(基础设施即代码): Ansible, Terraform, Puppet, Chef

  • 容器化: Docker

  • 容器编排: Kubernetes

  • 监控与日志: Prometheus, Grafana, ELK Stack, Nagios

  • 协作与沟通: Slack, Microsoft Teams, Jira

相关推荐
XUE-52113142 小时前
BGP实验-路由反射器
linux·运维·网络
東雪蓮☆2 小时前
从安装到上手实战——Docker 基础命令全解析
运维·docker·容器
upgrador3 小时前
Linux内核与设备管理:USB存储驱动usb_storage/uas的安全卸载与复原
linux·运维·安全
tt5555555555554 小时前
Linux虚拟机固定IP超详细教程
linux·运维·tcp/ip
Gss7774 小时前
Docker 镜像知识总结
运维·docker·容器
梁正雄4 小时前
1、docker入门简介
运维·docker·容器
東雪蓮☆4 小时前
Docker 数据卷与存储机制(持久化与共享实战)
运维·docker·容器
牛马的人生4 小时前
GitLab入门教程:打开DevOps全流程的大门
运维·其他·gitlab·devops
拾光Ծ4 小时前
【Linux】入门指南:基础指令详解Part One
linux·运维·服务器·centos