微服务架构帮助你扩展
微服务架构可以帮助你进行多个维度的扩展:
- 流量和客户。微服务使你能够以更多流量和数据支持更多客户。
- 开发人员和开发团队的数量。微服务架构使你能够添加更多的开发团队,从而为你的应用程序添加更多的开发人员。而且由于开发人员不会像在单体开发过程中那样互相影响,使得他们的工作效率更高。
- 复杂性和能力。团队不需要考虑太多的应用程序的表面问题,这使他们能够专注自己的领域去处理更复杂的问题。当更多团队可以处理多种领域中的问题时,他们就有可能完成更复杂的项目。
面向单一团队的服务架构(STOSA)
仅仅将你的应用程序迁移到基于微服务的架构是不够的。即使你使用微服务架构,但开发团队仍有可能需要处理不同的服务项目,团队之间也有可能创建复杂的交互。最坏的情况是,即使转向基于微服务的架构,你仍然可能陷入开发困境。
为了避免这些问题,你必须建立一个明确的服务所有权制度和责任模型。每个服务都需要一个独立的、明确的、清晰的负责人,该负责人对服务负全部责任,并且每一个服务工作都需要进行管理和委派。我建议使用一个模型,例如面向单一团队的服务架构 (STOSA),它可以让你的应用程序和开发团队更好地好扩展以满足业务需求。
微服务架构的成本
微服务架构确实是有成本的。虽然,单个服务更易于理解和管理,但使用微服务架构的应用程序作为一个整体,明显具有更多的活动部件,本身就变得更加复杂庞大,这会导致应用程序变得复杂。这种复杂性也会给应用程序的其他部分带来问题,这些问题不应该被忽视。
此外,当许多陷入困境的公司(如图1所示)计划迁移到微服务架构(如图2所示)时,他们通常会发现过渡期比他们希望或预期的更困难、更昂贵。因此,在迁移过程中,他们就放弃了。这导致他们是部分迁移的,而这种情况通常比开始时还要糟糕。
图1
图2
在迁移到微服务架构之前,请确保你了解未来要花费的成本、收益和挑战。你必须设定适当的期望才能使迁移成功,并在未来得到你理想中的应用程序。
作者:Lee Atchison,云计算和应用程序现代化领域公认的专家。Lee在产品开发、架构、扩展和现代化应用方面拥有超过三十年的经验,曾在 Amazon、Amazon Web Services (AWS)、New Relic等现代应用行业工作过。Lee最近的一本书是《Architing for Scale(O'Reilly Media)》。
原文网址:https://www.infoworld.com/article/3637016/why-you-should-use-a-microservice-architecture.html