首页>>互联网>>DevOps->devops平台注重什么(2023年最新整理)

devops平台注重什么(2023年最新整理)

时间:2023-12-01 本站 点击:0

导读:本篇文章首席CTO笔记来给大家介绍有关devops平台注重什么的相关内容,希望对大家有所帮助,一起来看看吧。

关于DevOps 的那些事

在2008年多伦多举办的敏捷大会(Velocity Conf 2008 )上,Patrick DeBois 和AndrewClay Shafer 先生首次提议讨论“敏捷基础架构”这个话题。在第二年的敏捷大会上有一个具有里程碑的意义技术分享,来自Flickr公司《每天部署10次》的分享,它激发了随后Patrick DeBios在同年十月,在比利时的根特市举办的首届DevOpsDays活动,这个活动是两天的日程,为了大家方便在twitter上的传播,人们把DevOpsDays这个词简写为 “#DevOps” 。 此后,“DevOps”一词问世了,这个词所包含的理念和实践一时在越来越广大的人群中产生了共鸣,随后成为全球IT界在各种大会和论坛里热议和讨论的焦点话题,很多大型IT论坛也都开设出了DevOps专题讨论。这就是DevOps这个词的由来。

DevOpsDays活动随后在Patrick DeBios等相关核心发起人的推动下,在全球范围内蓬勃发展了起来。2010年在美国山景城(Mountain View) 举办的DevOpsDays 活动中,Damon Edwards先生使用“CAMS”这个缩写,高度概括和诠释了DevOps,即文化(Culture)、自动化(Automation)、度量(Measurement or Metrics)和分享(Sharing)。随后Jez Humble先生将“L”精益 (Lean) 原则也加入其中,最终变成了CALMS。

♣ Culture(文化)- 是指拥抱变革,促进协作和沟通

♣ Automation(自动化)- 是指将人为干预的环节从价值链中消除

♣ Lean(精益)- 是指通过使用精益原则促使高频率循环周期

♣ Metrics(指标)- 是指衡量每一个环节,并通过数据来改进循环周期

♣ Sharing(分享)- 是指与他人开放分享成功与失败的经验,并在错误中不断学习改进

“CALMS”完全吻合Patrick DeBois先生所一向倡导的“DevOps is a human problem” (DevOps 是关于人的问题) 的理念 。

从DevOps概念的产生,到如今它在全球范围内的蔓延和认同,已经经历了9个年头的时间。它的火爆推广也伴随着IT行业的迅速变迁和发展,现在已经到了移动互联网时代的后半场,国内的信息化建设已经完成了很多年;如今各行各业的企业也都亟待完成全方位的数字化转型。IT信息技术的先进程度标志着一个企业的核心能力,任何一个成功的企业,敏捷高效的软件开发创新实力和IT管理综合能力不只是门面而已,而是实实在在的市场竞争能力。DevOps倡导打敏捷、持续交付和ITIL三种实践的组合拳,同时应用精益生产理念为基础的管理思想,这正在逐渐地被广泛的接受和认可。

在过去的几年中,国内的各种IT大会也蓬勃发展,其中DevOps相关的专题和分会场也颇受人们的关注。各种云计算、运维等IT技术的社交媒体也都非常重视DevOps这个话题的分享。一个专属于DevOps社群的、国际性的、有影响力的DevOps大会正呼之欲出。在这样的时代背景下DevOpsDays大会北京站在2017年的3月18日来到中国,在同年的8月18日上海,还要举办DevOpsDays Shanghai站的大会。

下面列举一些DevOpsDays大会的相关数据,数据来源于DevOpsDays.org 网站。从2009年到2016年,已经在全球的61个城市/国家成功地举办了117场。

下图是在过去九年中DevOpsDays大会在各个城市/国家的分布和举办次数。

今年也就是2017年预计举办30场,其中已经有18场确定了举办城市和日期;还有12个城市的召开日期待定;这不包括年内还可能会提出申办的城市。以上数据的统计时间在2017年三月。

随着国内BAT等互联网巨头的崛起,互联网公司的开发运维经验也越来越多的在国内的各种技术大会上传播。从最近这两年(2016年和2017年)的技术活动日程中可以看出,国内互联网从业人员也不约而同的用DevOps来定位和分享自己的优势和经验。他们是传播和分享运维侧DevOps实践的先头部队。

出了技术论坛的分享之外,很多线上线下的大会、论坛和讨论组也都越来越热议DevOps这一专题。国内其它相关流派的人群,例如敏捷和精益等,也对DevOps的蓬勃发展表示比较惊讶,DevOps与老牌的敏捷和精益等阵营也产生过一些争论。但这一切的发生也都增加了人们对于DevOps的更深入的兴趣。

在培训认证这方面,Exin DevOps Master是一个国际认证的培训;其它公司和组织也正在举办关于DevOps工具链的培训,这些培训则注重于技术实操,关注在构建端到端的流水线的搭建方面。从DevOps的职位招聘方面,可以看到DevOps工程师相关的职位越来越多了,在职位需求中DevOps这个技能成了加分项,DevOps相关工具的技能也或将成为简历的亮点。在IT行业内不管是开发还是运维团队的人,都开始了学习和接受的过程。

据我观察DevOps方面的厂商在最近3年呈现爆炸式的发展。我把他们分为三类:

目前国内大部分企业慢慢地开始关注了DevOps,大型传统企业也开始逐渐地从各个角度做试点和尝试。试点的角度和方向各不相同,有的从底层基础架构的容器化开始,有的从交付部署流水线的自动化开始;总的来说还处于初级的尝试阶段,还没有大规模成体系的推广。

综上所述,目前国内DevOps发展的阶段还属于起步阶段。就像是ITIL/ITSM在2003年左右的状态。由于DevOps是去中心化的,所以没有唯一、权威的上游厂商的存在,各种理论实践的争执和PK都将终止与解决问题和提高效率的话题上,因此它具有百花齐放百家争鸣的发展条件。个人认为DevOps的实施和落地也不会完全依赖于传统的大型咨询厂商的咨询工作,由于它应该是在企业的内部,在内驱的作用下,自生长出来的;它必须是服务于企业的业务价值流的优化,加速业务价值产出的;而与之相关的工作和责任的担当,外部力量是很难以等量替换和承担的。

在谈这个话题前先看一下DevOps相关工具集的全貌,如下图所示:

最上面的箭头流程图表示了一个业务服务的全生命周期:开发协作、软件构建、质量测试、交付部署和投产运维。前三个阶段偏传统开发组织的工作内容,后两个阶段基本可以和运维组织的工作对应上。在每个阶段下可以看成是一个大分类,这些分类中还包含若干个小分类。这些工具可以粗放的划分为商业软件和开源软件两类;也可以分为SaaS服务类和企业内部部署型。大部分开源工具都有活跃的用户社区和群众基础,这给企业入手这些工具带来了很大的便利。在需要商业支持的场景里还可以选择使用这些开源软件的企业版。

Docker容器技术在最近三年中异军突起,持续交付的技术门槛因此被降到最低,软件生产供应链的格局和效率被彻底提升;基于Docker的微服务架构实践的热度和成熟度也与日俱增。因此,国内的传统企业纷纷试水DevOps和容器技术,在最近两年的各种技术大会中,我们可以看到国内各个行业出现了在不同维度上的DevOps先行者。他们分享的主题大多集中在自动化运维、容器化和PaaS平台的等项目经验。

从国内众多DevOps实践中,我们能看到下面三个技术尤其重要和火热:

以上三种技术相辅相成,有着比较深刻的关联。首先微服务和持续部署各自解决了特别多的传统IT的问题,这些问题都是长期以来制约企业业务发展的难题。容器技术由于它的快速、轻量、微服务化的天然特性,很好的从不同侧面支持了持续交付和微服务架构。容器可以为持续交付提供弹性和高速的系统资源,环境管理和利用率提高了很多;容器的不可变性的特点也更好地支持了微服务架构。

我把DevOps的按照不同的技术特征做了从到1.0 到2.0的时代划分,并尽量通过以下维度比较与传统方式的差异。

我比较认可和接受的企业实践DevOps参考框架如下,其中包含了所需的最佳实践,如下图所示。

(上图来源于:Exin DevOps白皮书)

下面简要描述一下这四大支柱型最佳实践:

由此可见DevOps在企业,特别是大规模传统企业的落地和推广还是比较复杂的。虽然相关的最佳实践都是已经存在了很多年的;但是,通过DevOps的价值观重构企业从研发到交付到运维的价值流谈何容易。基于我的IT从业经验,我似乎感觉到DevOps不能单独依靠自顶向下的推广,当然高层领导的支持依然是重要的和必备的支持条件之一。 可能还需要中层的带动和底层的创新;借鉴生产制造业已经久经考验的精益制造实践也是势在必行。总之DevOps运动会在近几年给IT行业带来较大影响。

软件工程devops,新手,如何搭建devops平台并用平台工作?如何掌握平台的工具?求学习网站

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

DevOps的出现,源于在传统模式下的开发和运维在组织上的分离而造成的管理混乱,开发要不断的迭代新版本上线新功能,但是运维关注的是稳定,这两种需求实际上是矛盾的。但DevOps旨在打破这道混乱之墙,让开发、运维、测试协同作战,提高研发效率,实现高效交付,解决传统模式下的运维之痛。

事实证明,DevOps确实能够较好地解决开发和运维之间的混乱问题,提升研发效率,实现高效交付。在近期中国信通院(CAICT)发布的《中国DevOps现状调查报告(2019年)》(以下简称报告)中,超八成企业表示,通过采用DevOps中的核心工程实践“持续交付”获得了研发效率的显著提升。同时调查发现,具备清晰、明确变更管理系统的组织,平均变更前置时间(即从代码被成功提交到成功运行在生产环境平均需要的时间),即通常意义上的交付时间也相对较短。

打通用户、PMO、需求、设计、开发(Dev)、测试、运维(Ops)等各上下游部门或不同角色

打通业务、架构、代码、测试、部署、监控、安全、性能等各领域工具链。

DevOps的引入能对产品交付、测试、功能开发和维护(包括──曾经罕见但如今已屡见不鲜的──“热补丁”)起到意义深远的影响。在缺乏DevOps能力的组织中,开发与运营之间存在着信息“鸿沟”──例如运营人员要求更好的可靠性和安全性,开发人员则希望基础设施响应更快,而业务用户的需求则是更快地将更多的特性发布给最终用户使用。这种信息鸿沟就是最常出问题的地方。

DevOps对应用程序发布的影响

随着软件发布迭代的频率越来越高,传统的「瀑布型」(开发—测试—发布)模式已经不能满足快速交付的需求。在很多企业中,应用程序发布是一项涉及多个团队、压力很大、风险很高的活动。然而在具备DevOps能力的组织中,应用程序发布的风险很低,原因如下 :

(1)减少变更范围

与传统的瀑布式开发模型相比,采用敏捷或迭代式开发意味着更频繁的发布、每次发布包含的变化更少。由于部署经常进行,因此每次部署不会对生产系统造成巨大影响,应用程序会以平滑的速率逐渐生长。

(2)加强发布协调

靠强有力的发布协调人来弥合开发与运营之间的技能鸿沟和沟通鸿沟;采用电子数据表、电话会议、即时消息、企业门户(wiki、sharepoint)等协作工具来确保所有相关人员理解变更的内容并全力合作。

(3)自动化

强大的部署自动化手段确保部署任务的可重复性、减少部署出错的可能性。

与传统开发方法那种大规模的、不频繁的发布(通常以“季度”或“年”为单位)相比,敏捷方法大大提升了发布频率(通常以“天”或“周”为单位)。

1、更小、更频繁的变更──意味着更少的风险

2、让开发人员更多地控制生产环境

3、更多地以应用程序为中心来理解基础设施

4、定义简洁明了的流程

5、尽可能地自动化

6、促成开发与运营的协作

DevOps的产生和兴起存在历史的必然性:

1、在全球化经济蓬勃、互联网移动互联网等新技术催生出新的商业形态,而新的商业形态反过来又强化和促进了企业数字化转型的迫切性和IT在转型过程中扮演角色的重要性。

2、新技术和新的研发工程实践的成熟度提供了基础。例如以云计算(软件定义计算、存储、网络)为代表的灵活、弹性的基础设施供给能力;以微服务架构为代表的架构实践,为软件的持续交付降低了风险,提升了灵活性和交付效率;以Docker为代表的新的软件交付模式,简化了交付难度,且非常适合承载微服务架构下的软件交付;以敏捷开发为代表的研发工程实践已经达到了一定的成熟度,小批量、限制在制品等实践方式,使得流式持续交付成为可能。

3、传统的研发模式和运维管理体系不适应新的商业形态下的新变化、新要求(快速响应、快速实现、高质量交付)。

4、随着中国劳动力成本的持续攀升,以往依靠大量人员投入的人员密集型开发和维护体系已经不堪重负;同时多年积累下的技术债务已经难以适应和满足企业数字化转型升级的要求。

什么是DevOps

什么是DevOps?

DevOps 是一套实践、工具和文化理念,可以实现软件开发团队和 IT 团队之间的流程自动化和集成。它强调团队赋能、跨团队沟通和协作以及技术自动化。

DevOps 运动始于 2007 年左右,当时软件开发和 IT 运营社区开始担忧传统的软件开发模式。在此模式下,编写代码的开发人员与部署和支持代码的运营人员会独立工作。DevOps 这一术语由“开发”和“运营”两个词构成,它反映了将这些领域整合为一个持续流程的过程。

DevOps 如何运作?

DevOps 团队包括开发人员和 IT 运营人员,他们在整个产品生命周期中进行协作,以提高软件部署的速度和质量。这是一种全新的工作方式,也是一种文化转型,对团队及其工作的组织具有重大影响。

在 DevOps 模式下,开发和运营团队不再是“孤立”的。有时,这两个团队会合并为一个团队,合并后工程师会参与整个应用生命周期中的工作(从开发和测试到部署和运营),并具备多学科的技能。

DevOps 团队使用工具实现流程自动化,并加速流程,这有助于提高可靠性。DevOps 工具链可帮助团队处理重要的 DevOps 基础事项,包括持续集成、持续交付、自动化和协作。

DevOps 的价值有时也会应用于开发团队以外的团队。当安全团队采用 DevOps 方法时,安全性则成为开发过程中一个活跃的组成部分。这就是所谓的 DevSecOps。

DevOps 生命周期

由于 DevOps 的连续性,从业人员使用无限循环来展示 DevOps 生命周期各个阶段之间的相互关系。尽管看似是按顺序进行的,但此循环实际表示需要在整个生命周期进行持续协作和迭代改进。

DevOps 生命周期由六个阶段组成,它们分别代表开发(循环的左半部分)和运营(循环的右半部分)所需的流程、功能和工具。团队会在每个阶段进行协作和沟通,以保持一致性、速度和质量。

规划

DevOps 团队应采用敏捷开发实践来提高速度和质量。敏捷开发是一种用于项目管理和软件开发的迭代方法,可帮助团队将工作分解成更小的部分,从而提供增量价值。

构建

Git 是一个免费的开源版本控制系统。Git 可为分支、合并和重写存储库历史记录提供出色的支持,而这已为开发构建流程带来了众多极具创新且功能强大的工作流和工具。

持续集成和交付

CI/CD 可让团队频繁且可预测地发布高品质产品,其范围涵盖从源代码存储库到使用自动化工作流的生产环节。团队可以频繁地合并代码变更、部署功能标记以及集成端到端测试。

监控和警报

快速识别并解决影响产品正常运行时间、速度和功能的事务。自动通知您团队有关变更、高风险操作或故障的信息,以便保持服务的运行。

运维

管理面向客户的端到端 IT 服务交付。这包括设计、实施、配置、部署和维护支持组织服务的所有 IT 基础架构过程中涉及的实践。

持续反馈

DevOps 团队应对每个版本进行评估,并生成报告以改进未来版本。通过收集持续反馈,团队可以改进其流程,并采纳客户反馈以改进下一个版本。

DevOps 工具

DevOps 工具可应对 DevOps 生命周期的关键阶段。它们通过帮助改进协作、减少上下文切换、引入自动化以及实现可观察性和监控功能来支持 DevOps 实践。

DevOps 工具链通常遵循两种方法:一体化或开放式工具链。一体化工具链提供完整的解决方案,通常不会与其他第三方工具集成。开放式工具链则允许使用不同工具进行自定义。这两种方法各有优缺点。

DevOps 有哪些优势?

有“2020 年 DevOps 趋势调查”表明,99% 的调查对象表示 DevOps 对他们的组织产生了积极影响。DevOps 的优势包括更快且更轻松的发布、团队效率、更高的安全性、更高品质的产品,以及更高的团队和客户满意度。

速度

更频繁地实践 DevOps 发布可交付成果的团队具有更高的品质和稳定性。事实上,DORA 2019 年 DevOps 状况报告发现,精英团队的部署频率和速度分别比表现不佳的团队高出 208 倍和 106 倍。持续交付使得团队可以使用自动化工具来构建、测试和交付软件。

改进协作

DevOps 的基础是开发人员和运营团队之间的协作文化,他们会分担责任,协调工作。此举可以提高团队的效率,并省去工作交接和编写专为其运行环境而设计的代码的时间。

快速部署

通过提高发布的频率和速度,DevOps 团队可以快速地改进产品。快速发布新功能和修复缺陷有助于获得竞争优势。

质量和可靠性

持续集成和持续交付等实践可确保变更正常运行且安全无误,从而提高软件产品的质量。监控则有助于团队实时了解性能。

安全性

通过将安全性集成到持续集成、持续交付和持续部署管道中,DevSecOps 成为开发过程中一个活跃的组成部分。通过将主动安全审计和安全测试集成到敏捷开发和 DevOps 工作流中,可将安全性植入产品内。

采用 DevOps 会面临哪些挑战?

原有的习惯很难改变。深陷孤立工作方式的团队可能会难以应对,甚至抗拒彻底改变团队结构以采用 DevOps 实践。某些团队可能会错误地认为有了新工具就足以采用 DevOps。但是,DevOps 是人员、工具和文化的结合。DevOps 团队的每一个人都必须了解整个价值流,从构思、开发到最终用户体验。它要求打破孤岛,以便在整个产品生命周期中进行协作。

Devops 不是任何一个个人的工作,而是每个人的工作。

从传统的基础架构转向使用基础架构即代码 (IaC) 和微服务可以加快开发和创新速度,但增加的运营工作量可能极具挑战性。最好为自动化、配置管理和持续交付实践奠定坚实的基础,以帮助减负。

过度依赖工具会使团队偏离 DevOps 的必要基础:团队和组织结构。一旦建立了结构,就应该建立流程和团队,然后确定工具。

如何采用 DevOps?

首先,采用 DevOps 需要致力于评估且可能更改或删除组织当前所用的所有团队、工具或流程。这表示需要构建必要的基础架构,以便团队能够自主构建、部署和管理其产品,而不必过分依赖于外部团队。

DevOps 文化

DevOps 文化是指团队采用新工作方式(包括加强合作和沟通)的环境。这是人员、流程和工具的协调一致,以实现更加统一的客户导向服务。多学科团队负责产品的整个生命周期。

持续学习

在 DevOps 方面表现良好的组织鼓励进行实验和一定程度的冒险。在这些组织中,跳出固有思维模式是常态,而失败则被理解为学习和进步的自然组成部分。

敏捷

敏捷开发方法在软件行业中非常受欢迎,因为它们赋予了团队内在的灵活性、出色的有序性以及响应变化的能力。DevOps 是一种文化转型,可促进软件构建和维护人员之间的协作。搭配使用敏捷开发和 DevOps 时,可提高效率和可靠性。

DevOps 实践

持续集成

持续集成是将代码更改自动集成到软件项目中的实践。它允许开发人员频繁地将代码更改合并到执行构建和测试的中央存储库中。这有助于 DevOps 团队更快速地修复缺陷、提高软件质量以及缩短验证和发布新软件更新所需的时间。

持续交付

持续交付通过自动将代码更改部署到测试/生产环境中来扩展持续集成。它会沿着持续交付管道推进。而在此管道内,自动化构建、测试和部署会被编排为一个发布工作流。

情境意识

对于组织中的每个成员来说,能够访问他们需要的数据以尽可能高效和快速地完成他们的工作可谓至关重要。团队成员需收到部署管道中的故障警报(无论是系统性故障还是由于测试失败引起的故障),并及时收到在生产中所运行应用的运行状况和性能的最新信息。指标、日志、跟踪、监控和警报都是团队了解其工作进展所需的重要反馈来源。

自动化

自动化是其中一个最重要的 DevOps 实践,因为它能让团队更快速地完成高品质软件的开发和部署流程。利用自动化,将代码变更推送到源代码存储库的一个简单操作便可触发构建、测试和部署流程,从而大大减少这些步骤所花的时间。

基础架构即代码

无论您的组织是拥有本地数据中心,还是完全托管在云中,能快速、一致地调配、配置和管理基础架构是成功采用 DevOps 的关键。基础架构即代码 (IaC) 不仅仅是编写基础架构配置脚本,它还将基础架构定义视为实际代码:使用源控制、代码审查、测试等。

微服务

微服务是一种架构技术。在此技术中,应用被构建为一系列可以相互独立部署和运行的小型服务。每个服务都有其自己的流程,并通过接口与其他服务通信。这种关注点分离和剥离的独立功能支持 DevOps 实践,例如:持续交付和持续集成。

监控

DevOps 团队监控从规划、开发、集成和测试、部署到运营的整个开发生命周期。如此一来,团队就能迅速、自动地对客户体验中的任何降级做出响应。更重要的是,它允许团队“左移”至开发的早期阶段,并最大程度地减少具有破坏性的生产变更。

开始使用 DevOps

开始使用 DevOps 的最简方法就是识别小型价值流(例如:小型支持应用或服务),然后开始尝试一些 DevOps 实践。与软件开发一样,与一小群利益相关者一起转换单个数据流比尝试在组织内一次性过渡至全新的工作方式要容易得多。

devops的优势有哪些?

DevOps 有哪些优势?

有“2020 年 DevOps 趋势调查”表明,99% 的调查对象表示 DevOps 对他们的组织产生了积极影响。DevOps 的优势包括更快且更轻松的发布、团队效率、更高的安全性、更高品质的产品,以及更高的团队和客户满意度。

速度

更频繁地实践 DevOps 发布可交付成果的团队具有更高的品质和稳定性。事实上,DORA 2019 年 DevOps 状况报告发现,精英团队的部署频率和速度分别比表现不佳的团队高出 208 倍和 106 倍。持续交付使得团队可以使用自动化工具来构建、测试和交付软件。

改进协作

DevOps 的基础是开发人员和运营团队之间的协作文化,他们会分担责任,协调工作。此举可以提高团队的效率,并省去工作交接和编写专为其运行环境而设计的代码的时间。

快速部署

通过提高发布的频率和速度,DevOps 团队可以快速地改进产品。快速发布新功能和修复缺陷有助于获得竞争优势。

质量和可靠性

持续集成和持续交付等实践可确保变更正常运行且安全无误,从而提高软件产品的质量。监控则有助于团队实时了解性能。

安全性

通过将安全性集成到持续集成、持续交付和持续部署管道中,DevSecOps 成为开发过程中一个活跃的组成部分。通过将主动安全审计和安全测试集成到敏捷开发和 DevOps 工作流中,可将安全性植入产品内。

Devops 不是任何一个个人的工作,而是每个人的工作。

从传统的基础架构转向使用基础架构即代码 (IaC) 和微服务可以加快开发和创新速度,但增加的运营工作量可能极具挑战性。最好为自动化、配置管理和持续交付实践奠定坚实的基础,以帮助减负。

过度依赖工具会使团队偏离 DevOps 的必要基础:团队和组织结构。一旦建立了结构,就应该建立流程和团队,然后确定工具。

Devops概述

目前在国外,互联网巨头如Google、Facebook、Amazon、LinkedIn、Netflix、Airbnb,传统软件公司如Adobe、IBM、Microsoft、SAP等,亦或是网络业务非核心企业如苹果、沃尔玛、索尼影视娱乐、星巴克等都在采用DevOps或提供相关支持产品。那么DevOps究竟是怎样一回事?

DevOps一次词的来自于Development和Operations的组合,突出重视软件开发人员和运维人员的沟通合作,通过自动化流程来使得软件构建、测试、发布更加快捷、频繁和可靠。

DevOps概念早先升温于2009年的欧洲,因传统模式的运维之痛而生。

DevOps是为了填补开发端和运维端之间的信息鸿沟,改善团队之间的协作关系。不过需要澄清的一点是,从开发到运维,中间还有测试环节。DevOps其实包含了三个部分:开发、测试和运维。

换句话说,DevOps希望做到的是软件产品交付过程中IT工具链的打通,使得各个团队减少时间损耗,更加高效地协同工作。专家们总结出了下面这个DevOps能力图,良好的闭环可以大大增加整体的产出。

由上所述,相信大家对DevOps有了一定的了解。但是除了触及工具链之外,作为文化和技术的方法论,DevOps还需要公司在组织文化上的变革。回顾软件行业的研发模式,可以发现大致有三个阶段:瀑布式开发、敏捷开发、DevOps。

DevOps早在九年前就有人提出来,但是,为什么这两年才开始受到越来越多的企业重视和时间呢?因为DevOps的发展是独木不成林的,现在有越来越多的技术支撑。微服务架构理念、容器技术使得DevOps的实施变得更加容易,计算能力提升和云环境的发展使得快速开发的产品可以立刻获得更广泛的使用。

当今世界改变的速度已与过去不同,而每当经历一个颠覆性的技术革命时,都给这个世界带来了深刻的变化,大数据、云计算、人工智能、VR/AR和区块链等新兴技术推动着世界不断变化,如何应对这样一个VUCA时代,让我们能够在环境变化的时候快速响应呢?

在些我引用了圣贤王阳明的一句名言,他提倡“知行合一”,通俗的讲就是做事情要理论与实践相结合。我们在实现DevOps落地时也一定要遵循“理论与实践相结合”的方式进行,理论就是我们做事的指导思想,而实践就是具体做事的方法,接下来我就从我在公司中是如何按照理论与实践相结合来推动DevOps落实地。

首先我们还是要回到什么是DevOps,如果大家忘记了可以回到之前再温故一下,包括我总结的DevOps公式。

其实DevOps核心思想就是:“快速交付价值,灵活响应变化”。其基本原则如下:

DevOps的一个巨大好处就是可以高效交付,这也正好是它的初衷。Puppet和DevOps Research and Assessment (DORA) 主办了2016年DevOps调查报告中,根据全球4600位各IT公司的技术工作者的提交数据统计,得出高效公司可以完成平均每年1460次部署。与低效组织相比,高效组织的部署频繁200倍,产品投入使用速度快2555倍,服务恢复速度快24倍。在工作内容的时间分配上,低效者要多花22%的时间用在为规划好或者重复工作上,而高效者却可以多花29%的时间用在新的工作上。所以这里的高效不仅仅指公司产出的效率提高,还指员工的工作质量得到提升。

DevOps另外一个好处就是会改善公司组织文化、提高员工的参与感。员工们变得更高效,也更有满足和成就感;调查显示高效员工的雇员净推荐值(eNPS:employee Net Promoter Score)更高,即对公司更加认同。

快速的部署其实可以帮助更快地发现问题,产品被更快地交付到用户手中,团队可以更快地得到用户的反馈,从而进行更快地相应。而且,DevOps小步快跑的形式带来的变化是比较小的,出现问题的偏差每次都不会太大,修复起来也会相对容易一些。

因此,认为速度就意味着危险是一种偏见。此外,滞后软件服务的发布也并不一定会完全地避免问题,在竞争日益激烈的IT行业,这反而可能错失了软件的发布时机。

技术的发展使得DevOps有了更多的配合。早期时,大家虽然意识到了这个问题的,但是苦于当时没有完善丰富的技术工具,是一种“理想很丰满,但是现实很骨感”的情况。DevOps的实现可以基于新兴的容器技术;也可以在自动化运维工具Puppet、SaltStack, Ansible之后的延伸;还可以构建在传统的Cloud Foundry、OpenShift等PaaS厂商之上。

IT行业已经越来越于市场的经济发展紧密挂钩,专家们认为IT将会有支持中心变成利润驱动中心。事实上,这个变化已经开始了,这不仅体现在Google、苹果这些大企业中,而且也发生在传统行业中,比如出租车业务中的Uber、酒店连锁行业中的Airbnb、图书经销商Amazon等等。能否让公司的IT配套方案及时跟上市场需求的步伐,在今天显得至关重要。

DevOps 2016年度报告给出了一个运维成本的计算公式:

而对于工程师而言,他们也是DevOps的受益者。微软资深工程师Scott Hanselman说过“对于开发者而言,最有力的工具就是自动化工具”(The most powerful tool we have as developers is automation)。工具链的打通使得开发者们在交付软件时可以完成生产环境的构建、测试和运行;正如Amazon的VP兼CTO Werner Vogels那句让人印象深刻的话:“谁开发谁运行”。(You build it, you run it)

上文提到了工具链的打通,那么工具自然就需要做好准备。现将工具类型及对应的不完全列举整理如下:

在工具的选择上,需要结合公司业务需求和技术团队情况而定。(注:更多关于工具的详细介绍可以参见此文: 51 Best DevOps Tools for #DevOps Engineers )

DevOps成功与否,公司组织是否利于协作是关键。开发人员和运维人员可以良好沟通互相学习,从而拥有高生产力。并且协作也存在在业务人员与开发人员之间。出席了ITV公司在2012年就开始落地DevOps,其通用平台主管Clark在2016年伦敦企业级DevOps峰会接受InfoQ了采访,在谈及成功时表示,业务人员非常清楚他们希望在最小化可行产品中实现什么,工程师们就按需交付,不做多余工作。这样,工程师们使用通用的平台(即打通的工具链)得到更好的一致性和更高的质量。此外,DevOps对工程师个人的要求也提高了,很多专家也认为招募到优秀的人才也是一个挑战。

DevOps正在增长,尤其是在大企业中:调查发现,DevOps的接受度有了显著提高。74%的受访者已经接受了DevOps,而去年这一比例为66%。目前,在81%的大企业开始接受DevOps,中小企业的接受度仅为70%。

那么具体而言都有些公司在采用DevOps呢?Adobe、Amazon、Apple、Airbnb、Ebay、Etsy、Facebook、LinkedIn、Netflix、NASA、Starbucks、Target(泛欧实时全额自动清算系统)、Walmart、Sony等等。

首先,大企业正在自下而上接受DevOps,其中业务单位或部门(31%)以及项目和团队(29%)已经实施DevOps。不过,只有21%的大企业在整个公司范围内采用了DevOps。

其次,在工具层面上,DevOps工具的用量大幅激增。Chef和Puppet依然是最常用的DevOps工具,使用率均为32%。Docker是年增长率最快的工具,用量增长一倍以上。Ansible的用量也有显著增加,使用率从10%翻倍至20%。

并且调查还发现不到半数(43%)的公司在使用诸如Chef、Puppet、Ansible或Salt等配置工具;然而使用配置工具的公司更有可能同时使用多个工具。25%的受访者使用两种或更多配置工具,只使用一种工具的比例为18%。其中Chef和Puppet是最常用的组合:使用Chef的组织中有67%同时也使用Puppet,类似的,使用Puppet的组织中也有67%同时使用了Chef。

DevOps如何提升企业IT效率的

DevOps最基本的一个功能,或者说优势,就是它可以将产品的开发团队跟运营团队合并成一个具有凝聚力的“个体”,而这样就可以很大程度地提升工作效率。

devops加快交付速度

devops填补了之前的空白部分,devops通过建立一个完整的生命活动周期,devops关注如何更好地获取IT运维团队的反馈。devops将敏捷原则应用于管理领域,devops使得开发人员和管理员可以进行毫无障碍的沟通。

devops还有很多不足,devops导致代码交接容易出现延迟。devops同样的情况也会出现在重大bug的修复过程中。

devops运行时软件优化

devops可以在两个方面提升知识水平和程序质量。首先,devops对于许多较新的、面向对象的操作系统,比如Linux,devops很有可能不关机而一直保持运行状态。因此,devops容易出现问题,比如错误的垃圾回收机制以及不能正确重新组织关系型数据存储。

devops借鉴了大型机管理员积累的经验来重新认识软件平台类型,以及可能引起这些类型问题的开发和/或测试流程。devops开发团队可以使用嵌入式模式保护代码来部署代码库和测试环境。

devops的目标是在测试环境中,或者devops以代码的形式嵌入到应用程序自身当中以获取大型机复杂性的现有知识,devops不希望大型机管理员发现问题所在。devops并不仅可以使得开发人员和测试人员的工作更加轻松,同样可以简化管理员的工作。

devops提高大型机管理员工作效率

devops可以改善这种大型机管理模式,devops提高大型机管理员的工作效率。首先,devops通过实现标准配置和Linux相关任务的自动化,devops可以保证管理员拥有更多时间来“救火”。devops通过确保解决方案是长期有效和高质量的来减少对于处理紧急情况的处理需求。此外,devops让管理员也参与敏捷开发流程,和开发团队进行沟通,当开发团队拥有了一个能够快速定位问题并且修复运行时问题的测试工具或者代码库之后,devops就可以减少管理员修复bug以及与开发部门协调所花费的时间。

您可以关注servicehot这家公司,他们比较熟悉这块。

结语:以上就是首席CTO笔记为大家整理的关于devops平台注重什么的全部内容了,感谢您花时间阅读本站内容,希望对您有所帮助,更多关于devops平台注重什么的相关内容别忘了在本站进行查找喔。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/DevOps/7694.html