本文转载自微信公众号《电脑世界》,作者李艾奇逊。转载本文请联系电脑世界公众号。您可能处于拥有大量应用程序并且有大量客户使用这些应用程序的情况。最重要的是,您拥有庞大的产品目录,而且商店很大且功能丰富。一切看起来都很好。但除了这些,你还要面对很多问题。您的应用程序经常崩溃。当它坏了时,开发人员会即时修复它,他们会快速修复站点,但这需要花费大量时间和精力。想象一下,如果这种停机时间经常发生,一次持续数小时,您将损失多少业务?你的开发人员也想解决这个问题,他们有很多事情想做,比如他们一直想实现一些很棒的新功能。但是他们根本无法完成,因为修复bug和紧急救援消耗了他们太多的精力。您想雇用更多人,但没有这样做的预算。而且,你需要不断招募新人来取代那些离开的人。示例:员工Judy去了一家更大的科技公司,员工Joe离开了,因为他因处理太多深夜紧急情况而筋疲力尽。技术问题不仅会给您带来压力,也会给您的团队带来压力。它使您无路可走,并使您和您的公司陷入困境。您陷入了很多软件和非软件IT部门都陷入的陷阱。这些公司创建了可以处理所有事情的大型单体应用程序。但是这些应用程序变得太大太复杂而无法控制。没有人能够完全理解应用程序中发生的一切。那就是问题出现的时候,这些应用程序需要不断修复。您尝试添加新功能或改进现有功能,但更改的破坏性如此之大,以至于您无法在短时间内完成这些尝试,而当他们这样做时,它们很可能充满错误。因此,你的开发速度变得很慢,而且越来越慢。此时您尝试添加更多开发人员,但他们似乎并没有让事情进展得更快,而且新开发人员需要花费大量时间来学习。此时你感觉自己陷入了泥潭。其实困难是可以避免的。您可以根据公司的需要重建它们,而不是丢弃这些应用程序。不断增长的应用程序您可以从一个由一个人或一两个小型开发团队编写和管理的简单应用程序开始。如图1所示,该应用程序简单明了。图1:一个简单但不断增长的应用程序该应用程序会随着时间的推移而增长。由于该应用程序的成功,流量急剧增加,因此您开始添加新特性和功能,并雇用更多开发人员来开发该应用程序。很快,它将如图2所示。图2:复杂、停滞的应用程序现在,新问题出现了。没有人知道他们负责应用程序的哪些部分。团队1所做的更改将影响团队3。结果,每个人的压力都很大,生产率很低,并且错误在整个应用程序中蔓延。因此您的站点开始出现故障,但此时您可能认为故障是随机的。当出现问题时,您的团队很难找出问题所在,因为没有人能看到应用程序中发生的一切。这是您遇到的典型困难。您的独立开发团队并不是真正独立的,因为一个团队所做的更改会对其他团队的工作产生重大影响。你不能处理独立的项目,因为所有的项目都是交织在一起的。创新被扼杀,您的业务也是如此。微服务架构的价值现在让我们看一下图3。图3:基于微服务的应用程序在基于微服务的应用程序中,每个服务都独立于其他服务。每份份量较小,但体积较大。每个服务都有明确的关联,也有清晰规范的业务逻辑。更重要的是,每项服务都有一个所有者,一个开发团队负责每项服务的所有方面。干净的应用程序结构使所有权和责任更加清晰。简而言之,您的应用程序已扩展。而且,这种扩展并不意味着它可以支持更多的客户,而是支持更多的独立开发人员、项目和倡议,因此它可以支持和维护您不断增长的业务。开发团队之间没有交互,因此工作变得更加高效。而且,由于低级问题较少,他们会更快乐,并且可能会在公司待得更久。此外,您可以通过简单地重新平衡所有权责任来增加开发团队的数量来增加开发人员的数量。越来越多的开发人员变得更有效率,您可以在所有重要的业务项目上取得更好的进展,从而使您的业务发展得更好。如果出现问题,通过分析服务之间的交互,您可以更轻松地查明问题的根源以及应该由哪个团队负责修复。此外,由于每个团队的责任范围更小,他们对所负责服务的运行情况有更大的可见性,因此可以更快、更有效地解决问题。而且,因为他们对自己的领域有更好的了解,所以他们不太可能将错误引入系统。作者:LeeAtchison,公认的云计算和应用程序现代化专家。Lee在产品开发、架构、扩展和现代应用程序方面拥有超过30年的经验,曾在现代应用程序行业工作,例如Amazon、AmazonWebServices(AWS)、NewRelic等。Lee最近的一本书是?.原文网址:https://www.infoworld.com/article/3637016/why-you-should-use-a-microservice-architecture.html
