关于运维:通往成功DevOps的六大障碍

3次阅读

共计 3866 个字符,预计需要花费 10 分钟才能阅读完成。

一、背景


在现今的社会中,每个公司都是软件公司,无论是通过台式机、云服务还是挪动设施,软件都已成为世界各地、各个公司日常工作的工具。例如,汽车是带轮子的计算机,空调是数据终端,而银行在手机中提供服务,等等。

在这个新的世界中,软件更新能够满足客户的需要。每一个交付都是您更新,或毁坏,与客户间信赖的机会。如何能力保障您的每个更新都以最快的速度提供一流的服务?

这就是为什么 DevOps 对您的公司很重要。当您放慢高质量软件的交付速度时,客户会大呼过瘾,并且您能够对市场需求的变动迅速做出反馈。DevOps 通过缩小在测试、评估和公布等各阶段之间,以及与相干干系人之间的摩擦,来放慢高质量软件的交付速度。辨认并解决这个过程中的痛点能够推动 DevOps 的胜利建设。

良好的制品仓库能够促成软件在 DevOps 流程中的运行。它存储了过程中所有的二进制制品(artifacts,也称为工件),同时也保留了无关它们的信息,从而缩小了不确定性,并使自动化工具可能自在、疾速地运行。

在减速软件交付的过程中通常会遇到下述的六大阻碍,而良好的制品仓库能够帮忙解决它们,以实现从代码到客户的疾速、继续的软件更新与公布。

二、阻碍一,您理解您所有的构建吗?

您的开发人员团队每天都能够生成许多构建,而您能全副跟踪和把握所有的构建吗?

如果没有全面的解决方案,那您可能会晓得哪个版本是最新的,但却无奈确认哪个版本才是最好的。您也无奈牢靠地追溯构建的历史,并把握组成该交付版本的各个局部都是来自何处。

当构建失败时,您可能辨认并回退有问题的局部吗?您如何能力查明哪些构建存在问题,以及问题呈现在构建过程中哪个地位,以便您或开发人员能够疾速提供修复。

解决方案:通用记录零碎

为您所有的构建建造一个制品核心,作为所有在 DevOps 流水线中运行的制品的惟一实在起源。在核心的仓库中治理和版本化所有构建的产出,意味着您能够轻松找到性能最佳、最新的构建。

制品仓库可能跟踪制品应用的地位,及其先前的所有版本,从而提供了丰盛的数据,来帮忙您追溯所有构建的起源及其先人。您能够疾速查看一个版本与另一个版本之间的差别,理解每个版本的制作形式,并找到可帮忙您修复谬误版本的参考。

三、阻碍二,您的过程中有人工操作吗?

在 DevOps 过程中,每个须要人工染指的中央都会带来危险。例如,人工的测验会减少提早,生产环境的反复构建会带来不确定性,必须手动更改、保护和执行的用于工具治理或构建部署的脚本会浪费时间,而且容易出错。这些老本低廉的过程,任何一个都会减慢正确的软件版本公布到最终用户的速度。

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

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

您的制品仓库应该可能为您的构建工具提供丰盛的、灵便的查问和命令接口,以便它们能够不在您的干涉下主动实现工作。如果它应用规范的、平台无关的拜访机制,如 REST API,则您能够任意抉择最适宜您的 CI 服务器。

一旦您可能实现 DevOps 流程的自动化,就能够更好地确保公布到生产中的每个版本都遵循雷同的流程,并且合乎通用规范。

四、阻碍三,您标准治理了所有的构建依赖吗?

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

这些内部资源能够随时更改,并且对其品质的管制和治理水平参差不齐,有的基本就没有保障。您如何确定每个版本中的用到了哪些依赖?如何牢靠地复用其中的某个依赖?如何检测悄悄产生的无害更新?

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

解决方案:依赖治理

应用本地制品仓库来代理存储内部依赖的近程资源,进而将所有内部依赖纳入对立治理。借助制品仓库对这些内部依赖的本地缓存,能够保障始终以所需的版本、最快的速度来实现构建。

更好的是,一旦您的制品仓库把握了这些内部依赖,它就能够像其余制品一样,为这些内部依赖保留和保护雷同的信息。通过跟踪依赖的历史记录和应用过程,就能始终确认每个构建中都采纳了哪个版本的依赖项。

五、阻碍四,您是如何在 DevOps 流程中传递交付版本的?

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

一旦某个构建通过了以后查看,您如何将其理论推动到下一阶段?手动将该构建推送到下一阶段的过程很容易出错。而且,您还须要一种在整个 DevOps 过程中向整个团队传播该构建状态的办法。

解决方案:元数据和降级治理

如阻碍二的解决方案中所述,本地制品仓库不仅治理了所有构建及其制品,还治理了制品相干的信息,也可称为制品的元数据。这些元数据能够帮忙您对该制品的品质进行测验,起源进行跟踪。

在 DevOps 流程中,各个阶段之间交付版本的推动,举荐的最佳实际是防止反复构建,而是采纳制品降级的形式。也就是说,在前一个阶段实现质量检查后,制品带着其元数据,一起降级到下一个阶段。下一个阶段首先依据元数据对该制品进行质量检查和评测,确认达到质量标准再开始本阶段的工作。

降级的形式,使得每个阶段都间接基于制品发展工作,防止反复构建,在晋升效率的同时,也升高了不确定性的危险。同时,针对元数据的检测,既保证了制品在各个阶段的一致性,防止篡改,又有助于晋升品质检测的自动化水平,缩小人工的染指,提高效率的同时,也升高了出错危险。

六、阻碍五,您是如何满足客户一直增长的需要的?

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

而基础架构中的任何单点故障都可能是灾难性的。地理位置扩散的团队须要始终可能以雷同的速度取得雷同的资源,任何业务更新或容量降级造成的服务中断都会节约大量的生产工夫。

解决方案:企业级反对

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

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

高可用、多活的集群配置能够确保高负载下制品仓库的响应能力。其冗余还为劫难复原提供了容错反对,并实现了零宕机的降级和保护。

反对多站点复制同步的制品仓库能够为跨地区的分布式团队提供寰球范畴内 DevOps 过程中资源、信息的疾速分享。

七、阻碍六,您适应变更的老本有多高?

响应所有的客户意味着在多个运行零碎中应用多种语言进行开发。某个部门可能用 Go 为云平台编写代码,而另一个部门则可能用 Java 为挪动设施编写代码。然而每种语言和技术都有其本人的要求和反对的工具。

您将为 DevOps 应用哪种基础架构?当初,在您本人的数据中心中平安运行可能是最有意义的。而将来,您可能须要云平台的灵活性,或者将它们联合起来以取得各自的劣势。您将能够自由选择最适宜您需要的供应商,并在需要变动时灵便地进行更改。

解决方案:混合云的解决方案

反对混合云架构的制品仓库能够帮忙您的交付过程自动化,无论您应用的是哪种语言或运行于何种平台。通过 REST API 进行拜访,能够不便、灵便地与您曾经在应用的工具进行对接。

作为 DevOps 零碎的外围,您的制品仓库在云平台中的性能必须与在本地本人的服务器上的性能雷同。在任何环境间都可能轻松地降级构建、推动交付的解决方案能够无效地帮忙您在功能强大的混合云中实现 DevOps。对所有次要提供商(例如 AWS、Google Cloud、Azure、阿里云等)的集成反对,能够帮忙您实现防止供应商绑定的多云策略。

您也应该可能自主地抉择付款形式。您须要的解决方案应该是,无论您抉择固定的许可费用还是灵便的 SaaS 订阅,都可能帮忙您自在地构建当初和未来应用的零碎。

八、总结

功能齐全的制品仓库将帮忙您实现自动化的软件交付流程,并反对您采纳新的工作形式。它能够为您提供对流程的管制和洞察力,从而能够解决呈现的问题并不断改进您的办法。通过持重的设计后,您的制品仓库能够灵便地适应企业的非凡需要。

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

JFrog 的 Artifactory 制品仓库是端到端 DevOps 平台的外围,用于自动化治理、爱护、散发和监督所有类型的制品。Artifactory 失去了近 6000 家客户的信赖,其中包含了世界 500 强中 93%的客户。亚马逊、Facebook、谷歌、华为、VMware 等世界顶级品牌都依附 JFrog 来治理其制品,推动其 DevOps 过程。

心愿 Artifactory 同样可能帮忙您解决上述的六大阻碍,胜利建设 DevOps 体系,实现高质量、疾速、继续的软件公布流程。


** 欢送观看 JFrog 杰蛙每周二在线课堂,点击报名:
https://www.bagevent.com/even…**

正文完
 0