This is part 2 of the RX-M Cloud Native Short Take on Microservices. In part 1, industry expert Jerry Lozano discussed what microservices are and how they are built. In part 2, Jerry discusses the pros and cons of using microservices.
Video Transcript
Welcome to part 2 of our Cloud Native Short Take on microservices. In part 1 we talked about what a microservice is, how they’re built, and how they couple. In part 2 we’ll talk about the pros and cons of using microservices.
To begin with it should be clear that building microservices is a much faster proposition than trying to build the entire application all at once. We can deliver software and pieces of that software faster than we ever could since all we have to do is implement one responsibility. Perhaps the best benefit of building with microservices is that we can scale our application to meet almost any demand, any load, by simply replicating the microservice(s). In part one we talked about a “payment” microservice; a microservice that would authorize a credit card charge. Well what if our application needs to process 2,000 cards within five seconds? The way we’re going to do that is to replicate that microservice. We’ll spin up as many hundreds if not thousands–as many as we need–payment microservice containers to handle the load. When the demand is no longer needed we can scale down. So we adapt our scale to meet what’s needed at the time.
We can also incorporate new technologies by just replacing this one very small microservice without affecting the rest of the application. We can align these microservices to the organization; our payment microservice can be aided by the people that understand how payments are processed at our company. We can respond faster to changes that Mastercard or VISA might demand of us to get a payment authorized and we have the opportunity to reuse these components in other applications.
However perhaps the the most important one for us with microservices is resiliency: robustness of the application. If you have 50 payment microservices running and one of them fails for whatever reason that’s a small impact to the availability of the application. It will likely go unnoticed and so the application stays up and running.
So although these are good benefits of microservices we should go into this with our eyes open. There are now going to be a lot more containers–a lot more processes–to worry about and manage. That’s why we’re forced to rely upon orchestration software such as Kubernetes. We understand that all of these microservices will need to interconnect. Our networking load and demands will be greater. Fortunately we live in a world where network technology and availability (bandwidth) is readily available in the cloud and in modern data centers. So we can live with the increased demand on networking. And of course not every application is well designed for microservices; the more complex the application the more sense it makes to go to microservices but the opposite is also true.
So we hope you’ve enjoyed this short take on microservices. Hopefully you get to see what they are: an architectural pattern to develop software. They help us out with scalability and resiliency, but we should go into this with our eyes open, understanding that not every problem is well suited for an MSA architecture.
Microservices is just one of many Cloud native and Kubernetes modules from RX-M. Visit RX-M.com and select “Extensive Cloud Computing Course List” listing under the Training menu to better understand the vast training options offered by our RX-M team. Look for microservices part 1 on our YouTube channel where you can subscribe for more content from our team, thank you.