End to End DevOps Implementation on an E-Commerce project
In today’s fast-paced tech landscape, theoretical knowledge of DevOps tools is no longer enough—real-world, hands-on experience is what sets professionals apart. Whether you’re a beginner eager to break into DevOps or an experienced engineer looking to fill in practical gaps, this comprehensive course delivers the full DevOps journey through a real-time E-Commerce microservices project deployed on AWS.
This blog introduces a hands-on, end-to-end DevOps implementation that mirrors the kind of complex, cloud-native architecture used in production environments. You’ll learn how to architect, containerize, deploy, and automate a full-stack microservices-based e-commerce application using popular DevOps tools and services.
From setting up your AWS environment and managing infrastructure with Terraform, to deploying containers on Kubernetes, setting up CI/CD with GitHub Actions and Argo CD, and finally taking your app live with custom domain and Ingress, this project is designed to simulate real-world DevOps challenges and solutions.
Note that most probably during the project implementation, you will face an issues that you will need to solve by yourself. Use the official documentation, Google, Stack Overflow, or ChatGPT to search for the solution. It’s a part of the learning process and imitates real-life DevOps challenges. The ability to find the necessary information is one of the most important skills for a DevOps engineer.
What You’ll Gain:
- Real-world DevOps project experience with multi microservice architecture
- Proficiency in tools like Docker, Kubernetes, Terraform, GitHub Actions, and Argo CD
- Confidence to manage cloud-native projects using industry best practices
- A fully deployable project to showcase in interviews and on your portfolio
Paste a picture showing the architecture of the complete end to end
Here is the github repo for this project: Paste the github repo link here
Project Introduction
To learn DevOps practically, you need an application. And there are two ways
- One is to develop an application
- Other one is to look out for open source projects having demo applications.
Here we have taken an open source project having a demo application. The one I took here is Opentelemetry Demo Application. The reason I have chosen Open telemetry is because we need to make sure that few things are checked. One, The demo application has to be in the micro service architecture. Two, The demo application has to be very comprehensive that is it should be as real time as possible.Three, The demo application has very good documentation. Finally the application should be stable.
All these flags are checked by the Opentelemetry demo application.
Project Architecture
OpenTelemetry Demo is composed of microservices written in different programming languages that talk to each other over gRPC and HTTP; and a load generator which uses Locust to fake user traffic.
To learn more about Open telemetry application click here
Prerequisites and Installations
Basic understanding in:
- CI/CD
- git
- GitHub Actions
- Docker:
- docker-compose:
- Dockerfile
- Kubernetes
- Argo CD
- Create an AWS account
To perform this project, you’ll need an AWS account. If you don’t already have one, you can sign up at aws.amazon.com. The AWS Free Tier covers many of the services used in this project, making it accessible for learning and experimentation.
- Create an IAM user with required permissions
It is not recommended to use the root user because root user is like a super user which has highest level of privileges. Even a root user can delete the AWS aacount.
So it is a best practice as a DevOps engineers to create users for your developers, QA engineers, and also fellow DevOps engineers.
Add the steps with screenshots
- Create an EC2 instance
Add the steps with screenshot
- Install Docker
Add steps with screenshot
- Install Kubectl
Add steps with screenhot
- Install Terraform
Add steps with screenshot
Running the project locally without kubernetes
When I say locally it means either a personal machine(any virtual machine) that we are using or an EC2 instance from any cloud platform. We will run this project locally using Docker compose.
Know more about Docker Compose
Initially we are running this project locally to gain understanding of how to run this project, how to access this project on your browser and to get a good exposure on the architecture of the website.
It is always important to understand how to setup a project in a demo environment whether it is a demo project or project in your organisation.
So in this scenario I am using an Ubuntu Virtual Machine to serve the purpose. You can also use any cloud instance. Please make sure to select instance type of t2.large to serve our purpose, as this application contains more than 20 microservices.