联系我们
 

采用微服务架构的7个理由

Please select some categories on More Settings section.
By

CI&T

自2011年首次问世以来,“微服务(Microservice)”一词在过去几年里广泛传播,在众多前瞻性的IT组织中掀起波澜。短短几年后,微服务即将成为主流。根据Nginx在2017年的一项调查显示,36%的企业调查正在使用微服务,另有26%处于研究阶段。但究竟什么是微服务架构,它是否适合您组织的文化、技能和需求?

什么是微服务?

作为面向服务体系结构(SOA)的一种变体,微服务是一种新的架构风格。在微服务架构中,应用程序被分解为松耦合的服务。通过细粒度服务和轻量级协议,微服务增强了模块化,使应用程序更易于开发、测试、部署、更改和维护。

毫无疑问,传统的单体应用(Monolithic applications)非常成功。但随着云中部署变得流行,越来越多的人感觉到不妥。只是想要变更应用程序的一小部分,单体架构就要求整个重新构建和部署。随着时间的推移,很难再保持一个好的模块化结构,使得一个模块的变更很难不影响到其它模块。扩展就需要整个应用程序的扩展,而不能进行部分扩展。

而通过微服务架构,您的代码将被分解为独立的服务,每个小服务运行在自己的进程中,并使用轻量级机制通信。这些服务可以独立部署和扩展,每个服务提供了一个坚实的模块边界,甚至不同的服务可以用不同的编程语言编写。它们可以被不同的团队管理。当需要变更应用程序的一小部分时,你只需要重新部署涉及到的服务就可以了。

沃尔玛加拿大公司在2012年将其软件架构重构为微服务,以处理每分钟600万次页面浏览量。通过这一转变,沃尔玛实现了转化率一夜之间大幅度增长。同时,停机时间也最小化,公司能够用更便宜的虚拟x86服务器取代昂贵的商品硬件,从而节省了20%到50%的整体成本。
即使您的组织不是沃尔玛或亚马逊的规模,微服务仍然可以提供巨大的价值。以下是您的组织在采用微服务后将能体会的一些优势。

弹性增强

通过微服务,您的整个应用程序被分散并分离为一个个充当独立实体的服务。单体架构中,代码故障会影响多个服务或功能,而微服务会将故障影响降至最低。即使多个系统因维护而关闭,您的用户也不会注意到它。

可扩展性提高

可伸缩性是微服务的关键优势。由于每个服务都是一个单独的组件,因此您可以单独扩展某个功能或服务,而无需扩展整个应用程序。可以通过在多个服务器上部署关键业务服务,以提高可用性和性能,而不会影响其他服务的性能。

工具选择灵活

使用微服务,您不必与单个供应商捆绑在一起。相反,您可以灵活选择不同的工具来完成正确的任务。每个服务都可以使用自己的语言、框架或辅助服务,同时仍然可以轻松地与应用程序中的其他服务进行通信。

更快的上市时间

由于微服务使用松散耦合的服务,您无需重写整个代码库就能添加或修改功能。通过较小规模的增量开发,我们可以独立测试和部署应用程序中的特定服务,从而更快地将应用程序和服务推向市场。

更易调试和维护

微服务还让调试和测试应用程序变得更轻松。通过较小模块的持续交付和测试过程,您提供的应用程序质量将大大提高。

提升ROI降低TCO

微服务还将帮助您优化资源。借助微服务,多个团队可以独立处理不同服务,使您能够更快地部署 - 并在需要时更轻松地进行调整。开发时间减少了,代码的可重用性也提高了。通过解耦,您不必在昂贵的机器上运行服务。基本的x86机器都可以。提高微服务的效率不仅可以降低基础设施成本,还可以最大限度地减少停机时间。

持续交付

在单体架构中,多个专职团队一起处理离散功能,如UI、数据库,服务器端逻辑和技术层。微服务中,则是跨职能团队通过持续交付模型处理应用程序的整个生命周期。当开发人员、操作人员和测试团队同时在单个服务上工作时,测试和调试变得简单而即时。通过这种增量开发方法,代码不断被开发、测试和部署,您也可以直接使用现有库中的代码。


CI&T

CI&T