serial とローリングバッチ実行
安全な段階に分けて変更を展開します。
「serial とローリングバッチ実行」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。
すべてを一度に更新するのは危険
すべてのサーバーを一斉に更新すると速く完了しますが、変更に問題があるとフリート全体が同時に停止する可能性があります。ローリングアップデートなら、このリスクを避けられます。
serial を知る
serial キーワードは、すべてのホストを一度に処理するのではなく、バッチに分けてプレイを実行するよう指示します。1つのスライスを更新してから、次へ進みます。
- hosts: web
serial: 2数値でバッチサイズを指定する
serial に数値を指定すると、各バッチにその数のホストが含まれます。serial 2 の場合、Ansible は残りに触れる前に、2台のホストでプレイ全体を完了します。
パーセンテージを使う
パーセンテージを指定すると、フリートの規模に応じて変化します。serial: 25% なら、8台でも800台でも、1回のウェーブでホストの4分の1を更新します。
serial: 25%リストで段階的に増やす
リストを渡すと、確信が深まるにつれてバッチを大きくできます。最初は1台から始め、徐々に増やします。これは、カナリア展開から全体展開へ進む典型的なパターンです。
serial:
- 1
- 5
- 25%バッチごとにプレイ全体を実行する
重要なのは、serial が次のバッチに進む前に、1つのバッチでプレイ全体を実行することです。先行するスライスが完全に完了する間、後続のホストではまだ処理が始まりません。
max_fail_percentage で早期停止する
max_fail_percentage と serial を組み合わせると、バッチ内で失敗するホストが多すぎた場合にロールアウトを中止できます。問題のある変更が広がる前に停止できます。
- hosts: web
serial: 25%
max_fail_percentage: 30変更前にトラフィックを切り離す
安全なウェーブでは、まず各バッチをロードバランサーから切り離し、変更を適用してからホストを戻します。これにより、更新中のサーバーにユーザーがアクセスすることを防げます。
サービスを稼働させたままにする
ほかのバッチがトラフィックを処理し続けるため、ローリングアップデートではゼロダウンタイムを実現できます。デプロイ中もアプリケーションを利用できます。
serial と forks の関係
バッチ内では、forks が引き続き並列実行数を制御します。serial は1回のウェーブで処理するホスト数を制限し、forks はその中で同時に実行する数を制限します。
まず1台でテストする
serial: 1 から始めると、最初のホストがカナリアになります。問題が起きた場合はそこで実行が停止し、残りのフリートは正常なまま保たれます。
確認問題
100台のWebサーバーを停止させずに、少しずつ更新したいとします。
振り返り
serial を使って変更をバッチ単位で展開し、リストで段階的に規模を広げ、max_fail_percentage を追加して早期に中止できるようにします。これがゼロダウンタイムデプロイです。🌊
よくある質問
「serial とローリングバッチ実行」レッスンは無料ですか?
はい。「serial とローリングバッチ実行」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。
「serial とローリングバッチ実行」で何を学びますか?
安全な段階に分けて変更を展開します。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
DevOps Bootcampを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「serial とローリングバッチ実行」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このDevOps Bootcampレッスンでコードを書いて実行できますか?
はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- forks と並列実行のチューニング
- Strategy:linear、free、host_pinned
- SSH Pipelining と接続の再利用
- serial とローリングバッチ実行