Is the Java EE stack losing relevance?
September 20, 2016
[Note: this article by Katharine on the Voxxed team appeared originally on Voxxed.com]
Lightbend (which you may know as Typesafe) released the results of a survey of 2,151 JVM developers last week.
The survey aimed to look at the correlations between development trends and IT infrastructure trends and how organisations are modernising applications. It also looked at how much emerging technologies are used in production.
Based on the results of the survey, Lightbend claim that the Java EE stack, built around heavyweight app servers, is losing relevance.
It looks like living, breathing microservices are evolving from the hype. Small, isolated services are rapidly making their way into production, with 30% of respondents running microservices in production and 20% ‘seriously piloting’. A further 25% are in the early proof of concept stages.
The survey also found a close correlation between microservices and ‘fast data’ adoption. Fast data refers to the ability to generate and analyse high volumes of data at incredible speeds. 35% of respondents running microservices also run Akka Streams in production. In terms of popularity, Kafka is the most widely used in production at 18%, and second and third are Akka Streams at 13% and Spark Streaming at 12%.
Developers are actively moving off Java EE application servers onto lightweight containers. According to Lightbend‘s Developer Advocate Markus Eisele:
“People are looking at containers as that great hope for infrastructure portability that they’ve been chasing for a long time.”
From being dangerously close to an unreachable ideal (running on laptops but not in production), containers have taken off. 22% of respondents are running containers in production. 22% are seriously piloting containers for production deployment. 30% are playing around with containers on local machines. Most container adopters are web-scale startups without the burden of legacy applications.
In terms of the type of containers, 37% of respondents are putting their faith in Docker Swarm. 18% are betting on on Google Kubernetes, and 14% on Mesos / Marathon or Mesosphere DC/OS.
The ‘Cloud-Native’ Agenda
Nearly a third (31%) of respondents are running most of their applications in the cloud. 29% are starting to create a Cloud-Native application strategy. More of the cloud-native adopters are Scala developers (with 42% running most applications in the cloud compared to 26% of Java developers). According to the findings, this could be because traditional Java applications on Java EE application servers were never intended to run in a distributed cloud environment.
Irrelevant Java EE stack?
Java EE 7 is supported by the Oracle Java Cloud Service. However Oracle knows that its current cloud solution is behind, announcing its cloud intentions for Java EE 8 in July.
Further announcements were made in the JavaOne keynote on Sunday: Java EE is changing. It is edging towards multitenancy, containerised deployments and cloud-centric development. These key features aren’t ready yet, and wont be close until 2017.
According to the survey results, however, we are edging towards a situation where applications are ready before the framework. Markus Eisele notes:
“One thing is for sure, the changing requirements put on today’s architectures can’t be easily meet by just creating new applications on old platforms.”
This forces organisations to decide: wait for Oracle, contribute, or adapt to something new.