当前位置:首页 > 天道酬勤 > 正文内容

devops部署(devops教程)

张世龙2021年12月21日 21:44天道酬勤430

2

DevOps 到底是什么?

年,我们访问了分布在各个行业的近100个IT团队。 出乎意料的是,大多数IT团队寻求改革的不是部门内部的自我创新,而是业务部门的服务压力。 正如当时的企业在寻找ERP一样,今天的企业将目光投向了DevOps。 但是,DevOps并不像ERP那样可以直接导入,而是主要互联网巨头总结出的研发管理理念,是谷歌和Netflix等大型互联网公司实现快速迭代的秘诀。

DevOps (英语开发与操作的组合)用于促进发展(APP /软件工程)、技术运营、质量保证)部门之间的通信、协作和集成这是因为软件行业越来越清楚地认识到,为了按时提供软件产品和服务,开发和运用必须紧密合作。

例如,对于运维来说,稳定压倒一切,新的Feature越少越好。 对研究开发来说,想开发更多的功能。 这个矛盾会导致大量的资源和时间浪费。 如果马头朝向的方向不一致,就像两头马和一辆车一样,一定无法全速前进。

DevOps的理念是希望打破这一壁垒,使研发(Development )和运输)一体化,使团队能够从业务需求向同一目标前进。

从字面上看,DevOps的意思是“开发运维一体化”,即通过工具帮助开发运维的一部分工作,从而降低成本。 但深入了解DevOps,DevOps其实是软件开发管理的思想、方法论,他所追求的是一种不可分割的理想的研发合作状态,所涉及的角色可能是开发、测试、产品、项目管理、运输等。 因此,研究开发小组在维持质量的同时提高交货效率的方法和方法论被认为属于DevOps的范畴。

例如,谷歌提出的5个DevOps原则中,必须依赖工具支持的部分只有后2点,大多是对开发组织形式的内省:

简化组织结构; 想要承担试行错误造成的部分损失,阶段性地一点一点地改变形状; 记录和分析充分利用工具和自动化流程的所有流程和结果。 所以DevOps不是简单的开发软件化,而是企业学习能力不断提高的结果,是将企业改造成敏捷学习型组织,利用新工具,优化组织架构和流程,不断进行自我革命和创新的方式。 工具是辅助,不是基础。

在明确

困难重重的 DevOps 落地

DevOps的宏观定义后,我们来观察一下devops目前在国内的实践现状。 南京大学DevOps中国•2018年度调查的调查报告显示,目前设有DevOps实践团队的公司中,科技和互联网行业所占比例接近70%。 其他行业从业人员对DevOps的认识还存在一定的不足。

这和我们的调查访问体验一致。 大多数企业都想利用DevOps,但在实践DevOps时,一般会遇到很大的困难。 主要原因有以下三个。

对DevOps有不现实期望的团队中,也有为了制作DevOps而制作DevOps的团队,并没有真正从业务的角度进行考虑。

综上所述,DevOps不是银子弹,高水平的研发团队在DevOps实践中迅速找到研发质量和业务增长的平衡。 但是,对于许多仍在使用中心化研发组织形式的团队来说,DevOps的尝试并不能很快获得可见的成长数据,通过思考和尝试对团队的训练可能会是最初的成果。

步子迈得太大的ssdwbl一代互联网公司诞生于DevOps理念比较成熟的时代,互联网公司天生以迭代速度为追求目标之一,所以这些公司在发展初期可以将DevOps的理念融入到公司的架构设计中。

上图是Netflix的整个系统体系结构。 这样复杂的系统架构每天可以重复几十个版本,传统的研发管理模式无法维持。 只有实践DevOps的理念,优化组织分工、资源和能效才能实现。 在这样的组织中,再也没有人知道所有模块都在做什么了。 每个人只需要对自己的模块负责。

许多企业急于达到上述高效状态,以加强和提高市场竞争力,希望能得到进一步的发展。 国内大部分队伍都没有到

大规模实践 DevOps 的时间点,有些团队甚至连分支开发、并行开发的方式都没有。我给这类的企业建议是:不要想着一口气吃成个激昂的咖啡豆,一步一步来,先理解 DevOps 的理念和对业务的实际意义,然后搭建一只小的 DevOps 团队来承接一项新业务,旧的业务仍然使用旧系统,双轨并行,等待小团队适应了 DevOps 的管理节奏之后再向其他团队进行推广。

接下来我们再深入聊聊为什么DevOps很难落地?

障碍一,您的过程中有人工操作吗?

在DevOps过程中,每个需要人工介入的地方都会带来风险。例如,人工的检验会增加延迟,生产环境的重复构建会带来不确定性,必须手动更改、维护和执行的用于工具管理或构建部署的脚本会浪费时间,而且容易出错。这些成本昂贵的过程,任何一个都会减慢正确的软件版本发布到最终用户的速度。

解决方案:自动化和流程管理

如上一部分所讲,保管您所有构建和制品的中央制品仓库为构建管理提供了便利。但如果同时它也可以收集有关制品的信息,这将赋予您更多的能力。您对制品的了解越多,就越能实现更好的自动化,并使您的构建工具能够做出明智的决策,从而统一并加速整个部署过程中的软件交付。

您的制品仓库应该能够为您的构建工具提供丰富的、灵活的查询和命令接口,以便它们可以不在您的干预下自动完成工作。如果它使用标准的、平台无关的访问机制,如REST API,则您可以任意选择最适合您的CI服务器。

一旦您能够实现DevOps流程的自动化,就可以更好地确保发布到生产中的每个版本都遵循相同的流程,并且符合通用标准。

障碍二,您规范管理了所有的构建依赖吗?

现在的软件应用开发的特点,一是多语言并存,二是架构在公共框架、公共库的基础之上。从而开发人员在构建过程中为这多种开发语言和技术都拉取了大量的外部依赖,而每种语言和技术对于依赖的管理都有其自己的要求和接口。您将如何管理它们?

这些外部资源可以随时更改,并且对其质量的控制和管理程度参差不齐,有的根本就没有保证。您如何确定每个版本中的用到了哪些依赖?如何可靠地复用其中的某个依赖?如何检测悄然发生的有害更新?

而且,您的构建过程不可能跑得比访问这些远程资源的链接快,繁重的网络负载会减慢构建速度,而访问的中断会导致您原来可靠的构建失败。

解决方案:依赖管理

使用本地制品仓库来代理存储外部依赖的远程资源,进而将所有外部依赖纳入统一管理。借助制品仓库对这些外部依赖的本地缓存,可以保证始终以所需的版本、最快的速度来完成构建。

更好的是,一旦您的制品仓库掌握了这些外部依赖,它就可以像其他制品一样,为这些外部依赖保存和维护相同的信息。通过跟踪依赖的历史记录和使用过程,就能始终确认每个构建中都采用了哪个版本的依赖项。

障碍三,您是如何在DevOps流程中传递交付版本的?

许多DevOps流程中,在测试、验证和发布的每个阶段,都需要基于全部或部分源代码进行重新构建。这就导致每个新版本都需要花费更多的时间,并且可能需要每个干系人进行手动评估和触发。更糟的是,随着开发人员持续地更改共享代码,每次重新构建都会带来不确定性,不得不在每个阶段重复相同的质量检查。

一旦某个构建通过了当前检查,您如何将其实际推进到下一阶段?手动将该构建推送到下一阶段的过程很容易出错。而且,您还需要一种在整个DevOps过程中向整个团队传达该构建状态的方法。

解决方案:元数据和升级管理

如障碍二的解决方案中所述,本地制品仓库不仅管理了所有构建及其制品,还管理了制品相关的信息,也可称为制品的元数据。这些元数据可以帮助您对该制品的质量进行检验,来源进行跟踪。

在DevOps流程中,各个阶段之间交付版本的推进,推荐的最佳实践是避免重复构建,而是采用制品升级的方式。也就是说,在前一个阶段完成质量检查后,制品带着其元数据,一起升级到下一个阶段。下一个阶段首先根据元数据对该制品进行质量检查和评测,确认达到质量标准再开始本阶段的工作。

升级的方式,使得每个阶段都直接基于制品开展工作,避免重复构建,在提升效率的同时,也降低了不确定性的风险。同时,针对元数据的检测,既保证了制品在各个阶段的一致性,避免篡改,又有助于提升质量检测的自动化程度,减少人工的介入,提高效率的同时,也降低了出错风险。

障碍四,您是如何满足客户不断增长的需求的?

为了满足客户日益增长的需求,您需要今天多做,明天做得更多。这会加重许多业务团队的负担,进而可能会减慢整个开发流程。

而基础架构中的任何单点故障都可能是灾难性的。地理位置分散的团队需要始终能够以相同的速度获得相同的资源,任何业务更新或容量升级造成的服务中断都会浪费大量的生产时间。

解决方案:企业级支持

企业级支持的解决方案可提供适应您的规模及成长的能力和灵活性。

可以在云平台中工作的制品仓库可以帮助您无限地扩展存储和计算的成本。您的制品仓库可以使用的云供应商越多,您获得的控制权就越大。SaaS订阅选项可确保您的资源始终可用并且是最新的。

高可用、多活的集群配置可以确保高负载下制品仓库的响应能力。其冗余还为灾难恢复提供了容错支持,并实现了零宕机的升级和维护。

支持多站点复制同步的制品仓库可以为跨地域的分布式团队提供全球范围内DevOps过程中资源、信息的快速分享。

总结

功能齐全的制品仓库将帮助您实现自动化的软件交付流程,并支持您采用新的工作方式。它可以为您提供对流程的控制和洞察力,从而可以解决出现的问题并不断改进您的方法。经过稳健的设计后,您的制品仓库可以灵活地适应企业的特殊需求。

同样重要的是,您需要一个可以在您的DevOps建设过程中成为良好合作伙伴的解决方案提供商。他们应该了解不同的方法和行业趋势。

JFrog的Artifactory制品仓库是端到端DevOps平台的核心,用于自动化管理、保护、分发和监视所有类型的制品。Artifactory得到了近6000家客户的信任,其中包括了世界500强中93%的客户。亚马逊、Facebook、谷歌、华为、VMware等世界顶级品牌都依靠JFrog来管理其制品,推进其DevOps进程。

扫描二维码推送至手机访问。

版权声明:本文由花开半夏のブログ发布,如需转载请注明出处。

本文链接:https://www.zhangshilong.cn/work/26598.html

标签: devops
分享给朋友:

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。