【小宅按】 对于任何企业,MSA的实施都不能一蹴而就。企业在实施MSA的过程中应该避免教条主义、理想化、低估必需的投资、边学习新流程边变更架构、担忧失败等风险与陷阱。企业可以在MSA实施指导框架的指引下,进一步建立MSA的战略目标、原则、实践、工具平台视图,以更好地指导MSA落地。
随著领域驱动设计(DDD,Domain Driven Design)、持续交付、云计算、小型自治团队、大型集群系统等实践的发展与流行,微服务架构(MSA,Microservices Architecture)也应运而生。在数字化转型时代,许多组织为了提升业务敏捷性(Business Agility),发现MSA或许是帮助自己更快地交付软体的强大武器,因为MSA有望在灵活的变更交付、技术灵活性、更精准的弹性等方面带来益处。
然而企业却很快发现,单纯将MSA视为灵活的架构模式,往往难以保障MSA的成功实施。因而,若要成功实施MSA,除了改变软体交付物的结构化方式,企业必须在以下方面进行改变:
- 应用开发、交付与运维的组织方式
- 维持流动性同时确保质量与弹性的流程
- 微服务相关模式与实践所必需的新工具与平台
那么,企业到底应该如何实施MSA才能提升成功率呢?有没有一种指导性框架为MSA实施保驾护航呢?在探讨此问题之前,也许明确一下MSA的适用场景更为紧要。在《人月神话》中,Fred Brooks曾指出「软体没有银弹」。此论断对于MSA仍然适用。企业不应该将MSA视为软体交付的银弹。从严格意义上来讲,MSA的优势在于帮助企业解决软体领域的复杂问题(Complex Problem)。一般来讲,复杂问题具有以下几个特征:(1)没有足够的数据进行决策;(2)必须进行探索;(3)需要浮现式设计与实践;(4)面向行动的方法。关于复杂问题的详细阐述,可以参考Cynephin框架(https://www.mindtools.com/pages/article/cynefin-framework.htm)。当然,在企业面对复杂问题或者系统时,如果同时需要频繁部署来快速响应市场需求、需要高可用以及快速弹性神作,MSA将成为优先选项。
基于MSA的适用场景,并结合诸多企业实施MSA的实践,形成了如下图所示的实施指导框架,称之为「3PSD」。