SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

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

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

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

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

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

次のページ
Webアプリの変遷

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
アイデアをすぐ形に! K5 Playgroundで開発するクラウドネイティブな最新Webアプリ連載記事一覧

もっと読む

この記事の著者

藤田 壮吉(富士通株式会社)(フジタソウキチ)

 富士通株式会社に入社後、会計ERP、機械学習、WebAPI、フロントエンド関連の開発に従事。企画・開発・教育・講演まで幅広く活動している。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/10617 2018/02/20 14:43

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング