エンジニア特集
高トラフィック対応技術
われわれのゴールはシステムを作るところまでではありません。サーバやネットワークを用意し、24 時間 365 日停止しないように運用しながら、ページビューや会員数が増えるに従って増加するトラフィックやシステム負荷に対応しています。
Mobage の 1 日平均ページビューは 23.9 億にものぼります (2010 年 7月実績)。サービス運営会社のエンジニアはウェブアプリケーションを書いているだけ、というイメージがあるかもしれません。しかし、これだけ大量のトラフィックをさばくためには、個々のアプリケーションロジックを書いたり、テーブル設計する際にも、システム性能チューニングやデータの分散を意識する必要があります。
商用ソフトウェアを利用すると、CPU 数やサーバ数によって課金されることが多いため、トラフィックが増加するにつれコストも増加してしまいます。 そのため、MySQL, Apache といったオープンソースソフトウェアを有効活用しています。
また、世の中にある既存のソフトウェアを利用するだけでは不足する部分もあります。私たちはプログラミング言語 Perl を多用していますが、 ウェブアプリケーションフレームワークは独自開発のもの (MobaSiF) を主に利用し、高速化が必要な部分は C で開発しています。MySQL についても HandlerSocket plugin, MHA for MySQL を独自開発し、それぞれ性能向上やサーバ数削減、可用性の向上を実現しています (参考: DeNA の MySQL に関する取り組み)。こういった独自開発ソフトウェアはオープンソースとして公開しています (参考: オープンソースやコミュニティでの活動)。
このように、業務を通してアプリケーションレイヤより低いレイヤを調査・把握、開発する機会があるのもエンジニアとして DeNA に参加する魅力のひとつです。
Mobage の 1 日平均ページビューは 23.9 億にものぼります (2010 年 7月実績)。サービス運営会社のエンジニアはウェブアプリケーションを書いているだけ、というイメージがあるかもしれません。しかし、これだけ大量のトラフィックをさばくためには、個々のアプリケーションロジックを書いたり、テーブル設計する際にも、システム性能チューニングやデータの分散を意識する必要があります。
商用ソフトウェアを利用すると、CPU 数やサーバ数によって課金されることが多いため、トラフィックが増加するにつれコストも増加してしまいます。 そのため、MySQL, Apache といったオープンソースソフトウェアを有効活用しています。
また、世の中にある既存のソフトウェアを利用するだけでは不足する部分もあります。私たちはプログラミング言語 Perl を多用していますが、 ウェブアプリケーションフレームワークは独自開発のもの (MobaSiF) を主に利用し、高速化が必要な部分は C で開発しています。MySQL についても HandlerSocket plugin, MHA for MySQL を独自開発し、それぞれ性能向上やサーバ数削減、可用性の向上を実現しています (参考: DeNA の MySQL に関する取り組み)。こういった独自開発ソフトウェアはオープンソースとして公開しています (参考: オープンソースやコミュニティでの活動)。
このように、業務を通してアプリケーションレイヤより低いレイヤを調査・把握、開発する機会があるのもエンジニアとして DeNA に参加する魅力のひとつです。


