2020 Java Microservices Report
Our 2020 Java Microservices Report is based on findings from our 2020 Java developer productivity survey. The survey, which collected responses from almost 400 Java development professionals from around the globe, asked developers about the technologies they use, the performance of their applications, and more.
2020 Java Microservices Survey Results
In this segment of the report, we’ll look at the results of questions focused on microservices. We asked developers about which Java application architecture they use, what stage they’re at in microservices adoption, the challenges they face with microservices development, microservices code visibility, and their overall satisfaction with existing troubleshooting tools.
Java Application Architecture
Application architecture is one of the most determinant factors for which technologies developers use during development. And, with the majority of respondents now working on microservices-based applications, you can see that effect throughout our survey results. But it’s also important to note that the microservices revolution isn’t all the way complete.
While over 50% of respondents use microservices architecture for their main application, 28% are still working within a monolithic architecture, and 10% are working on SOA-based applications. Desktop, mobile, and serverless applications made up the rest, with 4%, 3%, and 1% of survey respondents reporting usage, respectively.
Java Microservices Adoption
In our survey, we found that over 63% of our survey respondents were either working in or actively transitioning to microservices. An additional 21% were actively talking about adopting microservices. Combined, that means 85% of survey respondents are either in microservices, or considering adoption, with only 15% not considering microservices for their application. But maybe the most surprising statistic of our survey is that 28% of respondents were working with fully microservice-based applications.
"We knew going into this survey that most developers would be developing in microservices — but it was surprising to see so many developers reporting fully-transitioned or completed microservices-based applications."
— Curtis Johnson, Senior Solutions Consultant at JRebel
Challenges With Microservices in Java
With the overwhelming adoption of microservices application architecture, there is no shortage of issues for developers. And, with the complex ways in which microservices can interact, it’s no surprise that performance issues were the number one issue for developers.
Our survey asked developers for their biggest challenge in microservices development, and provided the following categories:
- Setting up the development environment locally.
- Troubleshooting inter-service functionality issues.
- Troubleshooting inter-service performance issues.
- Scaling and monitoring in production.
- Performance of the distributed system.
- Other (please specify).
Combined, performance issues impacted developers the most — with over 62% of respondents reporting issues in either troubleshooting inter-service performance (29%) or performance of the overall distributed system (33%).
The next biggest issue was setting up the development environment locally, which garnered a 41% share of respondents. This isn’t a big surprise, as local deployment of distributed applications can be an intricate, difficult, and time intensive process.
Next, 38.85% of respondents found troubleshooting inter-service functionality issues to be their biggest issue. Another big complaint for developers was in scaling and monitoring during production. 29% of respondents listed these issues as their biggest challenge. While other respondents weighed in with individual complaints ranging from integration testing to executive buy-in, there were no statistically-significant complaints.
"Troubleshooting inter-service functionality can be a big time sink for developers. Not many tools can provide the level of insight needed to troubleshoot these issues efficiently."
— Curtis Johnson, Senior Solutions Consultant at JRebel
Java Microservices Visibility
For Java microservices developers, visibility can be a big issue. And, as we saw in the previous section, not knowing how code in one service can affect (or derail) code in another service can drive developers crazy. In this question, we asked respondents to rate their satisfaction with their insight into how their microservices work together as a system.
Not surprisingly, most respondents weren’t completely satisfied with their level of insight into how their microservices work together as a system. On average, respondents reported satisfaction at six out of ten stars, with only 6% reporting that they were very satisfied with their visibility into microservices interaction.
Troubleshooting Java Microservices
Our next question focused on how developers felt about the tools available to troubleshoot microservices applications.
The average developer rated their satisfaction with available tools at six out of ten stars, with only 6% of developers reporting they were very satisfied with available troubleshooting methods. In fact, more developers felt completely unsatisfied than very satisfied, with 7% reporting no satisfaction with available troubleshooting methods.
Java Microservices Report Summary
Whether it’s the technologies Java developers use, or the problems they experience during development, microservices undoubtedly impact the Java development process. With microservices as the new architecture status quo for developers, we expect these trends to continue.
View the Full 2020 Java Developer Report
Want to see the full 2020 Java developer survey results? You can click the links below to view individual segments or click the button below to download the pdf version of the report in its entirety.
- 2020 Java Developer Report Overview
- 2020 Trends in Java Development Webinar
- 2020 Java Technology Report