Menu
Lab

LAB: Advanced CI/CD with Jenkins and Kubernetes for a Dockerized Django Application

70 Enrolled
4 hour

Course Overview

Introduction

In this laboratory, you will set up a continuous integration and continuous delivery (CI/CD) pipeline for a Dockerized Django application. You will use Jenkins for automation, Kubernetes for container orchestration, and Docker for containerization. The objective is to automate the build, test, and deployment processes, ensuring a seamless workflow from code commit to production deployment.


Objectives

  • Install Jenkins on an Ubuntu Server
  • Configure Jenkins with necessary plugins
  • Set up a Kubernetes cluster
  • Dockerize a Django application
  • Create a Jenkins pipeline for CI/CD
  • Deploy the application to Kubernetes
  • Set up notifications and monitoring

Prerequisites

  • AWS Account: For deploying and managing instances and services.
  • Basic Knowledge of Docker, Jenkins, Kubernetes, and Django: Familiarity with these technologies is assumed.
  • Unix-based Operating System: Preferred for compatibility with Docker and Kubernetes tools.

Required Materials and Software

Materials:

  1. A Computer: With a modern processor, at least 8GB of RAM, and a stable internet connection.
  2. Cloud Service Provider Account: An AWS account for deploying instances and utilizing AWS resources.

Software:

  1. Operating System: A Unix-based system (Ubuntu, CentOS, macOS) is recommended. Windows users can use WSL2.
  2. AWS CLI: For managing AWS services from the command line.
  3. Jenkins: Automation server for setting up the CI/CD pipeline.
  4. Docker: For containerizing the Django application.
  5. Kubernetes: For container orchestration.
  6. Kubectl: Command-line tool for interacting with Kubernetes clusters.
  7. ArgoCD: For continuous delivery and GitOps.
  8. Python: Version 3.8+ for the Django application.
  9. Git: For version control.
  10. Text Editor/IDE: VS Code, PyCharm, or any preferred text editor.
  11. Prometheus and Grafana (optional): For monitoring and visualizing metrics.
  12. Slack (optional): For build and deployment notifications.
  13. Email Server (optional): For Jenkins email notifications.
  14. HashiCorp Vault (optional): For managing secrets and sensitive data.

Tools and Libraries:

  1. Django: Web application framework.
  2. Gunicorn: For serving the Django application.
  3. Pip: For managing Python packages.
  4. Node.js (optional): For frontend development.

Détails

  • 1 Section
  • 1 Lesson
  • 4 Hours
Expand all sectionsCollapse all sections

Instructor

Avatar de l’utilisateur

Armel Ngando

4.8
7 Reviews
30 Students
95 Courses