在过去5年左右的时间里,微服务已经在开发者和更广泛的企业IT社区引起了大量的关注。看google trend,你会发现“微服务”一词在2014年开始流行,到2017年飙升,此后人气平平。这是一个熟悉的模式,有很多技术趋势——一个热门的概念,让整个行业陷入了狂热,但随着组织试图弄清楚如何实际实施它,这个概念就停滞不前了。但现在来看,一些迹象表明,我们正处于主流应用微服务的边缘。
20世纪20年代中期,API和基于SaaS的产品推动了微服务的最初采用浪潮,后一种因素产生了特别重大的影响,因为云原生应用程序天生就适合微服务。第一个阶段带来了几个明显的好处:第一,它提高了应用程序的可伸缩性和可靠性,第二,它提高了大型软件开发团队的生产力。然而,微服务在这段时间内并没有得到广泛的采用,一些团队只是浅尝辄止。
第二波微服务采用
第一波微服务采用的浪潮中取得了一些进展,但调试和维护通过微服务设计的应用程序仍然很困难。但这种情况开始改变,有以下几个原因。
一个关键的驱动因素是Kubernetes作为管理容器的事实选择。微服务是Kubernetes DNA的一部分——它是使用Kubernetes开发和部署应用程序的主要方法。此外,随着Kubernetes的兴起,许多其他技术参与者现在正在发布开源工具包和框架,这些工具包和框架可以解决微服务的挑战,并使得其他组织可以正确采用它们。例如,微软最近推出了开源Dapr项目,这是一个“可移植的、事件驱动的运行时,它使开发人员能够轻松地构建弹性的、基于微服务的无状态和有状态应用程序,这些应用程序运行在云端和边缘,并支持语言和开发人员框架的多样性。”
第二个驱动因素是,API和SaaS的发展趋势只会继续加速,这将推动更多的组织使用微服务。但还有其他一些重大转变也将成为影响因素。首先,应用程序和基础设施在云和边缘混合环境中的分布不断增加,这将进一步推动微服务的采用。混合云和边缘设置的高度分布式特性使它们天生适合使用微服务来开发和支持那里的应用程序,因为微服务的真正目的是替代单体应用程序架构。
第三,“真正的”多云的兴起也将带来更多微服务的采用。但真正的多云到底是什么意思呢?大多数大型企业目前都在利用多个云平台。但他们通常采用孤岛式的方法,即一个应用程序完全保存在一个云中,另一个应用程序则完全保存在另一个云中。真正的多云是在两个或多个云上传播单个应用程序,而该应用程序的组件A在一个平台上,组件B在另一个平台上。组织最终会意识到这种方法的好处,因为这样可以更好地利用每一个云的独特好处,提高应用程序的可用性,并提供合规性的好处。一旦组织开始接受真正的多云,他们就更容易接受微服务,而这些微服务将变得更有效。
微服务的好处、误解和障碍
微服务提供了一些好处,这些好处会产生重要的业务价值。如果使用得当,这种方法可以提高开发人员的工作效率和应用程序的弹性,同时减少服务时间。它使以较低的成本扩展服务和应用程序变得更容易,并且更容易采用更新的平台。最终,微服务使企业能够显著地实现应用程序的现代化,使最终用户和企业都成为最大的受益者。
不过,仍有一些误解需要解决。就像5~10年前公有云刚开始流行时一样,重要的是要明白微服务并不是万能的。虽然它提供了巨大的好处,但仍有一些挑战需要解决。
首先,使用微服务运维或首次发布应用程序并不一定容易。其次,微服务本身并不能简单地提高可伸缩性和可靠性。为了实现这些好处,组织必须拥有适当的系统、基础设施和流程。
我们正朝着微服务成为主流的方向发展。但要使这一切完全实现,必须解决几个障碍。
首先,我们需要更全面的开发人员培训。微服务为开发应用程序提供了一种全新的方式,如果没有适当的培训,开发人员就不可能填补这一空白。在此基础上,我们需要一个更简单、更可靠的微服务开发环境。当前的环境太复杂,很难学习。我们需要一个更简单的运维平台来进行大规模的微服务部署。
尽管存在这些障碍,但微服务的主流化正在开始。有不切实际的期望,也有挑战,所幸的是这些问题正开始得到解决。无论是大型供应商还是新兴初创企业,科技领袖们都在发布帮助转型的工具方面做得很好,今年将有更多的大公司推出开源项目。最终,微服务将大大改善应用程序,并使依赖它们的组织受益匪浅。
原文链接:
https://thenewstack.io/microservices-verge-on-mainstream-adoption-yet-challenges-remain/