Yahoo! JAPANの現場で活躍する社内PaaS、サービス開発を10倍早くするための活用術とは【デブサミ2017】
【16-A-3】Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれから
デモを交え、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倍にしていきたいと思っている」と付け加え、セッションを締めくくった。
お問い合わせ
ヤフー株式会社
この記事は参考になりましたか?
既に会員の方はを行ってください。
- この記事の著者
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営する開発者のための情報メディアです。日々の開発に取り組むエンジニアやテクノロジーを学びたい方に向けて、プログラミングやAI活用、開発ツール、エンジニアの学びとキャリアに関する記事をお届けしています。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社
この記事は参考になりましたか?
この記事をシェア
