This is a DevOps Project Road Map, that takes a simple source code and implements the most common DevOps iterations to it. Find Details about the project here: https://www.devopswithsyed.com and https://www.linkedin.com/feed/update/urn:li:activity:7122220432383967233/
Project: Requirement Details, what is that is needed from the team. We will draw the blueprint of the iterations/Agile based development approach. Parallelly a local setup as well as remote a setup will be done for Kubernetes cluster.
Project: A deep dive into Kubernetes Architecture and Kubernetes controle-plane and Kubernetes resources, with the focus on k8s client-server communitcation and component break down. Students will connect to the api-server via the following:
- kubectl client
- cli
- browser
- code : java, python and go-client
- binary
Project: Installing and understanding architecture for Docker, Kubernetes, Jenkins, and setting up remote git repo and remote working server in AWS.
Project: Students will Dockerize a simple web application, such as a Flask or Node.js app. They will create a Dockerfile to build the application image and run it as a container. The project will include steps to test the container locally and ensure it functions as expected.
Project: Setting Up a Local Docker setup Students will use the Docker setup , they will deploy and manage sample applications and verify its successful deployment and functioning on the setup. The session will focus on understanding the Docker architecture and using docker commands for management.
Project: Containerizing a Microservices Architecture Students will containerize a microservices-based application using Docker Compose. They will define multiple services for each microservice and establish communication between them. The project will involve creating a Docker Compose YAML file and running the application locally using Docker Compose.
Project: Deploying Microservices on Kubernetes Students will containerize multiple microservices and create Kubernetes deployment manifests for each service. They will define a Kubernetes service to enable communication between microservices. The project will involve deploying the microservices on a Kubernetes cluster and testing their interaction and scalability.
Project: Implementing Ingress and Load Balancing Students will configure an Ingress controller and define rules for routing traffic to different microservices. They will set up load balancing and test the routing of requests between services. The project will demonstrate how to expose services to the outside world and enable service discovery within the Kubernetes cluster.
Project: Implementing Monitoring Scaling and Pipelines Students will configure monitoring using Prometheus and Grafana to collect and visualize metrics from their Kubernetes cluster. They will set up a CI/CD pipeline using a tool like GitLab/Jenkins CI/CD to automate the deployment of their application on Kubernetes. The project will emphasize best practices for logging, monitoring, and continuous deployment in a Kubernetes environment. We will also spend time in setting up metric-server and HPA.
Project: We will be creating the required UI layer and Database layer to the project. The Network will be configured for these layers and the integration for the 3-tier architecture will be set. The application code will also need to be changed to make the integration work. We will be setting up the environment with docker-compose first and then with Kubernetes deployments.
Project: We will first do session-ui and session-backend to separately understand the components and their network. All the components will be first deployed as isolated docker components and then we will put everything in as a release and manage it via release charts. Dry run and state session management will be checked. Component Network will be configured and End-point mapping will be set. RBAC's and Service accounts will be implemented within the project to implement component-level security.
Project: This session is very important for the students and this is where we will understand the fundamental of the following:
- continuous integration : with jenkins
- continuous deployment : fluxcd / argocd
- continuous delivery : with jenkins
- promotion process : dev,qa,stage and production