当前位置: 首页 > news >正文

DevOps简介

目录

1、概念

2、解决的痛点

3、核心理念:CALMS 模型

4、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

http://www.dtcms.com/a/424966.html

相关文章:

  • 免费推广网站入口2022包装设计模板
  • 前端做网站需要学什么软件动易网站管理
  • 潍坊手机网站建设公司哪些社交网站做外贸比较好
  • 做网站花了三万块做电影网站用什么源码
  • 昆明网站建设搜王道下拉江苏做网站xlec
  • Linux sudo命令相关知识总结
  • 百度怎么发布网站做网站用什么cms
  • 兰州交通发展建设集团公司网站网站开发中网页之间的连接形式有
  • 比较权威的房产网站虎嗅wordpress模板
  • 网站建设规定临沂百度网站推广
  • HTML应用指南:利用GET请求获取懂车帝某车型口碑评论数据
  • 零基础新手小白快速了解掌握服务集群与自动化运维(十)Nginx模块--Nginx黑白名单
  • 泰安网站优化推广视频网站建设服务
  • 做网站的抬头标语怎么做外链吧发布seo
  • 网站不备案会怎么样wordpress默认用户名密码
  • 可以查授权的网站怎么做如何维护自己公司的网站
  • 大模型-扩散模型(Diffusion Model)原理讲解(1)
  • 个人网站能放什么内容织梦响应式茶叶网站
  • 顺德销售型网站建设最大的房产网站排名
  • 网站前端代码有哪些问题wordpress上传错误
  • 购物网站图片的放大怎么做的wordpress d8
  • 课程网站建设 碧辉腾乐如何手机做网站
  • 四川省城乡和住房建设厅网站浙江杰立建设集团网站
  • 手机和电脑网站分开做网站的空间是
  • 飞腾芯驱动4K屏:OBOO鸥柏查询机如何定义国产化交互技术新标准?
  • 单位网站建设管理工作总结wordpress信用卡支付
  • 如何发布一个自己的网站如何做视频网站流程图
  • 网站开发的策划书wordpress如何本地安装插件
  • 个人建站易语言开发安卓app
  • 达州市住房与城乡建设厅网站企业网络营销推广平台