OpsWorks事例紹介!ソニックガーデンのリモートワークを支えるリアルタイムツール”Remotty”の舞台裏(2014/03/15 - JAWS DAYS)

5,213 views
5,030 views

Published on

Published in: Technology
0 Comments
14 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,213
On SlideShare
0
From Embeds
0
Number of Embeds
2,824
Actions
Shares
0
Downloads
43
Comments
0
Likes
14
Embeds 0
No embeds

No notes for slide

OpsWorks事例紹介!ソニックガーデンのリモートワークを支えるリアルタイムツール”Remotty”の舞台裏(2014/03/15 - JAWS DAYS)

  1. 1. OpsWorks事例例紹介! ソニックガーデンのリモートワークを⽀支える リアルタイムツール”Remotty”の舞台裏裏 #jawsdays  #tech
  2. 2. http://www.sonicgarden.jp/ 本日の流れ 0.はじめに 1.リアルタイム処理実現の変遷 2.Heroku から OpsWorks へ 3.OpsWorks TIPS
  3. 3. http://www.sonicgarden.jp/ 0. はじめに
  4. 4. http://www.sonicgarden.jp/ 自己紹介 「⼼心はプログラマ、仕事は経営者」 Twitter:  kuranuki ブログ:  Social  Change!       http://kuranuki.sonicgarden.jp 「チーフ・インフラ・オフィサー」 Twitter:  interu ブログ:  よかろうもん       http://interu.hatenablog.com 倉貫  義⼈人 安達  輝雄
  5. 5. http://www.sonicgarden.jp/ 株式会社ソニックガーデン
  6. 6. http://www.sonicgarden.jp/ 100% アジャイル開発 クラウド活⽤用 成⻑⾧長し続けるサービスを作り続ける開発
  7. 7. http://www.sonicgarden.jp/ 社内の体制 ⼩小さなチームで⼤大きな成果を出す働き⽅方 社員10名
  8. 8. http://www.sonicgarden.jp/ コワーキングスタイル ペーパーレス     &  フリーアドレス
  9. 9. http://www.sonicgarden.jp/ を活⽤用して オンラインミーティング  &  常時接続 リモートワークスタイル
  10. 10. http://www.sonicgarden.jp/ リモートワークが増えた・・・ (リモートで働きたいエンジニア募集中です!)
  11. 11. http://www.sonicgarden.jp/ 「オフィス」にあって「リモート」にないものは? ⼀一緒に働いている感じを出したい チャットでは⼈人数が増えるとつらい ちょっとした雑談がしにくい •  ⼈人数が増えると話題が混線する •  ちょっとしたことが書けなくなる •  分けてしまうと分断されてしまう そこで
  12. 12. http://www.sonicgarden.jp/ リモートワークのための雑談環境「Remotty.net」 ほうれんそう よりも ざっそう http://remotty.net
  13. 13. http://www.sonicgarden.jp/ アプリケーションアーキテクチャ データ処理理 リアルタイム処理理
  14. 14. http://www.sonicgarden.jp/ Remottyを支える技術 Ruby  on  Rails Node.js HTML  /  Google  Chrome  socket.io  /  WebSocket AWS  /  OpsWorks
  15. 15. http://www.sonicgarden.jp/ 1. リアルタイム処理実現の変遷 さまざまな リアルタイム双⽅方向通信技術を 試してみた!
  16. 16. http://www.sonicgarden.jp/ ➕ 1st PCのWebViewとしては簡単で便利! でも、iPhoneアプリから使いづらい ... ブラウザ共有サービス
  17. 17. http://www.sonicgarden.jp/ ➕ 2nd ちょっと 不安定 .. Node.js の PaaS
  18. 18. http://www.sonicgarden.jp/ 3rd ➕ ちょいと 遅い ..
  19. 19. http://www.sonicgarden.jp/ リアルタイムチャットなのに ワンテンポ遅いのが難点 ネットワーク遅延 が大きく影響 残された課題
  20. 20. http://www.sonicgarden.jp/ EC2  でやっても芸がないので、 OpsWorks  で動かそう! そこで・・・ Amazon EC2 OpsWorks
  21. 21. http://www.sonicgarden.jp/ OpsWorks 便利だけどあまり人気ない?? 関連ブログをあまり見かけないけど…
  22. 22. http://www.sonicgarden.jp/ USではそこそこ使われているらしいけど 日本ではあまり使われてないらしい。
  23. 23. http://www.sonicgarden.jp/ 良い点、不便な点 どっちもいっぱいあるよ!
  24. 24. http://www.sonicgarden.jp/ メリット・デメリット メリット ⾯面倒なサーバ構築が不不要に chef-‐‑‒soloがすぐに使える 同レイヤのシステム整合性を 保ちやすい 簡単スケーリング デプロイはワンクリック デメリット インスタンスの起動が遅い Chef  Server/Client  ではない ため  ⼀一部の機能が使えない セキュリティグループがたく さん作られる 複数台構成時にバッチ処理理が やりにくい インフラエンジニアの仕事が 減る 詳しい概要はこちら。
  25. 25. http://www.sonicgarden.jp/ 2. Heroku から OpsWorks へ
  26. 26. http://www.sonicgarden.jp/ Herokuでの構成 Rails Node.js websocket (Lab) Amazon S3 us-east tokyo
  27. 27. http://www.sonicgarden.jp/ AWSでの構成 Amazon RDS PostgreSQL Elastic Load Balancing Amazon S3 Rails Server Nodejs Server ap-northeast tokyo
  28. 28. http://www.sonicgarden.jp/ Latencyが劇的に改善… 当たり前か。 パフォーマンス比較 平均Latency  1.3 sec → 0.4 sec us-east ap-northeast
  29. 29. http://www.sonicgarden.jp/ 構築時間比較 1時間 10時間 PaaS 専門には敵わないか… 0からチャットが動くまでに要した時間
  30. 30. http://www.sonicgarden.jp/ 10時間 の内訳 調査/レシピ作成が7割!
  31. 31. http://www.sonicgarden.jp/ ドキュメント多すぎ! cookbook を読む方が 断然 早い! https://github.com/aws/opsworks-cookbooks 次回からは1〜2時間で出来るはず!
  32. 32. http://www.sonicgarden.jp/ 実際に移行してみて ü  EC2で構築よりラク ü  ハマるポイントもいくつかある 所感
  33. 33. http://www.sonicgarden.jp/ EC2 OpsWorks WEBサーバの設定 必要 不要 利用言語バージョン整備 必要 不要 デプロイ自動化 Capistranoなどで整備する 必要 不要 プロセス監視設定 必要 不要 リソース監視設定 CloudWatch以外なら必要 不要 ELBとの連携 都度必要 初回の連携設定の み 何がラクになった? 〜 Railsアプリケーションの場合 〜
  34. 34. http://www.sonicgarden.jp/ 3. OpsWorks TIPS    〜 ハマるポイント 〜
  35. 35. http://www.sonicgarden.jp/ データベース接続情報は Stack Layerで指定すべし Rails App Server Layer 編 ① Stackの状態変化(インスタンス起動など)を トリガーとして Configureイベントが発動しdatabase.yml が 削除され、サービスダウンに。 詳細はこちら http://interu.hatenablog.com/entry/2014/03/10/205811
  36. 36. http://www.sonicgarden.jp/ Rails App Server Layer 編 Deploy Hookを活用すべし ② 自動で asset:precompileしてくれない。 でもHookの利用は簡単なので活用しましょう 詳細はこちら http://interu.hatenablog.com/entry/2013/08/01/214258
  37. 37. http://www.sonicgarden.jp/ Node.js App Server Layer 編 Port 80でもListenすべし ① Monitが http://127.0.0.1:80/ を監視。 Port 443で運用したいときもPort 80で ヘルスチェックを受け付けないと接続が頻繁に 切れちゃうよ。 詳細はこちら http://interu.hatenablog.com/entry/2014/03/11/224532
  38. 38. http://www.sonicgarden.jp/ Node.js App Server Layer 編 NODE_ENVの指定は頑張るべし ② Railsの場合はRAILS_ENV指定ができるが Node.jsではなぜかできない。 staging/productionで設定切り替えが必要な場合は デプロイフックとnode-configを活用しようね。 詳細はこちら http://interu.hatenablog.com/entry/2014/03/11/224532
  39. 39. http://www.sonicgarden.jp/ Node.js App Server Layer 編 ELBでバランシングしたいときは頑張れ ③ socket.ioでELBを使う場合はHTTPではなく TCPリスナーで対応してね。バランシングするなら RedisStoreにsessionを保存して使うとよさげ。 ElastiCache for Redisの出番です! 詳細はこちら http://jxck.hatenablog.com/entry/20120228/1330444857
  40. 40. http://www.sonicgarden.jp/ OpsWorks全般編 c3.large 以上を積極的に使うべし ① 貧弱なInstanceだとDeploy時にLoad-Basedの 閾値に達して新Instanceが起動しちゃうことが あるよ。起動やDeployの時間も多少短くなるよ。
  41. 41. http://www.sonicgarden.jp/ OpsWorks全般編 ログ管理はSaaSを活用すべし ② Loggly / FlyData / Logentriesなどあるけど、 PaperTrail が今のところのオススメ。 サーバログ/アプリログ全てを集約&検索可能。 S3へログを転送する機能もあるよ。 詳細はこちら https://github.com/joeyAghion/opsworks_papertrail
  42. 42. http://www.sonicgarden.jp/ OpsWorks全般編 テーマ毎のホスト名を分析すべし ③ Legendary Creatures in Japan を選ぶと…
  43. 43. http://www.sonicgarden.jp/ OpsWorks全般編 テーマ毎のホスト名を分析すべし ③ •  ibakurei(地縛霊) •  ikiryo(生霊) •  binbogami(貧乏神) などが割り当てられるよ。不吉なホスト名から意味不明な ホスト名まであって楽しめるよ!
  44. 44. http://www.sonicgarden.jp/ OpsWorksで改善してほしいポイント •  ELB連携のようにRDS連携してほしい •  マスタホストを自動決定してほしい •  cron実行をマスタホストでのみ実行したい •  環境変数をJSONで渡せるようにしてほしい •  レシピ作ったりデプロイフックで対応するの面倒 •  Database接続設定はApplicationのJSONに •  Configureの影響を受けないように •  アプリケーションの情報なのでStack JSONで設定したくない
  45. 45. http://www.sonicgarden.jp/ ハマるポイントは多々あるけれども OpsWorks  便便利利ですよ! 昨今の流流⾏行行りにもラクに乗れます! ü  Immutable  Infrastracture ü  冪等性 インフラエンジニアも  怠惰  たれ! 最後に
  46. 46. http://www.sonicgarden.jp/ この文書は、著作権法及び不正競争防止法上の保護を受けております。 文書の一部或いは全てについて、株式会社ソニックガーデンから許諾を得ずに、 いかなる方法に於いても無断で複写、複製、転記、転載、ノウハウの使用、 企業秘密の開示等を行うことは禁じられております。 本文記載の社名・製品名・ロゴは各社の商標または登録商標です。 本資料料に関するお問い合わせは… 株式会社ソニックガーデン info@sonicgarden.jp フルスタックエンジニア 事業開発マネージャ 募集してます info@sonicgarden.jp

×