Breaking it down - why do microservices trump monoliths
If you are attempting to break into the cloud space, you are going to hear this term … A LOT - microservices.
Microservice has been the buzzword ever since tech giants such as Amazon and Netflix transformed the way their businesses operate under the hood. Microservices basically consist of independent units deployed within an architecture that communicate with each other by making well-defined API calls.
But what exactly are microservices, and how do they differ from monoliths, which run as a single code base application?
In this post, we will examine just why a decoupled architecture trumps a tightly-coupled one in just about every single way. We will also discuss how AWS microservices have elevated many companies to greater heights in the cloud.
Decoupling - breaking monoliths into microservices
Here is another term that will pop up frequently as you weave your way through the wide spectrum of AWS topics as you attempt to make sense of everything while studying for your AWS Cloud Practitioner, AWS Solutions Architect Associate, or AWS Developer Associate certification - decoupling.
Decoupling is when you break a monolithic architecture into microservices. A monolith is an application that is designed using tight-coupled components. Consider the legacy Amazon.com as an example - it was a monolithic e-commerce website that was made up of various functions but ran as a single application. This was a problem, especially for a booming business.
Imagine that it is Prime Day - one of Amazon’s busiest days of the year. Marketing has done its job in enhancing product visibility, vendors have been up to par stocking up fulfillment centers all over the country, and now it is the web application’s turn to carry out its duty. However, during the peak hours of the day, payments are not getting processed due to the sheer volume of orders that the application is rendering.
This poses a problematic scalability issue. Owing to its limitations as a monolith, Amazon would be forced to add compute power to its entire application in order to boost performance, instead of just scaling the transaction processing segment.
These days, however, its brilliantly designed microservices architecture allows Amazon to isolate the problem and focus scalability solely on the area that needs addressing - in this case, payment processing. Microservices dramatically reduce the blast radius, as opposed to monoliths, where a solitary problem is capable of taking down an entire system.
A microservice is a service-oriented architecture, which is broken into little moving parts that function independently of each other. This makes it easier not only to fix problems but also to update any part of a design that needs improvement.
AWS’ Most Complete Platform for Microservices
As one of the pioneers of IT architectural modernization by way of microservices, AWS prides itself on having the “Most Complete Platform for Microservices”. The fact that four (Facebook, Amazon, Apple, and Netflix) of the five FAANG companies use microservices on AWS is a testament to this audacious claim.
Below are some of the most popular AWS services leveraged by businesses to modernize their architectures.
Compute
Amazon Elastic Container Service (ECS)
AWS Lambda
Storage and Databases
Amazon Elasticache
Amazon S3
Amazon DynamoDB
Amazon Relational Database System (RDS)
Networking
Amazon API Gateway
Amazon Route 53
Elastic Load Balancing
Messaging
Amazon Simple Notification System (SNS)
Amazon Simple Queue System (SQS)
Logging and Monitoring
Amazon Cloudwatch
Amazon CloudTrail
AWS X-Ray
DevOps
Amazon Elastic Container Registry (ECR)
AWS Developer Tools