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.
- 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.
Common computer skills and Linux basic knowledge.
- Common tools
- Networking
- Progamming tools
- Common Knowledge
- Languages
- 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
- 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
- Benefits
- Types of tests
- Example
- Test coverage
- Test-driven development (TDD)
- TDD benefits
- Test automation
- Test writing best practices
- Simple deployment illustration
- Definitions
- Benefits
- CI/CD fundamentals
- CI/CD pipeline
- CI/CD platforms
- Registry deliveries
- 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
- 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
- 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
- Volumes in Docker
- Kubernetes Volumes
- Kubernetes Volume types
- Volume type: emptyDir
- Volume type: awsElasticBlockStore
- Persistent Volumes
- Cloud definition
- Cloud advantages
- Service model selection
- Cloud-native applications
- Monolithic vs Microservices architecture
- Microservices are NOT
- Application centered around APIs
- Service mesh
- Istio
- Motivations
- Types of Monitoring
- Definition
- Prometheus
- Grafana