ITエンジニアに必要な今を知れる情報メディア
LINE Developer Day 2015レポート「Webサービスの国際化にあたりLINE Creators Market 開発がどのように行われたか」
event

LINE Developer Day 2015レポート
「Webサービスの国際化にあたり
LINE Creators Market 開発がどのように行われたか」

ent104_img01.jpg

近年のスマートフォンの普及によって、新しいサービスが爆発的にユーザを獲得し、短期間で一気に成長するケースが増えている。たった数年前にシンプルなコミュニケーションアプリからスタートした「LINE」も、いまや世界230カ国以上で利用される巨大なプラットフォームになった。そのLINEが4月28日、渋谷ヒカリエホールで「LINE DEVELOPER DAY 2015 Tokyo」と題した開発者向けのカンファレンスを開催した。急成長するサービスの裏側で開発者がどのような問題に直面し、そしてどのようにして解決していったのか?エンジニアにとって貴重な事例が学べるとあって当日の各セッションは軒並み大盛況だった。本稿ではその中から、開発3センターサービス開発1室所属、Tokuhiro.M氏による「Webサービスの国際化にあたり LINE Creators Market 開発がどのように行われたか」と題するセッションをレポートする。
鶴田 展之

■ 「LINE Creators Market」

ent104_img02.jpg

LINEといえば、インスタントメッセージングに「スタンプ」を導入し、文字ベースのコミュニケーションをより「楽しい」ものにしたことが大きな特徴だろう。そして、その「スタンプ」をユーザ自身が作成、販売できるようにしたサービスが、「LINE Creators Market」だ。2014年5月のサービスイン以来、たったの1年で、登録クリエイター数は39万人(世界156カ国)、スタンプ販売総額は約90億円に達するという。LINE Creators Marketは、システムの構成的には所謂「Webアプリケーション」だが、10万セットを超える膨大なスタンプの管理、販売数の集計、クリエイターへの送金など、随所に技術的な工夫が凝らされているようだ。まず、LINEではプラットフォーム全体が機能毎の小さな「マイクロサービス」の集合として設計されており、それぞれのコンポーネントの独立性を高めるようにしている。各コンポーネントの開発言語やミドルウェアは異なるが、コンポーネント同士がThriftやJSONによるRESTful API等コモディティ化された技術を使ってやりとりすることで、シンプルな疎結合を保っている。

■ LINE Creators Marketのシステム構成

ent104_img03.jpg

LINE 開発3センターサービス開発1室所属 Tokuhiro.M氏

「LINE Creators Market」も、LINEプラットフォームを構成するコンポーネントのひとつだ。リバースプロキシにnginx、データベースにはMySQL 5.6と、非常に一般的なアーキテクチャで稼働しているが、開発言語はLINEの他のコンポーネントで多く使われているJavaではなくPerlを利用している。これは、開発を率いるTokuhiro.M氏がPSGI仕様の策定に深く関わり、そのリファレンス実装であるPlackのコミッターも務めていることに拠るところが大きいという。また、アップロードされたスタンプ画像はデバイス種別ごとに最適なサイズにリサイズした上で、「STF」と呼ばれる自社開発の分散オブジェクトストレージサーバに保存されるが、こういった分散ストレージのような基礎レイヤの技術をも自社内でカバーすることで、問題発生時の迅速な対応やコストダウンを実現できるという。優れたオープンシステムと自社技術を偏ることなく上手に併用する、というのが同社の技術陣の基本的な姿勢になっているのだろう。

■ 国際化

LINE Creators Marketには、世界中のスタンプクリエイターが参加しているため、国際化の機能は特に重要だ。現在は日本語、英語、繁体中国語、スペイン語、タイ語での利用がサポートされている。言語リソースの翻訳は、LINE社内で開発された「XLT」と呼ばれるWebアプリケーションを通じて行われている。wikiの仕様書に言語リソースのキーと母国語の値を定義すると、翻訳者がWeb UIやExcelフォーマットでのダウンロード・アップロードを通じて各言語への翻訳を行う。翻訳されたリソースは、Javaのpropertiesファイル、Android/iOSのリソースファイル等任意の形式でダウンロードできるため、効率的な適用が可能になっている。さらに、Perl用のi18nライブラリに目的に合致するものが無かったことから、自社内で独自に開発した高速なi18nライブラリを利用している。このライブラリは、実行時にすべての言語リソースを自動コンパイルすることでオーバーヘッドを最小化し、応答速度の向上を実現しているという。なお、このライブラリは「Localizer」としてCPANにも公開されており、Perl 5ライセンスの下で誰でも自由に利用できる。PSGI / Plackへの関わりもそうだが、LINEでは、こうしたオープンソースコミュニティへの積極的な還元も、社内的に推奨されているということである。

■ 性能の監視とスケール

半年で27万人、1年で39万人と、LINE Creators Marketに参加するクリエイターは常に増加している。スタンプ画像の容量や、どの国でどのスタンプが売れ、どのように送受信されたかといった情報も、4億レコードを超える統計情報として日々生成されているという。ユーザがクリエイターに限られるため、一般向けのサービスに比べればトラフィックは多くはないが、それでも急成長している分性能要件はシビアだ。そこで重要になるのが、サービスの運用状況を把握し、適切な対応をとっていくことだろう。

LINE Creators Marketでは、主に以下のようなツールを用いて、システムの状況を常に可視化しモニタリングしている。

「Nata」
MySQLスロークエリログの監視
「GrowthForecast」
HTTPステータスやレスポンスタイムの監視
「Kurado」
RRDtoolを利用して運用状況を可視化

もちろん、システム自体がスケーラブルに作られていなければ、状況を把握していても対応は後手に回ってしまう。初期段階から、単純にサーバ・インスタンスを追加するだけでスケールするような設計を行っているからこそ、これらのツールによるモニタリングが意味を持つのだと言えるだろう。

原稿:鶴田 展之
qnote代表取締役。オープンソースソフトウェアを用いたシステムインテグレーション及びコンサルティングの傍ら、技術書を中心に多数の著述活動を行う。
なお、オフィスには7匹の猫がいる。

この記事はどうでしたか?

おすすめの記事

エンジニア向け求人特集

BACK TO TOP ∧

FOLLOW