CodeIQ MAGAZINECodeIQ MAGAZINE

技術の発展を見越した柔軟設計を!専用サーバーをあえて選ぶ決断─メルカリ森本茂樹「仕事の流儀」

2014.12.04 Category:【連載】ギークたちの『仕事の流儀』 Tag: , , ,

  • 39
  • このエントリーをはてなブックマークに追加

メルカリでは、高性能が必要とする箇所は専用サーバーに切り替えを行っているという。

クラウドを活用する企業・サービスが多い中、なぜメルカリは専用サーバーという選択を決断したのか。メルカリのインフラチーム森本茂樹氏にその理由を語ってもらった。
by 馬場美由紀 (CodeIQ中の人)

サーバー負荷分散のノウハウをメルカリでも活かす

メルカリではサーバー、ネットワークなどのインフラの運用と同時にバックエンド部分の開発も担当しています。

メルカリのサービスが始まって1年以上が経ちました。ユーザーの取引数が増えるにつれて、サーバーの負荷も伸びています。私が入社したのは、2014年8月ですが、その時点から比べても伸びがすごい。負荷に応じてサーバーを増強するとともに、増強しやすい仕組みをつくることが大切だと思っています。同時に、負荷分散の仕組みもしっかり設計しなければいけません。

サービスインの当初はアプリを早くリリースすることに集中し、サーバーの対応は次の課題だったと聞いています。負荷が増えるにつれて、サーバーの分散、データベースの分割などを行い、現在のメルカリのサーバー構成は早くも第3世代を迎えています。サーバー増強のプロセスはWebサービス企業の一般的な流れに沿うものですが、その展開のスピードが速いのがメルカリの特徴です。

もちろん、当初からサービスの成長を見込んでサーバーに厚めの手当てをしておく、という考え方もあったかと思います。しかし、小さなスタートアップですから、最初から大規模なサーバーリソースを確保することは、経営的な視点でみるとベストではないでしょう。常にコストとパフォーマンスを考えながら、柔軟に発展させていくことのほうが大切です。

負荷分散では、汎用的な分散型メモリキャッシュシステム、memcachedを活用しています。データとオブジェクトをメモリ内にキャッシュすることで、DBからの読み出しを低減させる仕組みで、Webサービスではよく使われるものです。

私も前職のミクシィでmemcachedサーバー構築などに取り組み、一度、サーバーの大規模障害が起きたときには、その解析を通してmemcached自体のバグを突き止めたこともあります。

私はミクシィでは「たんぽぽグループ」で仕事をしていました。開発工程の改善やパフォーマンスチューニング、アルゴリズムの改善といった共通課題を抽出し、それを解決する専任のエンジニアリング・チームでした。ミクシィのものづくりの思想を最もよく体現する部署でした。

ミクシィには7年間いましたから、Webサービス運用についてここで得たノウハウは計り知れません。自分のエンジニアとしての成長もそこで得られました。あらためて感謝すると同時に、それが今の仕事にも活かされていることを嬉しく思っています。

あえて専用サーバーを選ぶという決断

メルカリのサーバーは、今ほとんどが国内データセンターにおいた専用サーバーです。最初はクラウドサーバーも使っていたのですが、今は高性能が必要とする箇所を専用サーバーに切り替えようとしています。DBサーバーは最初から専用サーバーでしたが、今は他のサーバーも順次専用サーバーに切替中です。

昨今の傾向として、クラウド活用の方がコスト的にもパフォーマンス的にもリーズナブルである、という考え方が強いと思いますが、私は必ずしもそうは思わない。

クラウドでは物理サーバー上で複数の仮想サーバーを立ち上げて利用するサーバー仮想化技術を使いますが、柔軟なサーバー運用が可能である一方で、仮想化のオーバーヘッドから生じる性能の低下は否めません。運用側からみるとスペック通りのパフォーマンスが必ずしも得られないことがあるのです。これは大規模Webサービスを運用したことのあるエンジニアなら、みな気づいていることだと思います。

今は専用サーバーの価格も以前に比べ大幅に安くなっていますし、費用あたりの性能も高くなっている。運用の手間自体はそう変わらないので、コストパフォーマンスを検討した結果、メルカリでは専用サーバー活用という方針に踏み切りました。

ただし専用サーバーの場合はクラウドと違い、不必要となった時に簡単に捨てることはできないので、今後のさらなるサービス規模拡大時に無駄とならないように転用先もある程度検討しておく必要はあります。

もともとメルカリのインフラチームにはそういう思想があり、ちょうど私が入社した頃に大規模な切り替えを実施しました。

もちろん、サーバー技術も急速に進歩しています。クラウド技術も然り。今は専用サーバーに収めているものを、またクラウドに預けるという逆の流れがあるかもしれない。大事なのは、技術の発展を見越しながら、柔軟に設計しておくことだと思っています。

最前線で技術に触れるからこそ、いつまでもスペシャリストでいられる

メルカリに入社してサーバー周りのソースコードを拝見して、ものすごくきれいなので驚きました。個人的な経験からPHPにはあまりいい印象をもっていなかったのですが、コードは言語ではなく書く人によって大きく左右されるんだということを実感しました。最初のコードがきれいだと、後々の拡張やメンテナンスはずっと容易になります。

私は5人いるバックエンドのチームの中でも年齢的にはベテランです。ただ、サーバー技術は年々進化しているし、今私たちが使っている技術もここ5年以内に出たものばかり。ハードウェアもネットワークの性能も日々向上しているから、そこに付いていけないと、単に年を食っているだけでは自慢になりません。

常に最前線で技術に触れていなくてはならないし、逆にそれができればいつまでもスペシャリストでいられると考えています。

良いスタートアップの雰囲気を体験できるのは嬉しい

メルカリに来てすぐ気付いたことは、エンジニアがサーバーサイドもクライアントサイドも全体を見ていて、縦割り組織の弊害がないことでした。社内は活気に溢れ、みんな自分たちのサービスを愛している。ミクシィの初期のころの雰囲気と似ているなと思いました。そんなスタートアップの雰囲気を、この年齢になってもう一度体験できるというのは嬉しいですね。

インフラのエンジニアは、例えばサーバーの負荷のグラフを見ながら、その小さな凸凹に障害の予兆を感じ取ったり、その原因を究明できることが必要です。未知の状況に陥ったとき、原因を解明するための冷静な調査力や、仮説構築や検証するノウハウも欠かせません。結果的に障害の原因を究明できたときの快感が、私たちを生き生きとさせ、社内に活気を生むのだと思います。

また、同時にこれからは柔軟に無理なくサービスを成長させる仕組みをつくるフェーズでもあると思っています。サーバーが安定して動き続けるためのノウハウの共有、作業手順の標準化や自動化も課題です。そうやって、サーバーサイドからメルカリのサービスを支えていきたいです。

メルカリのエンジニア一同から、CodeIQユーザーに挑戦問題!

メルカリの第一線で活躍するエンジニア集団からの出題です。
腕に覚えあるエンジニアの皆さんは、ぜひ挑戦を!

サーバソフトウェアの設定ファイル設計

問題はこちら⇒与えられた要件を満たすHTTPサーバの設定ファイルを設計しよう!

株式会社メルカリ
森本 茂樹氏

奈良工業高等専門学校を卒業後、大阪のソフトハウスを経て、ヤフーに勤務。2007年にミクシィに入社し、社内でも優れた技術力を持つメンバーを集めた「たんぽぽグループ」のコアメンバーとして活躍。2014年8月にメルカリに入社。

(執筆:広重隆樹/撮影:佐藤聡)

自分の書いたコードを誰かに評価されたいエンジニアは、けっこう多い?

ITエンジニアのための実務スキル評価サービス『CodeIQ』で出題されている「コード銀行」問題に挑戦すると、あなたのコードが評価されます。

評価(1)出題者からの評価  ⇒評価フィードバック例を見る

  • 企業ではたらくという観点からあなたのコードをチェックします
  • フィードバックされた観点をふまえてコードを書くと世の中の企業にとって「いいコード」が書けるようになります

評価(2)企業からの評価  ⇒評価フィードバック例を見る

  • 「あなたと一緒にはたらきたい」という企業からスカウトが届きます
  • あなたのコードが社会でどこまで通用するか、リアルな評価が得られます

興味を持った方はこちらからチャレンジを!

  • 39
  • このエントリーをはてなブックマークに追加

■関連記事

【えふしん流・仕事の流儀】技術は教え込まない。発想が生まれる環境を作るのが先... ネットショップの作成が多彩に、簡単に無料でできるサービス 2014年8月から、ネットショップの開設・運営が無料で簡単にできる「BASE(ベイス)」を展開しているBASE株式会社で、CTOを務めています。BASEは2012年12月創業のスタートアップですが、そのサービスはいまや16万店舗が利用するま...
文理の壁なきインターディシプリナリーなエンジニアが必要─リブセンスCTO桂大介「仕事の流儀」... 学生たちの新鮮な発想が生んだ「ジョブセンス」 リブセンスを創業したとき、彼らは学生だった。社長の村上太一氏は早稲田大学政経学部、共に起業を担った現CTOの桂大介氏は同じく理工学部の学生で、学内のビジネスモデルコンテストでの優勝がリブセンス創業のきっかけになった。 「村上と一緒に事業プランを作った...
卓越した技術力を持ったベテランとサービスの発展を支える─メルカリ鶴岡達也「仕事の流儀」... 目線の高いエンジニアが揃う、大人の会社 私が社会人として最初に就職したのは、「ウノウ」でした。そこで「フォト蔵」サービスの開発に従事し、その後、自分で2回ほど起業しました。 ある日、ウノウ時代から親交のあった代表の山田から「エンジニアを探しているんだけど…」と声をかけられたんです。新しい会社をや...
コア技術をどう発展させる?エンジニアにとって面白い環境を作りたい─メルカリ胡華「仕事の流儀」... 「メルカリ」は大きくなるという確信があった 「世界一周している IT業界の人」というクラスタでフォローしていた代表の山田のTwitterで、彼が帰国後に新しい事業を始めることを知りました。世界旅行は私も趣味です。大都会というより、自然あふれる南の島とかよく行きます。そのような切っ掛けでメルカリの立...
メルカリのアプリUIがシンプルな理由とは何か?──メルカリ大庭慎一郎の「仕事の流儀」#iOS... ユーザーが使い方に困るようなアプリにはしたくない iOSとの関わりは、初代iPod touchが日本で発売になった2007年の夏から。当時Toolchainという非公式のデベロッパーキットがリリースされて、これを使えばあの小さな携帯音楽端末向けにプログラムを書けると聞いて、その足で量販店に行ってi...
一流エンジニアを惹きつけるスタートアップの魅力─メルカリ山田進太郎が語る「起業家の使命」... インターネットサービス業界から続々と一流エンジニアが集結 「なめらかな社会を築く」というのがメルカリのミッションだ。最近はコードを書いていないというが、山田氏もエンジニア出身。企業理念を実現する上で、エンジニアが果たす役割について十分自覚している。 「優れた技術を持っている、そのセンスがいいとい...

今週のPickUPレポート

新着記事

週間ランキング

CodeIQとは

CodeIQ(コードアイキュー)とは、自分の実力を知りたいITエンジニア向けの、実務スキル評価サービスです。

CodeIQご利用にあたって
関連サイト
codeiq

リクルートグループサイトへ