Dec 01 2021

Microservices in the Federal Government Enable IT Modernization

Microservices architectures help agencies break apart applications and enable faster and more efficient updates.

Federal CIOs see plenty of opportunities to continue to modernize their IT infrastructure, especially legacy applications and systems. As they do so, microservices are likely going to play a larger role over the next several years.

Microservices are a way to construct applications via smaller, modular and loosely coupled pieces. These individual services or functions can be altered and updated without the entire app being updated, and changing one of them won’t break the entire app.

Instead of monolithic legacy applications that would need to be updated all at once and likely over a long period of time, microservices architecture enables federal agencies to update apps more quickly and in a more surgical way. Additionally, microservices provide more simplicity in the long run for managing large, complex solutions.

While microservices are still relatively new in the government compared with the private sector, IT leaders have been deploying them for several years now and see significant opportunities in the years ahead as agencies continue to modernize apps.

“Some of the older systems, even as modernization is going on, as you start breaking those apart, there’s a huge opportunity to build out the microservices,” Deputy Federal CIO Maria Roat tells FedTech. “Exactly what you’re talking about is to break those out into smaller modules that allow for reuse, not just within the agency but perhaps with other agencies.”

Click the banner below to get access to a customized content experience on emerging technology.

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.”

RELATED: What are the benefits of application modernization?

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.

EXPLORE: How can agencies update mission-critical IT without taking it offline?

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.

MORE FROM FEDTECH: What are the perils of not modernizing your applications?

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.

scyther5/Getty Images

Become an Insider

Unlock white papers, personalized recommendations and other premium content for an in-depth look at evolving IT