使用微服务构建现代应用程序

微服务已经开始占领现代企业的方方面面。
 
在一项针对350多位高级开发者的调查1中,有91%的人表示他们当前正在使用或计划使用微服务,而92%的人表示他们在去年增加了微服务的数量。
 
这种增长与企业大幅提高软件和应用开发的敏捷性的急迫需求密切相关,也是数据的数量和类型增加所带来的当务之急。
 
 

 
微服务势在必行
 
从历史上看,企业开发软件时通常采用单体架构,将所有业务逻辑打包到单个基于底层关系型数据库的进程中。对于没有扩展性要求的小型应用程序,这种方法可能仍然是完美的选择。
 
但是,当数据增长并且需要扩展应用程序时,这种单体式应用程序通常需要重新构建和重新部署,其过程可能需要数周的时间。
 
每次需要更新程序时,开发人员每次都不得不把时间精力浪费在几乎重造整个车轮,而非简单地更新原有程序的某一组件。
 
这当然不是最有效的方式,特别是对于需要高可用、可扩展的软件解决方案的大型企业而言。
 
By Berin Holy @ Dribbble.com
 

什么是微服务?
 
根据《福布斯》杂志的定义2:“微服务是业务驱动的、针对服务的应用程序。它们可以横跨公有云和私有云,并在保证高性能和高可用的前提下快速且廉价地进行扩展。”
 
例如,电子商务公司可能会创建一个包含了订单下达和付款处理两个微服务的应用,以便客户能够轻松地在线购物。
 
 
微服务的核心是使开发人员能够独立部署和升级单个软件组件。微服务架构(MSA)中的每个服务都是“为失败而设计的”——这意味着当其中一个服务出现故障时,应用程序的其它部分仍将按设计正常运行。
 
总之,由于使用了微服务,工程师在进行应用程序的局部调整时不必每次都要改动整个代码库(code base),因而发布更新变得容易得多。
 
 

 
微服务带来的挑战
 
尽管好处很多,微服务也带来了一些挑战:
  • 基于微服务架构(MSA)的应用程序是分布式的。不同的服务之间通过网络进行交流。因此,MSA作为解决方案需要一种新的通信模型来确保跨地域的低延迟,甚至是在事务一直扩展的情况下。
  • 对于要求高可用的企业来说是不能容忍故障的。因此,开发人员必须确保应用程序内的每个微服务都可以快速解决故障。否则效率会下降,用户体验也会随之崩溃。
  • 由于微服务中的每个服务都是独立运行的,这意味着MSA需要去中心化的数据管理机制。单体应用程序通常共享单一数据层(通常是传统的关系型数据管理系统RDBMS)。然而每个微服务都需要有自己独立的数据持久化机制。需要从其它微服务获取数据的微服务,必须只能通过API层访问这些数据。
 
试想一下在一个MSA解决方案中,用户需要通过多模型查询语句从自几个不同的微服务获取数据。这样的操作不仅需要快速方便,而且每个服务的数据都需要保持一致。这些都不是容易解决的问题。
 
然而,一旦建立了DataStax设计的敏捷的企业数据层,开发人员就可以依赖一个具有数据最终一致性的模型,这确保了无论用户身在何处,始终可以访问当前的完整数据。
 
By Berin Holy @ Dribbble.com
 

使用微服务构建现代应用程序
 
虽然微服务可以帮助我们构建更强大的应用程序,但我们不能期望将几个微服务拼凑一起就可以得到出色的最终产品。相反,我们需要了解这种现代软件开发方法对数据管理提出的特殊要求。
 
毕竟,我们的终极目标应该是构建具有高可用和高伸缩性的高性能应用程序。如果我们在开始时不考虑数据管理的架构,仅仅使用微服务构建应用程序将无法让我们实现这样的终极目标。
 
这就像不事先研究地形就在湿地或沼泽之上建造巨大的豪宅,迟早会遇到严重的问题。当这栋豪宅问题百出时,业主将不得不对其进行重建。
 
因此,在使用微服务之前,请考虑以下几点:
  • 哪个数据库将作为应用程序的基础,并且该数据库的功能是否足够强大以满足应用程序扩展的需求?
  • 随着采用率的提高,需要存储多少数据以及用户需要多长时间才能检索到这些数据?
  • 需要采取哪些安全措施(例如身份验证、访问控制和加密)以确保数据隐私得到保护,并且确保应用符合内部政策和外部法规(例如GDPR—欧盟的《通用数据保护条例》)?
  • 即使用户处于全球各地,应用程序如何保证每个人看到相同的数据(假设有此要求)?
  • 根据服务等级协议(SLA),在流量高峰期间,全球各地的用户都能多快地访问到数据?
  • 当今众多领军企业都在使用微服务是有原因的:微服务能使企业最终达到构建更强大、更灵活的应用程序的目标。
By Berin Holy @ Dribbble.com
 
提前规划,清楚了解最终应用交付时微服务之间协同工作的方式,并配置确保即使在高峰时段数据也能在应用中无缝移动的架构——这样,企业就可以打造变革性的工具,帮助员工提高工作效率,并为用户提供更强大的体验。
 
 
References:
  1. GlobeNewswire: New Research Reveals Record Growth in Microservices Is Disrupting the Operational Landscape https://www.globenewswire.com/news-release/2018/05/02/1494613/0/en/New-Research-Reveals-Record-Growth-in-Microservices-Is-Disrupting-the-Operational-Landscape.html
  2. Forbes: Enabling The Enterprise Shift To Microservices https://www.forbes.com/sites/forbestechcouncil/2018/12/10/enabling-the-enterprise-shift-to-microservices/#57694d6d59e1
原文地址:https://www.cnblogs.com/datastax/p/14161966.html