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

Draft で作る k8s 上 Rails 開発環境 / Rails Development ...

Draft で作る k8s 上 Rails 開発環境 / Rails Development Environment built on Draft

TokyuRuby会議12 発表資料

https://tokyurubykaigi.github.io/tokyu12/

Fumiaki MATSUSHIMA

July 29, 2018
Tweet

More Decks by Fumiaki MATSUSHIMA

Other Decks in Programming

Transcript

  1. #tqrk12 Draft で作る k8s 上 Rails 開発環境 Draft で作る k8s

    上 Rails 開発環境 @mtsmfm Fumiaki Matsushima TokyuRuby会議12 #tqrk12
  2. #tqrk12 Draft で作る k8s 上 Rails 開発環境 ➔ Web Dev

    at Quipper ➔ Ruby と麻雀と DbD が好き ➔ 西日暮里.rb 主催 ➔ GraphQL Tokyo 主催 @mtsmfm.inspect #tqrk12 Draft で作る k8s 上 Rails 開発環境
  3. #tqrk12 Draft で作る k8s 上 Rails 開発環境 Draft で作る k8s

    上 Rails 開発環境 @mtsmfm Fumiaki Matsushima TokyuRuby会議12 #tqrk12
  4. #tqrk12 Draft で作る k8s 上 Rails 開発環境 d4m に k8s

    到来 https://blog.docker.com/2018/01/docker-mac-kubernetes/
  5. #tqrk12 Draft で作る k8s 上 Rails 開発環境 本番と開発環境との差異 ➔ RAILS_ENV

    ➔ DB接続情報 ➔ 外部接続先 ➔ 開発用プロセスの有無 ◆ Webpack とか
  6. #tqrk12 Draft で作る k8s 上 Rails 開発環境 “Draft makes it

    easy to build applications that run on Kubernetes. Draft targets the "inner loop" of a developer's workflow: as they hack on code, but before code is committed to version control.”
  7. #tqrk12 Draft で作る k8s 上 Rails 開発環境 Draft とは ➔

    開発中のループ、コードを書いてコミットするま での間にフォーカスしたツール ◆ 多分ここを狙ったツールはこいつと skaffold くらい • 他に知ってたら教えてください ➔ 中では Docker で Image をビルドし、Helm で デプロイ
  8. #tqrk12 Draft で作る k8s 上 Rails 開発環境 Helm とは ➔

    k8s 用パッケージマネージャ ◆ YAML を束ねられる ◆ YAML にテンプレートも提供
  9. #tqrk12 Draft で作る k8s 上 Rails 開発環境 Draft とは ➔

    draft create するとテンプレを生成 ◆ 使用言語を検出してくれる • GitHub の言語検出の仕組み (linguist) を使用 ➔ draft up するとデプロイされる ◆ docker build ◆ helm install --set <draft.toml の内容>
  10. #tqrk12 Draft で作る k8s 上 Rails 開発環境 構成 ➔ /draft.toml

    ➔ /Dockerfile ➔ /charts/rails/templates ◆ deployment.yaml ◆ service.yaml ◆ …
  11. #tqrk12 Draft で作る k8s 上 Rails 開発環境 構成 ➔ /draft.toml

    ➔ /Dockerfile ➔ /charts/rails/templates ◆ deployment.yaml ◆ service.yaml ◆ … Draft の設定ファイル 本番との差異を吸収
  12. #tqrk12 Draft で作る k8s 上 Rails 開発環境 構成 ➔ /draft.toml

    ➔ /Dockerfile ➔ /charts/rails/templates ◆ deployment.yaml ◆ service.yaml ◆ … Helm のファイル郡 k8s に展開
  13. #tqrk12 Draft で作る k8s 上 Rails 開発環境 やってみての感想 ➔ docker

    build して再起動したい draft up vs docker build も再起動もしたくない Rails ◆ ファイル変更して即座に反映されるというのが Rails の 売りの一つだったような... ◆ 開発時に assets:precompile いらないでしょ ◆ Dockerfile わけたくなっちゃう
  14. #tqrk12 Draft で作る k8s 上 Rails 開発環境 やってみての感想 ➔ draft

    create 無力 ◆ 言語を検出 == 無から create できない ◆ 結局全部自分で書いたわ~ ➔ デプロイしようとしたら結局本番との差異でハマる ◆ ingress-nginx と GKE ingress の挙動の違い ◆ 本番との差異をなくすとは...
  15. #tqrk12 Draft で作る k8s 上 Rails 開発環境 やってみての感想 ➔ Helm

    だけでよくないか? ◆ Values の差し替えは Helm でできる ◆ 実質 docker build やってくれるだけのためにツール増 やすか?