Beyond the 12 Factor App

Mar 30, 2019 22:20 · 1098 words · 3 minute read

Beyond the 12 Factor Appを読んだのでメモ。Beyond the 12 Factor AppはPivotalによってThe 12 Factor Appを元にまとめられたものである。目的としては、バズワードと化したThe 12 Factor Appに共通認識を与え、同じコンテキストで議論できるようにし、また、現在のクラウド環境に合わせるために既存の内容を改善および拡張すること、とされている。

構成としては、基本的には12 Factor Appを元に構成されているが、これに加えてAPI First, Telemetry, Authentication and Authorizationが追加されている。各項目については、まあそうだよね必要だよねと言った感じで特に疑問もなくふんふん読み進めていった。各項目の詳細については日本語でわかりやすくまとめられているスライドがあったのでこちらを参照するとよい。

全体の感想としては、ここで言及されている項目を満たすアプリケーションがいわゆるCloud Native Applicationのことを指すんだろうなと思った。
以前Cloud Native Infrastructureを読んだのだが、ここでCloud Native Applicationという用語が登場していた。

A cloud native application is engineered to run on a platform and is designed for resiliency, agility, operability, and observability. Resiliency embraces failures instead of trying to prevent them; it takes advantage of the dynamic nature of running on a plat‐ form. Agility allows for fast deployments and quick iterations. Operability adds con‐ trol of application life cycles from inside the application instead of relying on external processes and monitors. Observability provides information to answer questions about application state.

上記を読んでみて、Resiliency, Agility, Operability, and Observabilityといった性質をもったアプリケーションを設計・開発することがCloud Nativeというコンテキストにおいて重要であるということはわかったが、では具体的にどのような指針の元でアプリケーションを設計・開発していけばよいかイメージをもてなかった。しかし、Beyond the 12 Factor Appを今回読んでみて、これがCloud Native Applicationを設計・開発するための指針になるのだろうと感じた。

なお、Beyond the 12 Factor AppではCloud Native Appricationについて次のように定義している。

A cloud-native application is an application that has been designed and implemented to run on a Platform-as-a-Service installation and to embrace horizontal elastic scaling.

訳すと、

「クラウドネイティブアプリケーションは、Paasで動作でき、そして水平スケーリングできるように設計・実装されたアプリケーションである」

になるだろうか。Paasに限定しているのかと一瞬思ったがきっとそんなことはなくて、動かそうと思えばPaasで動かせるアプリケーション、と個人的には解釈した。

自分はWeb Application Engineerなので、例えば、今後KubernetesにのせるCloud Native Applicationを設計・開発する機会がもしかしたらあるかもしれないので、その時またこれを読み返したいなと思った。