カオスミドルウェア:弾力性を改善するためのDjangoアプリケーションにおける混乱


弾力性は、今日ソフトウェアのキーです.それはあなたのアプリケーションの信頼性に貢献し、主要な役割を果たすcompetitive advantage of your business . 弾力的なアプリケーションは、スマートにタイムアウト、遅れと不完全なサービス反応を取り扱うソフトウェアパターンの強さを利用します.
偉大な作家やプレゼンターのようなUwe Friedrichsen and Donald Firesmith 共有のアイデアや弾力性のあるソフトウェア設計についての知識.そのような記事は、破壊を克服して、ハンサムな方法でアプリケーション弾力性を改善するソフトウェアパターンについて説明します.
しかし、レジリエンスパターンを展開すると、開発者として実装を検証する必要があります.検証の地面に触れると、物事は難しくなるようだ.
カオスエンジニアリングツールは、仮想マシンを停止したり、Kubernetesクラスタのポッドを終了するような機能を広告します.「ブラスト半径」はここで高くなります.午後2時に金曜日の午後に回復設計パターンを調査するとき、開発者より高いものは予想します.
そこがどこだChaos Middleware パッケージが動作します.The Cloud Bug Study バギーコード、タイムアウト、その他のエラー処理を無視した状態は、システムのアンアベイラビリティの大きな部分につながります.
The Chaos Middleware あなたが乱流条件でアプリケーションをスローすることができます.それはあなたが遅延応答をシミュレートしたり、エラーを発生させることができます.必要に応じて破壊をアクティブにし、特定のURLパスにそれらを絞り込む.The Chaos Middleware あなたに“ブラスト半径”を最小化し、金曜日の午後にも、アプリケーションの回復力を確認する機会を与えます.
次の節では、DJangoアプリケーションIIのインストールと設定プロセス、および遅延とアプリケーションの故障のシミュレーションをご案内します.シミュレーションはHTTPヘッダーリクエストまたは Chaos Platform コントロールセンター.

インストールと設定


  • インストールChaos Middleware Djangoアプリケーションの場合:
     cd /path/to/your/django-application  # Enter your Django application
     venv/bin/activate  # Active virtual environment
     pip install -U proofdock-chaos-middleware-django
    

  • Djangoアプリケーションを構成します
     # Activate the ``Chaos Middleware`` component by adding 
     # it to the MIDDLEWARE list in your Django settings
     MIDDLEWARE = [
       '..'
       'pdchaos.middleware.contrib.django.django_middleware.DjangoMiddleware',
       '..'
     ]
    
     # Set the Chaos Middleware settings
     CHAOS_MIDDLEWARE = {
       'CHAOS_MIDDLEWARE_APPLICATION_NAME': 'example-application-name',
       'CHAOS_MIDDLEWARE_APPLICATION_ENV': 'example-environment'
     }
    
  • アプリケーションの起動
  • 遅延をシミュレートする


    トリガの遅延x-proofdock-attack リクエストヘッダ.The Chaos Middleware このヘッダーの中のどんな値も見つけます.
    ヘッダの値を{"actions":[{"name":"delay","value":"15"}]} . 値はシミュレーションを記述するnamevalue 秒単位で.記述されたシミュレーションは応答を15秒遅らせます.
    シミュレーションのために、我々はHTTPリクエストを視覚化するためにPostmanクライアントを使用します.

    遅延シミュレーション

    断層をシミュレートする


    を設定して例外を送出するx-proofdock-attack リクエストヘッダ.
    ヘッダの値を{"actions":[{"name":"fault","value":"Exception"}]} . 値はシミュレーションを記述するnamevalue 送出する例外の完全修飾名として.シミュレーションではException .

    故障シミュレーション

    Azure devopsユーザのための制御センター


    そのような攻撃を制御するより魅力的な方法は、Proofdock Chaos Platform . The Chaos Platform カオスエンジニアリング機能を持つAzure devopsを拡張します.コントロールセンターでは、グラフィカルユーザーインターフェイスを介してアプリケーションの攻撃を制御することができますし、アプリケーションのキャッシュに構成された攻撃をすることができます.チェックアウトdocs あなたが興味があるときChaos Platform .

    Azure devopsにおける制御センター

    ありがとう


    私たちはあなたが楽しみを持って、弾力性にいくつかの新しい側面を学んだことを願っています.
    我々はProofdock , エンジニアがより強力で信頼できるソフトウェア製品を造るのを手伝っているドイツに位置するソフトウェア技術会社.チェックアウトChaos Platform マイクロソフトAzureのために、あなたのシステムを調査してください.

    参考文献

  • ソースコードをチェックアウトGitHub
  • Read the docs
  • インストール Chaos Platform