【编者按】本文介绍了迁移到微服务架构的5个准备步骤,包括微服务如何划分、微服务与组织结构的误解、组织结构如何划分以及一些问题微服务架构实现中需要尽早考虑的那些,值得大家参考。今天,与微服务相关的话题数不胜数,数以百计的会议、在线讨论和相关文章。你可以假设每个人都已经认识到它的优势和随之而来的风险。然而,许多组织在没有事先准备的情况下就加入了这一潮流。自然,这也导致了架构实现过程中的失败。一位智者曾说过:“任何技术应用到业务上,都有两个规律。一是将自动化应用到高效的运维中,以提高效率;二是将自动化应用到低效的操作中,操作会降低效率。”我认为这种哲学对微服务也适用。在您的组织没有为此做好准备的情况下进行迁移很可能会导致失败。以上是本文的出发点。在实施微服务架构之前,我将带您准备5个关键步骤。1、从一张图开始在开发具体的微服务时,很多开发者都会犯同样的错误:直接写代码。也许,这可能是您可能犯的最严重的错误。诚然,对于一项服务,您可能会成功,但随着服务数量的增加,一切都会变得一团糟。与任何其他产品一样,它需要以设计作为初始步骤来创建。将团队聚集在桌子旁,在纸上(或白板上)自由绘制服务。首先,找到您正在构建的应用程序的主要功能。然后从上到下分解成最小的单元。***,找出不同单元的互联性。这些功能将成为您的微服务。例如,在图书预览应用中,它的主要功能是比较不同的图书。然而,还有许多其他功能需要开发,例如创建用户配置文件、评级、评论、图书数据库等。识别每个功能是将它们变成微服务的关键。整个过程需要一天多的时间,需要多次迭代,直到***。当然,您将需要从许多不同部门的人员那里获得输入,以确保了解他们的观点和观点,并且您不会错过任何系统功能。2.微服务不是组织结构根据公司的组织结构来定义微服务似乎很自然。如果您正在构建单体应用程序,这可能确实是一个合适的解决方案。但是,在实施微服务架构时,这可能只是一个错误的决定。也许,这对销售部门或客户服务部门来说很好,但许多组织只有一个部门来处理所有数据库。因此,为所有数据库创建一个微服务会导致单点故障。而且没有单点故障,这是微服务的关键特性之一。您希望通过服务实现的某些功能可能跨越多个组织部门,或者您可能需要为一个部门构建许多微服务。总而言之,您需要将架构重点放在您要提供的服务上,而不是您公司的组织结构上。3、创建合适的组织结构过渡到完全不同的组织结构,以满足公司在控制活动中不断变化的需求。前两个步骤侧重于设计应用程序,以便它可以为最终用户提供正确的功能。现在是时候确保您为新架构提供适当的运营支持了。你将不得不放弃旧的部门结构,让团队专注于微服务。这意味着这些团队将由具有不同技能的成员组成,例如系统分析师、UX/UI设计师、后端工程师、前端工程师等。这样,团队可以完全掌控他们的项目(微服务)——从开发和部署到操作、监控和管理。反过来,由于团队觉得他们拥有产品,这会增加他们创造产品的动力。团队的规模取决于公司/项目的总人数;当然,根据专家的建议,理想的规模是8-10人一个团队。与单体架构不同,微服务架构使您能够随着业务的增长扩展您的团队。当然,所有团队都会(需要)积极配合,最终促成整个项目。这是这种结构的主要好处,使我们能够尽快将产品推向市场。4.性能和可靠性同样重要。切换到微服务架构的整个想法是创建一个比单体应用程序具有更好性能、更好稳定性(例如,更少停机时间)的最终产品。线风险),同时更快地推向市场。提高性能作为设计的一部分很重要,这将确保尽早考虑潜在问题。通常,(性能)问题源于设计时主要考虑功能的微服务。但是,如果在较大的服务下服务崩溃或变得非常慢,它就没有多大用处。每个服务都应该有2-3个回退机制,允许它在底层资源出现故障时继续运行。当其中一种机制未能在可接受的时间窗口内响应时,服务也需要快速切换。前期考虑到服务支持更大的负载变化,您的应用将能够应对实际挑战,您将引领市场。当然这也是你第一时间考虑转微服务的主要原因!5.忽略应用程序更改的提前更改是不切实际的。开发人员总是在添加和删除功能、更改代码、替换应用程序的核心元素等。在微服务应用程序中更是如此。更准确地说,微服务是不断进化的。当你每天需要处理多次代码升级时,最好接受一个观点:变化是连续的,而不是偶尔中断到一个稳定的状态。一旦你意识到这一点,你就会意识到从一开始就结合变化的灵活性需求的重要性。确保您的应用程序始终运行的一种方法是准备服务API,以便微服务即使发生变化也可以继续通信。此外,还需要引入版本控制,让服务同时暴露新旧接口。另一方面,数据存储的演进是一个更大的挑战。改进数据库模式(schema)以支持新功能历来是应用程序升级中最难的部分,而微服务不会让它变得更容易。但是,NoSQL数据库在添加新字段而不破坏现有结构方面更加灵活。如果您希望您的数据存储需求不断发展(谁不想呢?),那么您应该将可发展的数据存储作为您的微服务设计工作之一。当迁移到微服务架构时,我们可以同意适当的准备是整个项目成功的关键因素。只有精心准备,创新设计思维,并拥有正确的运营和管理结构,您才能充分享受微服务带来的好处!
