合作机构:阿里云 / 腾讯云 / 亚马逊云 / DreamHost / NameSilo / INWX / GODADDY / 百度统计
平台工程很棒,并不适用于所有情况,看看你准备好了吗?译者的亲身经验也是如此,有一定的自动化基础,平台工程才能顺利进行。译自 Why You Can’t Go from Zero to Platform Engineering 。
要实现对基础设施的集中控制,基础设施管理必须无障碍且一致。
许多关于平台工程的讨论似乎都在宣称它是同时提升开发者体验和加速应用开发的灵丹妙药。尽管平台工程在这两个方面确实能带来显著优势,但这还不是全部。
为了在获得这些好处的同时实现对基础设施的集中控制,基础设施管理必须无障碍且一致,这需要相当高的自动化成熟度。那么,什么是自动化成熟度,为什么自动化对成功实施平台工程策略至关重要?
大多数大型组织以不同的自动化成熟度交付和管理基础设施。目标是使所有基础设施的交付和管理方式标准一致,减少差异性和基础设施类型的复杂度。我们可以将基础设施自动化分为三个成熟度等级:特殊情况自动化(ad-hoc)、部分自动化(automated)和无障碍自动化(frictionless)。
特殊情况自动化的组织使用手动、脚本和定制的基础设施方式混合使用。这种方式需要大量人工参与且容易出错。要实现成熟需要一致、简单、可测量和安全的基础设施自动化,无障碍自动化可以减少对高端专家的依赖,让他们更轻松地创建、管理和支持基础设施。
自动化需要简单易用,可以原生支持不同规模和复杂程度、分布在不同地点的完整基础设施堆栈。有效的自动化可以消除所有手工流程,减少复杂性和碎片化,确保基础设施受管控、安全且对业务负责。
大多数企业同时使用多种类型和成熟度的基础设施自动化,部分明确,部分隐藏在代码中。因此,即使企业同时使用基础设施即代码、云服务、虚拟化、容器和配置工具等,也不意味着一切尽在掌控或创造可衡量价值。使用自动化是必须的,但过多不同和碎片化的自动化会带来更多问题。包括管理困难、策略不一致、风险未知、技能要求增加,以及调试和支持自动化的难度。
太多自动化工具会造成自动化孤岛,每个基础设施交付方式独立存在。由于现代应用架构需要混合使用各种基础资源,常需要不同自动化过程相互触发来交付应用生命周期中的所需资源。尽管部分企业达到了可以考虑平台工程的部分自动化成熟度,但许多企业仍需提高才能实现相关业务价值。
最后,从部分自动化跃升到无障碍自动化需要基础设施不再是抽象概念,而成为活动不可分割的一部分。对使用集成开发平台的开发者来说,基础设施是一个无缝集成的功能。活动定义了所需要的基础设施资源。
实现无障碍自动化的关键是环境概念。环境是一个易于理解的模型,包含了支持某项活动所需的一切,如中间件、数据、工具、基础设施等。环境源自特定活动或任务,组织可以根据环境理解其目的、重要性和价值。然后,多个环境可以关联在一起,组织可以了解每个环境的使用方式、目的和使用者,不论其云提供商、基础设施类型或复杂性。这使企业可以根据每个活动创造的价值来规划、优先级设置和预算。
尽管小团队的复杂度通常较低,但大团队和组织的复杂度要高得多,需要更高的自动化级别。这意味着实现平台工程所需的自动化级别会因公司甚至不同团队的情况而异。
对于基础设施自动化匮乏或缺失的组织来说,平台工程毫无意义。相反,这些组织应该从结果出发,实施所需的工具和流程。例如,目标是提升开发者体验、加速开发、控制成本、加强治理等?根据这些,组织可以确定哪些工具和流程具有相关业务价值需要自动化。
自动化成熟度中等的组织正处于可以探索平台工程的良好位置。目标应该是标准化所有基础设施,了解组成完整环境的所有组件,执行安全和合规要求,将云成本与环境及其业务价值关联,最后按需通过自助服务立即提供基础设施。此外,全生命周期持续监测每个环境实例,以维持治理和控制成本。
平台工程作为一个新兴方法,承诺诸多运营优势。尽管提升开发者体验和开发者满意度为企业带来巨大价值,但企业应争取实现最大价值。通过确定预期结果并实施必要的自动化流程,平台工程可以更快为组织带来更好的结果,从而证明技术和组织投资的成本和努力是合理的。
TOP