Description
In this course, you will learn :
- Chaos engineering is the process of attempting to determine the limits of a system and simulating any adverse effects that may occur.
- These simulations then assist you in determining the best way to improve your system's resilience.
- To demonstrate the importance of scaling, fault tolerance, and high availability, you will first learn how to destroy application instances.
Syllabus :
1. Introduction To Kubernetes Chaos Engineering
- A Brief Introduction to Chaos Engineering
- Who Are We?
- Principles of Chaos Engineering
- Are You Ready for Chaos?
- Examples Of Chaos Engineering
- The Principles and the Process
- Chaos Experiments Checklist
- How is the Course Organized?
- Before We Begin
2. Defining Requirements
- The Requirements Guiding the Choice of a Tool
- Which Tool Should We Choose?
- Defining Course Requirements
- Installing Chaos Toolkit
3. Destroying Application Instances
- Gist with Commands
- Creating a Cluster
- Deploying the Application
- Discovering Chaos Toolkit Kubernetes Plugin
- Terminating Application Instances
- Defining the Steady-State Hypothesis
- Pausing After Actions
- Probing Phases and Conditions
- Making the Application Fault-Tolerant
- Destroying What We Created
4. Experimenting with Application Availability
- Gist with Commands
- Creating a Cluster
- Deploying the Application
- Validating the Application
- Validating Application Health
- Validating Application Availability
- Terminating Application Dependencies
- Destroying What We Created
5. Obstructing and Destroying Network
- Gist with Commands
- Creating a Cluster
- Installing Istio Service Mesh
- Deploying the Application
- Discovering Chaos Toolkit Istio Plugin
- Aborting Network Requests
- Rolling Back Abort Failures
- Making the Application Resilient to Partial Network Failures
- Increasing Network Latency
- Aborting All Requests
- Simulating Denial of Service Attacks
- Running Denial of Service Attacks
- Destroying What We Created
6. Draining and Deleting Nodes
- Gist with Commands
- Creating a Cluster
- Deploying the Application
- Draining Worker Nodes
- Uncordoning Worker Nodes
- Making Nodes Drainable
- Deleting Worker Nodes
- Destroying Cluster Zones
- Destroying What We Created
7. Creating Chaos Experiment Reports
- Gist with Commands
- Creating a Cluster
- Deploying the Application
- Exploring Experiments Journal
- Creating Experiment Report
- Creating a Multi-Experiment Report
- Destroying What We Created
8. Running Chaos Experiments Inside a Kubernetes Cluster
- Gist with Commands
- Creating a Cluster
- Deploying the Application
- Setting up Chaos Toolkit in Kubernetes
- Types of Experiment Executions
- Running One-Shot Experiments
- Running Scheduled Experiments
- Running Failed Scheduled Experiments
- Sending Experiment Notifications
- Sending Selective Notifications
- Destroying What We Created
9. Executing Random Chaos
- Gist with Commands
- Creating a Cluster
- Deploying the Application
- Deploying Dashboard Applications
- Exploring Grafana Dashboards
- Exploring Kiali Dashboards
- Preparing for Termination of Instances
- Terminating Random Application Instances
- Disrupting Network Traffic
- Preparing for Termination of Nodes
- Terminating Random Nodes
- Monitoring and Alerting with Prometheus
- Destroying What We Created