全1151文字
PR

 CaaS(コンテナ・アズ・ア・サービス)、PaaS(プラットフォーム・アズ・ア・サービス)、FaaS(ファンクション・アズ・ア・サービス)――。ヤフーはこれら3種のコンテナ基盤を活用している。いずれも「開発、改善のサイクルを回すスピードを高める上で欠かせないIT基盤として定着した」とヤフーの中井菜子システム統括本部クラウドプラットフォーム本部リーダーは言う。

ヤフーが自社の開発チーム向けに提供するコンテナ基盤
ヤフーが自社の開発チーム向けに提供するコンテナ基盤
[画像のクリックで拡大表示]

 CaaSはオープンソースソフトウエア(OSS)のコンテナオーケストレーター「Kubernetes」がベースの一般的なコンテナ基盤だという。PaaSは「VMware Tanzu Application Service」、FaaSは主にOSSの「Apache OpenWhisk」によってそれぞれ構築した。PaaSとFaaSはNode.jsなどの言語ランタイムを提供するので、アプリケーションを開発するエンジニアの手間は少なくて済む。

 例えばPaaSであれば、アプリケーションコードと設定ファイルを配置するだけで動作する。メッセージ受信のようなイベントをトリガーに処理をする場合は主にFaaSを使い、比較的単純なWebアプリケーションはPaaSを使う。同社のフロントエンドサービスの大半はPaaSとFaaSの組み合わせによって稼働しているという。

 なぜ3種のコンテナ基盤が必要なのか。ヤフーの近藤裕介クラウドプラットフォーム本部技術2部部長は「エンジニアの手間を減らし生産性を高めるためだ」と話す。一般的なコンテナ基盤であるCaaSだけではエンジニアの負担が大きいという。「CaaSを扱うにはKubernetesについて詳しく学んだり、ミドルウエアの定義ファイルを作ったりする必要があり、大きなコストが発生する」(近藤部長)。

 これに対してFaaSとPaaSはどちらも前述の通り、エンジニアの負担が比較的小さい。3種のコンテナ基盤を導入したことで、社内の開発・運用体制に変化が見られたという。ヤフーでは「ヤフオク!」や「Yahoo!ニュース」といったサービスごとに担当チームを置いている。コンテナに移行する前は各チームで、エンジニアが開発者と運用者に分かれていた。開発者は初期学習・試行から開発のフェーズまでを、運用者はリリース準備から運用フェーズを担当する。