Skip to content

Commit 7a12270

Browse files
authored
Updated terminologies for chaos agent, workflow and charts (#197)
* Updated terminologies for chaos agent, workflow and charts Signed-off-by: Saranya-jena <[email protected]> * removed duplicate words Signed-off-by: Saranya-jena <[email protected]> * minor fixes Signed-off-by: Saranya-jena <[email protected]> * Added text fixes Signed-off-by: Saranya-jena <[email protected]>
1 parent 15da72d commit 7a12270

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+703
-668
lines changed

website/docs/architecture/architecture-summary.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ sidebar_label: Architecture Summary
55
---
66

77
---
8+
89
<img src={require("../assets/architecture-summary.png").default} alt="Architecture Overview" />
910

1011
The Litmus architecture can be segregated into two parts:
@@ -13,4 +14,4 @@ The Litmus architecture can be segregated into two parts:
1314

1415
2. **Execution Plane:** Contains the components required for the injection of chaos in the target resources.
1516

16-
Chaos Center can be used for creating, scheduling, and monitoring Chaos Workflows, a set of chaos experiments defined in a definitive sequence to achieve desired chaos impact on the target resources upon execution. Users can log in to the Chaos Center using valid login credentials and leverage the interactive web UI to define their chaos workflow to target multiple aspects of their infrastructure. Once the user creates a Chaos Workflow using the Chaos Center, 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 agent is being used, or in the target cluster if an external agent is being used. The Execution Plane interprets the Chaos Workflow 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 Workflow 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 Workflow runs to execute chaos as part of the CI/CD pipeline based on a set of defined conditions using GitOps.
17+
Chaos Center can be used for creating, scheduling, and monitoring Chaos Scenarios, a set of chaos experiments defined in a definitive sequence to achieve desired chaos impact on the target resources upon execution. Users can log in to the Chaos Center using valid login credentials and leverage the interactive web UI to define their chaos scenario to target multiple aspects of their infrastructure. Once the user creates a Chaos Scenario using the Chaos Center, 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 delegate is being used, or in the target cluster if an external chaos delegate is being used. The Execution Plane interprets the Chaos Scenario 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 Scenario 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 Scenario runs to execute chaos as part of the CI/CD pipeline based on a set of defined conditions using GitOps.

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

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,33 +8,33 @@ sidebar_label: Chaos Control Plane
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 Chaos Center, 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 workflows, system observability during the event of chaos, and post-processing and analysis of experiment results.
11+
Chaos Control Plane consists of micro-services responsible for the functioning of the Chaos Center, 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 scenarios, system observability during the event of chaos, and post-processing and analysis of experiment results.
1212

1313
## Chaos Control Plane Components
1414

15-
* **Authentication Server:** A Golang micro-service that is responsible for authorizing, authenticating the requests received from Chaos Center 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.
15+
- **Authentication Server:** A Golang micro-service that is responsible for authorizing, authenticating the requests received from Chaos Center 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

17-
* **Backend Server:** A GraphQL based Golang micro-service that serves the requests received from Chaos Center, by either querying the database for the relevant information or by fetching information from the Execution Plane.
17+
- **Backend Server:** A GraphQL based Golang micro-service that serves the requests received from Chaos Center, by either querying the database for the relevant information or by fetching information from the Execution Plane.
1818

19-
* **Database:** A NoSQL MongoDB database micro-service that is accountable for storing users' information, past workflows, saved workflow templates, user projects, ChaosHubs, and GitOps details, among the other information.
19+
- **Database:** A NoSQL MongoDB database micro-service that is accountable for storing users' information, past chaos scenarios, saved chaos scenario templates, user projects, ChaosHubs, and GitOps details, among the other information.
2020

21-
* **Chaos Center:** Refers to the interfaces used by Litmus for creation and scheduling of chaos workflows, system observability during chaos injection, and post chaos result analysis. It includes:
21+
- **Chaos Center:** Refers to the interfaces used by Litmus for creation and scheduling of chaos scenarios, system observability during chaos injection, and post chaos result analysis. It includes:
2222

23-
* **Web UI:** A React.js based frontend application micro-service with built-in system observability capabilities and an analytics dashboard. It also facilitates teams of users to collaborate over chaos workflows using role-based user accounts.
23+
- **Web UI:** A React.js based frontend application micro-service with built-in system observability capabilities and an analytics dashboard. It also facilitates teams of users to collaborate over chaos scenarios using role-based user accounts.
2424

25-
* **Litmusctl:** A command-line tool that allows management of Litmus Agent Infrastructure components. It can be used to create agents, project, and manage multiple Litmus accounts.
25+
- **Litmusctl:** A command-line tool that allows management of Litmus Chaos Delegate Infrastructure components. It can be used to create chaos delegates, project, and manage multiple Litmus accounts.
2626

27-
* **Litmus API:** Refers to two different Litmus APIs, namely Litmus Authentication API and Litmus Portal API:
27+
- **Litmus API:** Refers to two different Litmus APIs, namely Litmus Authentication API and Litmus Portal API:
2828

29-
* **Litmus Authentication API:** Used to authenticate the identity of a user and to perform several user and project specific tasks like create new users, update profile, update password, create project, invite users to project, get project details etc. It uses the Authentication Server to perform these tasks.
29+
- **Litmus Authentication API:** Used to authenticate the identity of a user and to perform several user and project specific tasks like create new users, update profile, update password, create project, invite users to project, get project details etc. It uses the Authentication Server to perform these tasks.
3030

31-
* **Litmus Portal API:** Provides command-line and UI experience for managing and monitoring the events around chaos workflows. It uses the Backend Server to perform its functions.
31+
- **Litmus Portal API:** Provides command-line and UI experience for managing and monitoring the events around chaos scenarios. It uses the Backend Server to perform its functions.
3232

3333
## Standard Chaos Control Plane Flow
3434

35-
1. The User logs in to the ChaosCenter using a valid login credential. A default project is created for the user on initial login. Every user is a part of a project and has a role assigned to them. To schedule a workflow, the user needs to have an Editor or Owner role assigned in the project.
36-
2. The user uploads a Chaos Workflow manifest using the ChaosCenter, which is received by the Backend Server.
37-
3. Backend Server stores the manifest in the Database and also sends it to the Chaos Agent.
38-
4. Chaos Agent uses the Chaos Workflow manifest to inject chaos into the target resources. The steps of the Chaos Workflow execution can be visualized using the ChaosCenter.
39-
5. Chaos Agent returns the results of the chaos experiments that were a part of the workflow back to the Backend Server, along with the experiment logs.
40-
6. Backend Server then sends the chaos experiment results and logs to the ChaosCenter. It also stores the results into the Database for generating post-chaos workflow statistics and information.
35+
1. The User logs in to the ChaosCenter using a valid login credential. A default project is created for the user on initial login. Every user is a part of a project and has a role assigned to them. To schedule a chaos scenario, the user needs to have an Editor or Owner role assigned in the project.
36+
2. The user uploads a Chaos Scenario manifest using the ChaosCenter, which is received by the Backend Server.
37+
3. Backend Server stores the manifest in the Database and also sends it to the Chaos Delegate.
38+
4. Chaos Delegate uses the Chaos Scenario manifest to inject chaos into the target resources. The steps of the Chaos Scenario execution can be visualized using the ChaosCenter.
39+
5. Chaos Delegate returns the results of the chaos experiments that were a part of the chaos scenario back to the Backend Server, along with the experiment logs.
40+
6. Backend Server then sends the chaos experiment results and logs to the ChaosCenter. It also stores the results into the Database for generating post-chaos scenario statistics and information.

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

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,24 +8,23 @@ sidebar_label: Chaos Execution Plane
88

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

11-
Chaos Execution Plane contains the components responsible for orchestrating the chaos injection in the target resources. They get installed in either an external target cluster if an external agent is being used or in the host cluster containing the control plane if a self-agent is being used. It can be further segregated into Litmus Agent Infrastructure components and Litmus Backend Execution Infrastructure components.
11+
Chaos Execution Plane contains the components responsible for orchestrating the chaos injection in the target resources. They get installed in either an external target cluster if an external chaos delegate is being used or in the host cluster containing the control plane if a self chaos delegate is being used. It can be further segregated into Litmus Chaos Delegate Infrastructure components and Litmus Backend Execution Infrastructure components.
1212

1313
## Litmus Execution Plane Components
1414

15-
Litmus Agent Infrastructure components help facilitate the chaos injection, manage chaos observability, and enable chaos automation for target resources. These components include:
15+
Litmus Chaos Delegate Infrastructure components help facilitate the chaos injection, manage chaos observability, and enable chaos automation for target resources. These components include:
1616

17-
1. **Workflow Controller:** The Argo Workflow Controller responsible for the creation of Chaos Workflows using the Chaos Workflow CR.
17+
1. **Workflow Controller:** The Argo Workflow Controller responsible for the creation of Chaos Scenarios using the Chaos Scenario CR.
1818

19-
2. **Subscriber:** Serves as the link between the Chaos Execution Plane and the Control Plane. It has a few distinct responsibilities such as performing health check of all the components in Chaos Execution Plane, creation of a Chaos Workflow CR from a Chaos Workflow template, watching for Chaos Workflow events during its execution, and sending the chaos workflow result to the Control Plane.
19+
2. **Subscriber:** Serves as the link between the Chaos Execution Plane and the Control Plane. It has a few distinct responsibilities such as performing health check of all the components in Chaos Execution Plane, creation of a Chaos Scenario CR from a Chaos Scenario template, watching for Chaos Scenario events during its execution, and sending the chaos scenario result to the Control Plane.
2020

21-
3. **Event Tracker:** An optional component that is capable of triggering automated chaos workflow runs based on a set of defined conditions for any given resources in the cluster. It is a controller that manages EventTrackerPolicy CR, which is basically the set of defined conditions that is validated by Event Tracker. If the current state of the tracked resources match with the state defined in the EventTrackerPolicy CR, the workflow run gets triggered. This feature can only be used if GitOps is enabled.
21+
3. **Event Tracker:** An optional component that is capable of triggering automated chaos scenario runs based on a set of defined conditions for any given resources in the cluster. It is a controller that manages EventTrackerPolicy CR, which is basically the set of defined conditions that is validated by Event Tracker. If the current state of the tracked resources match with the state defined in the EventTrackerPolicy CR, the chaos scenario run run gets triggered. This feature can only be used if GitOps is enabled.
2222

2323
4. **Chaos Exporter:** An optional component that facilitates external observability in Litmus by exporting the chaos metrics generated during the chaos injection as time-series data to the Prometheus DB for its processing and analysis.
2424

25+
Litmus Backend Execution Infrastructure components orchestrate the execution of Chaos Scenario in target resources. These components include:
2526

26-
Litmus Backend Execution Infrastructure components orchestrate the execution of Chaos Workflow in target resources. These components include:
27-
28-
1. **Chaos Workflow CR:** Refers to the Argo Workflow CR which describes the steps that are executed as a part of the chaos workflow. It is used to define failures during a certain workload condition (such as, say, percentage load), multiple (parallel) failures of dependent and independent services etc.
27+
1. **Chaos Scenario CR:** Refers to the Argo Workflow CR which describes the steps that are executed as a part of the chaos scenario. It is used to define failures during a certain workload condition (such as, say, percentage load), multiple (parallel) failures of dependent and independent services etc.
2928

3029
2. **ChaosExperiment CR:** Used for defining the low-level execution information for any Litmus chaos experiment as well as to store the various experiment tunables.
3130

@@ -45,12 +44,12 @@ Litmus Backend Execution Infrastructure components orchestrate the execution of
4544
<img src={require("../assets/chaos-execution-plane-chaos-runner.png").default} alt="Chaos Runner" />
4645
</div>
4746

48-
7. **Experiment Jobs:** Refers to the pods that execute the experiment logic. One experiment pod is created per chaos experiment in the workflow.
47+
7. **Experiment Jobs:** Refers to the pods that execute the experiment logic. One experiment pod is created per chaos experiment in the chaos scenario.
4948

5049
## Standard Chaos Execution Plane Flow
5150

52-
1. Subscriber receives the Chaos Workflow manifest from the Control Plane and applies the manifest to create a Chaos Workflow CR.
53-
2. Chaos Workflow CRs are tracked by the Argo Workflow Controller. When the Workflow Controller finds a new Chaos Workflow CR, it creates the ChaosExperiment CRs and the ChaosEngine CRs for the chaos experiments that are a part of the workflow.
51+
1. Subscriber receives the Chaos Scenario manifest from the Control Plane and applies the manifest to create a Chaos Scenario CR.
52+
2. Chaos Scenario CRs are tracked by the Argo Workflow Controller. When the Workflow Controller finds a new Chaos Scenario CR, it creates the ChaosExperiment CRs and the ChaosEngine CRs for the chaos experiments that are a part of the chaos scenario.
5453
3. ChaosEngine CRs are tracked by the Chaos Operator. Once a ChaosEngine CR is ready, the Chaos Operator updates the ChaosEngine state to reflect that the particular ChaosEngine is now being executed.
5554
4. For each ChaosEngine resource, a Chaos Runner is created by the Chaos Operator.
5655
5. Chaos Runner firstly reads the chaos parameters from the ChaosExperiment CR and overrides them with values from the ChaosEngine CR. It then constructs the Experiment Jobs and monitors them until their completion.
@@ -59,6 +58,7 @@ Litmus Backend Execution Infrastructure components orchestrate the execution of
5958
8. Once the ChaosEngine is updated, Subscriber fetches the ChaosEngine details and the ChaosResult and forwards them to Chaos Control Plane.
6059

6160
It is worth noticing that:
62-
- If configured, Chaos Exporter fetches data from the ChaosResult CR and converts it in a time-series format to be consumed by the Prometheus DB.
6361

64-
- An Event Tracker Policy can also be set up as part of the Backend GitOps, where the Backend GitOps Controller tracks a set of specified resources in the target cluster for any change. If any of the tracked resources undergo any change and their resulting state matches the state defined in the Event Tracker Policy, then a pre-defined Chaos Workflow is executed.
62+
- If configured, Chaos Exporter fetches data from the ChaosResult CR and converts it in a time-series format to be consumed by the Prometheus DB.
63+
64+
- An Event Tracker Policy can also be set up as part of the Backend GitOps, where the Backend GitOps Controller tracks a set of specified resources in the target cluster for any change. If any of the tracked resources undergo any change and their resulting state matches the state defined in the Event Tracker Policy, then a pre-defined Chaos Scenario is executed.

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ sidebar_label: Chaos Experiment Flow
88

99
<img src={require("../assets/experiment-flow.png").default} alt="Chaos Experiment Flow" />
1010

11-
The experiment execution is triggered upon the creation of a ChaosEngine resource. The ChaosEngine resource interacts with Chaos Runner, which is created by the Chaos Operator. The Chaos Runner creates Experiment Jobs that execute the experiment business logic. Typically, these ChaosEngines are embedded within the 'steps' of a Litmus Chaos Workflow. However, one may also create and apply the Chaos Engines manually, and then the chaos-operator reconciles this resource and triggers the experiment execution. Chaos experiments are classified as:
11+
The experiment execution is triggered upon the creation of a ChaosEngine resource. The ChaosEngine resource interacts with Chaos Runner, which is created by the Chaos Operator. The Chaos Runner creates Experiment Jobs that execute the experiment business logic. Typically, these ChaosEngines are embedded within the 'steps' of a Litmus Chaos Scenario. However, one may also create and apply the Chaos Engines manually, and then the chaos-operator reconciles this resource and triggers the experiment execution. Chaos experiments are classified as:
1212

1313
- Kubernetes Experiments
14-
- Pod-Level Chaos
15-
- Node-Level Chaos
14+
- Pod-Level Chaos
15+
- Node-Level Chaos
1616
- Application Chaos
1717
- Cloud Infrastructure
1818

0 commit comments

Comments
 (0)