• はてなブックマークに追加
  • Yahoo!ブックマークに登録
Ameba、アメーバピグで蓄積されたプログラミングノウハウを探る
サイバーエージェントの進化し続けるJava技術力とは
サイバーエージェントは「Ameba」「アメーバピグ」などサービスの基本システムを、Javaで開発している。そのため、エンジニアの採用においても、Javaの実装経験が強く求められる。その背景や、同社に蓄積されたJavaプログラミングのノウハウをエンジニアに語ってもらった。
(取材・文/広重隆樹 総研スタッフ/宮みゆき 撮影/栗原克己)作成日:11.04.27
Javaでなければダメということではない
渡邉 雄作氏
アメーバ事業本部
プラットフォームディビジョン
サービスディベロップメントグループ

渡邉 雄作氏

「Ameba」、「アメーバピグ」など大規模なWebサービスを支えるシステムをJavaで実装しているサイバーエージェント。だが、Javaがデファクトになる前は、PHPで実装されていた時期がある。その後、システムを外部ベンダーに外注するようになるが、当時PHPはセキュリティホールが多かったため、標準化しやすく開発ベンダーも多いJavaを実装することとなった。

 とはいえ、外部ベンダーに任せきりでは、サービスの成長に追いつけない。内製への転換が進められた2006年以降、Javaエンジニアを外部から採用したり、社内で育成するようになり、それが現在に至るJavaエンジニアの豊富なリソース源になっている。

「必ずしもJavaでなければダメということはありませんでした。最近は、言語実装やランタイムが遅くて、それがサービスのボトルネックになるということは少なく、むしろレスポンスの解消のためにはデータベースやファイルI/Oをいじるほうが重要。その意味では言語の重要性は小さいけれども、せっかくJavaで培った様々なノウハウはこれからも活かしていきたいと思います」
 というのは、「アメーバピグ」の立ち上げから携わってきた渡邉雄作氏だ。

 渡邉氏らが注ぎ込むJavaノウハウの一つが、ソケットサーバーだ。「アメーバピグ」のクライアントアプリケーションの多くはFlashで開発されているが、当然サーバー側とたえず大量のソケット通信を発生させる。そのため同社はソケットサーバーを自作し、数十台のサーバー構成で巧みに大量の通信を処理している。
「ソケットサーバーはJavaで書かれています。Javaにはもともと豊富なライブラリ群や標準APIがあります。特に、マルチスレッド関係や非同期入出力関係のライブラリや、APIが充実しているため、それらを利用することで、効率的な開発ができました」 と、Javaの利点を挙げる。

センス溢れるエキスパートたちの背中を見ながら、私は育った

 今ではサイバーエージェントのJavaエキスパートの一人である渡邉氏だが、前職は金融系SIerでプログラムを書いていた。
「その頃に初めてJavaに触れたわけですが、本格的にJavaでソースを書き始めたのはサイバーエージェントに入社してからです。前職ではインフラとアプリケーションの開発チームが分かれていたため、私は、サーバーのチューニングにはノータッチでした。しかし、サイバーエージェントではアプリケーションのエンジニアもサーバーのことを知らないといけません。それを意識しながらコードを書けるようになったのは、自分にとって大きな進歩だったと思います」

 もちろん、2006年のサイバーエージェント入社当時はひたすらコードを書いて言語としてのJavaに慣れることから始めた。その後「アメばた会議」という掲示板サービスの立ち上げにかかわり、サーバーの構成を意識するようになった。
「自分が書いたコードでGC(Garbage Collection)が起きたとき、JVM(Java Virtual Machine)やサーバーがどういう挙動を示すのか。このとき初めて知りました」

 GCを起こさないためのコーディングテクニック。「アメーバピグ」に関わるようになってからその重要性を改めて認識した。自分のコードがまずいと、それがそのままサービスの障害につながってしまう。つまり、エンジニアのコード1行が、会社の収益にかかわってくる。そのことを日々の実践を通して、肌身で理解できる環境がサイバーエージェントにはあったのだ。

 もちろん、こうした問題にぶつかる渡邉氏を、一人前のJavaエンジニアに育て上げる環境もそこにはあった。Javaに限らず、エンジニアのスキルを高める環境要素として重要なのは、「学べる人が存在している」ことだ。例えば「アメーバピグ」のチームにもその成長を支えてきたJavaの達人がたくさんいる。彼らに引き上げられるようにして、後発のエンジニアのスキルが高まる。その牽引役の一人として渡邉氏が筆頭に挙げるのは、名村卓氏(2004年入社。技術部門 執行役員 主席エンジニア)だ。

「ソケットサーバーや分散KeyValueストアなどを私も使っていたわけですが、そのほとんどは名村が一人で書いたもの。そのパッケージを見たとき最初は“なんか適当だな”とか思ったんですが、使ってみると必要不可欠な機能が疎結合されていて、非常に使いやすい。全部をきれいにきちっと作るのではなく、将来の拡張も考えて必要十分な条件だけを押さえる。B to Cサービスならではの実装方式といえるかもしれません。そこに彼のセンスと同時に一抹の悔しさも感じました」

 そうした優れた先輩社員たちが、実装の過程で様々なアドバイスをしてくれた。
「ここはこういう設計にした方が拡張しやすいよねとか、この部分のインターフェイスはボトルネックになりそうだから切り替えたほうがいいよねとか、クラス設計やデザイン・パターンの点でいろいろと教えてもらえました。今ではアドバイスを私がする立場になりましたが、社員主導の勉強会も頻繁に開かれています」

 現在約100名いるサイバーエージェントのアプリ系エンジニアの多くがJavaプログラマだ。しかし、Javaしか使えないわけではないし、他の言語に全く関心がないわけでもない。
「例えば、PerlやPythonが好きで、簡単な裏のバッチ処理などは、Java以外で開発する人もいます。決してJavaがダメというわけではなく、Java以外の技術動向も採り入れようという意欲のあらわれだと思います。私も今はPythonの勉強会に行っています」

フレームワークの本質を見抜く力と創意工夫の実践力

 とはいえ、Webサービスやサーバー技術の世界で開発言語としてのJavaの優位性は高まる一方だ。例えば、大規模分散データ処理システムのフレームワークとして注目のHadoopやCassandraなどのオープンソースプロジェクトもJavaで書かれている。その意味で、Javaはこれからのエンジニアのスキルセットに不可欠の技術と言ってよい。

 サイバーエージェントもまたそれを要件の一つとして挙げるのだが、そこで求められるスキルのレベルはどのぐらいのものだろうか。
「オープンソース関連のフレームワークを業務で使っているか、それ相当の知識を理解しているかどうかは重要です。例えば、開発環境の標準化のために独自のフレームワークを使っている企業もあると思いますが、その場合、業務に流されていると“なぜこのフレームワークで開発するのか”という本質的な疑問が湧かなくなります。それだと、当社のような会社に来ると戸惑うかもしれませんね」

 エンジニアである限り、なぜその技術が必要なのか、その技術は何のためにあるのかという本質への問いが欠かせないというのだ。
「あとはやはり実践です。業務では使っていないけれど、自宅サーバーを立ててインストールして勉強している人は多いと思います。ただ、実際に限界まで負荷をかけてそのサーバーの検証までしたという人は少ない。自宅サーバーだから負荷試験ができないわけじゃないんですよ。例えば、Amazonにデプロイしてもう一つインスタンスつくって、そこから分散して負荷をかけてみるというような検証の方法もあります。それぐらいやってくれていれば、僕らもオオっ!となりますね(笑)」

自由選択と自己責任──サイバーの技術力はまだまだ発展する
藤井 一徳氏
アメーバ事業本部
プラットフォームディビジョン
Neutral Technology Group

藤井 一徳氏

 サイバーエージェントの各種サービスを支えるJavaエンジニアたち。もう一人に話を聞こう。
「サイバーエージェントはJavaのアプリケーションエンジニアでも、アーキテクチャの設計やデータベースの負荷改善など、興味があればインフラのところまで勉強できるし、開発もできる。インフラや運用を意識しながら、Javaのコードを書けるようになったのは、サイバーエージェントに来て、自分のスキルがアップした部分です」
 というのは、各種サービスに共通の基盤技術を提供するニュートラル・テクノロジー・グループに属する藤井一徳氏だ。

 それまでは、委託エンジニアとしてECサイトのショッピング機能や、SNS機能などの開発に携わっていた。委託のアプリケーションエンジニアでは、システムのアーキテクチャにまでは関わることができなかった。そのもどかしさが、2006年のサイバーエージェントへの転職を促した。また、当時、外から見ていた「Ameba」のブログサービスは不安定であったため、「俺が行って直してやろう」という考えもあった。もともと“火消し”が好きなタイプなのである。

 転職してみて驚いたことがある。通常、開発のためのフレームワークは全社共通という企業が多いなかで、サイバーエージェントはサービスごとにフレームワークがバラバラ。よい意味では自由度があるが、開発効率や品質の標準化という意味では問題なしとは言えない。

 言語だって、実はJavaが“社内唯一の公式言語”になっているわけではない。Javaを知らないと困ることは多いが、PythonやPerlの使い手もいる。
「言語は自由選択。そのほうがエンジニアとしては楽しくやりがいがあります。単純な標準化よりも、エンジニアの開発意欲を刺激したほうが長期的にはいいと思います。導入する技術をエンジニアが責任を持って対応するため、責任感や対応力も身につけることができます」

 自由選択と自己責任。それが風土として定着していることに、藤井氏は驚いたのだ。
 Javaはツールの一つにすぎず、必要だから使うのであって、良いものを生み出すという目的を達成できるならば、Javaだけにこだわる必要はない──これがサイバーエージェントのJavaエンジニアたちの共通の理解だ。「個人的には、Scalaなどの関数型言語に興味があります」と藤井氏も言う。

 他の企業での経験もある藤井氏に、ざっくりと客観的にサイバーエージェントのJavaエンジニアたちのスキルを評点してもらった。
「スペシャリストも多いですが、平均すれば10点満点で7点ぐらいだと思いますが、周りからの刺激や成長意欲が高いメンバーが多いので、成長スピードは速いと思います」

 周りからの刺激として、意義があると藤井さんが考えているのは、様々な自主勉強会だ。昨年からは公式のエンジニアブログ「プリンキピア」もスタートし、業務や自主勉強会での取り組みを外部に公表する仕組みもできてきた。このようにエンジニア同士が刺激し合う環境がある限り、スキルの成長に終わりはない。Javaエンジニアが支えてきたサイバーエージェントの技術力は、これからもまだまだ飛躍する可能性を秘めているのだ。

 大規模サービスでたくさんのユーザーにダイレクトにサービスを提供するB to Cのビジネスの中で、自身のJavaのスキルを試してみたい。あるいは、つねに一歩先をゆくエンジニア集団にもまれながら、自分のJavaスキルを高めたい──そういう人たちに向けて門戸はいつでも開かれている。

アメーバ事業本部 プラットフォームディビジョン Neutral Technology Group 藤井 一徳氏
2006年10月入社。37歳。前職は、委託によるシステム開発。サイバーエージェント入社後は「Ameba」の基盤サービスの開発に従事。
アメーバ事業本部 プラットフォームディビジョン サービスディベロップメントグループ  渡邉 雄作氏
2006年2月入社。32歳。前職は、金融系のシステム開発。アメーバピグの立ち上げから携わり、システムのリーダーを担当。4月からは新規事業を担当。
  • はてなブックマークに追加
  • Yahoo!ブックマークに登録

このレポートに関連する企業情報です

■メディア事業/EC、オンラインゲーム、情報ポータルなど ■広告代理事業/インターネット広告、検索エンジン広告、SEo、Webサイト制作など ■Ameba関連事業/コミュニケーションサービスAmeba、アメーバピグなど ■投資育成事業続きを見る

あなたを求める企業がある!
まずはリクナビNEXTの「スカウト」でチャンスを掴もう!
スカウトに登録する

このレポートの連載バックナンバー

人気企業の採用実態

あの人気企業はいま、どんな採用活動を行っているのか。大量採用?厳選採用?社長の狙い、社員の思いは?Tech総研が独自に取材、気になる実態を徹底レポート。

人気企業の採用実態

このレポートを読んだあなたにオススメします

今年はスマホ元年。Web対応とネイティブアプリの開発を急展開!

サイバーエージェント長瀬氏が明かすスマホ開発戦略

人気企業の採用実態2011年をスマートフォン元年ととらえ、スマートフォン向け開発を急速に進めるサイバーエージェント。同社の技術推進本部本部長、長瀬…

サイバーエージェント長瀬氏が明かすスマホ開発戦略

動くアバター「アメーバピグ」、自社開発の検索エンジンetc.

エンジニアの成長が新事業を生むサイバーエージェント

人気企業の採用実態一見不可能なアイデアも技術でカタチにしてしまう。そんなエンジニアが存分に自分のスキルを試せるフィールドをもつサイバーエージェント…

エンジニアの成長が新事業を生むサイバーエージェント

新しい仮想ライブのフロアは、今夜もアバターたちで大賑わい

アメーバピグ新サービス「ピグチャンネル」開発舞台裏

サイバーエージェントのコミュニティサービス「アメーバピグ」は、2012年7月新たに動画コンテンツを共有しながら楽しめる…

アメーバピグ新サービス「ピグチャンネル」開発舞台裏

来春には大阪、福岡に開発拠点を設置

サイバーエージェント、スマホ技術者の育成と採用強化

人気企業の採用実態サイバーエージェントのスマートフォン対応が急速に進んでいる。積極的な中途採用を展開してきたが、スマートフォン開発経験者はまだ市場…

サイバーエージェント、スマホ技術者の育成と採用強化

開始3週間で利用者100万人突破のヒット・ソーシャルゲーム!

“「ピグライフ」を支える技術者”名村卓の開発秘話

人気企業の採用実態2011年6月にスタートした「アメーバピグ」内のソーシャルゲーム「ピグライフ」は、開始3週間で利用者数100万人を突破した。開発…

“「ピグライフ」を支える技術者”名村卓の開発秘話

IT業界、生保業界…7人の人事に聞いたウラ事情

人事担当者が告白!転職者の給与はこうして決まる

「前給考慮」「経験能力に応じて優遇」などは募集条件でよく見る言葉。でも前給や経験能力を、具体的にどう考慮して給与を決め…

人事担当者が告白!転職者の給与はこうして決まる

この記事どうだった?

あなたのメッセージがTech総研に載るかも

あなたの評価は?をクリック!(必須)

あなたのご意見お待ちしております

こちらもお答えください!(必須)

歳(半角数字)
(全角6文字まで)
  • RSS配信
  • twitter Tech総研公式アカウント
  • スカウト登録でオファーを待とう!
スマートグリッド、EV/HV、半導体、太陽電池、環境・エネルギー…電気・電子技術者向け特設サイト

PAGE TOP