イベントレポート
GMOペパボ ホスティング技術カンファレンス@東京
福岡で働くことの魅力とホスティングの独自開発技術/次世代構想、GMOペパボが技術者にアピール
2016年12月27日 06:00
GMOペパボ株式会社が12月12日、技術者向けの「GMOペパボ ホスティング技術カンファレンス@東京」を開催した。テーマは「破壊的イノベーションをおこす革新的技術」。同社福岡支社で「ロリポップ!レンタルサーバー」「heteml」「ムームードメイン」といったサービスを開発・運用しているメンバーが、GMOペパボと福岡支社について紹介するとともに、ペパボ研究所で構想している「次世代ホスティング」のための技術を語った。
成長を続けるために大事にしていること
ホスティング事業部チーフテクニカルリードの山下和彦氏は、「ホスティングと僕の継続的成長」と題して、GMOペパボでの仕事について紹介した。
山下氏はまず、改めて「破壊的イノベーション」について説明した。破壊的イノベーションの例としてコンパクトデジカメに対するスマートフォンを、持続的イノベーションの例としてコンパクトデジカメの画素数の向上を挙げた。そして、「ホスティングサービスには破壊的イノベーションも持続的成長も必要だ」と語った。
「ロリポップ!」は右肩上がりで成長を続けているという。そのためにGMOペパボが大事にしていることを、山下氏は解説した。
1つめは「仕組みを変え続けること」。レガシーなシステムという資産を活用しつつ新しいかたちへ変化し続けることで、メンテナンス性と開発効率の向上や、モチベーションの向上につなげる。その例として、デバッグ情報の通知をTreasure DataやSlackなどに送るようにした例を紹介。さらに、あらゆる数値を分析可能にすることで1日あたりのユーザー登録数が1.5倍になったことも語られた。
2つめは「アウトプットすること」。勉強した結果を業務で発揮したり、カンファレンスで発表したり、業務で使うソフトウェアからOSS(オープンソースソフトウェア)を作って公開したりといった活動を会社として大事にしているという。山下氏は「研鑽、整理、フィードバックのサイクルを回すことでエンジニアとして成長できる」と語った。
3つめは「nice try」。チャレンジに失敗しても「nice try!」とし、組織的な解決につなげる文化を作ることで、会社として成長できるという。
最後に山下氏は「次の10年に向けてやること」として「破壊的技術を作って伝説になる」ことを目標に掲げた。「今のクラウドやVPS、レンタルサーバーに並ぶ何か新しい事業を作りたい」。
GMOペパボと福岡のよかったところ
入社2カ月というホスティング事業部ムームードメイングループの中村光佑氏は、「一歩踏み出した先にあったもの」と題し、自身の転職経験と、GMOペパボの魅力について語った。
中村氏は「前職はいい職場だったが、自分の進みたい方向とのズレを感じて転職した」と転職理由を語った。そして転職できた理由として、「自分の覚悟」、部署が増員されたという「周囲の状況の変化」、GMOペパボで「ペパボカレッジ」を募集開始したという「転職先の状況の変化」の3つがちょうど重なったことを挙げた。
また、GMOペパボを選んだ理由として、自社サービスを開発・運営していたこと、エンジニアのまま昇進していけるエンジニア職位制度、福岡支社があったことなどを挙げた。
GMOペパボに転職しての感想としては、第二新卒向け研修付採用「ペパボカレッジ(ペパカレ)」が語られた。1カ月の開発研修の中で、フロントエンドからサーバーサイド、インフラ開発までひととおり経験し、プルリクエストやSlackを使った共同作業などまで踏み込んで体験できたという。「中途採用ながら同期がいるのも励みになった」と中村氏は語った。
また、福岡に住んでみての感想も中村氏は話した。通勤時間が約20分、会社が天神にあるため安くて美味しい店が多いという。さらに、空港が近く、海や山も近く、阿蘇・別府・佐世保も近いという「コンパクトシティ福岡」の魅力が語られた。
中村氏は最後に、「一歩踏み出した先にあったもの」として、現在の環境を「いるだけで成長できる環境」と表現し、「まずは自分の人生から破壊的イノベーションを起こせ」と語った。
mrubyで設定するコンテナエンジン「haconiwa」
ここから技術的なテーマのセッションとなった。技術部技術基盤チームプリンシパルの近藤宇智朗氏は、Dockerに影響を受けた独自のコンテナエンジン「haconiwa」について解説した。
haconiwaを開発した理由として、既存のコンテナエンジンとしてDockerとLXCの長所と飽き足らないところを近藤氏は語った。
Dockerについては、APIで操作できるが、独立した世界を作っていて機能が非常に密につながっているため、例えばファイルシステムを切り離すといったことが難しいことが挙げられた。LXCについては逆に、構造を自分で選べるが、動的に設定できる項目が限定れることが挙げられた。
そこで、柔軟にコンテナ要素を選択でき、プログラマブルに制御できるものとしてhaconiwaを開発したと近藤氏は語った。コンテナの設定はmrubyによるDSL(マクロ言語)で記述できるという。
実際にhaconiwaのデモも行なわれた。mrubyによる設定を見せたあと、実際にコンテナを起動し、計算させながらCPU使用率の制限を30%、20%、50%と動的に変更するところが実演された。。
最後に近藤氏は、今後の展望を語った。柔軟にコンテナを作って壊せるようにすることで、OSにおけるコンテナがプログラムにおけるスレッドのようなものとなり、APIによる制御がシステムコールのようなものとなると論じ、次のセッションでFastContainerとDAOSに話をつなげた。
FastCGIのようにコンテナを実行する「FastContainer」
ペパボ研究所主席研究員の松本亮介氏は、「FastContainerアーキテクチャ概論」と題して、次世代ホスティングのシステムの構想を語った。
ベースにあるのは「エンジニア目線でなく、インターネット利用者が快適に表現できる場所を提供したい」という目的だという。現在、人々が年齢にかかわらずSNSを利用しており、品質の高いコンテンツが拡散されるようになったが、「そのときサーバーダウンすると貴重な機会を奪う。エンジニアでなくても簡単にサーバーがスケールしてほしい」と松本氏。
それに対してこれまでの課題として、よくあるオートスケールも、よくあるスケールアップも、よくあるスケールアウトも、エンジニア以外には難しいことが指摘された。また、こうしたユーザーごとのスケールアウトやスケールアップはレンタルサーバーでは難しくVPSを使うことになりがちだが、レンタルサーバーのユーザーはVPSを使いたいわけではなく、できれば運用を自分でしたくないことも指摘された。
こうした要件を松本氏は「レンタルサーバーのように始められて、VPSのように自由度が高く、クラウドサービスのように拡張性の高い、ウェブアプリケーションのホスティングサービス」とまとめ、さらに運用する側としては「シンプルで管理しやすいシステムアーキテクチャ」にしたいと説明した。
それを実現する目的として松本氏が考えたのが「FastContainerアーキテクチャ」だ。松本氏は、ウェブアプリケーションのプロセスの考え方を「immortal」「short-lived」「mortal」の3つに分けて説明した。
「immortal」は、これまでのウェブアプリケーションのように、起動して動き続けるプロセスだ。一方、「short-lived」はコマンドラインツールやバッチ処理のように、起動して処理が終了したらプロセスも終了するものだ。「mortal」はその中間で、FastCGIのように、プロセスを一定時間は使い回し、一定時間経過後に終了するものを指す。
このFastCGIのようにmortalでステートレスなサーバー環境をイベントドリブンで起動するというのが「FastContainerアーキテクチャ」だと松本氏は語った。起動する対象をCGIでなくコンテナにし、リクエストを契機にコンテナを起動する。起動が遅いコンテナについてはCRIU(Linuxカーネルのチェックポイント機能)でイメージ化しておくということだ。
具体的には、リバースプロキシからコンテナを起動し、スケールアウトにも起動するという。FastContainerの起動フローやストレージ構成、ネットワーク構成についても解説された。
最後に今後について、FastContainerのように破壊と再構築によって平衡状態を保つシステムを「DAOS(Dimension-free Autonomous Operationg System)」と呼び、DAOSのプロセスのようなものが仮想マシン、DAOSのスレッドのようなものがコンテナに相当するとして、DAOSを基盤とした「なめらかなシステム」の構想を語った。