Accelerating modernization through microservices
- By Rajiv Kadayam
- Mar 02, 2017
We live in a time when many federal IT systems aren’t able to keep pace with changing business needs and are quickly becoming obsolete. These legacy systems not only pose a critical threat to business continuity, they also carry a huge operation and maintenance burden.
Numerous agencies have embarked on modernization initiatives by adopting newer technologies and agile development practices. Yet several recent Government Accountability Office reports note that IT modernization investments are underperforming because of several factors, ranging from the improper application of technology to “big bang” approaches to implementation.
One viable approach to tackling such complex modernization efforts is microservices architecture (MSA), which brings together the appropriate agility, resilience and functional scalability needed to support continuous delivery of new and improved features and capabilities. Below, we explore the benefits of MSA and identify red flags that indicate agencies are better off avoiding it.
What are microservices?
Microservices are a collection of independently functional and deployable modules that communicate through loosely coupled, event-driven and non-blocking application programming interfaces. These individual modules are organized around well-defined business functions and collectively operate as a single cohesive application, such as an electronic filing system.
Key characteristics of a microservice are:
- Single and exclusive responsibility for performing one business function.
- Self-contained functionality that is testable as a module.
- Independently deployable and operates within its own process.
- Interaction with other microservices through light-weight, event-driven and non-blocking protocols.
What are the benefits to adopting MSA?
When implemented correctly, MSA can dramatically accelerate and simplify modernization of complex systems. MSA can also enable perpetual evolution of the organization’s IT assets by revealing new and innovative business models.
Key benefits include:
- Enables high-velocity delivery with the ability to continuously produce new features and capabilities at scale.
- Springboards the agency’s adoption of cloud and portable containerization technologies.
- Facilitates a natural transition to a DevOps model, eliminating the need for separate budgets and teams for development, maintenance and enhancement or operations and maintenance.
- Limits single points of failure via a horizontally scalable and distributed architecture.
When should microservices be avoided?
Microservices are not for every agency. It’s best to avoid MSA if an organization can’t commit to the following:
- Tolerance for some early failures.
- Training teams to develop microservices or possibly hiring competent MSA engineers.
- Using new and emerging technologies and development practices.
How do you break your current monolith application into microservices?
Software is best suited for incremental and iterative delivery, as opposed to releasing a completed product all at once. Therefore, development teams must chip away at the legacy monolithic application by incrementally refactoring and abstracting pieces of business functions into modular services -- all the while interoperating with the legacy application until its remnants are no longer visible. This approach, known as the strangler pattern, neatly aligns with MSA, agile development and delivery practice.
The future of federal systems using MSA
MSA offers federal agencies a pathway to get their long-running, under-performing modernization initiatives on the right track. Beyond accelerating development of high-performing modern applications, MSA can break the cyclical modernization pattern experienced by federal agencies every 10 or so years. It can facilitate continuous and perpetual evolution of applications and permanently shield them from becoming obsolete and costly.
Rajiv Kadayam is senior director of technology strategy at eGlobalTech.