<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: ChaosMeta</title>
    <description>The latest articles on DEV Community by ChaosMeta (@chaosmeta).</description>
    <link>https://dev.to/chaosmeta</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1096396%2F747d4293-86a8-4718-b3ad-a1cde9a0ebbd.png</url>
      <title>DEV Community: ChaosMeta</title>
      <link>https://dev.to/chaosmeta</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/chaosmeta"/>
    <language>en</language>
    <item>
      <title>Automated Chaos Engineering ChaosMeta V0.6 Officially Released</title>
      <dc:creator>ChaosMeta</dc:creator>
      <pubDate>Thu, 02 Nov 2023 06:06:35 +0000</pubDate>
      <link>https://dev.to/chaosmeta/automated-chaos-engineering-chaosmeta-v06-officially-released-4hck</link>
      <guid>https://dev.to/chaosmeta/automated-chaos-engineering-chaosmeta-v06-officially-released-4hck</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;The new version V0.6.0 of Chaos Engineering ChaosMeta is now officially released! This version contains many new features and enhancements. The orchestration interface provides support for various nodes including traffic injection, measurement, etc., and provides visual support for the entire drill process. Solve the last problem of "continuously automated running experiments" in the principles of chaos engineering.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;Introduction&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;ChaosMeta is a cloud-native chaos engineering platform designed for &lt;strong&gt;automated exercises&lt;/strong&gt;. It provides platform functions such as visual orchestration and scheduling, data isolation, and multi-cloud management, as well as rich fault injection capabilities, covering the entire life cycle of the drill. It embodies the methodology, technical capabilities and product capabilities that Ant Group has accumulated over many years in large-scale red and blue offensive and defensive drills at the company level.&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;New Features&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;In the new version, fault capabilities such as DNS anomalies and log injection are added, and the visual orchestration interface provides support for various nodes such as traffic injection and measurement, providing support capabilities for automated chaos engineering.&lt;/p&gt;

&lt;h3&gt;
  
  
  ▌Lossless injection
&lt;/h3&gt;

&lt;p&gt;Log injection is a simple fault capability that essentially appends text content to files. But the idea of lossless injection extended from this is more important.&lt;/p&gt;

&lt;p&gt;As the name suggests, non-destructive injection is to conduct drills without really affecting the business, and to discover the shortcomings of the application's emergency procedures such as monitoring alarms, hemostasis, and self-healing. It is a risk-minimized drill that is very suitable for production environments. Way.&lt;/p&gt;

&lt;p&gt;There are generally two implementation solutions for lossless injection:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;If the monitoring indicators of an application rely on log content, then by injecting the corresponding content into the application's log file, the perfection of the relevant emergency processes of the target application can be verified non-destructively;&lt;/li&gt;
&lt;li&gt;Directly tamper with the monitoring data of target monitoring items (such as CPU usage) to verify whether the subsequent emergency process is complete.
Below are two walkthrough scenarios for log injection:&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  （1）Common Error
&lt;/h4&gt;

&lt;p&gt;We usually monitor the number of combined keywords such as "Error" and "Exception" in the log file to determine whether there is an abnormality in the status of an application. If a sudden increase occurs, it is highly likely that the application has failed. Therefore, this type of failure can be simulated using the ability to log injection (file append)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foooqm05i8hxhplkuwumo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foooqm05i8hxhplkuwumo.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  （2）Interface request time consuming
&lt;/h4&gt;

&lt;p&gt;Due to the performance impact on monitoring collection and reporting, some applications use an asynchronous collection solution. The RPC framework outputs the request time and return code of each interface to the log, and then the collection agent asynchronously collects data from the log file. Report.&lt;/p&gt;

&lt;p&gt;The following is an example of time-consuming monitoring and collection of a message push interface. The time-consuming data of each interface is collected from the log file and reported to the monitoring platform:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmdxntng4vtqao2qyf4gj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmdxntng4vtqao2qyf4gj.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvsospi3fj7gvuq9hdtt1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvsospi3fj7gvuq9hdtt1.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this case, you can also use the fault capability of log injection (file append) to simulate a fault scenario where the request takes too long, without actually injecting a network fault into the application.&lt;/p&gt;

&lt;p&gt;Lossless injection is very efficient in scenarios that only require rapid verification of standardized emergency response capabilities such as monitoring alarms, positioning, and plans for a large number of applications.&lt;/p&gt;

&lt;h3&gt;
  
  
  ▌Automate running experiments
&lt;/h3&gt;

&lt;p&gt;The industry-recognized principles of chaos engineering are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Develop a hypothesis surrounding steady-state behavior&lt;/li&gt;
&lt;li&gt;Diverse real-world events&lt;/li&gt;
&lt;li&gt;Run experiments in production&lt;/li&gt;
&lt;li&gt;Minimize explosion radius&lt;/li&gt;
&lt;li&gt;Continuously run experiments automatically&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;There are always ways to implement the first four of them in the industry, but the last "continuous automated operation experiment" has never had a better implementation plan.&lt;/p&gt;

&lt;p&gt;Of course, many well-known chaos engineering projects have tried to solve this problem, and most of them provide product capabilities for scheduled execution. However, it is doubtful whether this scheduled execution capability can be used on a large scale in a production environment.&lt;/p&gt;

&lt;p&gt;The reason is that on the one hand, fault injection is a high-risk action. Without sufficient pre-admission and other inspection operations, there is not enough sense of security to automatically trigger; on the other hand, a drill is not just "fault injection", we often also need Do a lot of other "manual analysis" work, such as checking whether the target application status and current environment meet the preset conditions and whether the traffic is satisfied before injecting faults. After injecting faults, discover how much time it takes to locate and recover, analyze emergency efficiency, etc.&lt;/p&gt;

&lt;p&gt;ChaosMeta disassembles this kind of "manual analysis" work into different types of atomic execution tasks, divided into various types of nodes such as "fault injection", "metric execution", "traffic injection", "waiting", etc., and then based on Flexible orchestration capabilities are combined into automated drill scenarios with various business semantics. Here are a few simple examples:&lt;/p&gt;

&lt;h4&gt;
  
  
  High service availability and constant freshness
&lt;/h4&gt;

&lt;p&gt;We all have high service availability requirements for online applications, such as the ability to have multiple copies + automatic load balancing of services. Regular regular drills are a way to ensure that high availability capabilities are kept fresh.&lt;/p&gt;

&lt;p&gt;Since it is a production environment, we cannot just automatically initiate it casually, because you cannot guarantee whether multiple copies of an application will be available at all times. For example, before the drill, only one copy happens to be available, and there are a large number of users. In the case of traffic access, the drill you configured is automatically launched, which will cause immeasurable consequences.&lt;/p&gt;

&lt;p&gt;In this example, there are several operations that can increase your confidence in automated drills: confirm that there are multiple copies of the application, that the service user traffic is within an acceptable range, and that the application can return to the multi-copy state after the drill.&lt;/p&gt;

&lt;p&gt;The purpose of our exercise is to verify the high availability of the service, so the corresponding service availability measurement is also necessary.&lt;/p&gt;

&lt;p&gt;So as long as all the worrying factors are configured into the choreography, as long as the running result is successful, this drill will be a drill that meets expectations. On the contrary, if the execution fails, the relevant person in charge will be notified through the alarm to intervene. This will greatly free up manpower investment in drills.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmljy1gn0hpleqzeqk17j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmljy1gn0hpleqzeqk17j.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Red and blue attack and defense automation
&lt;/h4&gt;

&lt;p&gt;When conducting red and blue offensive and defensive drills, the blue army is generally responsible for designing scenarios for the drill, and finally makes an objective evaluation of the red army's emergency efficiency (personnel, platforms), in order to guide the direction of the red army's defense capability building.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn6z0clgxp86ztq7w98ov.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn6z0clgxp86ztq7w98ov.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A common way to judge the standard is to judge whether the Red Army's emergency discovery, location, and recovery time in a fault meet the requirements of 1, 5, and 10 minutes respectively. Otherwise, points will be deducted. Since "time consuming" is involved, an accurate starting time point (fault takes effect) and target time point (discovery, location, and recovery time) are necessary.&lt;/p&gt;

&lt;p&gt;The starting time point is the moment when the Red Army believes that the fault standard has been formed, and this is not necessarily the moment of fault injection in the traditional sense. For example, if the target service promises to guarantee a service delay of less than 3000ms, then only the network delay will be more than 3000ms. If it is considered to be a fault, then the Red Army should go to the emergency response. Similarly, the business recovery target is also below 3000ms. However, if the calculation is directly based on the fault injection operation time, it will cause a large error. Even this "fault injection" may not actually cause the fault that the Red Army thinks, so fault effectiveness measurement is also a very necessary link.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr8p939yf93jz2gtf9aya.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr8p939yf93jz2gtf9aya.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In order to evaluate the emergency response efficiency of the Red Army for each failure, the Blue Army needs to collect data from various emergency platforms (monitoring platform, positioning platform, self-healing platform, etc.). Manual collection and analysis is a very arduous task. However, traditional chaos engineering platforms only have fault simulation capabilities, and these "manual operations" must be performed repeatedly for the same drill scenario. ChaosMeta hopes to configure these "manual operations" into the platform to improve drill efficiency.&lt;/p&gt;

&lt;h4&gt;
  
  
  Network fault attack and defense drills
&lt;/h4&gt;

&lt;p&gt;This is a simple red and blue attack and defense drill example, for applications in scenarios where network latency is too large&lt;/p&gt;

&lt;p&gt;Since network traffic monitoring is involved, service traffic is a necessary condition. Without service traffic, network delay is injected, and an alarm of excessive service delay will not be triggered. Therefore, a node for Mock traffic needs to be configured;&lt;/p&gt;

&lt;p&gt;Access detection is also required to measure whether the current flow level meets expectations, otherwise the next process will most likely not be approved by the Red Army;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw9b92k4mhlmjy96pqe7i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw9b92k4mhlmjy96pqe7i.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then what is left is to measure the failure effective point and business recovery time point, which is used to collect data to analyze emergency efficiency.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhejgg5nt0x4dpkvb7ggs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhejgg5nt0x4dpkvb7ggs.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;Future Direction&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;Next, we will continue to improve our capabilities in all aspects&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Support multi-cloud and non-cloud management, that is, manage cross-cluster pods/nodes and non-k8s machines/bare containers;&lt;/li&gt;
&lt;li&gt;Improve the data analysis capabilities of measurement capabilities. Currently, it can only measure a single moment such as failure effectiveness, location, recovery, etc., and it is not possible to combine the moments of multiple nodes for analysis (for example: recovery time - effectiveness time &amp;lt; target time consumption);&lt;/li&gt;
&lt;li&gt;Support more atomic capabilities of various types of nodes, such as supporting business-level fault capabilities of mainstream open source projects such as mysql, oceanbase, and redis;&lt;/li&gt;
&lt;li&gt;Support some fault capabilities and measurement capabilities related to the stability of large model training and inference architecture risks, such as GPU high load injection.&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;Join Us&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;As an open project, we recognize the open source R&amp;amp;D model and are committed to building the ChaosMeta community into an open and creative community. In the future, all R&amp;amp;D, discussions and other related work will be run transparently in the community.&lt;/p&gt;

&lt;p&gt;We welcome any form of participation, including but not limited to questions, code contributions, technical discussions, demand suggestions, etc. Looking forward to receiving community ideas and feedback to drive the project forward.&lt;/p&gt;

&lt;p&gt;If you are interested in our project or design concept, please star our project to support it.&lt;/p&gt;

&lt;p&gt;GitHub：&lt;a href="https://github.com/traas-stack/chaosmeta" rel="noopener noreferrer"&gt;https://github.com/traas-stack/chaosmeta&lt;/a&gt;&lt;br&gt;
Documentation：&lt;a href="https://chaosmeta.gitbook.io/chaosmeta-en" rel="noopener noreferrer"&gt;https://chaosmeta.gitbook.io/chaosmeta-en&lt;/a&gt;&lt;br&gt;
Email：&lt;a href="//mailto:chaosmeta.io@gmail.com"&gt;chaosmeta.io@gmail.com&lt;/a&gt;&lt;br&gt;
Twitter：AntChaosMeta&lt;br&gt;
DingTalk Group：21765030887&lt;br&gt;
WeChat Public Account: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6dmrbpi7cdfwzo0s4jj5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6dmrbpi7cdfwzo0s4jj5.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Ant Group Chaos Engineering - ChaosMeta V0.5 Release</title>
      <dc:creator>ChaosMeta</dc:creator>
      <pubDate>Wed, 06 Sep 2023 03:00:53 +0000</pubDate>
      <link>https://dev.to/chaosmeta/ant-group-chaos-engineering-chaosmeta-v05-release-4a0d</link>
      <guid>https://dev.to/chaosmeta/ant-group-chaos-engineering-chaosmeta-v05-release-4a0d</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;The new version V0.5.0 of ChaosMeta, has been officially released! This version includes many new features and enhancements, offering users platform capabilities to support various stages of chaos engineering, along with a user-friendly interface to lower the entry barrier.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  Introduction to Core New Features of ChaosMeta V0.5
&lt;/h1&gt;

&lt;p&gt;The current version primarily introduces platform interface components (chaosmeta-platform), metric components (chaosmeta-measure-operator), and traffic injection components (chaosmeta-flow-operator).&lt;/p&gt;

&lt;h4&gt;
  
  
  ▌Platform Interface
&lt;/h4&gt;

&lt;p&gt;The platform interface provides a user-friendly operational interface for users to conveniently utilize the capabilities of ChaosMeta. The current platform capabilities primarily include:&lt;br&gt;
1.Space Management: Data isolation based on organizations or activities, ensuring data security and privacy.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aB8PGHDQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pa5g08qtqp7dvutk4hcy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aB8PGHDQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pa5g08qtqp7dvutk4hcy.png" alt="Image description" width="800" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.User Permission Management: Controls access permissions for different roles, effectively managing the usage of chaos engineering experiments.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ntqYdtJG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o9tlmenpkyy6n49mqlmk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ntqYdtJG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o9tlmenpkyy6n49mqlmk.png" alt="Image description" width="800" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.Experiment Orchestration: Utilizing drag-and-drop visual operations to make experiment orchestration more user-friendly and flexible, improving user efficiency.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PHKJKyuD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6lef6nbyfquinekuiyq9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PHKJKyuD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6lef6nbyfquinekuiyq9.png" alt="Image description" width="800" height="586"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.Experiment Results: Provides the ability to trace experiment execution details, allowing users to monitor experiment progress and results in real-time. This facilitates data analysis and decision-making for users.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qFd7SqpX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e9ivd5wusne36uvf0j0e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qFd7SqpX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e9ivd5wusne36uvf0j0e.png" alt="Image description" width="800" height="404"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  ▌Metric Engine
&lt;/h4&gt;

&lt;p&gt;The current metric engine includes four types of metric capabilities:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;monitor: Performs expected value judgments on monitoring metrics, such as whether the CPU usage of a particular machine exceeds 90%. It supports Prometheus by default.&lt;/li&gt;
&lt;li&gt;pod: Performs expected value judgments on pod-related data, such as whether the number of instances of a particular application's pod is greater than 3.&lt;/li&gt;
&lt;li&gt;http: Performs expected value judgments on HTTP requests, such as whether a specified HTTP request returns a status code of 200.&lt;/li&gt;
&lt;li&gt;tcp: Performs expected value judgments on TCP requests, such as testing whether the 8080 port of a specific server is reachable.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  ▌Traffic Engine
&lt;/h4&gt;

&lt;p&gt;The current traffic injection capability only supports injecting HTTP traffic. In the future, we will gradually add support for other types of traffic injection, such as RPC, DB client, Redis client, and more. &lt;br&gt;
The underlying implementation is based on the open-source component JMeter, where each traffic injection task initiates a JMeter job for execution.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dk6k3YT3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hm7nrjtexfcuml9qtapf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dk6k3YT3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hm7nrjtexfcuml9qtapf.png" alt="Image description" width="800" height="267"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Core Design Principles of ChaosMeta
&lt;/h1&gt;

&lt;p&gt;ChaosMeta is designed to address several commonly encountered industry challenges.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Integration of Chaos Engineering Practice Stages
&lt;/h3&gt;

&lt;p&gt;In the current industry, mainstream Chaos Engineering projects mainly focus on how to create failures. However, engineers who frequently conduct Chaos Engineering drills understand the pain points of repetitive tasks in each drill, such as checking if the current environment meets the prerequisites for the drill (drill admission), verifying if the business traffic is sufficient (traffic injection), assessing if the injected failures meet the expected outcomes (failure measurement), ensuring if the business services are restored within the predefined time (recovery measurement), and conducting retrospective analysis to identify risk points.&lt;/p&gt;

&lt;p&gt;Based on the industry landscape and the aforementioned problem analysis, combined with Ant Group's years of experience in the field of Chaos Engineering, the ChaosMeta platform is designed to cover the technical support for various stages, including "admission check," "traffic injection," "failure injection," "failure measurement," "recovery measurement," and "injection recovery." This design aims to free up human resources in each stage, streamlining Chaos Engineering practices.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NlRlGemR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ut2470zi8bg6tew2cuu6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NlRlGemR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ut2470zi8bg6tew2cuu6.png" alt="Image description" width="800" height="209"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Reusability of Fault Experiment Design Experience
&lt;/h3&gt;

&lt;p&gt;Before conducting Chaos Engineering drills, there is another labor-intensive task involved, which is the design of experiment scenarios. Currently, this part heavily relies on human design capabilities, making it challenging to fully automate the process. However, we can systematically abstract and document reusable design experiences, allowing for quick reuse when conducting Chaos Engineering drills on similar components. This is the original intention behind the design of a risk catalog.&lt;/p&gt;

&lt;p&gt;Initially, the risk catalog was primarily open-sourced in a theoretical manner. In the future, it will be integrated into the ChaosMeta project as a platform capability.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8b3RHx0H--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w46mn0qxk6kmmvzp07et.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8b3RHx0H--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w46mn0qxk6kmmvzp07et.png" alt="Image description" width="800" height="1237"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Complexity of Cloud-Native Infrastructure Environment
&lt;/h3&gt;

&lt;p&gt;The infrastructure environments of most companies are currently built on Kubernetes. The stability of both the cloud itself and cloud-native applications is of paramount importance. Traditional fault injection methods may struggle to address these challenges. Therefore, in the design of ChaosMeta, we aim to address the following problems:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fault Injection Capabilities for Kubernetes Stability&lt;/strong&gt;&lt;br&gt;
The focus is on the stability of Kubernetes itself, including core components such as APIServer and Scheduler, as well as the handling of abnormal states for various resources and exceptions in Operator applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Platform Support for Cloud-Native Deployment&lt;/strong&gt;&lt;br&gt;
chaosMeta is designed based on an operator-developed cloud-native architecture (see user documentation), making it naturally compatible with cloud-native environments for deployment.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oaI2aVfF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ee0mfpcxplw2mcf65ljy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oaI2aVfF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ee0mfpcxplw2mcf65ljy.png" alt="Image description" width="800" height="559"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Platform Support for Managing and Injecting Faults into Containers in the Cloud&lt;/strong&gt;&lt;br&gt;
With traditional methods, injecting faults into containers requires transferring the single-machine fault injection tool into the target container and executing commands. However, the base images of most business containers are minimalistic, lacking support for various command tools such as tc and fallocate. This limitation restricts container fault injection due to environmental factors.&lt;/p&gt;

&lt;p&gt;ChaosMeta uses a "containerized injection" approach to inject faults into pods and nodes within the cluster. The single-machine fault injection tool, chaosmetad, supports fault injection into containers on the host machine without the need to copy chaosmetad into the container. This is achieved by selectively entering the target container's Linux namespace on the host machine, enabling the use of host machine tools to simulate abnormalities in the corresponding namespace of the container.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--a89odGai--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1hfnivkt5ddksee04ful.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--a89odGai--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1hfnivkt5ddksee04ful.png" alt="Image description" width="800" height="520"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Platform Support for Managing and Injecting Faults into Containers Outside the Cloud&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Many companies still have business processes that are not yet migrated to the cloud. These processes are either deployed on ordinary physical/virtual machines or launched as bare containers on top of the existing infrastructure (e.g., Docker containers). In such cases, the platform needs to support managing these targets outside the cloud. ChaosMeta's single-machine fault injection tool, chaosmetad, supports agent mode startup, which periodically reports container information from the machines to the platform. The platform can directly select targets outside the cluster and issue fault injection tasks.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LhiBotCm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jwhzq01po2bnpzdd3bt7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LhiBotCm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jwhzq01po2bnpzdd3bt7.png" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multi-Cluster Management&lt;/strong&gt;&lt;br&gt;
While it is recommended to deploy one control platform per cluster, there are still users who prefer centralized management. ChaosMeta's platform design supports managing different clusters' kubeconfig and performing fault injection across clusters.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Automatable Paths
&lt;/h3&gt;

&lt;p&gt;The ultimate goal of platform technology is to liberate human resources and evolve towards automation and intelligence. While we may not have fully achieved this yet, it is crucial to at least move in the right direction.&lt;br&gt;
ChaosMeta's automation-focused Chaos Engineering philosophy is primarily supported by the platform capabilities at each stage of Chaos Engineering drills, with the "risk catalog" serving as a theoretical foundation. This allows ChaosMeta to progressively evolve towards automated Chaos Engineering.&lt;/p&gt;

&lt;h1&gt;
  
  
  2023 Roadmap
&lt;/h1&gt;

&lt;p&gt;This year's goal is primarily to improve the capabilities of the platform and ensure that the basic capabilities at each stage are fully developed. We will also collaborate further with other open-source communities, such as OceanBase and SOFA, to strive for the achievement of a complete version 1.0.&lt;/p&gt;

&lt;h4&gt;
  
  
  Platform Capabilities are as follows
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Ability to support all types of orchestration nodes&lt;/li&gt;
&lt;li&gt;Built-in generic experiment templates for some open-source components&lt;/li&gt;
&lt;li&gt;Provision of an Agent management interface to manage physical machines and containers in the cloud and on-premises&lt;/li&gt;
&lt;li&gt;Support for cross-cluster management&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Basic capabilities at each stage include
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Traffic Injection Capability: Enhancing traffic injection capabilities based on JMeter to provide more advanced traffic injection scenarios.&lt;/li&gt;
&lt;li&gt;Measurement Capability: Offering advanced state measurement capabilities in the direction of cloud-native technology.&lt;/li&gt;
&lt;li&gt;Fault Injection Capability: Progressing towards component-level fault injection capabilities, such as integrating fault injection capabilities for open-source components like OceanBase, MySQL, Redis, Etcd, and more.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Risk Catalog
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;The formal release of the open-source theoretical version includes the integration of two main capabilities into the ChaosMeta platform: "Generic Experiment Templates" and "Component-level Fault Injection Capability".&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Join ChaosMeta Community
&lt;/h1&gt;

&lt;p&gt;As an open project, we embrace the open-source development model and strive to build the ChaosMeta community as an open and creative space. Going forward, all development, discussions, and related work will be transparently conducted within the community.&lt;br&gt;
We welcome all forms of participation, including but not limited to asking questions, contributing code, engaging in technical discussions, and providing suggestions for improvements. We look forward to receiving community ideas and feedback to drive the project further.&lt;br&gt;
If you are interested in our project or design philosophy, please star our project to show your support.&lt;br&gt;
Note: Please note that the provided translations are as accurate as possible, but it is always recommended to have a native English speaker review the content for professional use.&lt;/p&gt;

&lt;p&gt;Project GitHub Repository:&lt;br&gt;
&lt;a href="https://github.com/traas-stack/chaosmeta"&gt;https://github.com/traas-stack/chaosmeta&lt;/a&gt;&lt;br&gt;
Official Documentation:&lt;br&gt;
&lt;a href="https://chaosmeta.gitbook.io/chaosmeta-cn"&gt;https://chaosmeta.gitbook.io/chaosmeta-cn&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;WeChat Group, please add the group owner as a friend (WeChat ID: KingsonKai) to receive an invitation to join the group.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--R3YBM-9b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/epz2kmdcg1gv8jcsfpgs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--R3YBM-9b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/epz2kmdcg1gv8jcsfpgs.png" alt="Image description" width="612" height="829"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;DingTalk Group: 21765030887&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UcsjIfFj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rik87h1jrwha4hesgj5d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UcsjIfFj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rik87h1jrwha4hesgj5d.png" alt="Image description" width="482" height="633"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;WeChat Public Account: ChaosMeta Chaos Engineering&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yBkD71V---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tmf0982nt5ha3vs6l1ab.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yBkD71V---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tmf0982nt5ha3vs6l1ab.png" alt="Image description" width="344" height="344"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Ant Group's automated chaos engineering ChaosMeta is officially open source</title>
      <dc:creator>ChaosMeta</dc:creator>
      <pubDate>Tue, 13 Jun 2023 02:29:01 +0000</pubDate>
      <link>https://dev.to/chaosmeta/ant-groups-automated-chaos-engineering-chaosmeta-is-officially-open-source-2k7j</link>
      <guid>https://dev.to/chaosmeta/ant-groups-automated-chaos-engineering-chaosmeta-is-officially-open-source-2k7j</guid>
      <description>&lt;h1&gt;
  
  
  ChaosMeta Introduction
&lt;/h1&gt;

&lt;p&gt;ChaosMeta is a chaos engineering platform designed for cloud-native and automated drills. It is the external open source version of XMonkey, an internal chaos engineering platform of Ant Group, which embodies the methodology, technical capabilities and product capabilities accumulated by Ant Group in the practice of large-scale red and blue offensive and defensive drills at the company level for many years.&lt;br&gt;
Driven by years of complex fault drill scenarios within the company, XMonkey has accumulated a lot of unique experience in the field of chaos engineering. It is an important platform for Ant Group R&amp;amp;D, testing, quality, SRE and other personnel to conduct historical fault drills and tap potential system risks. We very much hope that these experiences can be discussed and evolved together with the industry, so we open sourced ChaosMeta.&lt;br&gt;
ChaosMeta is designed to be a one-stop exercise comprehensive solution that includes a complete chaos engineering life cycle to help users quickly discover potential risks in business applications and systems. In addition, it also has a built-in "risk catalog" that condenses Ant Group's accumulation in the field of technical risks for many years. This is a summary of basic general risks in various technical fields.&lt;br&gt;
With the platform capabilities of the chaos engineering life cycle as the technical support and the "risk catalog" as the theoretical support, ChaosMeta can evolve towards automated chaos engineering.&lt;/p&gt;

&lt;h1&gt;
  
  
  Core Features
&lt;/h1&gt;

&lt;h3&gt;
  
  
  ▌Chaos Engineering Lifecycle
&lt;/h3&gt;

&lt;p&gt;The current mainstream chaos engineering projects in the industry mainly focus on how to create faults. Engineers who often do drill-related work should understand that there are still the following pain points in each drill: Check whether the current environment meets the preset conditions of the drill (Admission Check), whether the business flow is satisfied (Traffic Injection), whether the failure effect after injection is in line with expectations (Fault Measurement), whether the business service is restored within the preset time (Recovery Measurement), analyze and summarize the risk points.&lt;br&gt;
Based on the current situation of the industry and the analysis of the above problems, combined with Ant Group's years of experience in the field of chaos engineering, ChaosMeta proposed a model of Chaos Engineering Lifecycle, covering "Admission Check", "Traffic Injection", "Fault Injection", and "Fault Measurement" , "Recovery Measurement", "Injection Recovery" and other stages of technical support, providing technical basis for automated chaos engineering.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8Vt_SksM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h830a13r5gq12fj8apiy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8Vt_SksM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h830a13r5gq12fj8apiy.png" alt="Image description" width="800" height="209"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ▌Risk Catalog
&lt;/h3&gt;

&lt;p&gt;Ant Group holds company-level large-scale red and blue offensive and defensive drills every year for all businesses of the company, and many businesses also conduct 7X24-hour drills and monthly normal drills.&lt;br&gt;
Drill object types cover cloud products, Kubernetes, Operator applications, databases (OceanBase, Etcd, etc.), middleware (message queues, distributed scheduling, configuration centers, etc.), business applications (trading systems, marketing systems, etc.), etc.&lt;br&gt;
For each type of application, some of the most common risks can always be abstracted, such as message queues, there will be risks such as message accumulation, message loss, message order confusion, and unstable network of relying parties; such as transaction systems, there will be risks such as distributed transactions, amount consistency, and concurrency conflicts.&lt;br&gt;
The "Risk Catalog" is a "Risk Encyclopedia" that Ant Group has polished over the years in the context of a large-scale financial Internet architecture, and we will build the parts common to the open source world into the ChaosMeta project, as the theoretical basis of automated chaos engineering.&lt;/p&gt;

&lt;h3&gt;
  
  
  ▌Abundant cloud-native fault injection capabilities
&lt;/h3&gt;

&lt;p&gt;Large-scale and high-frequency drills have also promoted the construction of various fault injection capabilities. In addition to common system resource faults, kernel faults, network faults, JVM injection, etc. in the industry, we also provide a wealth of cloud-native fault injection capabilities.&lt;br&gt;
For example: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;accumulating a large number of pending pods in the kubernetes cluster, dragging down the scheduling system; &lt;/li&gt;
&lt;li&gt;injecting a validating admission webhook into the creation process of a resource object, prolonging the verification time and affecting the creation efficiency; &lt;/li&gt;
&lt;li&gt;injecting a mutating admission webhook to mutate specific fields; &lt;/li&gt;
&lt;li&gt;build a large number of Watch&amp;amp;List links to increase the burden on APIServer to call back Operator.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Cloud Native Architecture
&lt;/h1&gt;

&lt;p&gt;ChaosMeta's core platform capabilities are implemented based on the Operator development model, so it naturally supports cloud native. ChaosMeta is divided into three layers of design, see the official documentation for details:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The user layer is composed of chaosmeta-platform components, whose main task is to lower the threshold for users to use, provide a visual interface, and facilitate users to use platform functions such as planning, orchestration, experiment configuration, and experiment record details;&lt;/li&gt;
&lt;li&gt;The engine layer includes ChaosMeta's core platform capabilities such as remote injection, orchestration, and measurement, as well as the realization of some cloud-native fault capabilities;&lt;/li&gt;
&lt;li&gt;The kernel layer mainly includes the realization of single-machine fault injection capabilities, mainly including the chaosmetad component, which provides the way of resident HTTP service and the way of command line execution, and also encapsulates the corresponding daemonset component (chaosmeta-daemonset), which can be flexibly Match the drill platform with different needs.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4PWNNwVu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m0j4d09pyg7ntymsv2ys.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4PWNNwVu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m0j4d09pyg7ntymsv2ys.png" alt="Image description" width="800" height="691"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  RoadMap
&lt;/h1&gt;

&lt;p&gt;The planning of ChaosMeta is divided into two main routes: platform capabilities and fault injection capabilities. The current main task is to complete the transformation of the main capabilities in the architecture diagram and open them to the external version.&lt;/p&gt;

&lt;h3&gt;
  
  
  ▌Platform Capability
&lt;/h3&gt;

&lt;p&gt;The future evolution of ChaosMeta platform capabilities is divided into three stages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 1 - Manual Configuration&lt;/strong&gt;&lt;br&gt;
The goal to be achieved is to open all the components in the architecture diagram to the outside world. At this time, it can support the complete life cycle of chaos engineering, enter the field of primary automated chaos engineering, and use the "risk catalog" as a theoretical reference. Once manual configuration, multiple times automatically.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 2 - Automation&lt;/strong&gt;&lt;br&gt;
At this stage, the "Risk Catalog" will play a greater role. It not only gives the risk of a class of applications, but also the corresponding prevention and emergency recommendations, and the score of each item, and ChaosMeta will The "risk catalog" is integrated into a risk medical examination package of general components, which realizes the one-click "physical examination" capability, inputs target application information, and directly outputs a risk score and risk analysis report.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 3 - intelligence&lt;/strong&gt;&lt;br&gt;
Explore the direction of combining artificial intelligence.&lt;/p&gt;

&lt;h3&gt;
  
  
  ▌Fault Injection Capability
&lt;/h3&gt;

&lt;p&gt;The following is just a classification of fault capabilities. For the specific atomic fault capabilities provided, please refer to the description of fault capabilities (welcome to submit issues and put forward new capability requirements, and those with higher requirements are given priority):&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_S5lSpdh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vdmky4ugpd2rl9dcm0ag.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_S5lSpdh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vdmky4ugpd2rl9dcm0ag.png" alt="Image description" width="800" height="577"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Join ChaosMeta Community
&lt;/h1&gt;

&lt;p&gt;As an open project, we recognize the open source R&amp;amp;D model and are committed to making the ChaosMeta community an open and creative community. In the future, all R&amp;amp;D, discussion and other related work will be carried out transparently in the community.&lt;br&gt;
We welcome any form of participation, including but not limited to questions, code contributions, technical discussions, requirements suggestions, etc. Looking forward to receiving community ideas and feedback to move the project forward further.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub address：&lt;a href="https://github.com/traas-stack/chaosmeta"&gt;https://github.com/traas-stack/chaosmeta&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Official documentation：&lt;a href="https://chaosmeta.gitbook.io/chaosmeta-en"&gt;https://chaosmeta.gitbook.io/chaosmeta-en&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Twitter：AntChaosMeta&lt;/li&gt;
&lt;li&gt;Slack group：&lt;a href="https://app.slack.com/client/T057ERYMS8J/C057883SM38?geocode=zh-cn"&gt;https://app.slack.com/client/T057ERYMS8J/C057883SM38?geocode=zh-cn&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;DingTalk Group：21765030887&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>opensource</category>
      <category>kubernetes</category>
      <category>testing</category>
    </item>
  </channel>
</rss>
