forked from chaos-eng/chaos-eng.github.io
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
169 lines (157 loc) · 26.2 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
<!DOCTYPE html>
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Principles of Chaos Engineering</title>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-68131502-1', 'auto');
ga('send', 'pageview');
</script>
<script type="text/javascript">
/** Toggle function to show or hide a div
* @parameter anId string is of the element to show or hide
*/
function toggle(anId)
{
node = document.getElementById(anId);
if (node.style.visibility=="hidden")
{
// Element is hidden, show it
node.style.visibility = "visible";
node.style.height = "auto";
}
else
{
// Element is visble, hide it
node.style.visibility = "hidden";
node.style.height = "0";
}
}
</script>
<script type="text/javascript">var switchTo5x=true;</script>
<script type="text/javascript" src="https://ws.sharethis.com/button/buttons.js"></script>
<script type="text/javascript">stLight.options({publisher: "ddbeb28b-841c-417b-9240-a42b1b20d522", doNotHash: false, doNotCopy: false, hashAddressBar: false});</script>
<style type="text/css">
body {
font-family: arial, sans, sans-serif;
margin: 0;
}
iframe {
border: 0;
frameborder: 0;
height: 100%;
width: 100%;
}
#header, #footer {
background: #f0f0f0;
padding: 10px 10px;
}
#header {
border-bottom: 1px #ccc solid;
}
#footer {
border-top: 1px #ccc solid;
border-bottom: 1px #ccc solid;
font-size: 13;
}
#contents,#socialcount {
margin: 4em auto;
width: 40em;
}
.dash {
padding: 0 6px;
}
</style></head>
<body>
<div id="contents"><style type="text/css">@import url('https://themes.googleusercontent.com/fonts/css?kit=VdzaRt4WQn_rvT97iDToL43qJkZ0mILFEVSiyyQMWHIibyMe4ukfvPvpfYEqkIMW');ol.lst-kix_tgmutpd37h0c-7.start{counter-reset:lst-ctn-kix_tgmutpd37h0c-7 0}ol.lst-kix_tgmutpd37h0c-0.start{counter-reset:lst-ctn-kix_tgmutpd37h0c-0 0}ol.lst-kix_tgmutpd37h0c-5.start{counter-reset:lst-ctn-kix_tgmutpd37h0c-5 0}.lst-kix_tgmutpd37h0c-0>li{counter-increment:lst-ctn-kix_tgmutpd37h0c-0}.lst-kix_tgmutpd37h0c-3>li{counter-increment:lst-ctn-kix_tgmutpd37h0c-3}.lst-kix_tgmutpd37h0c-6>li{counter-increment:lst-ctn-kix_tgmutpd37h0c-6}ol.lst-kix_tgmutpd37h0c-8.start{counter-reset:lst-ctn-kix_tgmutpd37h0c-8 0}.lst-kix_tgmutpd37h0c-5>li:before{content:"" counter(lst-ctn-kix_tgmutpd37h0c-5,lower-roman) ". "}ol.lst-kix_tgmutpd37h0c-3.start{counter-reset:lst-ctn-kix_tgmutpd37h0c-3 0}.lst-kix_tgmutpd37h0c-4>li:before{content:"" counter(lst-ctn-kix_tgmutpd37h0c-4,lower-latin) ". "}ol.lst-kix_tgmutpd37h0c-1.start{counter-reset:lst-ctn-kix_tgmutpd37h0c-1 0}.lst-kix_tgmutpd37h0c-8>li{counter-increment:lst-ctn-kix_tgmutpd37h0c-8}.lst-kix_tgmutpd37h0c-1>li:before{content:"" counter(lst-ctn-kix_tgmutpd37h0c-1,lower-latin) ". "}.lst-kix_tgmutpd37h0c-3>li:before{content:"" counter(lst-ctn-kix_tgmutpd37h0c-3,decimal) ". "}.lst-kix_tgmutpd37h0c-2>li{counter-increment:lst-ctn-kix_tgmutpd37h0c-2}ol.lst-kix_tgmutpd37h0c-6.start{counter-reset:lst-ctn-kix_tgmutpd37h0c-6 0}.lst-kix_tgmutpd37h0c-2>li:before{content:"" counter(lst-ctn-kix_tgmutpd37h0c-2,lower-roman) ". "}.lst-kix_tgmutpd37h0c-6>li:before{content:"" counter(lst-ctn-kix_tgmutpd37h0c-6,decimal) ". "}.lst-kix_tgmutpd37h0c-7>li:before{content:"" counter(lst-ctn-kix_tgmutpd37h0c-7,lower-latin) ". "}.lst-kix_tgmutpd37h0c-5>li{counter-increment:lst-ctn-kix_tgmutpd37h0c-5}.lst-kix_tgmutpd37h0c-0>li:before{content:"" counter(lst-ctn-kix_tgmutpd37h0c-0,decimal) ". "}.lst-kix_tgmutpd37h0c-8>li:before{content:"" counter(lst-ctn-kix_tgmutpd37h0c-8,lower-roman) ". "}ol.lst-kix_tgmutpd37h0c-2{list-style-type:none}ol.lst-kix_tgmutpd37h0c-1{list-style-type:none}ol.lst-kix_tgmutpd37h0c-4{list-style-type:none}ol.lst-kix_tgmutpd37h0c-3{list-style-type:none}ol.lst-kix_tgmutpd37h0c-0{list-style-type:none}ol.lst-kix_tgmutpd37h0c-4.start{counter-reset:lst-ctn-kix_tgmutpd37h0c-4 0}ol.lst-kix_tgmutpd37h0c-2.start{counter-reset:lst-ctn-kix_tgmutpd37h0c-2 0}.lst-kix_tgmutpd37h0c-4>li{counter-increment:lst-ctn-kix_tgmutpd37h0c-4}.lst-kix_tgmutpd37h0c-7>li{counter-increment:lst-ctn-kix_tgmutpd37h0c-7}.lst-kix_tgmutpd37h0c-1>li{counter-increment:lst-ctn-kix_tgmutpd37h0c-1}ol.lst-kix_tgmutpd37h0c-6{list-style-type:none}ol.lst-kix_tgmutpd37h0c-5{list-style-type:none}ol.lst-kix_tgmutpd37h0c-8{list-style-type:none}ol.lst-kix_tgmutpd37h0c-7{list-style-type:none}ol{margin:0;padding:0}.c4{line-height:1.4;font-size:13pt;font-family:"Source Sans Pro";font-style:italic;color:#999999;font-weight:normal}.c1{orphans:2;widows:2;text-align:justify;direction:ltr;height:11pt}.c5{font-size:24pt;font-family:"Montserrat";color:#3d85c6;font-weight:bold}.c19{font-size:13pt;font-family:"Source Sans Pro";color:#999999;font-weight:normal}.c18{orphans:2;widows:2;text-align:center;direction:ltr}.c2{font-size:10pt;orphans:2;widows:2;text-align:justify;direction:ltr}.c21{orphans:2;widows:2;direction:ltr;height:11pt}.c17{font-size:18pt;font-family:"Source Sans Pro";color:#3c78d8;font-weight:normal}.c14{font-size:24pt;font-family:"Montserrat";color:#434343;font-weight:bold}.c16{padding-top:18pt;page-break-after:avoid;text-align:center;direction:ltr}.c13{font-size:14pt;font-family:"Source Sans Pro";color:#6fa8dc;text-decoration:none}.c15{margin-bottom: 0.7em;margin-left:27pt;padding-top:0pt;margin-right:45pt}.c0{font-size:10pt;font-family:"Source Sans Pro";color:#434343}.c7{background-color:#ffffff;max-width:468pt;padding:72pt 72pt 72pt 72pt}.c6{margin-left:2em;margin-right:2em;padding-left:0pt}.c9{margin-left:36pt;margin-right:45pt}.c3{font-size:10pt;font-family:"Source Sans Pro"}.c10{background-color:#ffffff;color:#222222}.c20{padding:0;margin:0}.c12{page-break-after:avoid}.c8{margin-right:36pt}.c11{font-style:italic}.title{padding-top:0pt;color:#000000;font-size:21pt;padding-bottom:0pt;font-family:"Trebuchet MS";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}.subtitle{padding-top:0pt;color:#666666;font-size:13pt;padding-bottom:10pt;font-family:"Trebuchet MS";line-height:1.15;page-break-after:avoid;font-style:italic;orphans:2;widows:2;text-align:left}li{color:#000000;font-size:11pt;font-family:"Arial"}p{margin:0;color:#000000;font-size:11pt;font-family:"Arial"}h1{padding-top:10pt;color:#000000;font-size:16pt;padding-bottom:0pt;font-family:"Trebuchet MS";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}h2{padding-top:10pt;color:#000000;font-weight:bold;font-size:13pt;padding-bottom:0pt;font-family:"Trebuchet MS";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}h3{padding-top:8pt;color:#666666;font-weight:bold;font-size:12pt;padding-bottom:0pt;font-family:"Trebuchet MS";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}h4{padding-top:8pt;color:#666666;font-size:11pt;padding-bottom:0pt;font-family:"Trebuchet MS";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}h5{padding-top:8pt;color:#666666;font-size:11pt;padding-bottom:0pt;font-family:"Trebuchet MS";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}h6{padding-top:8pt;color:#666666;font-size:11pt;padding-bottom:0pt;font-family:"Trebuchet MS";line-height:1.15;page-break-after:avoid;font-style:italic;orphans:2;widows:2;text-align:left}</style>
<div id="ENcontent">
<p class="c18"><span class="c5">PRINCIPLES OF CHAOS ENGINEERING</span></p>
<p class="c18"><span class="c0">Last Update: 2018 May</span></p>
<h3 class="c16"><span class="c4">Chaos Engineering is the discipline of experimenting on a distributed system<br>
in order to build confidence in the system’s capability<br>
to withstand turbulent conditions in production.</span></h3>
<p class="c1"></p><p class="c2"><span class="c0">Advances in large-scale, distributed software systems are changing the game for software engineering. As an industry, we are quick to adopt practices that increase flexibility of development and velocity of deployment. An urgent question follows on the heels of these benefits: How much confidence we can have in the complex systems that we put into production?</span></p>
<p class="c1"><span class="c0"></span></p><p class="c2"><span class="c3 c10">Even when all of the individual services in a distributed system are functioning properly, the interactions between those services can cause unpredictable outcomes. Unpredictable outcomes, compounded by rare but disruptive real-world events that affect production environments, make these distributed systems inherently chaotic.</span></p><p class="c1"><span class="c3 c10"></span></p>
<p class="c2"><span class="c3 c10">We need to identify weaknesses before they manifest in system-wide, aberrant behaviors.</span><span class="c0"> Systemic weaknesses could take the form of:</span><span class="c0"> improper fallback settings when a service is unavailable; retry storms from improperly tuned timeouts; outages when a downstream dependency receives too much traffic; cascading failures when a single point of failure crashes; etc</span><span class="c0">. We must address the most significant weaknesses proactively, before they affect our customers in production. We need a way to manage the chaos inherent in these systems, take advantage of increasing flexibility and velocity, and have confidence in our production deployments despite the complexity that they represent.</span></p>
<p class="c1"><span class="c0"></span></p><p class="c2"><span class="c0">An empirical, </span><span class="c0">systems-based approach</span><span class="c0"> addresses the chaos in distributed systems at scale and builds confidence in the ability of those systems to withstand realistic conditions. </span><span class="c0">We learn about the behavior of a distributed system by </span><span class="c0">observing </span><span class="c0">it during a controlled experiment. We call this </span><span class="c0 c11">Chaos Engineering</span><span class="c0">.</span></p>
<p class="c1"><span class="c3"></span></p>
<h3 class="c2 c12"><a name="h.4zuknwz5zjdm"></a><span class="c17">CHAOS IN PRACTICE</span></h3>
<p class="c2"><span class="c3">To specifically address the uncertainty of distributed systems at scale, Chaos Engineering can be thought of as the facilitation of experiments to uncover systemic weaknesses. These experiments follow four steps:</span></p>
<ol class="c20 lst-kix_tgmutpd37h0c-0 start" start="1">
<li class="c2 c6"><span class="c3">Start by defining ‘steady state’ as some measurable output of a system that indicates normal behavior.</span></li>
<li class="c2 c6"><span class="c3">Hypothesize that this steady state will continue in both the control group and the experimental group.</span></li>
<li class="c2 c6"><span class="c3">Introduce variables that reflect real world events like servers that crash, hard drives that malfunction, network connections that are severed, etc.</span></li>
<li class="c2 c6"><span class="c3">Try to disprove the hypothesis by looking for a difference in steady state between the control group and the experimental group.</span></li>
</ol>
<p class="c2"><span class="c3">The harder it is to disrupt the steady state, the more confidence we have in the behavior of the system. If a weakness is uncovered, we now have a target for improvement before that behavior manifests in the system at large.</span></p>
<p class="c1"><span class="c0"></span></p>
<h3 class="c2 c12"><a name="h.pbt9yqhet2a1"></a><span class="c17">ADVANCED PRINCIPLES</span></h3>
<p class="c2"><span class="c0">The following principles describe an ideal application of Chaos Engineering, applied to the processes of experimentation described above. The degree to which these principles are pursued strongly correlates to the confidence we can have in a distributed system at scale.</span></p>
<h4 class="c2 c15"><a name="h.aor3c2didy5z"></a><span class="c13">Build a Hypothesis around Steady State Behavior</span></h4><p class="c2 c9"><span class="c0">Focus on the </span><span class="c0">measurable output</span><span class="c0"> of a system, rather than internal attributes of the system. Measurements of that output over a short period of time constitute a proxy for the system’s steady state.</span><span class="c0"> The overall system’s throughput, error rates, latency percentiles, etc. could all be metrics of interest representing steady state behavior. By focusing on systemic behavior patterns during experiments, </span><span class="c0">Chaos verifies that the system </span><span class="c0 c11">does</span><span class="c0"> work, rather than trying to validate </span><span class="c0 c11">how</span><span class="c0"> it works.</span></p>
<h4 class="c2 c15"><a name="h.xx9pyjy8b6fj"></a><span class="c13">Vary Real-world Events</span></h4>
<p class="c2 c9"><span class="c0">Chaos variables reflect real-world events. Prioritize events either by potential impact or estimated frequency</span><span class="c0">.</span><span class="c0"> Consider events that correspond to hardware failures like servers dying, </span><span class="c0">software failures like malformed responses</span><span class="c0">, and non-failure events like a spike in traffic or a scaling event. Any event capable of disrupting steady state is a potential variable in a Chaos experiment.</span></p>
<h4 class="c2 c15"><a name="h.vb69dlzcejn7"></a><span class="c13">Run Experiments in Production</span></h4><p class="c2 c9"><span class="c0">Systems behave differently depending on environment and traffic patterns. Since the behavior of utilization can change at any time, sampling real traffic is the only way to reliably capture the request path. To guarantee both authenticity of the way in which the system is exercised and relevance to the current deployed system, </span><span class="c0">Chaos strongly prefers to experiment directly on production traffic</span><span class="c0">.</span></p>
<h4 class="c2 c15"><a name="h.j261x4z5mpi0"></a><span class="c13">Automate Experiments to Run Continuously</span></h4><p class="c2 c9"><span class="c0">Running experiments manually is labor-intensive and ultimately unsustainable. Automate experiments and run them continuously. Chaos Engineering builds automation into the system to drive both orchestration and analysis.</span></p>
<h4 class="c2 c15"><span class="c13">Minimize Blast Radius</span></h4><p class="c2 c9"><span class="c0">Experimenting in production has the potential to cause unnecessary customer pain. While there must be an allowance for some short-term negative impact, it is the responsibility and obligation of the Chaos Engineer to ensure the fallout from experiments are minimized and contained.</span></p>
<p class="c1"><span class="c0"></span></p>
<p class="c2"><span class="c0">Chaos Engineering is a powerful practice that is already changing how software is designed and engineered at some of the largest-scale operations in the world. Where other practices address velocity and flexibility, Chaos specifically tackles systemic uncertainty in these distributed systems. The Principles of Chaos provide confidence to innovate quickly at massive scales and give customers the high quality experiences they deserve.</span></p><p class="c21"><span></span></p>
<p class="c2"><span class="c0">Join the ongoing discussion of the Principles of Chaos and their application in the <a href="https://groups.google.com/forum/#!forum/chaos-community">Chaos Community</a> Google Group.</span></p>
<p class="c1"><span class="c0"></span></p>
<p class="c2">Translations: <a href="#" onclick = "toggle('ENcontent');toggle('FRcontent')">FR</a> | <a
href="https://github.com/wizardbyron/principlesofchaos_zh-cn">中文
(简体)</a> | <a href="http://channy.creation.net/blog/principles-of-chaos-engineering">한국어</a> | <a href="https://github.com/rodrigojmartin/principios_del_caos">Spanish</a><br>
If you want to add your translation, please submit a pull request against
the <a href="https://github.com/chaos-eng/chaos-eng.github.io/">Github repository</a>.</p>
</div>
<div id="FRcontent" style="visibility:hidden;height:0">
<p class="c18"><span class="c5">PRINCIPES D’INGENIERIE DU CHAOS </span></p>
<p class="c18"><span class="c0">Mise à jour : Mai 2018 </span></p>
<h3 class="c16"><span class="c4">L’Ingénierie du Chaos est une discipline de l’expérimentation sur un système distribué afin de renforcer la confiance dans la capacité du système à résister à des conditions turbulentes en production. </span></h3>
<p class="c1"></p><p class="c2"><span class="c0">Les progrès dans les systèmes logiciels distribués à grande échelle changent le jeu pour l'ingénierie logicielle. En tant qu'industrie, nous adoptons rapidement des pratiques qui augmentent la flexibilité de développement et la rapidité de déploiement. Une question urgente émerge alors de ces évolutions : Quelle confiance pouvons-nous avoir dans les systèmes complexes que nous mettons en production ?</span></p>
<p class="c1"><span class="c0"></span></p><p class="c2"><span class="c3 c10">Même lorsque chacun des services d'un système réparti fonctionne individuellement correctement, les interactions entre ces services peuvent entraîner des résultats imprévisibles. Des résultats imprévisibles, aggravés par des événements rares mais perturbateurs du monde réel qui affectent les environnements de production, et rendent ces systèmes distribués intrinsèquement chaotiques.</span></p><p class="c1"><span class="c3 c10"></span></p>
<p class="c2"><span class="c3 c10">Nous devons identifier les faiblesses avant qu'elles ne se manifestent dans des comportements aberrants à l'échelle du système. Les faiblesses systémiques peuvent prendre la forme de : paramètres de fallback inadéquats lorsqu'un service est indisponible ; tentative de reprise avec effets cataclysmique à la suite de timeout incorrectement réglées ; pannes lorsqu'une dépendance en aval reçoit trop de trafic ; échecs en cascade à la suite de la défaillance d’un seul point ; etc. </span><span class="c0">. Nous devons aborder les faiblesses les plus significatives de manière proactive, avant qu'elles n'affectent nos clients en production. Nous avons besoin d'un moyen de gérer le chaos inhérent à ces systèmes, de tirer parti de la flexibilité et de la vitesse croissantes, et de faire confiance à nos déploiements de production malgré la complexité qu'ils représentent.</span></p>
<p class="c1"><span class="c0"></span></p><p class="c2"><span class="c0">Une approche empirique basée sur les systèmes aborde le chaos dans les systèmes distribués à grande échelle et renforce la confiance dans la capacité de ces systèmes à résister aux conditions du monde réel. Nous apprenons le comportement d'un système distribué en l'observant lors d'une expérience contrôlée. Nous appelons cela l'</span><span class="c0 c11">Ingénierie du Chaos.</span><span class="c0">.</span></p>
<p class="c1"><span class="c3"></span></p>
<h3 class="c2 c12"><a name="h.4zuknwz5zjdm"></a><span class="c17">CHAOS EN PRATIQUE</span></h3>
<p class="c2"><span class="c3">Pour répondre spécifiquement à l'incertitude des systèmes distribués à grande échelle, l'Ingénierie du Chaos peut être considérée comme la facilitation d’expériences pour découvrir les faiblesses systémiques. Ces expériences suivent quatre étapes :</span></p>
<ol class="c20 lst-kix_tgmutpd37h0c-0 start" start="1">
<li class="c2 c6"><span class="c3">Définir un « état stable » comme une sortie mesurable d'un système qui indique un comportement normal.</span></li>
<li class="c2 c6"><span class="c3">Faire l’hypothèse que cet état d'équilibre se poursuivra dans le groupe témoin et dans le groupe expérimental.</span></li>
<li class="c2 c6"><span class="c3">Introduire des variations qui reflètent des événements réels, tels que les serveurs en panne, les disques durs défectueux, les connexions réseau coupées, etc.</span></li>
<li class="c2 c6"><span class="c3">Tenter de réfuter l'hypothèse en recherchant une différence d'état d'équilibre entre le groupe témoin et le groupe expérimental. </span></li>
</ol>
<p class="c2"><span class="c3">Plus il est difficile de perturber l'état stable, plus nous avons confiance dans le comportement du système. Si une faiblesse est découverte, nous avons maintenant un objectif d'amélioration pour éviter que ce comportement ne se manifeste un jour.</span></p>
<p class="c1"><span class="c0"></span></p>
<h3 class="c2 c12"><a name="h.pbt9yqhet2a1"></a><span class="c17">PRINCIPES AVANCÉS</span></h3>
<p class="c2"><span class="c0">Les principes suivants décrivent une application idéale de l’Ingénierie du Chaos, en appliquant le processus d'expérimentation décrits ci-dessus. Le degré d’application de ces principes est fortement corrélé à la confiance que nous pouvons avoir dans un système distribué à grande échelle.</span></p>
<h4 class="c2 c15"><a name="h.aor3c2didy5z"></a><span class="c13">Définir l’hypothèse “Etat Stable” </span></h4><p class="c2 c9"><span class="c0">Il est préférable de se concentrer sur la sortie mesurable d'un système plutôt que sur les attributs internes du système. Il faut ensuite effectuer ces mesures sur une courte période de temps afin de définir les valeurs constituant l'état stationnaire du système. Le débit global du système, les taux d'erreur, les percentiles de latence, etc. sont tous des indicateurs intéressant sur le comportement en régime nominal. En se concentrant sur les modèles de comportement systémique pendant les expériences d’ingénierie du Chaos, on vérifie </span><span class="c0 c11">que le système fonctionne</span><span class="c0">, plutôt que d'essayer de valider </span><span class="c0 c11">comment il fonctionne</span><span class="c0">.</span></p>
<h4 class="c2 c15"><a name="h.xx9pyjy8b6fj"></a><span class="c13">Multiplier les événements réels</span></h4>
<p class="c2 c9"><span class="c0">Les variations d’événements Chaotiques permettent de refléter le monde réel. Il faut alors hiérarchiser les événements soit par impact potentiel ou fréquence estimée. Prenez en compte les événements qui correspondent à des défaillances matérielles telles que la mort des serveurs, les défaillances logicielles telles que les réponses mal formées et les événements sans échec tels qu'un pic de trafic ou un événement de mise à l'échelle. Tout événement capable de perturber l'état d'équilibre est une variable potentielle dans une expérience Chaos.</span></p>
<h4 class="c2 c15"><a name="h.vb69dlzcejn7"></a><span class="c13">Effectuer des expérimentations en Production</span></h4><p class="c2 c9"><span class="c0">Les systèmes se comportent différemment selon l'environnement et les modèles de trafic. Comme le comportement d'utilisation peut changer à tout moment, l'échantillonnage du trafic réel est le seul moyen de capturer un modèle de requêtes de manière fiable. Pour garantir à la fois l'authenticité de la manière dont le système est utilisé et la pertinence par rapport au système déployé actuel, l’Ingénieur du Chaos préfère fortement expérimenter directement le trafic de production.</span><span class="c0">.</span></p>
<h4 class="c2 c15"><a name="h.j261x4z5mpi0"></a><span class="c13">Automatiser les expérimentations pour les lancer en continu</span></h4><p class="c2 c9"><span class="c0">L’exécution des expériences manuellement nécessite beaucoup de main-d'œuvre et n'est finalement pas viable. Il est fortement recommandé d’automatisez les expériences pour pouvoir les exécuter en continu. L’Ingénierie du Chaos intègre l'automatisation dans le système pour piloter à la fois l'orchestration et l'analyse.</span></p>
<h4 class="c2 c15"><span class="c13">Minimiser le rayon de l’explosion</span></h4><p class="c2 c9"><span class="c0">Lorsqu’on expérimente en production, on peut potentiellement causer des impacts inutiles aux clients. Même s'il doit y avoir une tolérance à un impact négatif à court terme, l'Ingénieur du Chaos a la responsabilité et l'obligation de s'assurer que les retombées des expériences sont minimisées et contenues.</span></p>
<p class="c1"><span class="c0"></span></p>
<p class="c2"><span class="c0">L’Ingénierie du Chaos est une pratique puissante qui change déjà la façon dont les logiciels sont conçus et fabriqués dans le cadre de certaines des plus grandes opérations au monde. Là où d'autres pratiques traitent de la vitesse et de la flexibilité, le Chaos s'attaque spécifiquement à l'incertitude systémique des systèmes distribués. Les Principes du Chaos fournissent la confiance nécessaire pour innover rapidement à grande échelle et offrir aux clients un expériences avec le niveau de haute qualité qu'ils méritent.</span></p><p class="c21"><span></span></p>
<p class="c2"><span class="c0">Vous pouvez nous rejoindre pour échanger sur ces principes du Chaos et leur mise en application dans le groupe Google <a href="https://groups.google.com/forum/#!forum/chaos-community">Chaos Community</a>.</span></p>
<p class="c1"><span class="c0"></span></p>
<p class="c2">Traductions: <a href="#" onclick = "toggle('FRcontent');toggle('ENcontent')">EN</a> | <a
href="https://github.com/wizardbyron/principlesofchaos_zh-cn">中文
(简体)</a> | <a href="http://channy.creation.net/blog/principles-of-chaos-engineering">한국어</a> | <a href="https://github.com/rodrigojmartin/principios_del_caos">Spanish</a><br>
Si vous souhaitez contribuer en ajoutant votre traduction, vous pouvez soumettre une pull request dans ce <a href="https://github.com/chaos-eng/chaos-eng.github.io/">Github</a>.</p>
</div>
</div>
<div id="socialcount">
<p class="c1"><span class="c0"></span></p>
<p class="c2">
<span class='st_facebook_hcount' displayText='Facebook'></span>
<span class='st_twitter_hcount' displayText='Tweet'></span>
<span class='st_linkedin_hcount' displayText='LinkedIn'></span>
<span class='st_pinterest_hcount' displayText='Pinterest'></span>
<span class='st_email_hcount' displayText='Email'></span>
</p>
</div>
</body>
</html>