当前位置: 首页 > 科技观察

高效企业微服务治理的3个关键

时间:2023-03-21 17:51:23 科技观察

企业通常拥有数以千计的微服务,每个团队都可以自主选择自己的技术栈。因此,企业不可避免地应该有微服务治理机制,以避免构建难以管理和不稳定的架构。任何集中式治理都违背了微服务架构的核心原则,即“为团队提供自主性和敏捷性”。但这也不意味着我们不应该有每个团队都应该遵循的集中政策、标准和最佳实践。在企业级集成多系统、复杂运营的情况下,问题是:“我们如何有效地提供去中心化治理?”在实施微服务治理策略时,我们需要转变思维方式。治理策略应与微服务的核心原则保持一致,即自包含和自包含服务、单一职责以及与业务、策略和最佳实践保持一致的跨职能团队。我们应该从3个关键原则来看待治理:基于领域、以产品为中心和平台思维。有了这三个原则,我们将能够为企业提供一个符合微服务原则的治理平台,使企业能够自动集成全球政策、标准和指南。微服务治理的三个关键现在让我们考虑3个关键原则——基于领域、以产品为中心和平台思维基于领域的微服务架构的关键原则之一是遵循领域驱动设计(DDD)。话虽如此,我们的治理策略应该将领域视为一等公民,业务或领域专家应该根据DDD定义信息模型。企业还应该能够基于信息模型为每个域定义业务能力。以产品为中心的企业应该能够很容易地根据现有的信息模型和业务功能定义产品,能够为产品定义业务KPI。治理还应注意为企业提供现有产品、API、服务和实际KPI的整体视图。这将帮助公司使业务能力与最终客户保持一致,快速识别新产品和创新产品并评估其有效性。平台思维通过平台思维,企业应该为业务和IT提供一个自助服务的治理平台,使两者能够协同和协调。企业应该能够通过模板定义全球政策、标准和指南。团队可以根据他们为自己的领域确定的工具和技术构建开发人员模板。技术工件应通过模板自动生成,并通过CI/CD管道部署到相应的运行时环境,从而实现政策、标准和指南的自动化实施。下图描述了在生命周期中嵌入治理的自助服务平台的业务架构。组织可以定义或上传现有的信息模型,建立企业能力,并快速定义新产品和预期的企业KPI。团队设计和创建API定义,为微服务和业务事件定义消费者驱动的契约,以及实施业务定义的产品的非功能需求。他们应该能够定义策略、最佳实践、访问规则和数据质量规则,并上传有关遗留资产、数据源和集成点的元数据信息。这有助于团队在设计时定义端到端沿袭,从消费者到业务功能再到API、微服务、SOAP服务等遗留资产,甚至数据源。我的一个企业客户有4,000到5,000个微服务,甚至同一个微服务的10到20个版本映射到不同的消费者。他们面临的挑战是,他们必须依靠运行时指标来确定消费者正在使用哪个版本,并投入大量精力进行影响分析以进行更改,这极大地影响了敏捷性。像上面这样的自助服务平台可以帮助他们提供端到端的血统。该平台具有的另一个重要特性是使团队能够定义可以映射到受控的元数据值(例如API定义、消费者驱动的合同、集成点、策略、访问规则、数据质量规则等)。模板应通过源代码控制管理(SCM)进行版本控制,并与CI/CD管道集成以自动生成技术工件。技术工件包括API代理、微服务和业务事件框架、层之间的映射、单元和集成测试用例以及来自消费者驱动契约的存根、API文档等。这有助于企业根据受控元数据值生成一致的输出,并允许团队专注于业务逻辑并赋予IT持续交付业务价值的能力。正如我们所解释的,我们也应该认识到并“向前推进我们的痛苦”并自动消除它。NealFord关于进化架构的论文。例如,数据质量规则、安全策略和自动化管理。测试、安全和认证应该内置到CI/CD过程中,而不是让过程变得痛苦。具有跨集成点继承的CI/CD管道和元数据的模板使我们能够将集成逻辑集中在可以独立控制和更新的管道中。这支持联合开发并进一步提高我们的“上市速度”。正如管理思想家彼得德鲁克所说,“我们无法改进和管理我们无法衡量的东西。”衡量绩效是另一个关键因素。我们还应该将运行时环境的指标反馈给平台,计算出实际的KPI和NFR,帮助业务和团队将计划的和实际计划的进行比较,使他们能够尽早做出正确的决策来应对变化。结论由于缺乏强大的微服务治理策略,企业面临的一些挑战是:企业没有任何机制来监控和衡量现有产品的性能,从而阻碍了新产品的创新它没有正确的平台和企业无法获得整体洞察力,无法与IT协作进行规划和设计。大多数文档已经过时,这会影响敏捷性。企业缺乏自主团队/系统可以互操作和协作的平台。如果不遵循联邦开发原则,企业就需要有一个有效的机制来实施微服务治理,而前进的道路是通过一个基于领域、以产品为中心的模型的自助式治理平台。需要一个基于领域和以产品为中心的模型来使治理方法与微服务原则保持一致,并使企业能够快速创新新产品。自助服务平台为业务和IT提供了一个共同的协作和协调平台。它帮助团队专注于交付业务价值。政策、标准和指南的实施应通过产生可重复技术输出的受控模板来处理。这种方法实现了设计时和运行时的独立性,并在不影响治理的情况下支持联合开发和加速架构的持续演进。