In this project, You will deploy a microservices architecture on Kubernetes, You will gain experience with key technologies and concepts such as Kubernetes architecture, deployments, services, ingresses, and API gateways. Additionally, this project will provide you with an opportunity to practice DevOps skills such as containerization, continuous integration, and deployment (CI/CD), and infrastructure as code (IaC) using Kubernetes manifests. By completing this project, You will have a solid understanding of microservices architecture and the tools and techniques used to deploy and manage such systems using Kubernetes.
In this project, You will deploy a microservices architecture on Kubernetes, you will gain experience with key technologies and concepts such as Kubernetes architecture, deployments, services, ingresses, and API gateways. Additionally, this project will provide you with an opportunity to practice DevOps skills such as containerization, continuous integration, and deployment (CI/CD), and infrastructure as code (IaC) using Kubernetes manifests. By completing this project, you will have a solid understanding of microservices architecture and the tools and techniques used to deploy and manage such systems using Kubernetes.
### Tips
@ -142,4 +142,4 @@ If you decide to use a different structure for your project remember you should
#### What's next?
In order to develop your knowledge and career as a devops engineer, we highly recommend you to learn and practice more about kubernetes and even get a certification for kubernetes.
###### Is the cluster contains two nodes (master and agent)?
###### Does the cluster contains two nodes (master and agent)?
###### Is kubectl installed and configured in the learner's machine?
@ -120,16 +120,16 @@ user:~$
- `inventory-database container` is a PostgreSQL database server that contains your inventory database, it must be accessible via port `5432`.
- `billing-database container` is a PostgreSQL database server that contains your billing database, it must be accessible via port `5432`.
- `inventory-app container` is a Node.Js server that contains your inventory-app code running and connected to the inventory database and accessible via port `8080`.
- `billing-app container` is a Node.Js server that contains your billing-app code running and connected to the billing database and consuming the messages from the RabbitMQ queue, and it can be accessed via port `8080`.
- `inventory-app container` is a Node.js server that contains your inventory-app code running and connected to the inventory database and accessible via port `8080`.
- `billing-app container` is a Node.js server that contains your billing-app code running and connected to the billing database and consuming the messages from the RabbitMQ queue, and it can be accessed via port `8080`.
- `RabbitMQ container` is a RabbitMQ server that contains the queue.
- `api-gateway-app container` is a Node.Js server that contains your api-gateway-app code running and forwarding the requests to the other services and it's accessible via port `3000`.
- `api-gateway-app container` is a Node.js server that contains your api-gateway-app code running and forwarding the requests to the other services and it's accessible via port `3000`.
###### Are all the required applications deployed?
- databases must be deployed as StatefulSet, and volumes that enable containers to move across infrastructure without losing the data must be created.
- Node.JS applications must be deployed as a deployment and they must be scaled horizontally automatically, depending on CPU consumption:
- Node.js applications must be deployed as a deployment and they must be scaled horizontally automatically, depending on CPU consumption:
1. `api-gateway`:
max replication: 3
@ -223,8 +223,6 @@ In less than 15 minutes and with the help of Google the student must explain all
###### Can the learner explain the K8s components in less than 15 minutes?
> If the learner is unable to explain the K8s components, this means that the learner has failed this audit, so he must re-read and spend more time on understanding!