デモを交え、Yahoo! JAPANの現場で使われているPaaSを紹介
ではYahoo! JAPANは、PaaSをどのように活用しているのか。
Yahoo! JAPANが使っているのは、オープンソースベースのPaaSプラットフォームである「Cloud Foundry」。オンプレミスのOpenStack上で動作している。
Cloud Foundryは多くのベンダーで採用されており、他プラットフォームのノウハウも参考にできる。また、動作環境を選ばないという特徴もあり、OpenStackなどの複数のIaaSや仮想化基盤を利用可能だ。さらに、拡張性が高いので開発言語やデータベースなどの追加や拡張が容易、といったメリットもある。
Cloud Foundryを使うと、ソースコードと設定ファイルをCloud Foundryにプッシュするだけで、自動的にサーバーが立ち上がる。プッシュされたCloud Foundry内では、必要なアプリケーション、ランタイム、エクステンションをまとめたDropletが作成され、設定された数のコンテナが立ち上がる。また、設定ファイルに書かれたURLに、ドメインを自動的に立ち上げる。
例えばPHPのバージョンを変える場合、通常はソースコードを書きなおさなければならない。しかしCloud Foundryでは、設定ファイルの該当部分を修正してプッシュすると、新バージョンのデプロイが自動的に行われる。
ここで、CTO室SWATチームに所属する田口雅浩氏も登壇し、Cloud Foundryを使ったデプロイとPHPのバージョン変更のデモを行った。
田口氏はCI/CDのデモも続けて披露。Yahoo! JAPANでは「Concourse」というパイプラインベースのツールを採用している。ConcourseはパイプラインがGUIで見える化されており、さらにYAMLでパイプラインを書くことができる。
パイプラインは、「Tasks」「Resources」「Jobs」の3要素で構成されている。Resourcesとして入力されたものをJobがTaskとして処理、新たなResourcesとして出力する。Jobを繋げてパイプラインを構成し、最終的にはCloud Foundryにアプリケーションをプッシュする。
実際のデモは、Yahoo! JAPANのGitHubにエンジニアがコミットをプッシュ、それをConcourseがチェックし、テストが実行されてデプロイが完了、するとアプリケーションがCloud FoundryにResourceとしてプッシュされる、という内容。コマンドライン上で設定された内容を確認する模様や、テスト完了の通知などを見ることができた。
Yahoo! JAPANにConcourseを導入したのは田口氏本人だ。窪野氏の「Concourseを入れてみて良かった点、悪かった点は?」という問いに対し、田口氏は「良いところは、YAMLファイル1つでパイプラインが作れること。DockerでConcourse自体が提供されているので、Dockerを簡単に使い始めることができる。ただ、開発途中の製品なので欲しい機能が全てそろっているわけではなく、最新版の情報を追っていくことが必要」と答えた。
デモを終え、窪野氏は社内PaaSについて今後の展望を語る。「PaaSは誰でもすぐに使えるものではない」と、窪野氏。今はいくつかのサービスで先行して導入している、いわばチャレンジの段階だ。その後、全社的に本格導入してさらに活用していく。
しかし、Yahoo! JAPANには100以上のサービスがあり、1つのアーキテクチャで全てのチームをカバーするのは難しい。そこで、窪野氏は組織ごとに対応を柔軟に変えられる仕組みを作った。
それぞれの組織内にPaaSの導入推進に興味を持った有志がおり、組織・サービスに合った対応で広めていく。現在、有志は非公式で20人ほどいる。
「PaaSはあくまで道具」と、窪野氏は語る。最も重要なのは“使い方”だ。PaaSを使うのであればウォーターフォールよりもアジャイルで開発したほうが、多くのメリットを享受することができる。そして、「サービス開発(スピード)を10倍にしたとタイトルにした。これはイテレーション、環境構築のスピードが10倍になったこともあるが、それだけではない。お客さまに付加価値を届けるスピードまで10倍にしていきたいと思っている」と付け加え、セッションを締めくくった。
お問い合わせ
ヤフー株式会社