Course Title: Introduction to DevOps

Course Description:

This course provides a comprehensive introduction to DevOps, a set of practices that combines software development (Dev) and IT operations (Ops). It aims to shorten the systems development life cycle and provide continuous delivery with high software quality. Students will gain an understanding of DevOps principles, practices, and tools, and learn how to implement DevOps processes in their organizations.

Learning Objectives:

By the end of this course, students will be able to:

  1. Understand the key concepts and principles of DevOps.
  2. Describe the benefits of DevOps for improving software development and delivery.
  3. Implement Continuous Integration (CI) and Continuous Deployment (CD) pipelines.
  4. Use popular DevOps tools such as Docker, Kubernetes, Jenkins, Git, and more.
  5. Apply infrastructure as code (IaC) using tools like Terraform and Ansible.
  6. Automate testing, monitoring, and deployment processes.
  7. Collaborate effectively between development and operations teams.

Course Outline:

Week 1: Introduction to DevOps

  • Overview of DevOps
  • History and evolution of DevOps
  • Key DevOps concepts and practices
  • Benefits of DevOps

Week 2: Version Control with Git

  • Introduction to version control
  • Basic and advanced Git commands
  • Branching and merging strategies
  • Collaboration with GitHub/GitLab

Week 3: Continuous Integration (CI)

  • Introduction to CI
  • Setting up Jenkins for CI
  • Creating and configuring CI pipelines
  • Integrating automated tests in CI

Week 4: Continuous Deployment (CD)

  • Introduction to CD
  • CD best practices
  • Setting up deployment pipelines
  • Tools for CD: Jenkins, GitLab CI, CircleCI

Week 5: Containerization with Docker

  • Introduction to Docker
  • Docker architecture and components
  • Creating and managing Docker containers
  • Docker Compose for multi-container applications

Week 6: Orchestration with Kubernetes

  • Introduction to Kubernetes
  • Kubernetes architecture
  • Deploying and managing applications with Kubernetes
  • Scaling and monitoring applications in Kubernetes

Week 7: Infrastructure as Code (IaC)

  • Introduction to IaC
  • Using Terraform for IaC
  • Managing infrastructure with Ansible
  • Best practices for IaC

Week 8: Monitoring and Logging

  • Importance of monitoring and logging
  • Tools for monitoring: Prometheus, Grafana
  • Logging solutions: ELK Stack (Elasticsearch, Logstash, Kibana)
  • Setting up alerts and dashboards

Week 9: Security in DevOps

  • DevSecOps principles
  • Integrating security in CI/CD pipelines
  • Security tools and practices
  • Compliance and auditing

Week 10: DevOps Culture and Collaboration

  • Building a DevOps culture
  • Collaboration between Dev and Ops teams
  • Case studies and industry examples
  • Future trends in DevOps

Assessment and Evaluation:

  • Weekly quizzes to assess understanding of key concepts.
  • Hands-on lab assignments to practice DevOps tools and techniques.
  • Mid-term project: Implementing a CI/CD pipeline.
  • Final project: Developing a comprehensive DevOps solution for a sample application.

Prerequisites:

  • Basic understanding of software development and IT operations.
  • Familiarity with command-line interfaces and basic scripting.

Course Materials:

  • Textbook: "The Phoenix Project" by Gene Kim, Kevin Behr, and George Spafford.
  • Online resources and documentation for tools like Git, Jenkins, Docker, Kubernetes, Terraform, and Ansible.
  • Access to a cloud environment for hands-on practice (AWS, Azure, or GCP).

Instructor:

Nicholas G

  • Extensive experience in DevOps practices and tools.
  • Background in software development and IT operations.
  • Industry certifications in DevOps and related technologies.

This course is designed to provide a solid foundation in DevOps and equip students with the skills needed to implement and manage DevOps processes in real-world scenarios.


Accessibility

Background Colour

Font Face

Font Size

1

Text Colour