Upgrade to Pro — share decks privately, control downloads, hide ads and more …

rails_rdm_revieee

morioka shuhei
July 20, 2017
1.1k

 rails_rdm_revieee

morioka shuhei

July 20, 2017
Tweet

Transcript

  1. Rails Developers Meetup #03 2017/07/20 (Thu) Heroku Review Apps Like

    な Rails 確認環境の自動構築ツー ル Revieee について 株式会社Speee ヌリカエ兼開発基盤部エンジニア 森岡周平
  2. Agenda Revieee って何? Revieee でやりたいこと Revieee の構成 Revieee の使い方 (

    理想) Revieee の使い方 ( 現実) 現在の状態 これからの予定
  3. Agenda Revieee って何? Revieee でやりたいこと Revieee の構成 Revieee の使い方 (

    理想) Revieee の使い方 ( 現実) 現在の状態 これからの予定
  4. Heroku Review Apps Heroku の提供する開発支援ツー ル. GitHub にpull request を作

    ると、PR 単位で確認環境が出来上がる Pros メンテナンスフリー 設定が圧倒的に楽 Cons 無料だとアクセスするIP の制限を入れられない Enterprise だと年間 $20,800 ( 契約金のみ) 利用するミドルウェアのバー ジョンが指定不可
  5. Paus dtan4 さん製のdocker swarm をベー スとしたツー ル Pros local machine

    で動いているものを、 そのままcloud に持っていける Cons docker swarm クラスタの管理が手間 container のlog 確認がつらい
  6. Migrate to ECS (issue in Paus) docker swarm ベー スのシステムをECS

    ベー スで作り 直す予定とのこと! 僕たちも、ECS ベー スで作ることに!
  7. ツー ル開発の目的 環境構築、 声掛け運用をやめて開発効率向上 (option) Speee 社員が参加しやすいOSS を作る そのためにやること PR

    作ったら簡単にできて メンテナンスがいらない そんな確認環境作ってくれるツー ルを GitHub でOSS として開発する
  8. Agenda Revieee って何? Revieee でやりたいこと Revieee の構成 Revieee の使い方 (

    理想) Revieee の使い方 ( 現実) 現在の状態 これからの予定
  9. ECS の構成要素 ※ この後図を使って説明するので、 ざっと聞いてもらえると! Task: Docker コンテナを意味ある粒度で動かしてるもの docker-compose で扱うコンテナ群のイメー

    ジ TaskDe nition: Task の設計書。 使うDocker Image のPath、 コンテナに使う CPU/ メモリリソー スや環境変数などを保持. Service: Task の配置設定( 起動数・ 配置場所・autoscaling) デプロイ、ELB との紐付けなどを行う ECR(EC2 Container Registry): Docker Image 置き場.
  10. 複数サー ビス in ECS ( 例: ヌリカエ) LP と通常のApplication を別のservice

    とした例 同一クラスター に複数サー ビスを立ち上げたりできる
  11. Revieee でやりたいこと PR 単位で確認環境が構築される コンテナをBRANCH 指定で動かしたい PR 単位でユニー クな接続用URL を用意したい

    ECS で実現するための方法 任意のTask をBranch 指定して起動させる 任意のTask に接続できるようにする Task のPort と、deploy 先のEC2 IP
  12. Agenda Revieee って何? Revieee でやりたいこと Revieee の構成 Revieee の使い方 (

    理想) Revieee の使い方 ( 現実) Revieee の現状とこれから
  13. Revieee の使い方 ( 現実) Docker Image を作成しECR に登録 Task De

    nition の設定ファイルを作成 Webhook の登録 GitHub リポジトリにbot を招待 PR 毎に確認環境が構築される
  14. 現在の設定の理由 Docker Image はユー ザー がハンドリングしたい MySQL のテストデー タの更新など どう自動化するのが適切か見えてないものもある

    コンテナ毎の各種設定な 一旦は、 自動化せずに素朴な仕組みで運用してみて 知見を集めた後に自動化の方向性を探りたい
  15. Agenda Revieee って何? Revieee でやりたいこと Revieee の構成 Revieee の使い方 (

    理想) Revieee の使い方 ( 現実) Revieee の現状とこれから
  16. その他見えている課題 複数リポジトリにまたがるものアプリの対応 フロント/web でリポジトリが分かれてるやつ Docker Image の初期DL が遅い Docker Image

    の置き場をEFS にしてみる? 放置されるPR の対応どうしよう Container リソー スの無駄遣いに Task を更新する際 connection drawing できない PR 更新したら、 接続がブチッと切れる
  17. まとめ Revieee は AWS ECS をベー スに動いてます Speee でいくつかのチー ムに使って貰ってます

    現在、 簡単に構築できるように開発中です!! そしたら、 みなさん使って頂いて Issue & PR くれたらうれしいっす! やることはいっぱい ご意見、 ご要望お待ちしております
  18. 宣伝 OSS Gate 東京ミー トアップ for Red Data Tools in

    Speee 7/25 https://speee.connpass.com/event/62324/