We may earn an affiliate commission when you visit our partners.
Course image
Udemy logo

DevOps

CICD with Git GitLab Jenkins, Docker and Django

Dare Soremi

Continuous Integration Continuous Delivery/Deployment (CICD) is a very important part of modern-day software release processes. As a matter of fact, you can not survive as a DevOps Engineer without a good understanding of CICD.

Read more

Continuous Integration Continuous Delivery/Deployment (CICD) is a very important part of modern-day software release processes. As a matter of fact, you can not survive as a DevOps Engineer without a good understanding of CICD.

This course is designed for web developers and beginner DevOps engineers who want to learn how to deploy a Django application to production, using the best practices of Continuous Integration and Continuous Deployment/Delivery (CICD).

The course covers the use of Git, GitLab, Jenkins and Docker, to build and deploy a full-fledged Django application. and to create a fully functional CICD pipeline.

By the end of this course, you will have learned

  • how to deploy a Django application to production and to any other environment,

  • How to redeploy the same application using deploy scripts, and how to design a functional CICD pipeline with Gitlab and Jenkins and later with GitLab CI.

  • How to collaborate on projects using GitLab. This a must-have skill if you want to work in an organization that has multiple developers, working on a project.

  • How to dockerize Django development environments.

  • How to create and configure virtual machines on your personal computers, so you will be able to practice without the fear of being charged by a cloud service provider.

  • And more.

Everything we'll do will be hands-on and straight to the point.

If you are seeking a job as a Developer or a DevOps Engineer without any professional experience yet, this course is a must for you because, by the end of it, you will have moved from zero experience to at least a year of experience with the tools taught in the course.

Enroll now

What's inside

Learning objectives

  • You will learn how to set up a functional cicd pipeline for django applications with gitlab/jenkins
  • You will learn how to set up a functional cicd pipeline for django applications with gitlab ci
  • You will learn how to collaborate on code using gitlab
  • You will learn how to deploy django applications to a digital ocean droplet
  • You will learn how to use git and gitlab for source control
  • You will learn how to dockerize django applications as a devops engineer
  • You will learn to create virtual machines on your personal computer
  • You will learn how to securely connect to virtual machines via the ssh protocol

Syllabus

Introduction
Prerequisites
Course outline
You will learn how to create and configure virtual machines on your personal computer and in the cloud
Read more

You will download install Oracle VirtualBox in this video

Download ISO images

Create and set up a virtual Ubuntu Desktop 

Customize your Ubuntu virtual desktop

We will create and set up a virtual Ubuntu server in this video

VirtualBox networking

Connect to your virtual machines through SSH. We will install and set up putty for easier SSH connections

SSH into your virtual machines via command line terminals
Creating virtual machines on Mac OS
Sign up for a Digital Ocean account
Create a Droplet/Server on Digital Ocean
SSH into your Digital Ocean droplet
Create an admin user on your Digital Ocean server
Set up Django applications on Dev machines
Install Python on Windows and Linux machines
Create and configure a Python virtual environment
Create a new Django project
Polling app setup and demo
Set up an environment config file
Configure the environment variables
You will set up and configure GitLab account and push your project code onto it
GitLab overview
Create a remote repository on gitlab.com

You will turn your project code into a Git project and then connect it to the gitlab project.

Add SSH key to your GitLab account and push your code onto it
At the end of this section, you will be able to deploy any Django application to production environments
Create your production sever

You will set up a dedicated deploy user for your application on the production server.

You will create a requirements.txt file so that contributors to our app can install our app dependencies with a single command

Psycopg2 and Gunicorn dependencies
Storing static objects
Add deploy user SSH key to your GitLab account
Install necessary programs on the production server
PostgreSQL database setup
Set up a virtual environment on the prod server
Get the project code onto the prod server
Configure the app's environment variables on the prod server
Serve the application with Gunicorn
Configure the Gunicorn services on the prod server
Set up Nginx webserver on the prod server
Configure local DNS on Windows
Manual redeployment
Redeploy your application manually
Add a deploy script to the code
Deploying with the deploy script
Run sudo commands without passwords
Getting started with Jenkins
Installing Jenkins
Expose local Jenkins instance to the internet
Installing and uninstalling plugins
Configure Jenkins to send email notifications
CIC Deployment with GitLab and Jenkins
Install Git and GitLab plugins on Jenkins
Configure GitLab-Jenkins connections
Add Jenkinsfile to your code
Create a Jenkins pipeline for your project
Run the pipeline manually
Jenkins workspace
Configure Jenkinsfile for building and testing
Configure the deploy stage
Jenkins SSH into the prod server without a password
Configure a webhook to trigger the pipeline
Demo: Continuous Integration Continuous Deployment
Configure Jenkins to send emails when the pipeline fails
Test the pipeline with failing automated testing
CIC Delivery with GitLab and Jenkins
Set up a staging server
Install necessary programs and set up PSQL database on Digital Ocean droplet
Get the project code onto your droplet
Configure the app on the droplet
Configure Gunicorn service on the droplet
Configure Nginx on the droplet
Jenkins should deploy to staging first
Solved: Permission denied issues
Configure Jenkins to request human input before deploying to prod
Demo: Continuous Integration Continuous Delivery
Gitlab CI
GitLab CI config file
Your first GitLab jobs

You will be introduced to gitlab runner and you will create a digital ocean droplet for it

Install and configure a gitlab runner
Run the pipeline on your self-hosted runner
Configure GitLab CI to build test and deploy
Configure GitLab runner server for the pipeline
Demo: GitLab CI - Continuous Integration Continuous Deployment
GitLab CI - Continuous Integration Continuous Delivery setup
Using Gitlab for code collaboration
Add a developer to the project
Configure the app on the virtual ubuntu desktop

You will be introduced to gitlab issues and then create one to facilitate collaboration and communication on the project

You will learn the code contribution workflow and fix the issue assigned to you as a developer.

Create a merge request
Code reviews and merging
Update your local repository
You will learn how to dockerize the development of your Django application

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Teaches best practices for continuous integration and delivery through Git, GitLab, Jenkins, and Docker
Builds a strong foundation for beginner web developers and DevOps engineers in the use of CICD pipelines
Develops real-world skills in deploying Django applications to production environments
Emphasizes the use of industry-standard tools and technologies such as GitLab CI, Docker, and Digital Ocean
Prepares learners for job opportunities in the field of DevOps Engineering

Save this course

Save DevOps: CICD with Git GitLab Jenkins, Docker and Django to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in DevOps: CICD with Git GitLab Jenkins, Docker and Django with these activities:
Join a study group to discuss CI/CD concepts
Foster collaboration, knowledge sharing, and peer support, enhancing understanding of CI/CD concepts.
Show steps
  • Find or create a study group with other students.
  • Meet regularly to discuss concepts and work on projects together.
Review 'Modern DevOps' by Patrick Debois
Provide an overview of DevOps practices and principles, including CICD and best practices for software delivery.
Show steps
  • Read Chapters 1-3 to understand the core concepts of DevOps.
  • Complete the exercises in Chapter 4 to set up a basic CI/CD pipeline.
  • Create a summary of the key takeaways from the book.
Practice writing CI/CD scripts
Reinforce understanding of CI/CD concepts and provide hands-on practice in writing scripts.
Browse courses on CI/CD
Show steps
  • Complete the exercises on writing CI/CD scripts provided in the course.
  • Create your own CI/CD scripts for a sample project.
Three other activities
Expand to see all activities and additional details
Show all six activities
Set up a Django application with Docker and GitHub Actions
Provide practical experience in setting up and deploying a Django application using industry-standard tools and practices.
Browse courses on Django
Show steps
  • Follow the tutorial on setting up a Django application with Docker and GitHub Actions.
  • Deploy the application to a cloud platform.
  • Monitor the application and make adjustments as needed.
Build a CI/CD pipeline for a personal project
Allow students to apply the concepts learned in the course to a real-world project, fostering deeper understanding and practical skills.
Browse courses on CI/CD
Show steps
  • Choose a personal project to work on.
  • Design and implement a CI/CD pipeline for the project.
  • Document the process and share it with others.
Contribute to an open-source CI/CD project
Provide real-world experience in contributing to a CI/CD project, enhancing technical skills and fostering collaboration.
Show steps
  • Identify an open-source CI/CD project to contribute to.
  • Submit a pull request with your contribution.
  • Collaborate with other contributors and maintainers.

Career center

Learners who complete DevOps: CICD with Git GitLab Jenkins, Docker and Django will develop knowledge and skills that may be useful to these careers:

Reading list

We haven't picked any books for this reading list yet.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to DevOps: CICD with Git GitLab Jenkins, Docker and Django.
DevOps and Jenkins Fundamentals
Most relevant
Continuous Integration & Continuous Deployment with...
Most relevant
Learn Github Actions for CI/CD DevOps Pipelines
Most relevant
GitLab CI: Pipelines, CI/CD and DevOps for Beginners
Most relevant
GitLab Fundamentals
Most relevant
DevOps: CI/CD with Jenkins pipelines, Maven, Gradle
Most relevant
Learn DevOps: CI/CD with Jenkins using Pipelines and...
Most relevant
Exam Prep CJE: Certified Jenkins Engineer
Most relevant
DevOps MasterClass 2024: Terraform Kubernetes Ansible...
Most relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser