CodeZine(コードジン)

特集ページ一覧

トレンドは優れたUXとSPA・BFF! 急成長企業の最新フロントエンド開発を体験しよう

アイデアをすぐ形に! K5 Playgroundで開発するクラウドネイティブな最新Webアプリ 第1回

  • LINEで送る
  • このエントリーをはてなブックマークに追加

目次

Webアプリの基本原則~The Twelve-Factor App

 開発者が作るべきWebアプリとはどのようなものでしょうか。その基本となるのがThe Twelve-Factor Appです。2012年、PaaSベンダーHerokuのエンジニアが、数多くのクラウドアプリを開発・デプロイ・サポートして得た知見をもとに、現代のWebアプリが従うべき12の基本原則を提唱しました。The Twelve-Factor Appは、この原則に沿って開発されたアプリのことであり、「クラウドネイティブなアプリ」の代名詞とも言われます。2016年にはPivotalのアーキテクトがこれを増補し、APIファーストをはじめ3条件を加えたBeyond the Twelve-Factor Appを提唱するなど、この思想の重要性はクラウドの発展とともに高まり続けています。

The Twelve-Factor App

  1. コードベース(Codebase)
  2. 依存関係(Dependencies)
  3. 設定(Config)
  4. バックエンドサービス(Backend services)
  5. ビルド、リリース、実行(Build、release、run)
  6. プロセス(Processes)
  7. ポートバインディング(Port binding)
  8. 並行性(Concurrency)
  9. 廃棄容易性(Disposability)
  10. 開発/本番の一致(Dev/prod parity)
  11. ログ(Logs)
  12. 管理プロセス(Admin processes)

 The Twelve-Factor Appでは、アプリは安全に再起動できるステートレスなプロセスを基本単位として実装し、ポートを唯一のインターフェイスとして公開します(6. プロセス、7. ポートバインディング、9. 廃棄容易性、11. ログ)。プロセスは機能単位で分離して相互に独立させます(8. 並行性)。データベース等のアプリに必要な汎用機能には、容易に交換でき明確なインターフェイスを持つサービスを利用します(4. バックエンドサービス)。アプリのコードは、依存関係や設定を明確化したうえで、GitHubなどで一元管理し(1. コードベース、2. 依存関係、3. 設定)、CI/CDツールで構築やデプロイを自動化できるようにします(5. ビルド、リリース、実行、12. 管理プロセス)。これらを遵守することで、堅牢性・保守性の高いアプリの実現や容易な環境構築が実現します。

The Twelve-Factor Appに従って堅牢性、保守性の高いWebアプリを開発
The Twelve-Factor Appに従って堅牢性、保守性の高いWebアプリを開発

PaaSで簡単にThe Twelve-Factor Appを実現する

 以上を踏まえて開発に取り組むとき、便利なのがHeroku、Cloud Foundry、Google App EngineといったPaaS基盤です。これらのPaaSは、Webアプリのコードをデプロイするだけで、適切なコンテナを生成し、必要なライブラリをインストールしたうえでインターネットに公開します。開発者が集中すべきことは、Webアプリを開発することです。開発者はインフラの構築・運用という作業から解放され、サービスのコアとなるコードの実装に専念できます。

 富士通はクラウドサービス「K5」で、The Twelve-Factor AppやBeyond the Twelve Factor Appを支えるサービス群を提供しています。アプリ実行基盤「Cloud Foundry」、コードやイシューを管理する「GitHub Enterprise」、Apigee社のAPIゲートウェイ「Apigee Edge」、Akamai社の「CDNサービス」など、開発者にポピュラーなサービスをマネージドサービスとして提供しています。今後は、OSSのコンテナ管理基盤Kubernetesでコンテナ管理を行う「コンテナサービス(仮)」、ステートレスな関数がイベントドリブンに処理を実行する「FaaS(仮)」なども提供する予定です。

富士通のクラウド「K5」が提供するPaaS
富士通のクラウド「K5」が提供するPaaS

  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:アイデアをすぐ形に! K5 Playgroundで開発するクラウドネイティブな最新Webアプリ

著者プロフィール

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5