Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Draft で作る k8s 上 Rails 開発環境 / Rails Development ...
Search
Fumiaki MATSUSHIMA
July 29, 2018
Programming
3
320
Draft で作る k8s 上 Rails 開発環境 / Rails Development Environment built on Draft
TokyuRuby会議12 発表資料
https://tokyurubykaigi.github.io/tokyu12/
Fumiaki MATSUSHIMA
July 29, 2018
Tweet
Share
More Decks by Fumiaki MATSUSHIMA
See All by Fumiaki MATSUSHIMA
Learning from performance improvements on GraphQL Ruby
mtsmfm
1
1k
Ruby で作る Ruby (物理)
mtsmfm
1
190
GraphQL Ruby benchmark
mtsmfm
1
750
タイムアウトにご用心 / Timeout might break application state
mtsmfm
6
2.5k
Build REST API with GraphQL Ruby
mtsmfm
0
290
GraphQL Ruby をちょっとだけ速くした / Make graphql-ruby faster a bit
mtsmfm
1
680
Gaming PC on GCP
mtsmfm
0
690
How to introduce GraphQL to an existing React-Redux application
mtsmfm
1
220
Canary release in StudySapuri
mtsmfm
0
3k
Other Decks in Programming
See All in Programming
ESLintプラグインを使用してCDKのセオリーを適用する
yamanashi_ren01
2
240
Scaling your build logic
antalmonori
1
100
BEエンジニアがFEの業務をできるようになるまでにやったこと
yoshida_ryushin
0
200
混沌とした例外処理とエラー監視に秩序をもたらす
morihirok
13
2.3k
Amazon Nova Reelの可能性
hideg
0
200
PHPカンファレンス 2024|共創を加速するための若手の技術挑戦
weddingpark
0
140
“あなた” の開発を支援する AI エージェント Bedrock Engineer / introducing-bedrock-engineer
gawa
4
190
ドメインイベント増えすぎ問題
h0r15h0
2
570
Simple組み合わせ村から大都会Railsにやってきた俺は / Coming to Rails from the Simple
moznion
3
2.1k
アクターシステムに頼らずEvent Sourcingする方法について
j5ik2o
6
700
DevinとCursorから学ぶAIエージェントメモリーの設計とMoatの考え方
itarutomy
0
150
Swiftコンパイラ超入門+async関数の仕組み
shiz
0
170
Featured
See All Featured
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
How to train your dragon (web standard)
notwaldorf
89
5.8k
Typedesign – Prime Four
hannesfritz
40
2.5k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Become a Pro
speakerdeck
PRO
26
5.1k
Raft: Consensus for Rubyists
vanstee
137
6.7k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
7
570
Docker and Python
trallard
43
3.2k
Product Roadmaps are Hard
iamctodd
PRO
50
11k
Embracing the Ebb and Flow
colly
84
4.5k
Building Applications with DynamoDB
mza
93
6.2k
Transcript
#tqrk12 Draft で作る k8s 上 Rails 開発環境 Draft で作る k8s
上 Rails 開発環境 @mtsmfm Fumiaki Matsushima TokyuRuby会議12 #tqrk12
#tqrk12 Draft で作る k8s 上 Rails 開発環境 ➔ Web Dev
at Quipper ➔ Ruby と麻雀と DbD が好き ➔ 西日暮里.rb 主催 ➔ GraphQL Tokyo 主催 @mtsmfm.inspect #tqrk12 Draft で作る k8s 上 Rails 開発環境
#tqrk12 Draft で作る k8s 上 Rails 開発環境 https://studysapuri.jp/ #tqrk12 Draft
で作る k8s 上 Rails 開発環境
#tqrk12 Draft で作る k8s 上 Rails 開発環境
#tqrk12 Draft で作る k8s 上 Rails 開発環境 https://nishinipporirb.doorkeeper.jp/events/77847 #tqrk12 Draft
で作る k8s 上 Rails 開発環境
#tqrk12 Draft で作る k8s 上 Rails 開発環境 https://twitter.com/mtsmfm/status/1022166525644398593 #tqrk12 Draft
で作る k8s 上 Rails 開発環境
#tqrk12 Draft で作る k8s 上 Rails 開発環境 https://www.meetup.com/ja-JP/GraphQL-Tokyo/ #tqrk12 Draft
で作る k8s 上 Rails 開発環境
#tqrk12 Draft で作る k8s 上 Rails 開発環境 Draft で作る k8s
上 Rails 開発環境 @mtsmfm Fumiaki Matsushima TokyuRuby会議12 #tqrk12
#tqrk12 Draft で作る k8s 上 Rails 開発環境 開発環境 どうしてますか
#tqrk12 Draft で作る k8s 上 Rails 開発環境 docker-compose
#tqrk12 Draft で作る k8s 上 Rails 開発環境 https://speakerdeck.com/mtsmfm/qall-development-env-on-docker-for-quipper
#tqrk12 Draft で作る k8s 上 Rails 開発環境 k8s 使ってますか
#tqrk12 Draft で作る k8s 上 Rails 開発環境 本番は k8s 開発は
docker-compose
#tqrk12 Draft で作る k8s 上 Rails 開発環境 それでいいのか???
#tqrk12 Draft で作る k8s 上 Rails 開発環境 “本番となるべく同じに”
#tqrk12 Draft で作る k8s 上 Rails 開発環境 Docker Swarm 使ってないでしょ?
#tqrk12 Draft で作る k8s 上 Rails 開発環境 d4m に k8s
到来 https://blog.docker.com/2018/01/docker-mac-kubernetes/
#tqrk12 Draft で作る k8s 上 Rails 開発環境 どうやって作るか
#tqrk12 Draft で作る k8s 上 Rails 開発環境 どうやっても 開発環境との 差異はある
#tqrk12 Draft で作る k8s 上 Rails 開発環境 本番と開発環境との差異 ➔ RAILS_ENV
➔ DB接続情報 ➔ 外部接続先 ➔ 開発用プロセスの有無 ◆ Webpack とか
#tqrk12 Draft で作る k8s 上 Rails 開発環境 最低限 差異の管理と k8s
への適用が必要
#tqrk12 Draft で作る k8s 上 Rails 開発環境 https://blog.hasura.io/draft-vs-gitkube-vs-helm-vs-ksonnet-vs-metaparticle-vs-s kaffold-f5aa9561f948
#tqrk12 Draft で作る k8s 上 Rails 開発環境 関連ツール 多すぎ
#tqrk12 Draft で作る k8s 上 Rails 開発環境 とりあえず Draft 素振ってみた
#tqrk12 Draft で作る k8s 上 Rails 開発環境 https://draft.sh/
#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.”
#tqrk12 Draft で作る k8s 上 Rails 開発環境 Draft とは ➔
開発中のループ、コードを書いてコミットするま での間にフォーカスしたツール ◆ 多分ここを狙ったツールはこいつと skaffold くらい • 他に知ってたら教えてください ➔ 中では Docker で Image をビルドし、Helm で デプロイ
#tqrk12 Draft で作る k8s 上 Rails 開発環境 Helm とは ➔
k8s 用パッケージマネージャ ◆ YAML を束ねられる ◆ YAML にテンプレートも提供
#tqrk12 Draft で作る k8s 上 Rails 開発環境 Draft とは ➔
draft create するとテンプレを生成 ◆ 使用言語を検出してくれる • GitHub の言語検出の仕組み (linguist) を使用 ➔ draft up するとデプロイされる ◆ docker build ◆ helm install --set <draft.toml の内容>
#tqrk12 Draft で作る k8s 上 Rails 開発環境 構成 ➔ /draft.toml
➔ /Dockerfile ➔ /charts/rails/templates ◆ deployment.yaml ◆ service.yaml ◆ …
#tqrk12 Draft で作る k8s 上 Rails 開発環境 構成 ➔ /draft.toml
➔ /Dockerfile ➔ /charts/rails/templates ◆ deployment.yaml ◆ service.yaml ◆ … Draft の設定ファイル 本番との差異を吸収
#tqrk12 Draft で作る k8s 上 Rails 開発環境 構成 ➔ /draft.toml
➔ /Dockerfile ➔ /charts/rails/templates ◆ deployment.yaml ◆ service.yaml ◆ … Helm のファイル郡 k8s に展開
#tqrk12 Draft で作る k8s 上 Rails 開発環境 本番との 差異の書き方
#tqrk12 Draft で作る k8s 上 Rails 開発環境 https://github.com/mtsmfm/gh-deck/blob/3c3983b479b775e39b4b7507314ac40e d3386cf3/draft.toml.example
#tqrk12 Draft で作る k8s 上 Rails 開発環境 https://github.com/mtsmfm/gh-deck/blob/3c3983b479b775e39b4b7507314ac40e d3386cf3/draft.toml.example set
は Helm の values の上書きになる
#tqrk12 Draft で作る k8s 上 Rails 開発環境 https://github.com/mtsmfm/gh-deck/blob/3c3983b479b775e39b4b7507314ac40e d3386cf3/draft.toml.example 手元の変更を即座に
反映させるために マウントしたい
#tqrk12 Draft で作る k8s 上 Rails 開発環境 https://github.com/mtsmfm/gh-deck/blob/3c3983b479b775e39b4b7507314ac40e d3386cf3/charts/rails/templates/deployment.yaml
#tqrk12 Draft で作る k8s 上 Rails 開発環境 https://github.com/mtsmfm/gh-deck/blob/3c3983b479b775e39b4b7507314ac40e d3386cf3/draft.toml.example 開発中は
webpack-dev-server 欲しい
#tqrk12 Draft で作る k8s 上 Rails 開発環境 https://github.com/mtsmfm/gh-deck/blob/3c3983b479b775e39b4b7507314ac40e d3386cf3/charts/rails/templates/deployment.yaml#L55-L61
#tqrk12 Draft で作る k8s 上 Rails 開発環境 やってみての感想 ➔ docker
build して再起動したい draft up vs docker build も再起動もしたくない Rails ◆ ファイル変更して即座に反映されるというのが Rails の 売りの一つだったような... ◆ 開発時に assets:precompile いらないでしょ ◆ Dockerfile わけたくなっちゃう
#tqrk12 Draft で作る k8s 上 Rails 開発環境 やってみての感想 ➔ draft
create 無力 ◆ 言語を検出 == 無から create できない ◆ 結局全部自分で書いたわ~ ➔ デプロイしようとしたら結局本番との差異でハマる ◆ ingress-nginx と GKE ingress の挙動の違い ◆ 本番との差異をなくすとは...
#tqrk12 Draft で作る k8s 上 Rails 開発環境 やってみての感想 ➔ Helm
だけでよくないか? ◆ Values の差し替えは Helm でできる ◆ 実質 docker build やってくれるだけのためにツール増 やすか?
#tqrk12 Draft で作る k8s 上 Rails 開発環境 https://github.com/Azure/draft/tree/e657813f23d23b967ec99a6363533fc3f1253312
#tqrk12 Draft で作る k8s 上 Rails 開発環境 コントリビュート チャンス
#tqrk12 Draft で作る k8s 上 Rails 開発環境 Happy Helming! (for
now)