【参加レポ】Webサービスの国際化にあたりLINE Creators Market開発がどのように行われたか【LINE DEVELOPER DAY_2015】 #linedevday

公開日: 

4/28に開催されたLINEのエンジニアチームの様々な経験を、未解決の課題も含めて共有する技術カンファレンス、

LINE DEVELOPER DAY_2015 Tokyo

に参加してきたのでその時のまとめ。

 

LINE Creators Marketの開発話です。

 

他のセッションは以下からどうぞ

sponcer link

Tokuhiro Matsuno様

linedevday-make-creators-market1

 

現在のCreators Marketの状況

  • 9万以上のスタンプがある
  • 上位10位の売上は3680万円!

linedevday-make-creators-market2

  • 40.8%以上は販売額が1万円以上売り上げている
  • 販売総額は35億9000万円

マーケットの主な機能は5つ

linedevday-make-creators-market3

各コンポーネントは独立しているが、LINE Creators Marketはperlで書かれている

国をまたいだコミュニケーションはポリコム以外にも翻訳BOTを使ってコミュニケーションをとったりすることもあるらしい

 

アーキテクチャについて

linedevday-make-creators-market4

  • ユーザーがスタンプを利用するとHadoopに情報を送ってどのスタンプが人気かなどを集計している

 

各サーバアーキテクチャについて

linedevday-make-creators-market5

  • SSLの処理はロードバランサですべて引き受ける
  • nginxはリバースプロキシとして使っている
    • 設定ファイルが読みやすい、慣れているというところで採用した
  • アプリケーションサーバはperlで実装されている
    • plackというフレームワークを使っている
    • LINE TaxiとかはJava8
  • DBはMySQL5.6使用
    • お金関連の処理はOracleを採用しているが、別途課金のところに処理は移譲するのでCreatorsMarketはノータッチ
  • バッチサーバはフロントとは別サーバとして動いています

 

実装した機能について

スタンプアップロード機能

linedevday-make-creators-market6

  • Angular.JSを採用している (最近は評判が悪いが昔はよかったんです!!)
  • ユーザー向けの管理画面ではAngularJS便利ではないか

 

スタンプ画像の生成機能

  • デバイスごとにリサイズして自社開発のSTFというストレージサーバに保存している
    • STFはLINEブログなどで使ったりしている
  • スタンプの画像量は1.7TB
  • 画像仕様がかわって再生成したときは6週間かかった

 

承認機能

審査に使うLINEのオペレーターが使っている管理画面もAngularJSで書かれている

linedevday-make-creators-market7

linedevday-make-creators-market9

 

送金機能

  • 経理システムはneonという自社開発されたシステムを使っている
    • 日本の個人におくろうとすると問題が起きる
    • 韓国は国民番号入力必須になっているので調整したりした
    • 個人事業主番号がないのを韓国のエンジニアに理解してもらうのが大変だったりした
  • 送金方法は国内は銀行を経由して送っているが、国外はpaypalを使って送金している
    • 国内国外とだしわけることで実装の手間が増えている

 

統計情報の表示

Hadoopで集計して、tsvではいて、rsyncdで送って、集計プログラムをまわし、MySQLに保存している

統計情報は送信スタンプと受信スタンプがわかれて見れます。

linedevday-make-creators-market10

  • 他にも地域ごとの売上も見れる
  • 479,645,216行のデータが蓄積されている

 

国際化

  • 社内にXLTという多言語対応のためのツールがあって、リソースになるキーと母国語を入力し、翻訳者がそれを翻訳する
  • エクセルでDLできるようになっていて、再度アップロードも可能
  • また、androidのファイルなどに出力できたりする

高速なi18nライブラリの実装

linedevday-make-creators-market11

 

ぼやけてわかりづらいけど、

というのが、

みたいな形に変換することではやくしているらしい 

 

開発時に気をつけていること

  • アジャイルな開発
    • 何をリリース時までに実装するのかをエンジニアも話し合いながら実装している
  • 最初からスケールするようにする
  • MySQLスローログ監視にはNataを使っている 

 

  • Fluentdでnginxのログを集めてHTTP Status監視をして、400や500エラーが出たらhipchatに通知するようにしている

linedevday-make-creators-market12

 

  • レスポンスタイムの監視もグラフ化して監視している

linedevday-make-creators-market13

 

  • サービスのメトリック監視はKuradoを使っている

linedevday-make-creators-market14

  • データがでかい!1.7GB

 

まとめ

  • ユーザーさんに日々新しい体験をさせるために、日々精進して作っています

 

所感

AngularJSやNataなど、オープンソースなツールを色々使っていて中々アグレッシブな開発を感じました。

また、韓国と日本との国の制度の違いで色々もめる話もなかなかおもしろかったです。

こういうのは実際に開発していってみたりとかしないと知り得ないことですよね。

  • このエントリーをはてなブックマークに追加
  • Pocket
PAGE TOP ↑