Successfully reported this slideshow.
Your SlideShare is downloading. ×

爆速プレビュープロキシ pool

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 19 Ad
Advertisement

More Related Content

Slideshows for you (20)

Viewers also liked (12)

Advertisement

Similar to 爆速プレビュープロキシ pool (20)

Recently uploaded (20)

Advertisement

爆速プレビュープロキシ pool

  1. 1. 重大発表
  2. 2. ボタンを押さない の開発に成功!!
  3. 3. 爆速プレビュープロキシ mookjp 株式会社リクルートテクノロジーズ
  4. 4. できること http://コミットハッシュやブランチ名.pool.dev/ http://master.pool.dev/ とか http://a54db9.pool.dev/
  5. 5. つかいかた (Vagrantで試す場合) 1.  WebアプリケーションのGitリポジトリを用意 2.  このリポジトリのルートにアプリケーションのコンテ ナを起動させるためのDockerfileを置く –  travis.ymlみたいな感じでDockerfileを置く 3.  https://github.com/mookjp/pool からcloneし て付属のVagrantfile内に(1)のURLを指定 4.  vagrant dns --install 5.  vagrant up ※http://qiita.com/mookjp/items/ed5961589428238d610b に詳 しく書きました
  6. 6. どこでも使える 例はVagrantでしたが DNSを用意すればどこでも使えます
  7. 7. レビュー時に画面も確認 Pull Requestに反応してURLを貼るbot付き
  8. 8. poolのしくみ Reverse Proxy mod_mruby hook Docker daemon pool container dev (b78e6c) Git repository 1. コミットに対応するコンテナがあるか確認 master (ab2ca4)
  9. 9. poolのしくみ Reverse Proxy mod_mruby hook Docker daemon pool container master (ab2ca4) dev (b78e6c) Git repository 2. なければリポジトリからソースを取得し Dockerfileを元にコンテナを作成
  10. 10. poolのしくみ Reverse Proxy mod_mruby hook Docker daemon pool container master (ab2ca4) dev (b78e6c) Git repository ※ビルド中はログをクライアントに流す
  11. 11. poolのしくみ Reverse Proxy mod_mruby hook Docker daemon pool container master (ab2ca4) dev (b78e6c) Git repository ※ビルド中はログをクライアントに流す
  12. 12. poolのしくみ Reverse Proxy mod_mruby hook Docker daemon pool container master (ab2ca4) dev (b78e6c) Git repository 3. コンテナがあればforward dev (b78e6c)
  13. 13. Dockerでやってみた理由 1. 安い –  VMよりも手軽 2. 速い –  キャッシュをうまく利用して高速に環境を作 成できる –  クリーンな環境を毎回素早くつくるのによい 3. うまい –  自由度が高い
  14. 14. 派生プロジェクトも企画中 https://prevs.io/
  15. 15. 今までのQA環境作成
  16. 16. これからのQA環境作成
  17. 17. 関連記事 •  mod_mrubyとDockerを使ってプレビュー環境を作成 するプロキシサーバを作った ‒ Qiita –  http://qiita.com/mookjp/items/ ed5961589428238d610b •  Docker(pool)を用いたプレビュー環境を検証する (railsアプリ開発チームの活用例) ‒ Qiita –  http://qiita.com/k-shogo/items/cc47e448fa0c07ac3189 •  人間とウェブの未来 - Gitのコミット単位で動的に Dockerイメージをデプロイするプロキシサーバpool –  http://blog.matsumoto-r.jp/?p=4541
  18. 18. お試しください
  19. 19. Dockerやりましょう http://recruit-tech.co.jp/recruitment/mid-career.html

Editor's Notes

  • それが今回ご紹介するDockerを使ったプレビュー用プロキシpoolです。
    自己紹介が遅れましたが、わたくし株式会社リクルートテクノロジーズの市原と申します。丸の内OLです。よろしくお願いいたします。
  • これを使ってできることというのが、サブドメイン部分にGitのコミットハッシュやブランチ名を指定すると、プロキシ内部でコミットに対応するDockerコンテナを自動で作成して、URLにアクセスするだけで一意の状態のアプリケーションを使えるというものです。で、環境に始めてアクセスする場合はアニメーションのようなビルド中のログがクライアントで確認できます。
  • Vagrant dnsというプラグインがあって、これでローカル環境の名前解決をする設定を入れることができます。
    あとでスライド資料共有しますが、Qiitaに詳しく書いた記事があるので試す際はそちらを見ていただくといいかと思います。
  • また、poolはGithubのPull Requestに反応してURLを貼るbot機能もあるので、たとえばPR時に画面も確認したい場合は、自分で環境を用意したり、QA環境作成するしくみを自前で用意しなくても、レビュー時にURLをクリックするだけで画面も確認できます。
  • 内部でどういうことをしているか簡単にご紹介します。サブドメインに与えられたコミットハッシュやブランチ名をプロキシのフックが読んで、このコミットに対応するコンテナがすでに作成されているか確認します。
  • なければリポジトリからソースを取得して、Dockerfileを元にコミットハッシュの状態のコンテナを作成します
  • このビルド中は、クライアントではビルドログが流れる画面が表示されます
  • こんなかんじです
  • すでに存在するコンテナに対するアクセスがあれば、proxyが対応するコンテナへforwardします
  • このツールでDockerを使った理由ですが、まず単純にDockerでなにかできないか試してみたかった、というところがあるんですが、
    このような3つのメリットがありました。
    手軽だということ、キャッシュを利用して高速にクリーンな環境を作成できるということ、またコンテナ内で自由にやりたいことを記述できるというところです。
  • 実は、ここで紹介したpoolをベースにしたホスティングサービスを計画していて、昨日LPをローンチしました。このprevsというサービスでもっとチーム開発を効率的に、楽しくできるようにしていこうということで、頑張っています!2月くらいにベータ版公開する予定です。間に合わなかったんですが、アーリーアクセスのフォームもつけるので、ぜひ登録してみてください。
  • 職人のあたたかみのあるQA環境作成が
  • クリック1回でエンジニア以外も簡単そして高速にできるようになります!
  • 使い方の記事や、紹介記事も書いて頂いているのでよかったら見てみてください!
  • よろしくお願いいたします!
  • あと採用してるのでDockerやりましょう。今だと結構ヤバイプロジェクトにDocker入れるみたいな感じでスリリングなやつができます。

×