TechLunch

The free lunch is over.

どのようなワークロードをコンテナ化すべきか

Container JournalのDeciding Which – and How Many – Workloads to Containerizeという記事が興味深かったので、簡単に紹介します。

記事では、

No matter how popular containers become, the reality is that they are going to coexist with virtual machines and bare-metal servers at most organizations. They won’t totally replace older forms of infrastructure.

という考えのもと、どのようなワークロードをコンテナ化すべきかについて述べています。

コンテナ化すべきものとそうでないもの

どのインフラをコンテナ化すべきか考える時に、次の質問を投げかけています。

Persistent data needs.

データの永続化を必要としないstatelessなアプリケーションは、コンテナ化する第一候補となるでしょう。一方、永続化を必要とするアプリケーションのコンテナ化は複雑です。まずは、statelessなアプリケーションのコンテナ化で知見をためていくことを私はおすすめしています。

Workload isolation.

ベアメタル、コンテナ、VMでisolationのレベルは大きく異なるので、要件に従って適切な方法を取る必要があります。私の感覚では、自社が管理するマシン上で様々なアプリケーションを走らせる場合には、コンテナは適していると思います。

Scalability.

コンテナはVMと比べて起動速度も早いですし、スケーラビリティが求められるワークロードはコンテナ化に適していると言えます。

Updates.

迅速かつ継続的に更新が必要なアプリケーションの場合は、Dockerイメージとコンテナの恩恵を強く感じると思います。一方、ほとんど更新を必要としないレガシーなアプリケーションは現在の実行環境から、あえてコンテナ化しても期待する効果を得ることはできないかもしれません。

その他にも記事では、

How Much Should You Containerize?

などについて、述べていますので、興味のある方はご覧ください。