Course Outline
Module 1: Microservices Architecture Design
• Establishing appropriate Microservice Boundaries
• Applying Domain-Driven Design (DDD) principles
• Evaluating Alternatives to Business Domain Boundaries: Volatility, Data Volume, Technology Stack, and Organizational Structure
• Strategies for Decomposing Monolithic Applications
• Risks Associated with Premature Decomposition
• Layer-Based Decomposition Approaches
• Utilizing Decomposition Patterns: Strangler Fig, Parallel Run, and Feature Toggles
• Addressing Data Decomposition Challenges: Performance, Integrity, and Transactional Consistency
Module 2: Optimizing Docker Environments and Runtime Performance
• Selecting appropriate base images
• Reducing the number of image layers
• Implementing multi-stage build processes
• Image optimization techniques (e.g., consolidating multi-line arguments)
• Maximizing the efficiency of the build cache
• Pinning specific image versions for stability
• Optimizing resource allocation parameters
• Adhering to secure container practices
• Configuring runtime settings for optimal performance
Module 3: Kubernetes Deployments and Release Management Strategies
Overview of Kubernetes Deployment Mechanisms
• Executing Initial Deployments
• Configuration Options for Kubernetes Deployments
Executing Rolling Update Deployments
• Understanding the Rolling Update Mechanism
• Creating and Implementing a Rolling Update
• Managing Deployment Rollbacks
Implementing Canary Deployments
• Understanding the Canary Release Methodology
• Creating and Implementing a Canary Deployment
Implementing Blue-Green Deployments
• Understanding the Blue-Green Release Methodology
• Creating and Implementing a Blue-Green Deployment
Managing Jobs and CronJobs
• Creating Job and CronJob resources
Monitoring and Troubleshooting Procedures
• Troubleshooting Techniques Utilizing kubectl
Module 4: Automation and Operational Efficiency for government systems
Automating Common Kubernetes Tasks with Python
• Utilizing Python for Administrative Operations in Kubernetes
• Defining Configuration Objects via Python
• Creating Deployment Objects via Python
• Monitoring Kubernetes Events Using Python
• Scaling Deployments Programmatically with Python
Challenges in Automating Deployment Workflows
• Maintaining Declarative Configuration Standards in Kubernetes
• Ensuring Configuration Integrity
Implementing GitOps Principles for Automated Deployments
• Core Principles of GitOps
• Introduction to Flux Controller
• Installing Flux within a Kubernetes Cluster
Configuring Flux for Automated Deployment Workflows
• Configuring Notification Mechanisms
• Structuring the Source Repository
Managing Application Updates Through Image Automation
• Updating Application Deployments via Flux
• Scanning Container Image Repositories for Latest Tags
• Defining Policies for Image Version Selection
• Configuring Flux to Execute Automatic Image Updates
Module 5: Observability and Root Cause Analysis
Kubernetes Logging and Tracing Capabilities
• Importance of Logging and Tracing in System Reliability
• Accessing Kubernetes Logs
• Retrieving Pod and Container Logs
• Accessing Control Plane Logs
• Monitoring Resource Utilization for Nodes and Pods
Log Collection and Analysis Processes
• Log Aggregation Strategies
• Log Visualization Techniques
Distributed Tracing in Kubernetes Environments
• Concepts of Distributed Tracing
• Implementation of OpenTelemetry
• Evaluation of Distributed Tracing Tools
• Application Instrumentation Methods
• Utilizing Tracing Data to Identify Performance Bottlenecks
Monitoring with Prometheus and Grafana
• Observability Fundamentals
• Selection and Configuration of Monitoring Tools
• Implementing Prometheus Instrumentation
Advanced Logging Use Cases
• Log Processing Techniques
• Filtering and Enriching Log Data
• Event Sourcing Methodologies
Module 6: Cluster Crisis Simulation and Incident Response Protocols
• Identifying Failure Types in Cluster Environments
• Simulating Node Failures
• Scenarios Involving Pod Eviction and Resource Exhaustion
• Addressing Network Issues
• Managing DNS Failures and Application Timeout Handling
• Simulating API Server Outages
• Testing System Stability Under High Traffic Conditions
• Handling Storage Failures
• Resolving Configuration Errors
• Adhering to Incident Reporting Procedures
Module 7: Leveraging Artificial Intelligence for Troubleshooting Efficiency
• Advantages of Generative AI in Kubernetes Management
• Architecture of the K8sGPT Command-Line Interface (CLI)
• Installation Procedures for K8sGPT CLI
• Commands and Operational Usage of K8sGPT
• Utilizing K8sGPT Analyzers (e.g., podAnalyzer, pvcAnalyzer, rsAnalyzer)
• Conducting Cluster Analysis Using K8sGPT
• Addressing Real-Time Issues with K8sGPT
• Deploying the In-Cluster Operator for K8sGPT
Requirements
- Fundamental proficiency in Linux command-line operations.
- Practical background in application development or system administration.
- Working knowledge of containerization principles, including Docker.
- Foundational comprehension of Kubernetes elements (e.g., pods, deployments, services).
- Awareness of software architectural patterns (such as APIs and microservices).
Intended recipients:
- DevOps Engineers
- Site Reliability Engineers (SREs)
- Backend or Software Developers engaged with microservice architectures
- Cloud Engineers and Platform Engineers
-
System Administrators transitioning to Kubernetes environments
Testimonials (2)
Craig was extremely involved in the training, always making sure we are paying attention, adapted the examples to our day-to-day activities and always provided an answer when asked, even if the information was not added in the presentation.
Ecaterina Ioana Nicoale - BOOKING HOLDINGS ROMANIA SRL
Course - DevOps Foundation®
High level of commitment and knowledge of the trainer