For this blog I would like to touch on the topic of microservervice architecture and how it affects much of modern networking infrastructure today. For my source I have selected “Microservices Guide” by James Lewis and Martin Fowler (2014). This writing briefly discusses the applications, benefits, drawbacks, and advantages over a more traditional monolithic architecture style. I selected this resource specifically because it is related to the “Microservices Architecture” section in the course syllabus.
What is a “Microservice”?
A “Microservice” is small, independent piece of software that handles a single specific function within a larger application, this style of software design has become more popular recently over the past few years. Legacy software traditionally had a more monolithic design where all of the functions of the software was bundled into a single program, hence the term “Monolithic”.
Disadvantages
The biggest disadvantage that can be associated with transitioning to a microservice architecture style is the complexity associated. having multiple services to deal with can be a big hassle, especially when each of those services has its own log files, its own network connections, and its own API connections. This substantially more complex than just having to start a single piece of monolithic software.
Advantages
One of the biggest advantages of using microservices is the fact that you can deploy and manage each part of the software independently (i.e. you can restart the database or reverse proxy without bringing down the web server). Additionally microservice based software is much easier to scale than monolithic software. If a single component of the software stack needs more resources it can be easily scaled instead of unnecessarily allocating resources to the entire application.
How This Relates to Networking?
The topic of microservices stood out to me as I was able to easily relate it to the way modern network controllers function. Many cloud or on-prem network management platforms such as the “Cisco Meraki Dashboard”, or the “Cisco Catalyst Center” allow many functions to be managed completely independently of each other.
For example a microservice based network controller separates every function so it can be configured, disabled, and enabled separately. Some examples of these functions would be NetFlow, telemetry, general inventory tasks, software updates, client health analysis, LDAP integrations, Active Directory integration, MFA support, VLAN configurations, QoS policies, and SSID deployments to name a few.
By all of these functions being split into separate microservices it can be incredibly easy to completely disable or update each of them independently without bringing down the entire network like more traditional/legacy designs.
Overall I believe that networking has seen some of the most improvements from microservice software design out of all the affected fields. I personally get to apply these topics in my everyday life, both at work and at home (i.e. through Docker or hypervisor host software such as VMware). I hope to continue to apply these topics as my career progresses and I get to experience more.
Leave a Reply