アリにも大きな猿を雇いました...

ここに画像を挿入説明

私たちはちょうど冗談を「妨害しない」ために、古い猿「を雇いました」。

まず、サルは何をするかですか?

プログラマの視点から見ると、3種類の方法よりも少ないシステムの安定性には何も改善しません。

•このような容器およびスケジューリング、マイクロサービス、メッセージ、ソフト荷重中心の緯度の構成などの様々な技術によって、システム・アーキテクチャのロバスト性を改善します。

•問題がある場合の解決策を考えると、すぐに見つけることができ、監視と生産の広さと深さを向上させます。

•生産期末試験、入試や運動のためのメカニズムを確立するために、表示される質問の種類がわからない、失敗で、障害の様々な種類が期待できる早期行使うち、例えば、ランダム殺害ノード、応答遅延、あるいは割り込み部屋。

猿たちは損傷、障害練習のチームメイトを行うために雇われていることです。(一緒にマッド、私たちも、自分自身を演じます)

第二に、早いそこから猿?

NetflixのストリーミングサービスNetflixが、もともとマイクロソフトのソフトウェア上に構築されたエンジニアによって開発され、サーバーラックの垂直方向の延長上に位置しています。しかし、主要なデータベースの破損は、ダウンタイムの3日間につながった2008年8月、中に攻撃を受けてこの単一障害点、DVDは、この期間中に顧客に送信することはできません。

その後、NetflixのNetflixのエンジニアは、分散クラウド・アーキテクチャにモノリシックアーキテクチャからスタック全体移行を回っています。

しかし、これはマイクロサービス分散アーキテクチャの何百もの大幅なシフトに余分の複雑さの多くをもたらします。この複雑さと分散システムの相互関連性は、取り扱いが困難であると一見ランダムな中断を防止するための新しいアプローチが必要なものを作成しました。より信頼性の高い、フォールトトレラントシステムの必要性のレベルにNetflixの変換ソフトウェアスタック拡張。

最も重要な教訓の一つは、「失敗を回避する最善の方法が失敗し続けることです。」である
ここに画像を挿入説明
2010年には、Netflixの工学ツールチームは、システムをテストするために使用されるカオス猿は、開発しました。ネットフリックスのこの猿軍団は、たむろする余地がある、マクロおよびビジネスディザスタリカバリを検証する能力をランダム例で殺すことができる、またはマシンを要求したり、スローリターンします。

第三に、アリは猿が支持している何ですか?

1、2011年
阿里巴巴开始做强弱依赖的治理和建设,希望提前发现因为依赖问题导致的系统故障,系统的代号是EOS(出处是古希腊神话中的黎明女神,语意是能够把纷乱的依赖关系梳理清楚)

2、2012年
完成交易的同城双活后,我们就启动了同城容灾演练,也叫断网演练。验证核心系统的同城一个机房挂掉的情况下,是否还可以正常工作。

3、2015年
因为一次宕机事故,公司内部得出一个结论:任何基础设施、生产系统、任何流程都可能出现问题,没有经过重大灾难验证的容灾设施都是耍流氓。 启动了代号为虎虎虎的生产突袭项目,用来验证异地多活的质量。

3、2016年
故障演练项目立项(GOC+中间件),重新设计架构和产品流程,确定产品名为MonkeyKing,在交易和中间件链路尝试演练。MonkeyKing是中国美猴王的意思,看重的是孙悟空高强的本领(火眼精金、七十二变)和极具反叛的精神来,希望用一种创新的思路来保证稳定性。
ここに画像を挿入説明
四、阿里的这只猴子能做些什么?

阿里巴巴因为其多元化的业务场景和日益复杂的技术架构,会遇到各式各样的故障,故障治理的难度相比流媒体服务故障治理,难度是也增量了几个台阶。

前面介绍过的强弱依赖和容灾演练只能覆盖到部分故障。如果对故障整体做初步画像,故障整体可以分为IaaS层、PaaS层、SaaS层的故障,每一层都可能有很多故障出发原因和表现。

ここに画像を挿入説明
故障如此之多,让人摸不着头脑,我们试着把维度降低一下,换一个视角来看故障:

•任何故障,一定是硬件如IaaS层,软件如PaaS或SaaS的故障, 并且有个规律,硬件故障的现象,一定可以在软件故障现象上有所体现;

•故障一定隶属于单机或是分布式系统之一,分布式故障包含单机故障;

•スタンドアロンまたは同じモデルの障害のシステム障害の観点にかかるように、現在のプロセスの障害であってもよい:FullGC、CPU舞い上がるなど、プロセス外部故障、メモリなどの他のプロセスが突然現在のシステムの異常をもたらす、押収ように。

•人為的なミス、不適切またはプロセス。

いずれの障害は、この断層モデルに設定することができます。このモデルでは、我々は、システムの故障シミュレーション訓練を設計するために始めることができます。
ここに画像を挿入説明

•障害の外の障害をシミュレートし、スタンドアローンのプロセスのハードウェア層をするために、クライアント・マシンでプラグ-OS層を展開するのに失敗。

アプリケーション・プロセス内の故障のために•、プラグフォールトプラグインを提供し、ユーザーは、私たちのAPIに従って達成するために、自分の失敗を行うことができます。

サーバーで障害が発生した範囲を制御するためにIPによると、分散型障害のために•。

•様々な理由のために、いくつかのアプリケーションがデータベースなど、到達できないため。私たちは、サービスアクセスの失敗のために、達成するための標準的な三者の失敗を提供しています。

上記のようにして、技術的な断層モデルは、基本的には、カバーの全体に置きます。

五、その後、どこからあなたは猿を雇うことができますか?

一つの方法:

2016は、カオスモンキー(Netflixの猿名)は、オープンソースであるが、2016年11月以来3番目のバージョン、ノーさらに新しいリリースを発表しました。

住所:https://github.com/Netflix/chaosmonkey

第二の方法:

2018年9月、MonkeyKing(アリサル名)のようにパブリッククラウドアリクラウドクライアントの出力を行うための無料サービスは、製品名は、可用性の高いアプリケーションサービスAHASあり、K8Sにトランクアクセスをサポートしてきました。

おすすめ

転載: blog.csdn.net/weixin_44946117/article/details/91539022