Skip to content

Latest commit

 

History

History
165 lines (135 loc) · 3.96 KB

README.md

File metadata and controls

165 lines (135 loc) · 3.96 KB

DevOps

Introduction

The DevOps culture focus on one goal throughout the entire software delivery lifecycle (not just development and operations): the rapid implementation of stable, high-quality software, from concept to customer or user. The automation of software development, testing and deployment through Continuous Delivery (CD) is a recognized key factor for DevOps. Automation enables faster software implementation and ensures the solutions have the quality, security and stability they need.

Educational goals

  • Discover the DevOps culture and its tooling ecosystem.
  • Gain and share confidence in your code and operated systems.
  • Maximize time-to-market, productivity and security.
  • Build robust and evolving applications and infrastructures.

Prerequisites

Common computer skills and Linux basic knowledge.

Modules

Module 1 (1-3h): Fundamental knowledge

  • Common tools
  • Networking
  • Progamming tools
  • Common Knowledge
  • Languages

Module 2 (3h): DevOps introduction

  • Definition
  • The reason to DevOps
  • DevOps life cycle
  • Site Reliability Engineering (SRE) implements DevOps
  • SRE service levels
  • SRE tools
  • Devops' history
  • Agile vs Waterfall
  • The Agile Manifesto
  • Agile Principles
  • Scrum
  • Version management with SemVer
  • Naming

Module 3 (3h): Versioning with Git

  • Objectives
  • Definition
  • VCS motivations
  • VCS Usages
  • Semantic Versioning (SemVer)
  • Centralized vs Distributed VCS
  • Git: introduction
  • Git: motivations
  • Git: ecosystem
  • Git: basic concepts
  • Git: repository
  • Git: common usage scenario
  • Git: branching
  • Git: branches merging
  • Git: conflicts resolution
  • Git: lab praticing
  • Git: .gitignore
  • Git: tagging
  • Git best practices: use rebase instead of merge
  • Git best practices: Conventional Commits
  • Where can you use Git?
  • Open-source project management

Module 4 (3h): Continuous testing

  • Benefits
  • Types of tests
  • Example
  • Test coverage
  • Test-driven development (TDD)
  • TDD benefits
  • Test automation
  • Test writing best practices

Module 5 (3h): Continuous Integration & Continuous Delivery (CI/CD)

  • Simple deployment illustration
  • Definitions
  • Benefits
  • CI/CD fundamentals
  • CI/CD pipeline
  • CI/CD platforms
  • Registry deliveries

Module 6 (3h): Infrastructure as code (IaC)

  • Requirement of automation
  • Example
  • Imperative approach
  • Declarative approach
  • Implementation in DevOps
  • Immutable & mutable infrastructure
  • Managing development virtual environment with Vagrant
  • Local environments with Vagrant
  • Provisioning with Ansible
  • Cloud provisioning with Terraform

Module 7 (3h): Containers with Docker

  • The problems for developers
  • Container definition
  • Docker container
  • Docker
  • Container vs Virtual Machines vs Bare metal
  • Docker architecture
  • Docker components
  • Example of a Docker workflow
  • CLI commands
  • Building Docker images
  • Storage on Docker
  • Running multi-container applications with Docker Compose
  • Use cases
  • Using Docker Compose
  • Docker Compose example
  • Docker Compose commands

Module 8 (3h): Container orchestration with Kubernetes

  • Requirements for Container-Based applications
  • Container orchestration services
  • Containers complexity
  • Container orchestration tools
  • Kubernetes
  • Kubernetes cluster
  • Kubernetes objects definitions
  • Kubernetes object management
  • Resource configuration organization
  • Pod storage
  • Networking
  • Minikube

Module 9 (3h): Storage in Kubernetes

  • Volumes in Docker
  • Kubernetes Volumes
  • Kubernetes Volume types
  • Volume type: emptyDir
  • Volume type: awsElasticBlockStore
  • Persistent Volumes

Module 10 (3h): Cloud-native applications and microservice architectures | with Istio

  • Cloud definition
  • Cloud advantages
  • Service model selection
  • Cloud-native applications
  • Monolithic vs Microservices architecture
  • Microservices are NOT
  • Application centered around APIs
  • Service mesh
  • Istio

Module 11 (3h): Monitoring | with Prometheus and Grafana

  • Motivations
  • Types of Monitoring
  • Definition
  • Prometheus
  • Grafana