The concept of using microservices to build an agile and more effective enterprise architecture is not new within government. Yet, how microservices interact with other technologies is still a source of confusion for those considering deployment of a microservices architecture.
Rob Tiberio- SoftwareAG, Middleware Technology Expert and Chief Architect- “demystifies microservices and explains the evolution from a Service-Oriented Architecture (SOA)” in a recent white paper– “Evolution of Microservices: Seven Features to Look for in a Microservices Stack.”
Tiberio shares the history of various architectures and eventual evolution of such into a microservices approach. Purporting microservices as a “culmination of several trends,” Tiberio explains that initially the preferred architecture was a monolithic architecture that, quite intentionally, contained all business functionality in one location written in the same coding language.
However, the challenge of a monolithic architecture is if any portion of the architecture needs an update, the devops team would have to make the update, and then redeploy the entire system. Additionally, with all of the source code housed in the same location, the base code can become expansive and complex. These challenges make updates more work intensive and slow the entire system and encompassed business functionalities.
Microservices solve these problems by “separating all of those pieces of functionality to run independently.”
Here are some of the primary advantages of microservices according to Tiberio:
• Each microservice deployment is aligned with a specific function.
• Each of those can then be individually scaled to its individual needs.
• Each of those can also be coded in the best possible coding language for the application’s function.
Despite these advantages, functioning within a dispersed architecture can present its own challenges, like determining which instances run which service and the eventual use of multiple coding languages spread out across instances. As a result, the architecture and its maintenance can become quite complex. Yet, deploying Docker container technology can isolate these instances by making use of kernel interfaces and enabling multiple instances to run on the same kernel, keeping them isolated from each other.
Given our connected environment, “[A]pplications today are built not for thousands of people but for millions of connected users, and that’s much of what is driving the move away from a monolithic approach.”
To learn more about how a Microservices Architecture can increase your agency’s agility and business functionality, click here.