1
/
5

The Twelve-Factor App on Azure エッセンシャル版(後編)

◯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
業界で広く認められた Microsoft 認定資格を取得することで、キャリアアップできるほか、ご自分の実績を示すことができます。 認定資格を確認する Learn TV Microsoft 製品を日常的に作成して使用しているエキスパートからの技術コンテンツ ストリーミングをご覧ください。 今すぐ見る
https://docs.microsoft.com/ja-jp/learn/


Azureを初めて触る方もいらっしゃるので、まずはMicrosoft Learnからやってみてはどうでしょう。

Microsoft Learnはマイクロソフト社が無償提供しているオンライントレーニングで、テキストを読むだけでなく、ハンズオン形式でAzureを実際に触りながら学習できます。


2. Azure の基礎

Azure の基礎 第 1 部:Azure の主要概念に関する説明 (AZ-900) - Learn
クラウドは初めてですか? Azure の基礎は 6 部構成で、基本的なクラウドの概念について説明し、多くの Azure サービスの簡素化された概要を提供します。また、最初のサービスを無料でデプロイするためのハンズオン演習を案内します。 このラーニング パスを完了すると、次のことができるようになります。 Azure でのクラウド コンピューティングの利点である、どのように時間とコストを節約できるのかについて理解します 高可用性、スケーラビリティ、弾力性、俊敏性、ディザスター リカバリーなどのクラウドの概念に
https://docs.microsoft.com/ja-jp/learn/paths/azure-fundamentals/


Azureないしクラウドサービスを初めて利用される方には、このラーニングパスから始めることをお勧めします。

クラウドの概念やアカウント作成、ポータル利用からありますので、必要な部分だけ学習できます。


3. Azure アーキテクチャセンター

Azure アーキテクチャ センター - Azure Architecture Center
確立されたパターンと手法を使用して Azure でソリューションを設計するためのガイダンスです。 Microsoft Azure でアプリケーションを構築するためのベスト プラクティスとパターン さまざまなテクノロジのアーキテクチャとガイドを調べる ハイ パフォーマンス コンピューティング (HPC) Microsoft Learn でスキルを身に付ける
https://docs.microsoft.com/ja-jp/azure/architecture/


Azureアーキテクチャセンターも凄く皆さんに推しています。

これはアプリケーションアーキテクチャそのものがたくさん解説されています。

例えばドメイン駆動設計も含めてざっと載っているんですよ。

僕が一番参考にしているサイトなので、ぜひ皆さんも参考にされてみてください。

以上、Twelve-Factor Appエッセンシャル版でしたが、今後もっと深掘りした内容をどんどん皆さんにご提供していければと思いますので、楽しみにしていてください。

それでは、また。(おわり)

☆本記事はオルターブースYouTubeチャンネルの配信動画をもとに再構成しています。

☆配信動画の本編をご覧になりたい方はこちらから!(小島発表パート 15:20~32:14)


株式会社オルターブースからお誘い
この話題に共感したら、メンバーと話してみませんか?
株式会社オルターブースでは一緒に働く仲間を募集しています

同じタグの記事

今週のランキング

楊 睿之さんにいいねを伝えよう
楊 睿之さんや会社があなたに興味を持つかも