◯Twelve-Factor Appは何から始めればいい?
よく言われるんですよ。何から手をつければいいんですかと。
- 実行環境から作っておく
- 開発プロセスから設定していく
- 非機能要件から作っていく
色々考え方があると思います。
はっきり言ってどれが正解ってわけではないです。どれを選んでも僕はいいと思います。
Twelve-Factor Appという要素をどんどん実装していくことが大事なので、どこから始めてもその要素が実装できればいいんです。
「とは言え、どこからでもやるんですか?」って、かぶせ気味にご質問頂くパターンもかなり多い。
そこで、もし僕だったらどこから始めるか?という話をするならば、まず開発環境を整えることから始めるのかなと思います。
アプリケーションの開発環境を整えると、その時点で公用語と言いますか、同じプロトコル、同じ条件でみんなが話せるようになると思うんですね。
その環境を最初に作ることが非常に重要です。
ここで関係して来るのがコードベースであったり、依存関係であったり、ビルド、リリース、実行といったいわゆるDevOps、あとCI/CD に関わる部分ですね。
この辺りがまず作れていれば大体自動化できていますし、プロセス理解が進んでいる状態になっていると思います。
◯原則ステートレスで全体設計をする
クラウドネイティブアプリケーションだけでなく、オンプレミスの仕組みもそうですが、クラウド化はプロセスの分離をしないといけません。
プロセスの分離とは機能の分散。疎結合で機能を結んでいくことです。
まず開発プロセスから作っていき、開発プロセスが出来上がったら次はもちろん本番環境、つまり実際にアプリケーションが実行する環境を作っていくわけなんですが、そこでしっかりと原則ステートレスで全体設計をすることが大事です。
Web App for Containersでもいいんですが、ここではAzure Web Appsをベースとしています。
ステートレス構成でPaaSで組み、そこから色々展開していくのが僕の考え方です。
例えばいきなりここでKubernetesをやろうとしても、多分それは上手くいかない。
なぜならKubernetesは大規模なアーキテクチャなので、それを最初から分かっている方だったら全然問題ないんですが、小規模で始めたい方にKubernetesをいきなり薦めるのはやっぱり違うのかなと。
Azureであれば、僕はWeb Appsから進めていくのが筋かなと思います。
Web Appsをベースにこのような構成からまずやっていきましょうと、お客様にもご案内しています。
Twelve-Factor AppはそもそもSaaS開発に使うものですが、実際にTwelve-Factor AppはSaaS中でどういった設計上のメリットが出てくるのかと言うと、やっぱり疎結合な仕組みだと思うんですね。
疎結合なクラウド設計が実装までできるのがTwelve-Factor Appの一番のポイントなので、いきなり高度なマイクロサービスアーキテクチャを実装するよりも、まずはTwelve-Factor Appを用いた設計、実装をして、徐々にマイクロサービスを作っていき、最終的にはKubernetesなどの大規模クラスターサービスで移行するというやり方がベターです。
いきなりKubernetesではなくて、その前にまずやるべきことやりましょうということです。
Twelve-Factor Appはマイクロサービスを開発する上でも非常に重要なヒントがたくさんありますので、ぜひ参考にされるといいかなと思います。
◯Azureへの理解を深めるための参考サイト
1. Microsoft Learn

Microsoft Learn
Azureを初めて触る方もいらっしゃるので、まずはMicrosoft Learnからやってみてはどうでしょう。
Microsoft Learnはマイクロソフト社が無償提供しているオンライントレーニングで、テキストを読むだけでなく、ハンズオン形式でAzureを実際に触りながら学習できます。
2. Azure の基礎

Azure の基礎 第 1 部:Azure の主要概念に関する説明 (AZ-900) - Learn
Azureないしクラウドサービスを初めて利用される方には、このラーニングパスから始めることをお勧めします。
クラウドの概念やアカウント作成、ポータル利用からありますので、必要な部分だけ学習できます。
3. Azure アーキテクチャセンター

Azure アーキテクチャ センター - Azure Architecture Center
Azureアーキテクチャセンターも凄く皆さんに推しています。
これはアプリケーションアーキテクチャそのものがたくさん解説されています。
例えばドメイン駆動設計も含めてざっと載っているんですよ。
僕が一番参考にしているサイトなので、ぜひ皆さんも参考にされてみてください。
以上、Twelve-Factor Appエッセンシャル版でしたが、今後もっと深掘りした内容をどんどん皆さんにご提供していければと思いますので、楽しみにしていてください。
それでは、また。(おわり)
☆本記事はオルターブースYouTubeチャンネルの配信動画をもとに再構成しています。
☆配信動画の本編をご覧になりたい方はこちらから!(小島発表パート 15:20~32:14)