Building Scalable Applications and Microservices on AWS.
How is AWS helping to build microservices architecture to solve the new age problem?
In today’s age, the world is moving to faster development and scalable approach.🌩️
What is microservices?
Microservices architectures are not a completely new approach to software engineering, but rather a combination of various successful and proven concepts such as:
• Agile software development
• Service-oriented architectures
• API-first design
• Continuous Integration/Continuous Delivery (CI/CD)
Microservices architectures make applications easier to scale and faster to develop, enabling innovation and accelerating time-to-market for new features.
Monolithic vs. Microservices Architecture
This is important to understand why we microservices architecture.
With Monolithic architectures, all the processes are tightly bonded and it runs as a single service. Suppose you have an application and suddenly one of the processes of the application experiences spikes in demand and this makes your application slow response to requests. If you want to solve this issue you have to scale the entire architecture. Adding and improving the monolithic application’s feature becomes more complex as the code base grows. This process results in a limitation of experimentation and makes it difficult to implement new ideas. Monolithic architectures add risk for application availability because many dependent and tightly coupled processes increase the impact of single process failure.
Microservices Architecture 🖥🖥🖥
With a microservices architecture, an application is built as independent components that run each application process as a service. These services communicate via a well-defined interface using lightweight APIs. Services are built for business capabilities and each service performs a single function. Because they are independently run, each service can be updated, deployed, and scaled to meet the demand for specific functions of an application. Consider if you have one service and suddenly one service spike in demand at that time you can simply scale only that service.
There are much more interesting to know more characteristics and benefits of microservices. Recommended to this article.
The Most Complete Platform for Microservices ❤️
AWS has integrated building blocks that support any application architecture, regardless of scale, load, or complexity
Containers on AWS
Amazon Elastic Container Service
The most secure, reliable, and scalable way to run containers. AWS is the #1 place for you to run containers and 80% of all containers in the cloud run on AWS. Customers such as Samsung, Expedia, KPMG, GoDaddy, and Snap choose to run their containers on AWS because of our security, reliability, and scalability.
Using the ECS service of AWS can run containerized applications or build microservices. Containers provide process isolation that makes it easy to break apart and run applications as independent components called microservices.
AWS Lambda lets you run code without provisioning or managing servers. Just upload your code and Lambda manages everything that is required to run and scale your code with high availability.
Check how you can create a simple microservice using Lambda and API Gateway here.
AWS App Mesh
AWS App Mesh makes it easy to monitor and control microservices running on AWS. App Mesh standardizes how your microservices communicate, giving you end-to-end visibility, and helping to ensure high-availability for your applications.
Amazon EKS is a managed service that makes it easy for you to run Kubernetes on AWS without needing to operate your own Kubernetes cluster.
There are many more services useful to implement a microservices architecture.
AWS is the most complete platform for microservices. AWS offers many services for computing, storage and database, Networking, messaging, logging, and monitoring, DevOps.
Now let’s get into some real and success stories to know how they implement microservices on AWS.
AWS Success Stories
Coursera is an educational technology company with a mission to provide universal access to the world’s best curricula.
What challenges do they face?
- Coursera had a large monolithic application for processing batch jobs that were difficult to run, deploy, and scale.
- A new thread was created whenever a new job needed to be completed, and each job took up different amounts of memory and CPU, continually creating inefficiencies.
- A lack of resource isolation allowed memory-limit errors to bring down the entire application.
- The infrastructure engineering team attempted to move to a microservices architecture using Docker containers, but they ran into problems as they tried to use Apache Mesos to manage the cluster and containers — Mesos was complicated to set up and Coursera didn’t have the expertise or time required to manage a Mesos cluster.
How they used AWS?
- They used Docker containers on Amazon EC2 Container Service(ECS) which enables Coursera to easily move to a microservices-based architecture.
- Each job is created as a container and Amazon ECS schedules the container across the Amazon EC2 instance cluster.
- Amazon ECS handles all the cluster management and container orchestration, and containers provide the necessary resource isolation.
What are the benefits?
- Launched a prototype in less than two months
- Reduced time to deploy software changes from hours to minutes
- Reduced engineering time spent installing software and maintaining clusters
Read more about the Coursera case study(here).
Using AWS, Brainly eliminates outages and reduces virtual server costs by 60 percent. Brainly is a peer-to-peer learning community and educational technology company. The Brainly platform runs on Amazon EC2 Reserved Instances and Spot Instances, with Amazon ElastiCache providing caching services, while Amazon Elastic Kubernetes Service orchestrates microservices containers.
Benefits of AWS
- Eliminates outages
- Reduces virtual server costs by 60 percent
- Avoids the cost of building cloud expertise
- Increases speed of orchestration services 2–3 times
- Keeps IT team down to four people
- Enables continuous innovation
Bridestory uses microservices and moved from monolithic architecture.
Same Architecture, Different Brand
The new microservices architecture has transformed operations. Hanafi reports, “Since the end of 2018, we have been hitting our metrics. Previously, we were averaging three weeks to launch one big feature, whereas now our developers are empowered to conduct small releases daily, with less than a 1 percent failure rate.” The company has also launched a new app called Parentstory using its containerized infrastructure. “Isolation is the key to our new multi-tenancy microservices model,” he explains. “We are constantly exploring with AWS architects how we can use the same architecture with the same source code, but with a totally different brand, different customers, and different database.” With this “recycled” approach, the team was able to launch the Parentstory app nearly three times faster than Bridestory.
Today, a new generation of companies is navigating a journey to AWS, and those companies have a very different set of challenges to overcome. They are not the same challenges faced by the first wave of born-in-the-cloud AWS users, but they are surmountable and are being continually addressed so that companies can reap the benefits of the cloud.
I hope you find this article informative and useful.
I would like to connect and learn your thoughts on the New Age of Cloud Computing and many more…
Connect with me on LinkedIn.
If you find this informative and helpful... Don’t forget to👏👏 .