[Session Report]Breaking monolith into microservices , while Developing with AWS #AWSSUMMIT INDIA Online 2023

2023.05.25

hello, This is Aayush. In this Blog i will Discuss 2nd Informative Session I attended at AWS Summit India Online on 25th May is about monolithic and Microservice Architecture, The Session is Very tight with Lots of Information

Session Details:

Speakers:Jyotisankar Behera(Technical Account Manager, AWS India) Rama Krishna Sanjeeva(Enterprise Solutions Architect, AWS India)

Session Level: 300 - Advanced

Discription:

Attend this session to understand how to migrate from monolithic architecture to microservices, and deploy using AWS services with different deployment patterns.

Agenda

  1. Why break Monolith to Microservice
  2. How to break a monolith to microservice
  3. Why to Deploy a microservice in AWS
  4. How to Deploy a microservice in AWS

Why break Monolith to Microservice

  1. Tracing and fixing defects is a big challenge if a big team is working on the same workspace. In a monolithic architecture, all of the code for an application is contained in a single codebase. This can make it difficult to track down and fix defects, especially if there are multiple developers working on the same codebase at the same time.

  2. Gets bigger and bigger with every release which makes software development iteration cycle longer. As a monolithic application grows, it becomes more complex and difficult to maintain. This can lead to longer development cycles and delays in releasing new features.

  3. Small change or fix in any module can take down the entire application. Because all of the code in a monolithic application is tightly coupled, a small change or fix in one module can have unintended consequences in other modules. This can lead to application crashes or other unexpected behavior.

  4. Scaling is challenging and has a limit as everything is tightly coupled and all resources are shared. Monolithic applications are not well-suited for scaling. As the number of users increases, the application can become slow and unresponsive. This is because all of the code and resources are shared, which can lead to bottlenecks.

  5. Makes it difficult to implement continuous integration/deployment. Continuous integration/deployment (CI/CD) is a practice that automates the process of building, testing, and deploying code. This can help to improve the speed and quality of software development. However, monolithic applications can make it difficult to implement CI/CD, as they are not well-suited for automated testing and deployment.

  6. Updating to new technology and new process is also impossible. Monolithic applications are difficult to update to new technologies and processes. This is because they are tightly coupled and all resources are shared. As a result, updating a monolithic application can be a complex and time-consuming process.

Microservices architecture attribute

1 Scalability: The ability of a system to increase its capacity to handle a growing amount of work. Decentralized governance: A system of governance in which power is not concentrated in a single authority, but is distributed among multiple entities.

2.Resilience: The ability of a system to withstand and recover from disruptions.

3.Availability: The ability of a system to be up and running and accessible to users.

4.CI/CD through DevOps: A set of practices that automates the process of building, testing, and deploying software.

3.Failure isolation: The ability to isolate failures to individual components or systems, so that they do not affect the rest of the system.

4.Auto provisioning: The ability to automatically provision resources, such as servers, storage, and networking, as needed.

5.Independent autonomous: The ability of a system to operate independently and autonomously, without the need for human intervention.

How to break a monolith to microservice

In the session, we learned about different microservice patterns.

Database patterns

Integration pattern

saga design pattern

to manage distributed transactions in microservices architectures. It is a sequence of local transactions that are coordinated by a central coordinator. Each local transaction updates the database and publishes a message or event to trigger the next transaction step. If a step fails, the saga executes compensating transactions that counteract the preceding transactions.

observability patterns

cross-cutting concern patterns

How to Deploy a microservice in AWS

  1. Using Servers

  1. Using containers

  1. Usinge Serverless

Integration patterns

Synchronous

Asynchronous

At the End

The session was very informative, if any company is facing the challenge of using monolithic architecture, this session is well explained for them as it explains different patterns and AWS services that are used to facilitate such patterns.