微服务架构的增长价值

云计算提高了微服务作为构建和更新复杂应用程序的方式的知名度。 

 By 保罗·鲁本斯
Page of   |  返回第1页

亚马逊,Netflix,eBay和世界许多地方’大多数创新型公司都有一个共同点:它们在微服务架构上投入了很多精力。

实际上,’不只是这些接受微服务的互联网巨头: NGINX 发现到2020年底,有63%的企业使用或采用微服务架构,并且2020年使用微服务构建的应用程序的比例与2019年相比增加了20%。 

推动这一增长的最大动力,以及正在提高微服务架构价值的因素,是向云计算的转变:私有云,公共云和边缘网络云。这使得构建和频繁更新由容器中运行的多个微服务组成的复杂而健壮的应用程序变得切实可行。

另请阅读: 转变网络:从虚拟化到云化

什么是微服务?

通常,微服务是一个自包含的应用程序,它作为业务流程的一部分而严格限定范围。例如,微服务可以执行类似付款处理之类的事情,其思想是每个微服务都能很好地完成一件事情。 

微服务的关键特性之一是,它与其他微服务松散耦合,使用与语言无关的API进行通信,以重现以前由一小部分服务提供的功能。“traditional”整体应用。松散耦合意味着每个微服务都与任何其他微服务都没有依赖性。它们中的任何一个都可以更新或重新设计,而不会对其他任何微服务产生连锁影响。 

微服务的另一个关键特性是它是自包含的并且是自持的。实际上,这通常意味着它在具有自己的数据库或可能需要的其他组件的容器中运行。 

微服务架构的好处

基于容器的微服务体系结构具有一些强大的优势。这里’一个例子:可扩展性。可以轻松扩展容器中运行的微服务,而不必扩展整个应用程序。 

这里’另一个是:由于容器化,微服务架构也可以带来高度的弹性。那’s是因为微服务架构中存在固有的故障隔离—那又松散地耦合在一起的东西。如果微服务确实发生故障,则可以自动启动新容器中的新实例,这意味着应用程序停机时间可能太短而无法引起注意。 

当然,缩放和自动启动容器的功能需要高度的自动化编排。这里的好消息是,由于编排软件(例如Docker)的进步,这种方法变得越来越实用’Swarm,Apache Mesos,开源Kubernetes,以及围绕核心Kubernetes代码构建的许多编排产品。 

另请阅读: 了解企业数据结构的作用

微服务和软件开发

企业可能会发现许多其他原因,使微服务有价值。例如,它可以加速软件开发。在一定程度上’s,因为特定的微服务’的开发团队只需要了解正在使用的微服务—不是整个应用程序逻辑。这具有使开发人员提高生产率的副作用,使开发人员无需担心应用程序的其余部分即可处理当前的任务。 

微服务还可以使开发团队减少在会议和协调行动上的时间,从而提高他们的效率。一条经验法则是,微服务开发团队应该是亚马逊所说的“two pizza”团队,这意味着它们应该足够小,可以共享两个馅饼。

至少在理论上,使用微服务架构也可以更有效地进行软件开发。那’因为每个微服务都可以在最适合的语言和软件环境中开发。举例来说,这意味着.Net和Java可以轻松共存,前提是这将产生最佳结果。

而且由于微服务只做一件事,因此它们往往很小。这意味着要测试的代码相对较少。而且,由于它们之间是松散耦合的,因此,一旦测试了新版本的微服务,就可以将其放到生产环境中,而不必担心会破坏整个应用程序,这使开发人员’生活要容易得多。

据红杉资本合伙人马特·米勒(Matt Miller)称,采用微服务架构后,引入新功能后,企业的交付时间平均减少了75%。这使他们可以将软件发布的频率提高13倍。经常被引用的统计数据是,由于微服务,亚马逊平均每11.7秒发布一次新代码。 

寻找合适的人选

It’重要的是要记住,微服务架构是’一切的答案,更重要的是,微服务架构不是’本身没有潜在的弊端。特别是那里’如果太多的微服务长时间通信,则即使它们使用进程间通信协议(例如HTTP,AMQP或二进制协议(例如TCP))进行交互,也有可能导致网络拥塞或延迟。

It’也可能由于需要为单个应用程序维护多种语言和框架而引入过多的复杂性,以及管理由数百个或可能数千个服务组成的应用程序的复杂性。这种复杂性意味着可能会使用更多资源—考虑多个数据库—并生成更多日志。

尽管如此,在这个越来越多的公司正在向云或边缘计算环境迁移的世界中,使用容器和自动编排构建的微服务架构对于几乎所有规模的企业而言都将变得越来越有价值。 

接下来阅读: 假冒网络硬件的高昂成本

本文最初发表于2021年2月19日
通过网络更新新闻获取最新消息