介绍
在快速发展的软件开发和 IT 运营领域,越来越多的企业开始采用DevOps 托管服务来简化流程、加强协作和加快交付速度。在过去的七年里,我一直在帮助企业实施 DevOps 转型,我可以亲身经历--它绝非光鲜的宣传册上所描述的那样简单。虽然托管的 DevOps 能带来巨大的好处,从节约成本到加快部署周期,但企业在实施和持续运营过程中经常会遇到重大障碍。本综合指南借鉴了我的实际经验,帮助您应对托管式 DevOps 中的常见挑战,并实施在生产环境中切实可行的解决方案。
托管型 DevOps 期望中的现实差距
我在为客户提供咨询时遇到的最大问题之一就是期望与现实之间的差距。许多企业都是带着不切实际的时间表和期望值进入 DevOps 管理的。
去年,我曾与一家中型金融科技公司合作,该公司希望在聘用托管 DevOps 提供商后的短短六周内,将其发布周期从每月部署彻底转变为每日部署。实际情况呢?他们花了近六个月的时间才实现这一目标。为什么呢?因为他们低估了几个关键因素:
-
遗留系统复杂:他们的核心银行平台有 15 年以上的技术债务,几乎没有自动化。
-
团队技能差距:他们的开发人员在容器化、基础设施即代码或 CI/CD 实践方面经验极少。
-
组织阻力:中层管理人员默默地抵制改变既定流程。
设定现实的期望
为了避免类似的失望,我现在建议客户:
-
进行全面评估:在与任何托管 DevOps 提供商签约之前,请对您的现状进行详细分析,包括技术债务、技能差距和组织准备情况。
-
制定分阶段实施计划:将过渡分为 30 天、60 天和 90 天的里程碑,并制定明确、可衡量的目标。
-
为学习曲线做好预算:在过渡初期,由于团队需要适应新的工具和流程,预计生产率会降低 20-30%。
我的一个医疗保健客户采用了这种分阶段的方法,实现了更为顺利的过渡。我们首先为一个非关键的内部应用程序建立了一个简单的 CI 管道,然后随着团队信心和能力的建立,逐步扩展到更复杂的系统。
文化阻力:无声的 DevOps 杀手
根据我的经验,管理 DevOps 所面临的技术挑战很少是最难解决的。真正的障碍通常是人和组织方面的。
一个制造业客户在他们的 DevOps 托管计划停滞了几个月后,把我找了过去。从纸面上看,一切都很顺利--他们拥有所有的工具、信誉良好的服务提供商和执行支持。问题出在哪里?开发团队和运营团队之间根深蒂固的文化抵触。
开发人员认为新的 CI/CD 管道 "限制了他们的创造力",而运营部门则认为自动部署是 "冒险的捷径",会带来他们必须解决的问题。在决策过程中,这两个群体都没有被适当地纳入进来。
打造持久的 DevOps 文化
以下是克服这种阻力的实际方法:
-
创建共同所有权:我们组建了跨职能团队,共同承担责任,并制定了关键绩效指标,将开发和运营的成功联系起来。
-
展示早期成果:我们发现了对两组人员都有利的速赢方法--开发人员可以更快地获得代码反馈,而运营人员则可以减少午夜紧急呼叫。
-
提供实践培训:我们将实际生产问题作为合作解决问题的学习机会,而不是理论培训。
-
公开庆祝成功:我们创建了一个 "部署成功 "仪表板,跟踪成功部署、减少的事故和节省的时间。
6 个月后,曾经破坏 DevOps 转型的团队却成了其最大的拥护者。关键教训是什么?没有文化协调的技术实施总是会陷入困境。
快速移动管道的安全集成挑战
安全问题仍然是 DevOps 管理实施中最棘手的问题之一。我已经数不清有多少次看到企业采用快速交付周期,结果却造成了新的安全漏洞。
去年,我曾与一家零售客户合作,他们使用可管理的 DevOps 将部署频率从每月一 次提高到每周一次,但却无意中将三个关键安全漏洞引入了生产中,因为他们的安全流程跟不上加速的开发周期。
实用的 DevSecOps 集成
根据我实施的几个成功的安全集成,以下是行之有效的方法:
-
安全左移:从 IDE 插件开始,在开发人员提交代码之前就提醒他们注意问题,在管道的每个阶段都集成自动安全扫描。
-
自动进行合规性验证:对于受监管的行业,实施自动合规性检查,在允许部署前根据要求的标准验证配置。
-
将安全作为代码来实施:将安全配置和策略视为与应用程序代码并存的代码,遵循相同的审查和测试流程。
-
创建安全倡导者:指定并培训团队成员,让他们在团队中充当安全倡导者,将安全意识带入日常开发活动中。
在实施这些实践后,我的零售客户能够保持每周的部署周期,同时切实改善他们的安全状况。他们的安全团队从被视为阻挡者转变为安全快速交付的推动者。
技术债务:DevOps 实施的拦路虎
我咨询过的几乎所有企业都低估了现有技术债务对 DevOps 转型的影响。遗留系统、人工流程和不完善的文档会大大降低 DevOps 的实施速度。
我曾与一家金融服务公司合作,花了几个月的时间将其传统的大型主机系统集成到新的 CI/CD 管道中。这些系统缺乏适当的 API 接口,自动化测试极少,而且依赖于几位即将退休的高级工程师的部落知识。
战略性地解决技术债务问题
我们没有采取全有或全无的方法,而是实施了以下策略:
-
绘制您的资产地图:对所有应用程序和基础架构组件进行编目,使用简单的红/黄/绿系统评估每个组件的 DevOps 就绪程度。
-
创建集成边界:对于不容易实现现代化的遗留系统,创建简洁的接口和应用程序接口层,使新系统能够与之交互。
-
战略性地确定优先级:将最初的 DevOps 工作重点放在业务价值高、复杂度较低的系统上,因为在这些系统上,你可以很快取得成功。
-
分配减债时间:将 20% 的冲刺时间专门用于减少技术债务,首先关注影响最大的项目。
利用这种方法,这家金融服务公司在一年内成功地将其 60% 的应用程序组合纳入了现代 DevOps 实践,同时为剩余的遗留系统制定了可持续发展计划。
工具蔓延与集成复杂性
我观察到的另一个常见挑战是,DevOps 工具激增,却不能很好地协同工作。一家电信客户在其 CI/CD 管道、监控、安全扫描和基础架构管理中积累了 14 种不同的工具,其中大部分需要在系统之间手动切换。
驯服 DevOps 工具链
根据我成功领导的工具链整合,以下是行之有效的方法:
-
优先考虑集成功能:在选择工具时,优先考虑那些具有强大的应用程序接口(API)并可与现有工具集预置集成的工具。
-
实施平台方法:考虑在集成包中提供多种功能的 DevOps 平台,而不是组装同类最佳的点解决方案。
-
自动化工具链测试:为你的 DevOps 工具链本身创建自动化测试,确保集成在工具更新时继续工作。
-
端到端记录工作流程:创建清晰的可视化文档,显示工作如何在整个工具链中流动,并识别可实现自动化的手动切换。
我的电信客户将其工具链整合为五个集成良好的工具后,部署周期缩短了 70%,并消除了系统间大量容易出错的手动步骤。
企业环境中的扩展挑战
将 DevOps 实践扩展到最初的试点团队之外,会带来许多企业低估的独特挑战。我曾合作过的一家医疗保健企业在一个应用团队中成功实施了 DevOps 实践,但当他们试图将其扩展到 20 多个团队时,却发现他们的模式崩溃了。
成功扩展 DevOps
这就是最终奏效的方法:
-
创建内部 DevOps 平台团队:建立一个专门的团队,专注于构建其他团队可以利用的可重用管道、基础架构模板和自动化。
-
实施内部资源实践:鼓励团队通过具有明确贡献准则的内部资源库共享自动化代码、配置和最佳实践。
-
明智地标准化:确定 DevOps 流程的哪些方面应在各团队之间实现标准化(安全要求、部署审批),哪些方面各团队应具有灵活性(测试框架的选择、内部工作流程)。
-
建立实践社区:建立定期论坛,让各团队的 DevOps 实践者分享成功经验和教训,并就共同面临的挑战开展合作。
在实施这些实践后,这家医疗机构在 18 个月内成功地将 DevOps 实践扩展到所有 24 个应用团队,同时保持了一致的质量和安全标准。
成本管理与优化
虽然托管式 DevOps 通常承诺节约成本,但我发现,如果没有适当的管理和优化实践,许多组织最初的成本实际上会增加。我的一个零售客户在实施 DevOps 后的三个月内,由于开发人员获得了自我配置资源的能力,他们的云基础设施成本翻了一番。
在不限制创新的前提下控制成本
以下是我的客户的成功经验:
-
实施标记和回显:要求所有基础设施都标记团队、应用程序和环境,以跟踪成本并让团队了解自己的支出。
-
设置自动化成本管理:创建自动策略,检测成本异常并发出警 报,或在非工作时间强制关闭非生产资源。
-
在管道中构建成本优化:将基础架构成本分析工具直接集成到 CI/CD 管道中,以便在部署前识别低效配置。
-
创建成本冠军:与安全卫士类似,指定团队成员负责其团队的成本意识和优化工作。
实施这些实践后,我的零售客户减少了 40% 的云支出,同时继续提高部署频率和应用程序性能。
结论:让托管型 DevOps 在实际组织中发挥作用
根据我多年来帮助企业实施和优化托管型 DevOps 的经验,我发现成功需要同等关注技术、文化和流程方面的挑战。将 DevOps 管理作为纯技术实施的组织难免会陷入困境,而那些在解决技术问题的同时还解决人力和组织问题的组织则能取得持久的成功。
有效SEO的一体化平台
每个成功的企业背后都有一个强大的SEO活动。但是,有无数的优化工具和技术可供选择,很难知道从哪里开始。好了,不要再害怕了,因为我已经得到了可以帮助的东西。介绍一下Ranktracker有效的SEO一体化平台
我参与过的最成功的 DevOps 托管实施都有共同的特点:
-
DevOps 目标与业务目标明确一致
-
行政赞助与基层热情相结合
-
考虑到组织学习曲线的现实时间表
-
均衡关注人员、流程和技术
-
愿意根据反馈和衡量的结果进行调整
通过预测并积极应对本指南中列出的挑战,企业可以大大增加实现托管 DevOps 全部优势的机会:更快的交付、更高的质量、更强的安全性,以及最终更好的业务成果。