Course Outline
Module 1: Microservices Design
• Establishing effective Microservice Boundaries
• Applying Domain-Driven Design (DDD)
• Alternatives to Business Domain Boundaries (Volatility, Data, Technology, Organizational)
• Strategies for Splitting the Monolith
• Avoiding Premature Decomposition
• Decomposition By Layer
• Applying Decomposition Patterns (Strangler, Parallel Run, Feature Toggle)
• Addressing Data Decomposition Concerns (Performance, Integrity, Transactions)
Module 2: Optimizing Docker and the Runtime
• Selecting the appropriate base image
• Minimizing the number of layers
• Utilizing multi-stage builds
• Image optimization techniques (e.g., sorting multi-line arguments)
• Leveraging the build cache
• Pinning image versions
• Fine-tuning resource allocation
• Implementing secure container practices
• Configuring the runtime for optimal performance
Module 3: Kubernetes & Release Strategies
Overview of Kubernetes Deployments
• Initiating and executing an Initial Deployment
• Exploring Kubernetes Deployment Options
Executing Rolling Update Deployments
• Understanding the Rolling Update mechanism
• Creating and executing a Rolling Update
• Performing Deployment Rollbacks
Executing Canary Deployments
• Understanding Canary Deployments
• Creating and executing a Canary Deployment
Executing Blue-Green Deployments
• Understanding Blue-Green Deployments
• Creating and executing a Blue-Green Deployment
Running Jobs and CronJobs
• Creating a Job and CronJob
Conducting Monitoring and Troubleshooting Tasks
• Applying Troubleshooting Techniques with kubectl
Module 4: Automation & Operational Efficiency
Leveraging Python to Automate Common Tasks in Kubernetes
• Using Python for administrative operations in Kubernetes
• Defining Configuration objects with Python
• Creating Deployment objects with Python
• Watching Kubernetes Events using Python
• Scaling a Deployment using Python
Understanding the Challenges of Automating Deployments
• Declarative Configuration with Kubernetes
• Managing Configuration Integrity
Adopting the GitOps Approach for Automating Deployments
• GitOps Principles
• Introducing Flux
• Installing Flux to a Kubernetes Cluster
Configuring Flux for Automated Deployments
• Utilizing Notifications
• Structuring the Source Repository
Managing Application Updates with Image Automation
• Updating an Application Deployment with Flux
• Scanning Container Image Repositories for Tags
• Defining Policy for Latest Image selection
• Configuring Flux to Perform Automatic Image Updates
Module 5: Observability & Root Cause Clarity
Kubernetes Logging and Tracing Capabilities
• The Importance of Logging and Tracing
• Accessing Kubernetes Logs
• Pod and Container Logs
• Control Plane Logs
• Resource Usage of Nodes and Pods
Collecting and Analyzing the Logs
• Log Aggregation
• Log Visualization
Distributed Tracing in Kubernetes
• Defining Distributed Tracing
• Utilizing OpenTelemetry
• Distributed Tracing Tools
• Instrumenting an Application
• Using Tracing to Identify Performance Issues
Monitoring with Prometheus and Grafana
• Observability Concepts
• Monitoring Tools
• Using Prometheus Instrumentation
Advanced Use Cases for Logging
• Processing Logs
• Filtering and Enriching the Logs
• Event Sourcing
Module 6: Cluster Crisis Simulation & Incident Response
• Understanding various failure types in a cluster environment
• Simulating Node Failures
• Pod Eviction & Resource Exhaustion Scenarios
• Addressing Network Issues
• Handling DNS Failures and Application Timeouts
• Simulating an API Server Outage
• Simulating High Traffic for System Stability
• Addressing Storage Failures
• Resolving Configuration Errors
• Understanding Incident Reporting Procedures
Module 7: AI to Support Troubleshooting
• Benefits of Generative AI for Kubernetes
• K8sGPT CLI Architecture
• Installing the K8sGPT CLI
• K8sGPT Commands and Usage
• Utilizing K8sGPT Analyzers (podAnalyzer, pvcAnalyzer, rsAnalyzer, etc.)
• Analyzing the Cluster using K8sGPT
• Analyzing Real-Time Issues using K8sGPT
• The In-Cluster Operator for K8sGPT
Requirements
- Basic knowledge of Linux command line
- Experience with application development or system administration
- Familiarity with containers (Docker concepts)
- Basic understanding of Kubernetes concepts (pods, deployments, services)
- General understanding of software architecture (e.g. APIs, services)
Target audience:
- DevOps Engineers
- Site Reliability Engineers (SREs)
- Backend / Software Developers working with microservices
- Cloud Engineers and Platform Engineers
-
System Administrators transitioning to Kubernetes environments
Testimonials (2)
The knowledge and experience of the consultant, as theoretical topics are addressed by applying them to the reality of processes. The course contains a highly valuable program in information technology management.
Luis Castro Gamboa - Cooperativa De Ahorro Y Credito Ande No. 1 R.L.
Course - Site Reliability Engineering (SRE) Foundation®
Machine Translated
That it was very clear in each specification
Ricardo Ramirez - AMX CONTENIDO
Course - DevOps Leader (DOL)®
Machine Translated