メタップスでの少人数 グローバルプラットフォーム開発について
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

メタップスでの少人数 グローバルプラットフォーム開発について

  • 6,555 views
Uploaded on

メタップスでのAWS,Ruby on Railsを使った少人数でのグローバルプラットフォームの開発について紹介します。

メタップスでのAWS,Ruby on Railsを使った少人数でのグローバルプラットフォームの開発について紹介します。

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
6,555
On Slideshare
3,504
From Embeds
3,051
Number of Embeds
14

Actions

Shares
Downloads
27
Comments
0
Likes
17

Embeds 3,051

http://doda.jp 2,830
http://doda.ajike.biz 101
http://cms.doda.jp 68
https://twitter.com 28
http://s.deeeki.com 13
http://t.co 2
http://dev.eventdots.jp 2
http://rssc.dokoda.jp 1
https://www.chatwork.com 1
https://www.google.co.jp 1
https://www.facebook.com 1
http://www.google.co.jp 1
http://slideshare-download.seesaa.net 1
https://m.facebook.com&_=1389885964905 HTTP 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. メタップスでの尐人数 グローバルプラットフォーム開発について 2013 Metaps Inc.
  • 2. About Metaps Metapsについて
  • 3. About Metaps MetapsはAndroidアプリディベロッパー向けのプラット フォームを世界230カ国に提供しています。 http://www.metaps.com/
  • 4. About Metaps 新宿をHEAD OFFICEとして現在7箇所にオフィスを開設。 開発はすべて新宿で行っています。
  • 5. About me Name : 小森谷 一生 Position : Manager History : SIer, Livedoor, GREE Experience : Perl,PHP,Ruby
  • 6. Infrastructure インフラ設計
  • 7. Infrastructure 要件 世界の全てのAndroidアプリがMetaps のサービスを導入できること
  • 8. Infrastructure グローバルなAdシステムとして、 クリアしなければいけない課題 言語 通貨 通信速度 端末スペック 時差 広告単価 国 セキュリティ
  • 9. Infrastructure 選択した手段
  • 10. Infrastructure
  • 11. Infrastructure ビジネス的要件などを考慮した上で、 JP, US, EU, SGの4Regionへサービスを展開。 JPにのみMasterデータを保持し、 他Regionは全てキャッシュを参照するRead Only専 用とする。
  • 12. Infrastructure Androidアプリに搭載されたSDKからの通信は可能 な限りBackground Processで行います。 どんな通信環境でもユーザーへストレスを与えない ことを心がける。
  • 13. Infrastructure (広告表示などの)Read用APIと(クリックなど の)Write用APIでドメインで分割 Read API => Latency Resource Record Write API => JP 画像は全てCloudFrontへ。
  • 14. Infrastructure 各RegionごとにVPCでネットワーク管理を行い、 Availabity Zoneは2つ以上に分割。それに伴いキャッ シュサーバーもNWコスト軽減のため分割。
  • 15. Infrastructure CacheはJPからBatchぶん回しでキャッシュを生成。 ElasticacheのRedis Replicationを利用してZone別に 冗長構成に。
  • 16. Application AWSの利用状況 - AutoScaleは使わない。設定や運用コストの高さに加えて、Deploy作 業などとの衝突可能性がある。 最近Consoleから設定ができるようになったらしい - 増設時はDailyでIMAGEのバックアップを自動で行っているので、そ こからscriptでService In。Chefについては導入検討中。 - EC2のInstanceはc3.xlargeのパフォーマンスが非常によく、全台 Replace中。 在庫が尐なくなっているようなので必要な方はお早めに! - USの方がコストが安いため次のサービスでは、USにMaster Storage を置くことも検討。
  • 17. Application アプリケーション
  • 18. Application API Instances Storage Nginx RDS MySQL Unicorn + Rails Dynamo fluentd client Elasticache S3 fluentd host Redshift Fluentd host Data Warehouse 数十GB / 1day
  • 19. Application AdシステムとしてRuby/Railsは遅くない? “50ms or Die”というフレーズがありますがmetapsのサービ スはサーバーと、様々な通信環境のAndroid Deviceの通信 のため、物理的に通信距離が遠くなることがResponse低下 に繋がります。 そのため数msのResponse Timeをチューニングするより も、アイデアを使って世界中からユーザー体感で速い表示 を行うことが重要。それを行うために素早く行うにはRails が最適と判断。 upstream response timeでは50msを切ることはやってま す!
  • 20. Application Rubyの利用状況 - Unicorn, Puma, Rainbows!でBenchmrkを計測しUnicorn を採用 - Ruby2/Rails4への移行は現在検証中 - DB接続処理などが、JPとそれ以外のRegionで処理を切 り分けている部分があり、煩雑になりがちなところがあ る。 - RDS Cross Region Replicaがリリースされたので、それ を使って解消できるかも。現在Replica Lagの検証中で Production利用も問題無い雰囲気。
  • 21. Application Requsts - RegionごとのRequest数はJP,US,SG,EU - 全Region合わせて現在1日数億Request - 予想外に南米からのRequestもありSanpaulo Region立ち 上げもあるかも?
  • 22. Application 実機検証 ロシアからのアクセスがRoute53のLatency AlgorithmによりUSを向いて しまう時がある。それを実機レベルで検証するすべがない。。
  • 23. SDK SDK
  • 24. SDK アプリディベロッパーが簡単に導入できることを心がけている Exchanger.start(this, "YOUR_APPLICATION_CODE", Exchanger.ORIENTATION_PORTRAIT, false); Exchanger.showFullScreen(this, null, false); SDKを読み込み、この2行を書くだけでmetapsサービスの基本的な導入ができる - ドキュメントも製品の一つとして、品質の高いものを提供する - PluginとしてUnity, Airを提供
  • 25. SDK - Androidのバージョンアップなどは常にキャッチアップ - WebviewのRenderingがそれほど速くないため試行錯誤中 - rooted device, reverse compileなどのSecurity対策 - UnitTest & BuildはJenkins - 世界には予測不能なAndroid端末が出まわってたり・・・
  • 26. Problem 課題
  • 27. Problem 課題 - ピーク時間が各Regionごとに違うためDeployや負荷状況の差異を気に する必要が有るため、それを補える自動Deployの環境構築が必要。 - 大型のアプリがバージョンアップをした際に、SDKのInitializeが行わ れそれに伴うRequestが発生し、瞬間的にサーバーの負荷が高まる場 合がある。 - 為替の激しい変動。 - Androidのバージョンアップに伴う仕様変更。
  • 28. Change the world 世界を変えよう
  • 29. 現在のチーム人数で10倍以上のTrafficを捌けるように構築し てある自信はあります。 が、さらに世の中を一歩前へ進める価値を提供する仲間を探 しています。 http://www.metaps.com/ja/careers/