What Are Microservices?
In the simplest terms, microservices break apart applications into exactly what the name implies: miniature services or functions within the application itself.
As IBM notes on its website, in a microservices architecture, “services typically have their own technology stack, inclusive of the database and data management model; communicate with one another over a combination of REST APIs, event streaming and message brokers; and are organized by business capability, with the line separating services often referred to as a bounded context.”
Further, as Red Hat notes on its site, “Each function is called a service, and can be built and deployed independently, meaning individual services can function (and fail) without negatively affecting the others.” Microservices help organizations “embrace the technology side of DevOps and make continuous integration and delivery (CI/CD) more seamless and achievable,” Red Hat adds.
Beyond the technical definitions, it’s important to note the many benefits of microservices for federal agencies. As IBM notes, microservices enable software code to be updated more easily, and “features or functionality can be added without touching the entire application.”
Additionally, different IT teams can use specific technology stacks and different programming languages for various components.
Microservices also make application development and modernization more efficient overall. “Components can be scaled independently of one another, reducing the waste and cost associated with having to scale entire applications because a single feature might be facing too much load,” IBM notes.
Microservices vs. Web APIs: What's the Difference?
While microservices and application programming interfaces are related, they are distinct elements of technology modernization.
APIs are programmatic hooks into an application that allow communication with other modules. As BMC notes in a company blog post, an API “is a method of communication between a requester and a host, most often accessible through an IP address.”
APIs, the post notes, can communicate different types of information, including data a user wants to share or a function. “In short, talk of a microservice has to do more with the software’s architecture, and the API has to do with how to expose the microservice to a consumer,” the post notes.
What Are Examples of Microservices in the Federal Government?
While microservices are still relatively nascent in the government, IT leaders see clear value in the approach, especially as agencies continue to deploy not just Software as a Service cloud applications but Platform as a Service apps as well. Microservices will allow agencies to adapt applications and bring in different functions as they see fit.
“As we’re building that construct and building out the microservices, it makes it easier to plug and play and put things in and out,” Roat says. “I think we’re going to see a lot more of that over time.”
Last fall, the Federal CIO Council started to explore where reusable technology and microservices could be funded in government. Meanwhile, agencies have been experimenting with microservices for years now.
Back in 2017, the Food and Drug Administration used microservices, via a cloud services provider, to create an infant formula tracking database in just months, from conception to deployment. “That’s a phenomenal accomplishment,” former FDA CIO Todd Simpson told Federal News Network at the time. “That’s the power of this process especially when you couple it with a cloud service provider whose job it is to do agile development within this microservices framework. The cloud services provider is part of our overall microservices strategy.”
The Department of Health and Human Services embraced microservices as part of the agency’s blockchain-based acquisition portal, HHS Accelerate. That enables other agencies to “use some of the portal’s top-level capabilities for their own acquisition work,” former HHS CIO Jose Arrieta said in 2019, according to GCN.
The Air Force has been using new software tools to enable containerized applications on legacy F-16 fighter jet hardware. The “application layer allows development teams to build easily reusable modular software or microservices leveraging hardened containers that can be used across teams,” Defense Systems reports.