随着全世界稳步迈向云计算,微服务意义重大。不像整体式应用程序,您可以将应用程序分解为可独立部署的不同服务,使不同的团队可以使用青睐的编程语言、工具和数据库等。因此,难怪一些调查发现多达84%的企业在拥抱微服务。
但是这没有告诉我们企业是否在微服务方面取得成功或如何取得成功。
为此,有必要探究一下O'Reilly新的微服务调查结果,它调查了其邮件列表上的1502多人。鉴于O'Reilly的群体往往比大多数人更精通技术(超过四分之一的受访者从事软件行业),这些结果很可能是表明微服务成功的主要指标,而不是表明当今市场所处的行情。即便如此,92%的受访者声称微服务方面至少“取得了一定的成功”,因此前景一片光明。
但是如何使前景更光明呢?这个问题涉及组织和容器。
豪赌微服务,取得成效
虽然仅10%的受访者表示微服务投入获得了“全面成功”,但约55%的受访者至少“大体上成功”。考虑到受访者供职于微服务有点成熟的公司,这也许不足为奇。约三分之一(28%)的受访者在其企业内使用微服务至少有三年,而超过五分之三(61%)的受访者使用微服务不少于一年。
因此,总的来说,受访者不是微服务新手。他们也没有退缩。报告声称,29%的受访者表示雇主在使用微服务迁移或实施大部分系统(超过50%)。考虑到将整体式应用程序分解成微服务所需的工作量,这表明成效很大。
对于微服务方面最成功的那些人来说,O'Reilly的数据揭示了什么?据撰写报告的Mike Loukides和Steve Swoyer声称,成功的关键归结为让开发团队掌控整个开发周期(即构建、测试、部署和维护)。在这个群体中,约49%的人在微服务方面“大体上成功”,另外的10%认为声称“全面成功”。
换句话说,掌控整个开发周期在微服务方面带来了回报。
但这不是全部真相,因为受访者中近75%的人供职于开发团队全面掌控开发周期的公司。同样鉴于O'Reilly邮件列表上的人普遍精通技术,应把这看成是行业的理想状态:更多的团队掌控整个开发周期,带来了更多的微服务成功案例。
容器方面的成功
容器是促使微服务成功的另一个重要因素。有趣的是,大多数受访者(58%)使用容器之外的方法为微服务创建实例。这么做有充分的理由(报告作者特别指出,有时,由于技术负担或其他因素,在虚拟机层面为微服务创建实例完全更容易/更快捷)。
但是对于那些确实走容器这条路的人来说,成功的可能性大得多。报告声称:“声称微服务方面成功的受访者中一半以上的人选择使用容器为微服务创建实例;反过来,称微服务项目“一点也不成功”的受访者中比例高得多的人并不使用容器为微服务创建实例。”举例说,声称微服务方面“全面成功”的人49%还使用容器为大多数微服务创建实例(75%-100%),这是基准的5倍。对于声称微服务项目“一点也不成功”的那些人而言,他们绝大多数声称几乎不将容器用于微服务,这是基准的11倍。
这个数字应该会减小,速度可能比我们预期的快得多。Diamanti首席执行官Tom Barton接受采访时估计,虽然目前容器的采用率为5%,但我们可能会在六年内接近100%的采用率,所用时间是虚拟机达到同样采用率的一半。原因何在?因为行业在Kubernetes等通用工具方面实现了准化。
如果您希望提高微服务方面的成功率,有必要让开发团队全面掌控开发流程,并使用容器。容器越来越像是稳妥的举措,但确保贵组织可充分利用容器。这是公司现在应做出的决策。
原文标题:How to get microservices right,作者:Matt Asay