Introduction
A three-tier architecture is a software architecture pattern that divides an application into three main components or layers, each responsible for specific functionalities. These three tiers are:
Presentation Tier (User Interface):
Also known as the client or front-end layer.
It is the interface through which users interact with the application.
Common technologies used in this tier include web browsers, mobile apps, and graphical user interfaces (GUIs).
Application Tier (Logic or Business Logic):
Also known as the middle tier.
This layer contains the business logic or application logic that processes and manages the application's data.
The technologies used in this tier include application servers, server-side scripting, and middleware.
Data Tier (Database):
Also known as the back-end or data layer.
This layer is responsible for managing and storing the data used by the application.
Common technologies used in this tier include relational database systems (e.g., MySQL, PostgreSQL, Oracle) or NoSQL databases.
The three-tier architecture provides several benefits, including scalability, maintainability, and the separation of concerns. Each tier can be developed, deployed, and maintained independently, making it easier to manage and update different aspects of the application. Additionally, this architecture facilitates a modular and organized approach to software development.
Fork and clone the repo to local
git clone https://github.com/LondheShubham153/TWSThreeTierAppChallenge.git
Now, create the docker image of the frontend and backend
# move to frontend directory and excute below command
docker build -t frontend .
# move to backend directory and excute below command
docker build -t backend .
Pulling the MongoDB image from docker hub
docker pull mongo
Pushing the image to ECR
Create the three public repo in the ECR
frontend
backend
mongo
Now, Push the image to respective repo. If you don't know, how to push image to ECR follow below blog
How to push image into Amazon ECR
Things to be done before starting to deploy the helm chart
https://github.com/anishbista60/Pre-requisites/tree/main/pre-requities
About helm chart
Helm chart uses certain file structure. In our case, the following diagram shows the chart tree structure.
create the Helm Chart with below command
helm create Helm-Chart
you would find the Chart.yaml, values.yaml and templates in below link
https://github.com/anishbista60/Pre-requisites/tree/main/Helm-Chart/helm
Deploy using Helm chart
Follow below link to deploy the Helm chart
https://github.com/anishbista60/Pre-requisites/blob/main/before-helm-deployment/README.md
Conclusion
In conclusion, the three-tier architecture provides a robust framework for building scalable, modular, and maintainable applications. Its benefits include enhanced security, improved performance, flexibility in technology choices, and streamlined development processes. While it may not be the best fit for every application, it remains a popular and effective choice for a wide range of software development projects.