Cloud-Native Microservices Evolves to AWS Serverless Event-driven Architectures

In this article, we are going to discuss about How Cloud-Native Microservices Evolves to AWS Serverless Event-driven Architectures when developing Serverless E-Commerce application.

Serverless Event-driven E-commerce Microservices Architecture

At the end of the article we will be design the Reference Architecture above which is a Real-world Serverless E-commerce application.

Step by Step Design AWS Architectures w/ Course

I have just published a new course — AWS Serverless Microservices with Patterns & Best Practices.

In this course, we’re going to learn how to Design and Develop AWS Serverless Event-driven Microservices with using AWS Lambda, AWS DynamoDB, AWS API Gateway, AWS EventBridge, AWS SQS, AWS CDK for IaCInfrastructure as Code tool and AWS CloudWatch for monitoring.

Source Code

Get the Source Code from Serverless Microservices GitHub — Clone or fork this repository, if you like don’t forget the star. If you find or ask anything you can directly open issue on repository.

Mapping Microservice Architecture with AWS Serverless Services

We are going to map Microservice Architecture with AWS Serverless Services for Microservice Developments.

I will show you Cloud-Native and Serverless E-Commerce Microservice Architectures after that we will compare and map the services from traditional Cloud-Native to Serverless services.

Traditional Cloud-Native E-Commerce Microservice Architecture

Cloud-native is an industry-wide methodology that enables companies to rapidly develop and deploy applications with more flexible scaling options
by taking full advantage of the power of cloud computing.

Cloud-native applications are microservices-oriented, containerized, and dynamically orchestrated to optimize the use of resources. We are following the twelve-factor application methodology. when designing cloud-native applications.

Here you can find the overall picture of Traditional Cloud-Native E-Commerce Microservice Architecture;

https://github.com/aspnetrun/run-aspnetcore-microservices

As you can see that we have API Gateways, Microservices, Databases and Messaging queues.

So these are developed in Cloud-Native environments;

  • Developing with application development frameworks like Java Spring Boot or .Net
  • Containerize by Docker Containers
  • Container orchestrate with Kubernetes and deployed to Kubernetes
  • and IaC by Terraform or any Cloud-Native infrastructure developing tool.

So lets examine and look at the architecture with detailed;

  • We have custom API Gateways, these are developed by libraries like Ocelot, Kong and so on.
  • We have microservices which's are developed with application development frameworks like Java Spring Boot or .NET.
  • We have different databases both relational and No-SQL key-value pair or document databases using MongoDB, Redis, Postgres and SQL Server.
  • We have message broker system which is RabbitMQ or Kafka in order to provide asynchronous communication between microservices.
  • We have Elastic search + Logstash + Kibana for centralized logging and monitoring.

All these services are containerize by docker containers, container orchestrate with Kubernetes and deployed to Kubernetes and IaC by Terraform or any Cloud-Native infrastructure developing tool.

So let’s develop our enterprise E-Commerce application with fully Serverless Event-driven Microservices Architecture.

AWS Serverless Microservices for Ecommerce Application Architecture

If we design the same architecture with the AWS Serverless services
you can find Serverless E-Commerce Microservice Architecture.

Here you can find the main overall Serverless Architecture for our application. This is the big picture of what we are going to develop together for AWS Serverless E-commerce Event-driven Microservices application that is Step by Step Implementation together.

Serverless Event-driven E-commerce Microservices Architecture

We will be following the reference architecture above which is a real-world Serverless E-commerce application and it includes;

  • REST API and CRUD endpoints with using AWS Lambda, API Gateway
  • Data persistence with using AWS DynamoDB
  • Decouple microservices with events using AWS EventBridge
  • Message Queues for cross-service communication using AWS SQS
  • Cloud stack development with IaC using AWS CloudFormation CDK

So that means, it is developed in fully Serverless environment with developing using AWS Lambda, No Deployment Requirement and IaC by AWS CDK CloudFormation.

Mapping Microservice Architecture with AWS Serverless Services

Now we can map Cloud-Native components with the AWS Serverless Services when designing our E-Commerce application.

1- API Gateway with AWS API Gateway
2- Microservices developed with AWS Lambda
3- Databases are No-SQL DynamoDB that can be key-value pair or document databases
4- Message broker system which is Amazon EventBridge Eventbus
5- Amazon CloudWatch for centralized logging and monitoring
6- By default automatic scalability and high availability.

Step by Step Design AWS Architectures w/ Course

I have just published a new course — AWS Serverless Microservices with Patterns & Best Practices.

In this course, we’re going to learn how to Design and Develop AWS Serverless Event-driven Microservices with using AWS Lambda, AWS DynamoDB, AWS API Gateway, AWS EventBridge, AWS SQS, AWS CDK for IaCInfrastructure as Code tool and AWS CloudWatch for monitoring.

Source Code

Get the Source Code from Serverless Microservices GitHub — Clone or fork this repository, if you like don’t forget the star. If you find or ask anything you can directly open issue on repository.

--

--

Mehmet Ozkaya
AWS Serverless Microservices with Patterns & Best Practices

Software Architect | Udemy Instructor | AWS Community Builder | Cloud-Native and Serverless Event-driven Microservices https://github.com/mehmetozkaya