【可组合架构】可组合架构:为什么它很重要以及如何开始
视频号
微信公众号
知识星球
总结:
在目前的市场动态中,没有任何组织能够承受经济放缓。组织必须努力适应新技术,以实现市场驱动的增长。为了获得竞争优势,需要制定明确的战略计划。企业必须利用现有的数据堆栈,构建创新的、可扩展的平台。因此,数据架构至关重要。可组合架构是实现快速、高效和敏捷开发的一条很有前途的道路。继续阅读以了解更多有关此方面的信息。
不确定性是新常态。企业被迫在市场、业务、技术创新和不断变化的消费者需求的外部压力下不断发展。提高产品和服务的灵活性是2023年高管的首要任务之一。
为了在产品和服务中提供这种灵活性、这种创新和个性化水平,企业正在其架构中转向更灵活(或可组合)的技术。可组合性是一种由单个模块化部件构建整体的设计原则。企业可以是可组合的。但应用程序和内容管理系统(CMS)也是如此。
可组合架构有望帮助加快新应用程序和数字体验平台的上市时间,帮助组织实现敏捷性目标。在本博客中,我们将探讨与可组合架构相关的一切,以及如何在类似术语的背景下构建可组合架构,包括无头、模块化和微服务架构。
什么是可组合架构?
要回答什么是可组合架构的问题,首先了解可组合性一词是如何在业务级别应用的是很有帮助的。Gartner将可组合的业务架构定义为由三部分组成:
- 可组合思维着眼于通过不断探索和移动组件来创造业务能力。
- 可组合的业务架构,可动态调整人员/流程/能力/产品和服务,使其具有灵活性和弹性。
- 可组合技术具有易于组装和重新组装的模块化组件,是支持可组合业务架构的基础。
作为可组合企业架构的核心支柱之一,可组合技术专注于组件驱动的开发,构建可以使用和重用的组件,以适应不断变化的需求。Gartner表示,超过75%的中小型SaaS开发公司将使用打包的业务能力来加快其上市时间。
到2023年,30%的新应用程序将作为打包业务功能库交付、定价和消费,高于2020年的不到5%。
可组合架构是这一前提在开发实践中的延伸,即可以组装一组自主模块化组件(微服务、无头应用程序或打包业务功能,又名PBC)来形成一个完整的系统。模块化方法允许开发人员重用更多的代码和组件,节省时间和金钱,并使其更容易在未来扩展、维护和改进系统。
对于传统(或单片)架构,前端(用户界面或“头”)和后端都耦合到一个代码库中。通过可组合的架构,前部与后部解耦。如果这听起来像是无头商业,那是正确的。然而,单凭无头是不足以满足当今消费者不断变化的需求的。
虽然无头仍然是可组合架构的一部分,但可组合架构是一种进化,它还包括在技术堆栈中集成微服务(离散模块)的能力。架构必须遵循下一节中概述的MACH方法才能真正可组合。
传统/单片与无头与可组合
可组合结构的特点:MACH方法
可组合架构基于MACH,MACH是一组原则或技术,当它们一起使用时,支持可组合架构。
M–微服务
微服务是通过API提供特定功能或特性的独立服务。打包业务组件(PBC)是一组由单个API访问的两个或多个微服务(例如,购物车和结账的捆绑包)。单个微服务和PBC都可以被视为一个模块。
A–API优先
API将两个或多个应用程序或服务连接在一起,这是一种融入开发方法的通信方式。
C–云原生
应用程序或服务专门存在于云中,以确保可扩展性和灵活性。
H–无头
应用程序的前端和后端已经解耦。它们通过API连接,在每种语言和技术上都有更多的灵活性和选择,并使其更容易根据需要扩展到新的渠道或设备。
可组合架构示例
可组合商务架构是这种新方法最常被引用的用途之一,它支持一种灵活的方法,以提供丰富的实时数字和个性化体验。可组合的数字体验平台正在彻底改变通过各种渠道快速提供这些体验的能力。现代电子商务平台(如Magento 2、Drupal、Shopify、BigCommerce)通常依赖广泛的第三方提供各种服务,使品牌能够选择最佳解决方案(PBC),并独立于其他组件升级每个组件:
可组合架构的优点
Gartner指出,可组合业务架构的原则是速度、灵活性、更好的领导力和更大的弹性。当这些原则转化为可组合的架构时,会转化为切实的好处,包括:
1.可扩展性
在考虑可组合架构时,可伸缩性通常是关键驱动因素之一。在该架构中,每个组件都被设计为与其他组件即插即用,允许每个独立组件独立扩展或根据需要进行更换。每个组件独立扩展的能力使应用程序作为一个整体具有更好的性能,并且更具成本效益。
2.灵活性
将系统的前端和后端解耦,可以在选择各种微服务和PBC时有更大的选择自由度,而无需担心兼容性。随着需求的变化,交换或更新服务很容易,而不必太担心集成——相反,API完成了系统之间通信的大部分工作。
3.模块化
代码和第三方服务形成独立的模块,随着时间的推移保持解耦,并很容易与其他模块交换。此外,这种方法缩短了上市时间,允许重用代码,或者不部署代码解决方案,以在创纪录的时间内添加新功能或构建新网站。
4.可重复使用
可组合架构的关键基础是可重用组件的概念。这一策略的基础是定义可以重用的标准和模式,以及可以将一切结合在一起的API。这需要一种不同的方法来设计系统,这种方法的核心是重用性。通过这种方式,创建的任何模块都可以重用,或者形成新应用程序或服务的基础。
5.提高了可维护性
可以很容易地对一个模块或服务进行更改,而不会影响整个系统。此外,拥有直观的CMS可以让营销部门有更大的自主权来更改网站设计,为更多增值活动腾出宝贵的IT时间。此外,从维护的角度来看,拥有独立的微服务可以使业务变得更加容错,单个组件中的任何性能问题或服务问题都不会影响整个系统。
6.更快的开发和部署
重用组件、利用库中的组件和集成第三方服务(PBC)的能力可以加快开发时间。此外,可以在不影响整个系统的情况下进行更改。但速度提高的首要原因是,每个功能都可以自主开发并用于支持组织中的多个产品——因此,为一种产品开发的“搜索”功能可以支持另一种产品,这些较小的版本可以以更高的速度交付生产。
可组合架构的挑战
虽然可组合架构有许多明显的好处,但也必须考虑一些挑战:
1.复杂性
虽然可组合架构的模块化性质允许团队开发或集成独立组件,有助于加快上市时间,但这确实在监督所有组件的移动和组合方式方面引入了一些复杂性。需要强大的API和集成商来支持整个系统,并加强对每个微服务的监督,以确保其保持更新和修补,并继续成为满足业务需求的最佳选择。
2.组件集成
至关重要的是,每个组件都要被评估为最适合业务的组件,并易于集成,以确保底层数据可以使用,流程顺畅。为了确保组件的顺利集成,团队中必须有强大的集成商,或者寻求合作伙伴的专业知识和支持来提供帮助。
3.管理状态
随着应用程序的规模和复杂性的增长,依赖于更独立的部分或运行异步操作,管理共享全局状态变得更具挑战性。许多状态管理库可以提供帮助,但最重要的建议是避免在任何事情上都使用全局状态,而是使用适合工作的工具。存在许多关于管理每个框架和库(例如React、Swift等)的状态的有用文章。
4.测试和验证
对架构中的每个功能进行烘焙测试,并对由多个部分组成的功能进行集成测试,以确保一切按预期运行,并且对应用程序没有副作用,这一点很重要。一个可组合的架构系统将有更多的部分,这需要更多的测试和验证。
实施可组合架构
对现有系统的评估
在完成任何工作之前,实现可组合架构的第一步是了解系统的当前状态:组织内已经构建了哪些功能、技术和流程。这是您对可用于帮助满足新系统或改进系统的需求的库存。在这个阶段,组织可能包括:
- 业务能力图,将能力分解为尽可能小的单元。
- 假设可组合的架构旨在取代现有的系统。在这种情况下,评估不仅应该提高库存能力,还应该提高价值流,以了解应用程序在哪些方面做得好,以及在哪些方面没有改进。
- 无论应用程序是新的还是取代现有的,用户对用户故事和客户旅程的回顾都很重要。
设计可组合的架构
业务分析师(或架构师)、设计师和开发人员共同工作,对解决方案架构进行概念化和设计,以将想法转化为现实。在这个阶段,业务能力映射被扩展,在其最小的部分建立具有明确业务价值的每个组件。然后可以将这些部分组合到PBC中,从而定义业务能力。这些模块和PBC将形成一个库存或库,供企业使用。
然后,专家可以为团队制定一个计划,以构建每个模块,并为各种用例配置它们。这个阶段应该尊重MACH的特性和驱动可组合体架构的关键优势。
构建可重复使用的组件
在这个阶段,团队执行计划(最好是通过敏捷开发运营计划)来构建组件。这是一个构建和重复部分,其中构建和集成组件,直到实现最低可行的产品。在这个阶段,重要的是要坚持可组合架构的最佳实践,包括:
- 有明确的文件
- 构建几乎没有依赖关系的模块化组件
- 定义清晰的接口
- 建立清晰的边界
将组件集成到一个有凝聚力的系统中
一旦构建了组件,就必须通过API对它们进行组合和“粘合”。应用程序编程接口(API)在两个组件或应用程序之间进行通信,传输请求和信息。通过可组合架构,API用于集成组件,拥有强大的API管理平台可以将API管理简化到单个平台上,并允许更大的安全控制。
自动化测试和验证
任何架构都只有经过测试才是强大的——值得庆幸的是,可组合架构中缺乏依赖性,这很适合测试。在Swift可组合架构中,测试框架和公司都在可组合架构内。使用React可组合架构,您可以在测试环境中渲染组件树或运行端到端测试,并通过免费和付费工具支持额外的测试。
可组合架构的类型
Swift可组合架构
Swift是苹果公司创建的一种编程语言,用于构建iOs、Mac、Apple TV和Apple Watch应用程序。Swift提供了一组默认支持可组合架构的协议和工具,称为可组合架构(TCA)。Swift可组合架构包括功能和集成测试、状态管理、支持功能组合的模块化代码以及非常友好的开发人员界面。
React可组合架构
React是一个JavaScript库,广泛用于可组合元素,特别是用于用户交互的接口和元素的前端开发。React强调可组合性是其核心原则之一,强调由不同的人编写的组件应该很好地协同工作。
关键要点
可组合架构就像是抵御变化的保险——通过将敏捷性纳入每个系统的基础,来拥抱未来的不确定性。可组合的架构允许组织变得敏捷,采用同类最佳的解决方案,并适应新技术和消费者的需求。
两年内,云原生平台将成为95%以上新数字计划的平台,高于去年的40%——如果采用可组合架构构建,这些计划将加快上市时间,并具有在未来发生变化的灵活性。如果你想提升你的数字计划,或者转向可组合架构,为你的成功奠定基础,请联系我们,看看我们能提供什么帮助。
常见问题解答
01为什么可组合架构很重要?
可组合架构有助于提高组织的灵活性,以应对市场上快速变化的需求和机遇。它允许组织快速升级现有系统或缩短新解决方案的上市时间。此外,可组合架构有助于打破部门之间的竖井,并简化所有工作流程。
02什么是模块化架构与可组合架构?
模块化是指可以独立消费和使用的组件,是可组合体系结构的核心功能。您可以拥有模块化前端组件(如博客、网站、论坛)和渠道(如移动、网络),以及模块化后端服务(如购物车、支付、产品目录等)。可组合架构是组合模块的能力。
03什么是无头架构与可组合架构?
无头架构将前端和后端解耦,是可组合架构的四个基本MACH(微服务、API引导、云优先、无头)组件之一。
04什么是可组合架构与微服务?
微服务是指支持解耦(无头)架构的模块化后端服务,该架构是可组合架构核心的一部分。有时可组合架构被称为无头微服务。
- 416 次浏览