Skip to content

Commit 67ae0c3

Browse files
authored
refactors getting-started, architecture and concepts sections (#263)
Signed-off-by: neelanjan00 <[email protected]>
1 parent bb07640 commit 67ae0c3

30 files changed

+265
-293
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
id: architecture-summary
3-
title: Architecture Summary
4-
sidebar_label: Architecture Summary
3+
title: Architecture summary
4+
sidebar_label: Architecture summary
55
---
66

77
---
@@ -10,16 +10,19 @@ sidebar_label: Architecture Summary
1010

1111
The Litmus architecture can be segregated into two parts:
1212

13-
1. **Control Plane:** Contains the components required for the functioning of ChaosCenter, the website-based portal for Litmus.
13+
1. **Control plane:** Contains the components required for the functioning of ChaosCenter, the website-based portal for Litmus.
1414

15-
2. **Execution Plane:** Contains the components required for the injection of chaos in the target resources.
15+
2. **Execution plane:** Contains the components required for the injection of chaos in the target resources.
1616

17-
ChaosCenter can be used for creating and scheduling Chaos Experiments, a set of chaos faults defined in a definitive sequence to achieve desired chaos impact on the target resources upon execution. Users can log in to the ChaosCenter using valid login credentials and leverage the interactive web UI to define their chaos experiment to target multiple aspects of their infrastructure. Once the user creates a Chaos Experiment using the ChaosCenter, it is passed on to the Execution Plane. The Execution Plane can be present either in the host cluster containing the Control Plane if the self chaos infrastructure is being used, or in the target cluster if an external chaos infrastructure is being used. The Execution Plane interprets the Chaos Experiment as a list of steps required for injecting chaos into the target resources. It ensures efficient orchestration of chaos in cloud-native environments using various Kubernetes CRs. Once the Chaos Experiment is executed, Execution Plane sends the chaos result to the Control Plane for their post-processing using either the built-in monitoring dashboard of Litmus or using external observability tools such as Prometheus DB and Grafana dashboard. Litmus also achieves automated Chaos Experiment runs to execute chaos as part of the CI/CD pipeline based on a set of defined conditions using GitOps.
17+
- Control plane can be used for creating and scheduling chaos experiments, which is a set of chaos faults defined in a definitive sequence to achieve desired chaos impact on the target resources upon execution. Users can log in to the ChaosCenter using the web UI or the APIs to define a chaos experiment and assess the resilience of target workloads.
18+
19+
- Once the user creates a chaos experiment using the ChaosCenter, it is passed on to the execution plane. The Execution plane can be present either in the same cluster as the ChaosCenter if the self chaos infrastructure is being used, or in a remote cluster if an external chaos infrastructure is being used. The Execution plane interprets the chaos experiment as a list of actions that will inject chaos into the target workloads. It ensures efficient orchestration of chaos in various cloud-native environments using Kubernetes custom resources.
20+
21+
- Once the chaos experiment is executed, Execution plane sends the chaos result to the control plane for their post-processing using either the built-in monitoring dashboard of Litmus or using external observability tools such as Prometheus DB and Grafana dashboard. Litmus also achieves automated chaos experiment runs to execute chaos as part of the CI/CD pipeline based on a set of defined conditions using GitOps.
1822

1923
:::note
2024
With the latest release of LitmusChaos 3.0.0:
21-
22-
<li>The term <b>Chaos Delegate/Agent</b> has been changed to <b>Chaos Infrastructure.</b> </li>
23-
<li>The term <b>Chaos Experiment</b> has been changed to <b>Chaos Fault.</b> </li>
24-
<li>The term <b>Chaos Scenario/Workflow</b> has been changed to <b>Chaos Experiment.</b></li>
25+
- The term **Chaos Delegate/Agent** has been changed to **Chaos Infrastructure**.
26+
- The term **Chaos Experiment** has been changed to **Chaos Fault**.
27+
- The term **Chaos Scenario/Workflow** has been changed to **Chaos Experiment**.
2528
:::

website/docs/architecture/chaos-control-plane.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
---
22
id: chaos-control-plane
3-
title: Chaos Control Plane
4-
sidebar_label: Chaos Control Plane
3+
title: Chaos control plane
4+
sidebar_label: Chaos control plane
55
---
66

77
---
88

99
<img src={require("../assets/chaos-control-plane.png").default} alt="Chaos Control Plane" />
1010

11-
Chaos Control Plane consists of micro-services responsible for the functioning of the ChaosCenter, the website-based portal that can be used for interacting with Litmus, apart from the CLI. Chaos Plane facilitates the creation and scheduling of chaos experiments, system observability during the event of chaos, and post-processing and analysis of fault results.
11+
Chaos control plane consists of micro-services responsible for the functioning of the ChaosCenter, the website-based portal that can be used for interacting with Litmus, apart from the CLI. Chaos Plane facilitates the creation and scheduling of chaos experiments, system observability during the event of chaos, and post-processing and analysis of fault results.
1212

13-
## Chaos Control Plane Components
13+
## Chaos control plane components
1414

1515
- **Authentication Server:** A Golang micro-service that is responsible for authorizing, authenticating the requests received from ChaosCenter and managing users along with their projects. It primarily serves the cause of user creation, user login, resetting the password, updating user information, creating project, managing project related operations.
1616

website/docs/architecture/chaos-execution-plane.md

+5-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
id: chaos-execution-plane
3-
title: Chaos Execution Plane
4-
sidebar_label: Chaos Execution Plane
3+
title: Chaos execution plane
4+
sidebar_label: Chaos execution plane
55
---
66

77
---
@@ -65,8 +65,7 @@ It is worth noticing that:
6565

6666
:::note
6767
With the latest release of LitmusChaos 3.0.0:
68-
69-
<li>The term <b>Chaos Delegate/Agent</b> has been changed to <b>Chaos Infrastructure.</b> </li>
70-
<li>The term <b>Chaos Experiment</b> has been changed to <b>Chaos Fault.</b> </li>
71-
<li>The term <b>Chaos Experiment/Workflow</b> has been changed to <b>Chaos Experiment.</b></li>
68+
- The term **Chaos Delegate/Agent** has been changed to **Chaos Infrastructure**.
69+
- The term **Chaos Experiment** has been changed to **Chaos Fault**.
70+
- The term **Chaos Scenario/Workflow** has been changed to **Chaos Experiment**.
7271
:::

website/docs/architecture/chaos-experiment-flow.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
id: chaos-fault-flow
3-
title: Chaos Fault Flow
4-
sidebar_label: Chaos Fault Flow
3+
title: Chaos fault flow
4+
sidebar_label: Chaos fault flow
55
---
66

77
---
@@ -31,7 +31,7 @@ The fault execution is triggered upon the creation of a ChaosEngine resource. Th
3131

3232
:::note
3333
With the latest release of LitmusChaos 3.0.0:
34-
35-
<li>The term <b>Chaos Experiment</b> has been changed to <b>Chaos Fault.</b> </li>
36-
<li>The term <b>Chaos Experiment/Workflow</b> has been changed to <b>Chaos Experiment.</b></li>
34+
- The term **Chaos Delegate/Agent** has been changed to **Chaos Infrastructure**.
35+
- The term **Chaos Experiment** has been changed to **Chaos Fault**.
36+
- The term **Chaos Scenario/Workflow** has been changed to **Chaos Experiment**.
3737
:::

website/docs/concepts/chaos-workflow.md

+18-14
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,23 @@
11
---
22
id: chaos-workflow
3-
title: Chaos Experiment
4-
sidebar_label: Chaos Experiment
3+
title: Chaos experiment
4+
sidebar_label: Chaos experiment
55
---
66

77
---
88

9-
**Chaos Experiment** is a set of different operations coupled together to achieve desired chaos impact on a Kubernetes Cluster. <br/>
10-
It is useful in automating a series of pre-conditioning steps or action which is necessary to be performed before triggering the chaos injection.<br/>
11-
A Chaos Experiment can also be used to perform different operations parallelly to achieve a desired chaos impact.
9+
Chaos experiments gives you the flexibility to create complex, real-life failure scenarios that are used to validate your target workloads. At the same time, chaos experiments are declarative and can be constructed using the ChaosCenter UI without any programmatic intervention.
10+
11+
A chaos experiment is composed of chaos faults that are arranged in a specific order to create a failure scenario. The chaos faults target various aspects of an application, including the constituent microservices and underlying infrastructure. You can tune the parameters associated with these faults to impart the desired chaos behavior.
12+
13+
- It is useful in automating a series of pre-conditioning steps or action which is necessary to be performed before triggering the chaos injection.
14+
15+
- A Chaos Experiment can also be used to perform different operations parallelly to achieve a desired chaos impact.
1216

1317
:::note
1418
With the latest release of LitmusChaos 3.0.0:
15-
16-
<li>The term <b>Chaos Experiment</b> has been changed to <b>Chaos Fault.</b> </li>
17-
<li>The term <b>Chaos Scenario/Workflow</b> has been changed to <b>Chaos Experiment.</b></li>
19+
The term **Chaos Experiment** has been changed to **Chaos Fault**.
20+
The term **Chaos Scenario/Workflow** has been changed to **Chaos Experiment**.
1821
:::
1922

2023
## Prerequisites
@@ -25,12 +28,13 @@ The following should be required before creating a Chaos Experiment:
2528
- [Chaos Infrastructure](../getting-started/resources.md#chaosagents)
2629
- [Probes](probes.md)
2730

28-
## How do we define and execute a Chaos Experiment ?
31+
## Defining and executing a chaos experiment
32+
33+
LitmusChaos leverages the popular GitOps tool **Argo** to achieve this goal. Argo enables the creation of different chaos experiments together in form of chaos experiments which are extremely simple and efficient to use.
2934

30-
LitmusChaos leverages the popular GitOps tool **Argo** to achieve this goal. Argo enables the creation of different chaos experiments together in form of chaos experiments which are extremely simple and efficient to use.<br/>
3135
With the help of **ChaosCenter**, chaos experiments with different types of faults can be created. In a Chaos Experiment, the faults can be set to execute in parallel to each other and the user can tune the chaos experiment by adding additional steps to simulate a desired fault that might occur in the production stage.
3236

33-
### Life Cycle of a Chaos Experiment
37+
### Chaos experiment life cycle
3438

3539
Here is a sample pod-delete chaos experiment from ChaosCenter.
3640

@@ -232,11 +236,11 @@ These include installing the chaos faults, executing the chaos engine of the fau
232236
Some additional checks can be added with the faults in the form of probes. These probes are defined in the ChaosEngines of the faults and are updated when the fault execution takes place.
233237
The overall chaos experiment result can be viewed with the ChaosResult CRD which contains the `verdict` and the `probeSuccessPercentage` (a ratio of successful checks v/s total probes).
234238
235-
## What is a run?
239+
## Chaos experiment run
236240
237241
A chaos experiment run can be defined as a single/one-time execution of the chaos experiment. There can be multiple runs of a single chaos experiment. If the chaos experiment consists of a cron syntax, it will run periodically according to the cron provided in the chaos experiment.
238242
239-
## What is Resilience Score?
243+
## Resilience Score
240244
241245
**Resiliency score** is an overall measure of the resiliency of a system for a given chaos experiment, which is obtained upon executing the constituent experiment faults on that system.
242246
@@ -255,7 +259,7 @@ Total Resilience for one single fault = (Weight Given to that fault * Probe Succ
255259
Overall Resilience Score = Total Test Result / Sum of the assigned weights of the faults
256260
```
257261
258-
## What is a Cron Chaos Experiment?
262+
## Cron chaos experiment
259263
260264
Cron Chaos Experiment is a type of chaos experiment that runs on a pre-defined schedule. It consists of a mandatory field `spec.schedule`. A cron syntax is provided in this field at which the chaos experiment execution takes
261265
place.

website/docs/concepts/chaoshub.md

+24-21
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,11 @@ sidebar_label: ChaosHub
66

77
---
88

9-
ChaosHub allows you to orchestrate chaos experiments from the Public **[ChaosHub](http://hub.litmuschaos.io/)** or an alternate source for the Experiments (basically, a **[fork](https://github.com/litmuschaos/chaos-charts)** of the public hub with custom faults).
9+
A ChaosHub is a collection of experiment templates and faults that you can use to create and launch chaos experiments. Both experiments and faults are stored as manifests in an appropriate directory structure. This way, new experiment templates and faults can be added directly to the repository as files. In addition, the experiment templates can be derived from the existing experiments to be saved in ChaosHub from the web UI.
10+
11+
- ChaosHub is accessed using a Git service provider such as GitHub, where ChaosHub exists as a repository. This allows native version control and management of the faults and experiment artifacts.
12+
13+
- Chaos experiments can be created from the public [ChaosHub](http://hub.litmuschaos.io/) which is already connected to your ChaosCenter, or a custom ChaosHub which is a [fork](https://github.com/litmuschaos/chaos-charts) of the public ChaosHub where custom faults can be stored.
1014

1115
## Prerequisites
1216

@@ -18,37 +22,37 @@ The following are the prerequisites for creating a Chaos Experiment:
1822
An active internet connection is required to clone the git repository for the first time installation.
1923
:::
2024

21-
## Connecting a Git repository using ChaosHub
25+
## Connecting to a Git repository using ChaosHub
2226

2327
With ChaosHub, you can construct chaos experiments by selecting, tuning and sequencing different faults together from their connected ChaosHubs.
2428

2529
You can make changes in your forked repositories and sync it with the Portal to get the latest changes from the fork.
2630

27-
By default, a Public ChaosHub is provided when the ChaosCenter is installed for the first time.
31+
By default, a public ChaosHub is provided when the ChaosCenter is installed for the first time.
2832

2933
<img src={require('../assets/concepts/chaoshub/chaoshub-default.png').default} width="800" />
3034

31-
### 1. Connect a Public Git Repository
35+
### 1. Connect a public Git repository
3236

3337
You can connect to a public Git repository by simply providing the following details:
3438

35-
- Hub Name
39+
- Hub name
3640
- Git URL of the forked repository
37-
- Branch Name
41+
- Branch name
3842

3943
<img src={require('../assets/concepts/chaoshub/chaoshub-add-public.png').default} width="800" />
4044

41-
### 2. Connect a Private Git Repository
45+
### 2. Connect a private Git repository
4246

43-
To add a Private Hub, you need provide the Hub name, Git URL of the forked repository and the Branch name similar to that of Public Hub and the repository can be connected by 2 methods:
47+
To add a private ChaosHub, you need provide the hub name, Git URL of the forked repository and the branch name similar to that of public hub and the repository can be connected in two ways:
4448

4549
<img src={require('../assets/concepts/chaoshub/chaoshub-add-private.png').default} width="800" />
4650

47-
#### a. Access Token
51+
#### a. Access token
4852

4953
Personal Access Tokens are used as an alternative to the password for authentication to Git services.
5054

51-
#### b. SSH Key
55+
#### b. SSH key
5256

5357
Just like the Access Token , SSH keys are used for the authentication. These keys come in pairs, a public key that is shared with the Git Services and a private key that is stored with you.
5458
SSH link of the repository should be provided if you select this method.
@@ -57,13 +61,13 @@ SSH link of the repository should be provided if you select this method.
5761

5862
## Syncing a ChaosHub
5963

60-
If some changes are made into the git repository, you can reflect these changes in the hub by selecting the **Refresh Hub** option from the ChaosHub card.
64+
If some changes are made into the Git repository, you can reflect these changes in the hub by selecting the **Refresh Hub** option from the ChaosHub card.
6165

6266
## Editing a ChaosHub
6367

6468
To make changes in a hub like changing the name, branch, access token etc, you can select the **Edit Hub** option from the ChaosHub card.
6569

66-
## Chaos Experiments and Experiments in a ChaosHub
70+
## Chaos experiments and experiments in a ChaosHub
6771

6872
### 1. View the PreDefined Chaos Experiments
6973

@@ -73,16 +77,16 @@ After connecting a ChaosHub, you can view the different pre-defined chaos experi
7377

7478
### 2. View the Chaos Faults
7579

76-
Similarly, you can view the different charts and the fault. These charts are sorted according to different categories like generic, aws, azure, kube-components etc.
80+
Similarly, you can view the different charts and the fault. These charts are sorted according to different categories like generic, AWS, Azure, Kube-Components etc.
7781

7882
<img src={require('../assets/concepts/chaoshub/chaoshub-chaos-charts.png').default} width="800" />
7983

8084
### 3. View the fault details
8185

82-
You can select one of the chaos faults and can examine the fault details.
83-
The fault page consists of all the important details like the description of the fault, a tutorial video, the maintainer of the fault, etc.
84-
You can also find the fault yaml link, RBAC link, and the ChaosEngine yaml link of the fault.
85-
These yaml links are required for the creation of Custom Chaos Experiments.
86+
You can select one of the chaos faults and can examine the fault details. The fault page consists of all the important details like the description of the fault, a tutorial video, the maintainer of the fault, etc.
87+
88+
You can also find the Experiment manifest URL, RBAC URL, and the ChaosEngine URLs of the fault.
89+
These URLs are required for the creation of custom chaos experiments.
8690

8791
<img src={require('../assets/concepts/chaoshub/chaoshub-exp-details.png').default} width="800" />
8892

@@ -92,10 +96,9 @@ To remove a ChaosHub from a project, you can select the **Disconnect Hub** optio
9296

9397
## Summary
9498

95-
You can select one of the chaos faults and can examine the fault details.
96-
The fault page consists of all the important details like the description of the fault, a tutorial video, the maintainer of the fault, etc.
97-
You can also find the fault yaml link, RBAC link, and the ChaosEngine yaml link of the fault.
98-
These yaml links are required for the creation of Custom Chaos Experiments.
99+
You can select one of the chaos faults and can examine the fault details.The fault page consists of all the important details like the description of the fault, a tutorial video, the maintainer of the fault, etc.
100+
You can also find the Experiment URL URL, RBAC URL, and the ChaosEngine yaml URL of the fault.
101+
These yaml URLs are required for the creation of Custom Chaos Experiments.
99102

100103
## Learn More
101104

0 commit comments

Comments
 (0)