2015年と2016年の話

第1話
minneから始まる大規模な挑戦
第2話
次世代ホスティングとmruby
第3話
2016年のトレンド予測

2015年と2016年の話

第1話  minneから始まる大規模な挑戦
第2話  次世代ホスティングとmruby
第3話  2016年のトレンド予測

今回の登場人物

栗林 健太郎

栗林 健太郎(あんちぽ)
ネット上では「あんちぽちゃん」として知られる執行役員CTO。2016年も圧倒的コンテンツ力は健在。

柴田 博志

柴田 博志
Rubyコミッターとして世界に名を轟かせる愛されチーフエンジニア。2016年も引き続き愛妻家。

松本 亮介

松本 亮介
福岡勤務のシニア・プリンシパルエンジニア。知略と技術でチームの士気を上げる諸葛亮孔明的存在。

小田 知央

小田 知央
福岡勤務のプリンシパルエンジニア。複数サービスの裏側をモダンな仕様にする傭兵として暗躍。

伊藤 洋也

伊藤 洋也(ひろやん)
プリンシパルエンジニア。近年は新卒エンジニア研修など、教育体制の整備に尽力。

近藤 宇智朗

近藤 宇智朗(うづら)
福岡勤務のプリンシパルエンジニア。福岡Rubyコミュニティとの繋がりも深い。

高橋 健一

高橋 健一(けんちゃんくん)
シニアエンジニア。複数サービスの技術支援の他、プロダクトオーナーシップの勉強会も主催。

柳生 祐介

柳生 祐介(ぎゅうぎゅう)
シニアエンジニア。あんちぽちゃんとともにGMOペパボオーシーの技術フェローを務める。

※写真撮影は欠席のためコメントのみ掲載しています

ハンドメイドマーケット「minne」の急成長、全社規模のインフラ基盤整備、次世代ホスティングなど、大規模なプロジェクトを遂行した2015年。具体的な取り組みの内容ともたらされた結果、そして2016年以降のWeb業界がどう歩んでいくのかを、東京と福岡の技術基盤チームメンバーが幅広い分野にわたって語り合いました。
あんちぽ
2015年、ペパボで技術的に大きなトピックといえば、ハンドメイドマーケット「minne」への積極投資関連ですね。CMを放送したり、TV番組に取り上げられたり、アプリがたくさんダウンロードされたりしてユーザーが大幅に増えたと同時に、技術的なチャレンジもしてきた1年でした。具体的にどんなことをしてきたのかふりかえってみましょう。
柴田
大きなトピックは、CM放映とモバイルプッシュ通知への対応です。CMは放映されるたびにブラウザからWebサイトへのアクセス数が激増します。一方で、モバイルのプッシュ通知は通知された瞬間にユーザーがアプリを起動し、アプリ経由で商品一覧や画像へのアクセスが激増する。サーバーへのアクセスが大量に発生するという事実は変わらないのですが、それぞれ経路が違う。どちらのパターンのアクセスに対してもサーバーを落とすことなく快適にサービスを利用できるよう、さまざまな手段や情報をキャッチアップして導入しながら常に改良を行ってきました。ふりかえってみると、実は意外と余裕で対応できたんじゃないかな、というのが感想です。
あんちぽ
うづらさんが去年の座談会で話していた「インフラのアーキテクチャがクラウド化していくと同時に、Infrastructure as Codeやオーケストレーション層―特にエージェント型で自立分散的に動くConsulのような仕組みがより一般化していくだろう」という予測が的中し、minneの大規模プロモーションで現実のものになりました。
うづら
特にminneではConsulの実績が出たと感じる1年でした。もしConsulを導入していなかったら、大規模アクセスへの対応にはもっと苦労していたと思います。社内でも徐々に「自動でサーバーがいろいろやってくれて便利!」という印象が広まっていて、ムームーメールにも導入しました。他のサービスにも導入を進めていきたいと思っていますし、今後は闇雲に自動化するのではなく、サービスのメトリックを元に自動制御する仕組みが増えていきそうな気がしています。あとは、解析のための基盤として目にするようになってきたNorikraBigQueryのような技術を元に、メトリクスをどうルールに落とし込むかが、ペパボやminneの今後の課題だと思っています。2016年はオーケストレーションの自動化からもう一歩踏み込んで、より効率的に運用を自動化することに注力していきたいですね。
あんちぽ
minne以外のサービスへその動きを広げていく役割を担っていた小田さんは、既存のサービスをクラウド化して、さらに運用を効率化していく中で感じたことはありますか?
小田
規模の小さなサービスだと担当者の数も限られているので、自動化することで運用の省力化ができるというメリットはとても大きいと感じました。幸いにも柴田さんやうづらさんの先行事例があるので、そのノウハウを活かしつつどんどんいろいろなサービスに導入しています。
あんちぽ
その動きをより活発化させるために、これまでペパボでサービス提供に物理サーバーを直接利用していたのを、クラウドに載せ替えていくぞ!という動きが本格化したのが2015年でした。「Nyah(ニャー)」という仕組みを作って、そこにウェブサービスを提供しているサーバーを載せ替えるプロジェクトが動き始めました。Nyahについての説明を、柴田さんにお願いしましょう。
柴田
NyahというのはOpenStackで作ったシステムの社内コードネームです。ペパボではもともと2種類のサービス提供方法をとっていて、ひとつは自分たちで調達したハードウェアにOSをインストールして、ソースコードをデプロイしてユーザーに提供するウェブサービス。もうひとつはオンプレミスで作ったサーバーの上にユーザー領域を分割して、それを提供するホスティングサービスです。そのうちウェブサービスを提供する場合によく問題として挙がっていたのが、サービスごとに運用の流儀が異なっていたり、サーバーの調達方法に差があったりして、効率的・機動的に開発が行えないことがあるということです。その問題を解決するために導入されたのがNyahで、導入の結果、エンジニアが自由にサーバーを構築できるようになりました。
あんちぽ
2015年末時点で、既に約300ホストの移行が完了しています。特にユーザーの多いJUGEMをはじめとした大きなサービスでも導入が進んでいるのは特筆すべき点ですね。
柴田
当初は関連する日本語の技術文書もほとんどなく、OpenStackが提供しているテクニカルリファレンスに書いてある通りに導入したのに動かないこともあったり、次から次へと問題が浮上して「本当にうまくいくのかな…」と不安な気持ちになることもありました。とにかく地道にひとつずつ解決していった結果、2015年春にペパボの全スタッフが利用している社内インフラであるGitHub EnterpriseをNyahに載せ替えることに成功しました。続いて実際に提供しているサービスへの導入を進めて、秋頃にはかなり大規模なサービスもNyah上で動くようになりました。
あんちぽ
ワークフローそのものを作り変えるという大きな技術的チャレンジでしたね。その中でも規模の大きかったJUGEMの移設に関わっていた けんちゃんくんさん の感想を聞かせてください。
けんちゃんくん
とにかくホスト数が多いので、まず全体像を把握するだけでも大変でした。幸いにもペパボには頼もしいインフラエンジニアがたくさんいて、難しい課題が出てくるたびにどんどん解決してくれたので、最終的には彼らのおかげでやり遂げることができた面が大きいと思っています。
あんちぽ
プライベートクラウドをやるぞって言い出したのは僕なんですが、基盤チームだけではなく、各サービスのインフラエンジニアやアプリケーションエンジニアがばりばり協力してくれた結果、まさにペパボのエンジニア総力をかけたプロジェクトを実現することができたわけですね。
けんちゃんくん
Nyahへの移設プロジェクトを進めたことで、アプリケーションエンジニアがインフラのことをより意識するようになったと思います。インフラエンジニアが用意したサーバーにデプロイするというだけでなく、サーバーを用意する段階からその仕組みについて理解しようという人が増えたり、よい影響があったように思います。
あんちぽ
今後の運用効率化について、JUGEMで考えていることはありますか?
けんちゃんくん
JUGEMではNyahへの移設と並行して、アプリケーションやミドルウェアのログを1箇所に集める仕組みの整備を行ってきました。今後はそれをサービスの品質向上やビジネスにどう活かしていくかを考えるのがポイントだと思っています。
あんちぽ
既に次のステップに向けて動き出しているんですね。Nyahの導入と同時に、2015年はウェブサービスの提供に付随する画像や動画も、各サービスがそれぞれ独自に構築して提供していた仕組みを一元化・クラウド化したんですよね。OpenStack Swiftを使う方法もあるんですが、僕らが利用したのはペパボが提供している写真共有サービス30days Album™(以下 30days)のストレージです。このプロジェクトについてはひろやんに話してもらっていいですか。
ひろやん
30daysはMogileFSという分散ストレージを利用しているんですが、それを他のサービスでも活用しようという試みを始めました。MogileFSの前段にS3互換のAPIをRailsで実装しすることで、S3クライアントから利用可能な巨大なストレージになりました。
あんちぽ
ストレージの容量はどれくらいあるんですか?
ひろやん
もうすぐ1ペタバイトになるくらいです。とにかく大きい。そのAPIの開発を僕が担当しました。実感したのは、コンポーネントが絡みあうシステムを開発するときに重要なのはインタフェースの組み合わせだということです。最初は独自のインタフェースで設計するかどうかで迷っていたんですが、S3互換のインタフェースにしたことで、結果としてS3をリファレンスとして設計・実装をすすめられたり、クライアントの実装の手間が省けたり、汎用性が高いのでいろいろなサービスで横断的に利用しやすいストレージになりました。
あんちぽ
インフラ側がクラウド化していくのと同時に、画像配信の部分もスムーズにスケールできるようになったということですね。これまでの話をまとめると、minneの積極投資に伴って、minneをはじめとした多くのサービスで各インフラにおける各コンポーネントの自動化、クラウド化が進んできた。具体的にはOpenStackを使って基盤を構築しているわけですね。その中でも大きい画像のコンポーネントに関しては、OpenStack Swiftではなくもともと持っている30daysの仕組みを利用しつつ、汎用性が高く他のサービスでも活用できるS3互換のストレージを構築した。その結果、各サービスでインフラの運用基盤が統一化されて整備されたというのが、2015年のペパボを語る上での大きな技術的な出来事でした。


~第2話へつづく~