During the Fall of 2017, we conducted a microservices survey with our Red Hat Middleware and Red Hat OpenShift customers. Here are eight interesting trends discerned by the results:
I. Microservices Are Being Used to Re-Architect Existing Applications as Much as for Brand New Projects
There seems to be a strong emphasis in the market by technology vendors for positioning microservices as being only for new projects. However, our survey reveals that organizations are also using microservices to re-architect existing and legacy applications.
Sixty-seven percent of Red Hat Middleware customers and 79 percent of Red Hat OpenShift customers indicated this. This data tells us that microservices offer value to users all along their IT transformation journey — whether they are just looking to update their current application portfolio or are gearing up new initiatives. So, if you are only focused on greenfield projects for microservices, it may be a good idea to also start evaluating your existing applications for a microservice re-architecture analysis. Microservices introduce a set of benefits that our customers have already started seeing, and they are applying these benefits not just to new projects but to existing ones as well.
II. Customers Prefer a Multi-Runtime/Multi-Technology/Multi-Framework Approach for Microservices
There is no single runtime, platform or framework that is the best for microservices. Customers are using the “right tool for the right task” and are not marrying themselves to a single technology, runtime or framework for microservices. In fact, 44 percent of Red Hat Middleware customers and 50 percent of Red Hat OpenShift customers believe in “using the right tool for the right task.”
In addition, eighty-seven percent of respondents indicated that they are using or considering multiple technologies for developing microservices.
So, if you are using a single runtime, technology or framework for microservice development, it may be wise to start looking at other runtimes, technologies and frameworks and select the one that is the best fit for the problem you are trying to solve. In other words, now is a good time to expand your single-technology approach to a multi-technology one.
III. Top Six Benefits Delivered by Microservices
Respondents identified many benefits that they were already receiving. The top six are:
- Continuous Integration (CI)/Continuous Deployment (CD)
- Improved scalability
- Faster time-to-market
- Higher developer productivity
- Easier debugging and maintenance
If you are hesitant about using microservices for new projects or re-architecting existing applications, wait no more. These benefits were the highest ranked by users and most importantly, these are benefits that are already being enjoyed from using microservices.
IV. Microservice Benefits Can Be Realized Within 2 to 12 Months
Thirty-three percent of respondents indicated that they realized benefits of microservices within two to six months and 34 percent of respondents within six to 12 months.
As shown by the survey results, customers can start reaping the benefits of microservices fairly fast. In order to stay competitive, there is no reason to stay on the sidelines when it comes to microservices.
V. Top Four Challenges When Implementing Microservices
Implementing microservices is not a panacea for all your problems. They come with their own challenges. The top four challenges that Red Hat respondents identified were:
- Corporate culture and organizational challenges
- Microservices management
- Diagnostics and monitoring
- Time and resources
Microservices development requires a shift in how software is developed. This can present a challenge for organizations that prefer the status-quo because they are familiar with current processes and procedures. Also, having to learn new runtimes, technologies, or frameworks may be challenging in organizations that do not want to invest in re-training their workforce in a technology that is different to their expertise. If re-training is not an option, finding resources in the market with the right experience and background on selected microservices technologies may be a challenge. Lastly, there are two technical challenges to microservices: Microservices management and Diagnostics and Monitoring. You should assess available solutions in the market that provide functionality to address these technical challenges. Microservices solutions are constantly evolving and adding functionality based on many of the latest innovative open source technologies.
VI. Top Four Activities to Overcome Challenges
Organizations are carrying out activities to address the challenges seen when implementing microservices. The top four activities that respondents identified to mitigate these challenges were:
- Developing/implementing in-house microservices tooling
- Working with vendor Subject Matter Experts/Using a vendor as a trusted advisor
- Purchasing or using a microservices platform/solution
Respondents indicated that they have been relying on vendors and vendor SMEs as their trusted advisors when it comes to microservices. In addition, many responded that a reorganization was a mitigating activity to get past the microservices challenges in relation to corporate culture. So, evaluate microservices solutions in the market and select the one that fits your requirements the best. If there are any gaps in the solution, implement those gaps in-house. Rely on vendors for guidance in adapting and implementing microservices. To spark change from your organization’s established processes, you may need to re-organize teams. Often times, introducing cultural change and reorganization is best done through an experiential approach via a labs-style engagement.
VII. An Application Server Can Be Used for Microservices
Along with technologies like Docker and Kubernetes, which illustrate the success of containers as a technology on which to implement microservices, 52 percent of Red Hat Middleware respondents are either using or considering Red Hat JBoss Enterprise Application Platform (JBoss EAP) for microservices.
As mentioned earlier, organizations are not applying microservices just for new projects but also for existing applications, many of which are written in Java EE using traditional application servers. But not all application servers are created equal. Many application servers in the market have not been modernized or re-designed to sustain the demands of cloud-native development. Red Hat JBoss Enterprise Application Platform is a modern, modular, lightweight and flexible application server that is being used or considered for microservices among Red Hat Middleware customers, who are very aware of its performance and memory optimizations.
If you have a workforce that has vast experience and expertise in Java EE and application servers, you can take advantage of their experience to develop microservices in a modern application server. In a multi-runtime/multi-technology/multi-framework microservices world, Java EE in the form of Red Hat JBoss Enterprise Application Platform, is a runtime in which you can develop microservices. In your selection of a multi-runtime microservices solution, make sure that it supports Java EE, among other runtimes.
VIII. Standards Are Still Important to Customers Developing Microservices
The top three reasons why Red Hat Middleware customers are using or considering to use Java EE for microservices are:
- Java EE is a standard.
- No need to re-train workforce.
- We trust Java EE to run production because it’s well established and enterprise-grade.
This indicates that Red Hat Middleware customers see the value of open source community-driven standards and specifications designed to run enterprise applications and with reliability, availability, scalability and performance (RASP) capabilities. So, if like Red Hat Middleware customers, you are using or considering Java EE as one of your runtimes for microservices, you are in good company.
How Can Red Hat Help You in Your Microservices Journey?
Red Hat OpenShift Application Runtimes is our modern, cloud-native set of application runtimes and frameworks with a guided developer experience for organizations that are moving beyond 3-tier architectures and embracing cloud-native application development. It consists of a curated set of frameworks and runtimes:
- Eclipse Vert.x for reactive programming
- WildFly Swarm / Eclipse MicroProfile – for assembling your project in a runnable jar using open source community-driven enterprise Java libraries for microservices
- Red Hat JBoss Enterprise Application Platform – for programming using Java EE
- Apache Tomcat – for web application programming
- Spring Boot – for assembling your project in a runnable jar using open source enterprise Java libraries
All these frameworks and runtimes are fully integrated into and optimized for Red Hat OpenShift. After a careful and minutious analysis of market and customers needs, Red Hat selected these runtimes for inclusion and integration into Red Hat OpenShift Application Runtimes. Red Hat may update or grow this set of curated runtimes as it continues to monitor market and customers needs. Red Hat OpenShift Application Runtimes also includes the concept of guided missions and boosters to accelerate the development of applications and microservices as well as a cloud-native developer experience through OpenShift.io.
If you need help getting started with your existing applications, Red Hat offers a free Application Modernization and Migration Discovery Workshop. And if you would like to transform your organizational culture, speed up your next application development project, and make DevOps a reality, we have our Open Innovation Labs to help you in this endeavor.
Lastly, our microservices Subject Matter Experts are always available for your consultation and to customers with paid Red Hat subscriptions.