In the previous blog, I presented different tools and compared them to certain attributes for Development and Testing. In this blog, I will be covering Containerization, Monitoring and Load Balancer
Without containerization concept, it is difficult to imagine the grand success of Microservices. Containerization allowed apps or services to be small and use part of machine resource and Microservices exploited this concept to the best.
If we look from a general perspective, Kubernetes definitely is the clear winner when compared to Docker Swarm. Many public cloud systems brought in their own containerization system, as example Amazon ECS. These public clouds are giving decent competition to Kubernetes but they will bind your application to that specific cloud.
Monitoring is not a new term for software systems. However, Microservices brought in certain additional challenges that need to be tackled. Many existing monitoring platforms upgraded their systems to support Microservices, brought in new variants/versions specifically to support the Microservices. During this time, some new monitoring platforms are also evolved which are primarily targeted to take care of Microservices. Here I tried to compare some old and new platforms.
Dynatrace is the popular platform for Monitoring and they do have support for Microservices. It was initially built for monolithic systems, later upgraded/modified to support Microservices. However, Instana is built by keeping Microservices in perspective, it’s stream based data push appears to be definitely an advantage for Microservices.
Many monolithic applications used Load Balancers to funnel the load to different machines i.e. instances of Monolithic application. Microservices also use similar concept, however complexity increases here because of auto scaling and containerization. Load balancer for Microservices must act quickly for dynamic changes that happens in Microservices environment.
I excluded Amazon ELB while recommendation as it binds your application to AWS. If you already decided to use certain cloud, then I would recommend to use Load Balancer specific to that cloud. In case, you want your application to be cloud agnostic then Ribbon will be a safe choice.
In this blog, we have covered tools and their comparison for Containerization, Monitoring, and Load Balancer. I hope now you became familiar with some of tools that are available in the some of the core building blocks of Microservices and have knowledge to make a better decision on which tool to use for a given need.
In the next blog, I will be covering Service Discovery, Auto Scaling and Interservice communication.