3W2H 解说DevOps

简介: 3W2H 解说DevOps

3W2H 解说DevOps

一、什么是DevOps

DevOps是Development和Operations两个词组合,是一组过程、方法与系统的统称,用于促进开发(技术研发部)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。它是一种重视”软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运营工作必须紧密合作。

通过DevOps能构建一个自动化流程,使之更加快捷、频繁和可靠的完成一个IT从开发到运维的工作流。以IT自动化及其持续集成(CI)、持续部署(CD)为基础、来优化开发、测试、系统运维等所有环节。

二、WHY 为什么有DevOps

一个软件从立项到完成交付要经历,规划、设计、编码、测试、发布部署和运维等阶段。

一个简单的项目项目,一个程序员就能完成所有的阶段;随着软件产业的日益发展壮大,软件的规模也在逐渐变得庞大。软件的复杂度不断攀升,出现了精细化分工。出现了需求工程师、软件工程师、原型设计师、软件测试工程师及其软件运维工程师等。

随着项目复杂度增加,原先采用的瀑布模型已经不能满足客户的需求,一个团队并不能完成整个项目生命周期,需要开发团队、部署团队、运维团队协作完成;只能分功能、分时小步交付。就出现敏捷开发及CI/CD开发的方式。

工业软件复杂度提供,出现对交付质量更高的要求,为了提升质量和软件的可靠性出现DevOps,DevOps不时简单把开发工程师和测试工程师和运维工程师三者分开,而是通过流程更好的融合一起。

三、WHEN DevOps什么阶段更好的引入

DevOps的引入能对产品交付、测试、功能开发和维护起到意义深远的影响。在缺乏DevOps能力的组织中,开发与运营之间存在着信息“鸿沟”──比如运营人员要求更好的可靠性和安全性,开发人员则希望基础设施响应更快,而业务用户的需求则是更快地将更多的特性发布给最终用户使用。

DevOps经常被描述为“开发团队与运维团队之间更具协作性、更高效的关系”。由于团队间协作关系的改善,整个组织的效率因此得到提升,伴随频繁变化而来的生产环境的风险也能得到降低。

DevOps有诸多优点,无论中小的团队还是大型团队,应该越早引入对团队的开发越有利。甚至开发人员应该在自己的电脑上安装简化版的DevOps的工具,作者本人就在开发环境中用Windows Docker 完成开发环境的搭建,在Docker上搭建Msql、Nginx等,并完成负载均衡和高可以用实验。

四、HOW 如何使用DevOps

1.DevOps常用的工具

  • 项目管理工具(PM) :Jira、Wookteam、Zendao、Tapd、Bugzilla等
  • 代码管理工具 :Gitlab、GitHub、Gitee
  • 持续集成CI(Continuous Integration):Gitlab CI
  • 持续交付CD (Continuous Delivery):Gitlab CD
  • 镜像仓库: VMware Harbor,私服nexus
  • 容器:Docker
  • 编排:K8S
  • 服务治理:Consul
  • 系统监控工具:Prometheus、Zabbix、Observium Community
  • 自动发布工具:Jenkins

2.怎么选择工具
DevOps工具较多,选择适合当前企业是最恰当。下面以JAVA开发项目组为例:
1). 代码管理工具: GitHub
2). 构建工具:maven、Ant
3). 自动部署: Forever
4). 持续集成(CI):jenkins2.0及其Pipeline插件
5).容器: Docker
6). API测试工具 : JMeter、Postman 、SoapUI
**7). Web服务器:**Apache、Nginx、IIS

3.DevOps如何落地

1)、环境管理 一切皆代码。基础设施即代码。就是用一种描述性的语言,通过文本管理环境配置,并且自动化完成环境配置的方式。

2)、低风险的发布手段

  • 蓝绿部署
  • 灰度发布
  • 暗部署

五、HOW TO CHANGE(DevOps带来什么价值)

  • 对客户的价值:响应更快
    DevOps提升版本发布速度,发布周期用天衡量,对客户来说需求的响应速度更快。
  • 对产品的价值:提升质量
    每次减少发布范围,降低出错的概率,提升质量;出现问题,可以及时响应;通过回退,或者快速修复,提升产品质量。
  • 对团队的价值:激活组织,简化管理,提升效能
    通过合理的拆解,降低耦合度,通过职责明确提高团队积极性;减少吃大食堂,相互等待,上下文切换导致的效能降低。对团队同学 ,可以快速成长,承担责任也有很大帮助;打通开发、运维边界,减少上下文切换。另外通过合理的微服务拆分,单个任务的难度变低;对管理者可以释放低效的组织协同工作。

目录
相关文章
|
数据可视化 架构师 Devops
DevOps之用户故事
对用户需求达成共识的关键
1516 0
DevOps之用户故事
|
存储 数据采集 运维
阿里巴巴DevOps实践指南(二十四)| 智能运维
智能运维( AIOps )是依托于阿里巴巴 DevOps 经验沉淀而来的智能化运维平台,通过运维大数据的积累,以及算法团队多种算法的校对,我们将运维提升到新的高度,通过 AI 来帮我们查看数据、判断异常、决策运维操作,形成监、管、控一体化的运维平台。
阿里巴巴DevOps实践指南(二十四)| 智能运维
|
4月前
|
监控 Devops 机器人
必须了解的DevOps和SRE工具合集!
随着DevOps和SRE的不断发展,出现了新一代工具。本文将详细研究2024年最具潜力的工具,它们正在改善持续集成和交付、监控与可观察性、基础设施/应用程序平台方面的未来。
|
11月前
|
Devops 持续交付
《阿里云产品手册2022-2023 版》——DevOps 持续交付
《阿里云产品手册2022-2023 版》——DevOps 持续交付
124 0
|
敏捷开发 运维 监控
【DevOps】深入了解探究DevOps
探究DevOps 的起源、原则和实践
【DevOps】深入了解探究DevOps
|
敏捷开发 弹性计算 安全
谈谈云效 DevOps ——高效开发必备
前不久体验了自动化部署流水线 —— 2048 小游戏,谈谈我的感受
1814 2
谈谈云效 DevOps ——高效开发必备
|
SQL 运维 监控
DevOps到底是什么鬼?DevOps介绍及工具推荐。
什么是DevOps DevOps是Development和Operations的组合,是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运营工作必须紧密合作。 可以把DevOps看作开发(软件工程)、技术运营和质量保障(QA)三者的交集。
321 0
|
运维 监控 Cloud Native
阿里巴巴DevOps实践指南(二十六)| DevOps 能力提升模型
DevOps 能力反映的是技术研发响应业务变化的能力。随着组织规模的增加和业务复杂性增长,DevOps 能力会变得越来越重要。持续提升 DevOps 的能力成为技术研发的共同挑战。
阿里巴巴DevOps实践指南(二十六)| DevOps 能力提升模型
|
运维 监控 Kubernetes
阿里巴巴DevOps实践指南(二十五)| 阿里巴巴 DevOps 工具体系
随着阿里巴巴多元化业务 20 多年的高速发展,技术体系经历了 web 时代、移动化时代、数据智能时代、云计算时代等多个重大变革。在这些变革中,开发者面对的技术体系、工具体系、知识体系也在不断进化。研发工具在其中起到了技术规模化和降本提效的关键作用。
阿里巴巴DevOps实践指南(二十五)| 阿里巴巴 DevOps 工具体系
|
JSON Kubernetes Cloud Native
阿里巴巴DevOps实践指南(九)| 本地开发
开发一个需求,需要先进行代码的编写和个人验证,验证功能符合预期之后,再提交代码,并进入到集成环境,进行进一步的验证及验收。而这个编码和验证的过程占据了整个需求交付的大部分时间,因此提高这部分工作的效率就显得至关重要。
阿里巴巴DevOps实践指南(九)| 本地开发