タイトルの通り、『なぜベンチャーで docker を使うのか』の続編です。
弊社の代表が NHK の某番組に出演させていただく機会がありまして、実はこんなことをしていました。
前者はあまり関係ないのですが、後者に関して docker を使っていると便利そうだな、というケースがあったので、ごく短い記事ですが続編として投稿します。
さて、後者の記事で、Managed instance group の作り方 という節を書きました。
記事中ではイメージからインスタンスグループを作成する、という方法を紹介していますが、実はここで docker形式のイメージをマウントすることができます。
ここで考えたいのは、dockerイメージを使用しない場合の autoscaling の運用です。
記事中で紹介している方法では、スナップショットを基にイメージを作成しています。
この状態で、アプリケーションの更新を行った場合に何が起こるかを考えます。
オートスケーリングの際に作成するインスタンスのイメージには、更新前のアプリケーションがデプロイされているため、改めてアプリケーションをデプロイする必要が生じます。
従って、アプリケーションを最新の状態に保つためには、
- 既存のインスタンスが規定の負荷を超える
- オートスケーリング機能によってインスタンスが立ち上がる
- 立ち上がったインスタンスに対して新しいアプリケーションをデプロイする
というステップが必要になります。
それが嫌ならば、アプリケーションに更新がある度に、決して簡単とはいえない手順でイメージを作成しなければいけません。
あれっ?これって dockerイメージをデプロイした方が直感的だし、簡単じゃない?というのが、本記事で書きたかったモチベーションです。
メディアへの露出は、比較的大きなサービス(例えば MAU が 1億を超えるような)を運営しているところではあまり気にすることでもないですが、普段小さなインスタンス数台で運用しているようなスタートアップにおいては、このような自動化は重視されるべきことかと思います。
急なスパイクに明示的に対応しなければいけないベンチャーこそ、docker を使うべきだ、という主張が僕の中で強くなってきましたが、それは観測された事実ではなくて僕の意見なのでこの辺りで。