Until now, most Federal agencies built their computing architectures like the aging buildings that house most of their headquarters, as huge monolithic structures that are inefficient, require frequent maintenance, and are wholly inflexible. Now, companies like Red Hat are offering a new path using microservices technology, which takes huge application stacks and breaks them down into tiny, modular components that can expand or contract based on needs, eliminating waste while ensuring critical services are always available regardless of future usage spikes.
A microservice is an architectural style that structures an application as a collection of loosely coupled services, which implement business capabilities. Each module assists a specific business goal and uses simple language with a well-defined interface to communicate with other services. Because of the unique way it’s built, microservice architectures enable the continuous delivery and deployment of large, complex applications.
According to a recent Red Hat survey on the state of microservices, the architectural method is being used for both re-architecting existing applications and for brand new projects and initiatives. In the report, 69 percent of respondents indicated that they are using microservices for both new applications and for re-architecting existing ones, indicating that the development approach offers value to users throughout their IT transformations.
During the fall of 2017, Red Hat conducted a microservices survey with Red Hat JBoss Middleware and Red Hat OpenShift customers to discover how these customers are using microservices to their advantage, what they see as some of the major benefits, what challenges exist, how to overcome them, and how microservices can give respondents a competitive advantage.
The goal of a microservices-based infrastructure, simply put, is to deliver quality software –faster. Gone are the days of the development of large, monolithic applications that only continue to get bigger and more complex over time. If one component became broken, then the entire stack of applications would collapse. That won’t happen with microservices.
Before the advent of agile development design, and the concept of DevOps, software design teams developed monolithic applications–such as a benefits payment system on the civilian side or a warfighter application for defense–that could not be decomposed and broken up to share with other members of the development team, David Egts, chief technologist with Red Hat, explained.
If the process became resource-constrained or bottlenecks emerged from database, memory or network issues, the monolithic app couldn’t continue to grow. However, microservices let the developer “break up that monolith into a bunch of different pieces, like puzzle pieces, that are interconnected with each other,” Egts said.
“Instead of one big hulking team working on one big hulking application, you can have small teams working on different microservices and all they have to worry about is their service,” he noted.
The microservices architecture market includes both cloud-based and on-premise solutions. However, cloud-based microservices architectures provide scalability, cost efficiency and continuous availability needed by today’s government agencies and enterprise businesses. Plus, cloud-based platforms can automatically shift microservice containers to servers or vendor management systems when the software or hardware on which they are running fails.
Consider a business with an online sales tax calculation microservice that receives a lot of hits on Black Friday, the shopping day after Thanksgiving. As more buyers access the tax calculation service, the company can spin up more microservice containers to accommodate the surge in use, and after the event shrink down the number of containers servicing the sales tax calculator.
“When you think about that and map that to the cloud [you see] that makes microservices very amenable to the cloud because the cloud is all about elasticity,” Egts said. “I can spin up or shut down virtual machines and services very quickly by using the cloud as opposed to a monolith application.” In the past the only way to scale an application in a mainframe computer or a Unix server was to purchase a larger mainframe or server. However, agencies can now add microservices dynamically in the cloud and rapidly spin services up or down.
Using microservices is a means to an end, but there are other considerations to be considered. Breaking apps into microservices isn’t enough. IT and DevOps teams need to continuously manage the apps, orchestrate them, and deal with the data they create and modify, experts say. But once that is complete, the result is a very agile network of applications and services that agencies can spin up or take down instantly on demand in response to conditions and needs.
With microservices, no capacity is ever wasted, yet the microservice is always ready to expand when needed. This can help to keep agency budgets in check, without risk to any services they provide.