Lightbend最近调查了2100个JVM(包括Java和Scala)开发者,进行了以下研究:
报告全文题为:“2016企业开发趋势:2100个JVM开发者的云、容器和微服务分析”,分析了从使用重量级J2EE服务器到微服务和轻量级容器来构建应用程序,这个变革背后的主要驱动力。 如下图所示,参与调查的开发者来自于不同的公司: 调查主要得出了以下三个发现:
当今的分布式服务都是为前所未有的大量数据而设计的,它们需要有更加弹性的、松耦合和可扩展的反应式系统。 这种向反应式系统演化的驱势可以从反应式宣言中找到答案:
频繁的发布周期在保持对连续的数据的需求方面起着关键作用。如报告中所说:
微服务与快速数据 现在的企业应用在设计之初就都会关注实时数据和流。微服务是一个在应用开发中较新的趋势,起源于面向服务的架构。如报告中所说:
C2B2的首席咨询顾问Matt Brasier去年末就微服务和SOA之间的争执发表过一篇博客:
Payara和C2B2的创建者和董事Steve Millidge声称:
除此之外,调查结果也表明企业中向微服务迁移呈增多趋势,如下图所示: 去年末大家已经预见到了这种微服务的增长趋势,今年早期InfoQ也讨论了这一点:“2016年将成为Java EE微服务之年”。 调查结果显示,如Apache Spark、Apache Kafka和Akka等为了满足持续数据的需求而设计的框架已经越来越受大家欢迎,如下图所示: 尽管微服务的增长趋势看着很有前途,在Lightbend的报告中却有一个关键点提到:
InfoQ讨论了从七个微服务反模式中学到的经验。OpenCredo的首席科学家Daniel Bryant谈到了微服务的七宗罪,以及如何避免它们。在这篇Basho博客上,Sean Kelly也谈到了一些关于微服务的错误见解,而大家还常常以它们作为迁移到微服务的指引。在OverOps博客中,Alex Zhitnitsky做了一次“对框架的彻底研究……来看明白它的实现,并了解它们到底是干什么的”。其中涉及到的框架有Java EE、Lightbend的Lagom、Pivotal的Spring Boot、Dropwizard和Spotify的Apollo。 轻量级容器 轻量级容器是构建的要素,因为开发者们“都对把容器当成可移植基础设施寄予了厚望,他们等这个已经等了很久了”。如下图所示,有30%的受访者对容器进行了实验,22%的受访者正把容器用于生产环境,还有22%的受访者在试用它们。 调查结果显示,大家主要关注的容器有Docker、Docker Swarm、Kubernetes和Marathon(一种Mesos和DC/OS的容器孵化平台),如下图所示: Docker有大概50家用户,包括ADP、PayPal、Uber、Lyft和Merck。Kubernetes有大概20家用户,包括SAP、Ancestry和eBay。 Lightbend的报告中有个关于容器的关键点提到:
InformationWeek的特约编辑Charles Babcock谈到了关于容器你必须知道的九方面内容。 结论 Lightbend的报告中还包括下面这些关键点: 在采用微服务和轻量级容器方面Scala开发者走在了Java开发者前面:
小公司(员工数不超过200)中的开发者比大公司的开发者在做技术决策方面有更大的影响力。 在实现IoT应用程序时容器可能是大家更喜欢的选择。 查看英文原文:Enterprise Development Trends 2016: A Survey of JVM Developers by Lightbend |