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

Microservices 時代の開発環境 / Development env in the microservices age

Microservices 時代の開発環境 / Development env in the microservices age

Microservices Meetup vol.8 Lightning Talks Battle!

https://microservices-meetup.connpass.com/event/99190/

Fb1b9f3d7332a7a7e262b70013b5f7dd?s=128

Fumiaki MATSUSHIMA

August 30, 2018
Tweet

Transcript

  1. #microserv Microservices 時代の開発環境 Microservices 時代の開発環境 @mtsmfm Fumiaki Matsushima Microservices Meetup

    vol.8 Lightning Talks Battle!
  2. #microserv Microservices 時代の開発環境 ➔ Web Dev at Quipper ➔ Ruby

    と麻雀と DbD が好き ➔ 西日暮里.rb、 GraphQL Tokyo 主催 @mtsmfm.inspect
  3. #microserv Microservices 時代の開発環境 https://studysapuri.jp/

  4. #microserv Microservices 時代の開発環境

  5. #microserv Microservices 時代の開発環境 https://nishinipporirb.doorkeeper.jp/

  6. #microserv Microservices 時代の開発環境 https://www.meetup.com/ja-JP/GraphQL-Tokyo/

  7. #microserv Microservices 時代の開発環境 Microservices 時代の開発環境 @mtsmfm Fumiaki Matsushima Microservices Meetup

    vol.8 Lightning Talks Battle!
  8. #microserv Microservices 時代の開発環境 ※ まだ Microservices してないです

  9. #microserv Microservices 時代の開発環境 複数アプリ DB 共有

  10. #microserv Microservices 時代の開発環境 複数アプリ DB 共有 a.k.a 分断されたモノリス

  11. #microserv Microservices 時代の開発環境 本番となるべく同じで らくちんな開発環境を

  12. #microserv Microservices 時代の開発環境 https://speakerdeck.com/mtsmfm/qall-development-env-on-docker-for-quipper

  13. #microserv Microservices 時代の開発環境 現状専ら docker-compose

  14. #microserv Microservices 時代の開発環境 本番は k8s 開発は docker-compose それでいいのか?

  15. #microserv Microservices 時代の開発環境 https://speakerdeck.com/mtsmfm/rails-development-environment-built-on-draft

  16. #microserv Microservices 時代の開発環境 Draft というか Helm がツラそう

  17. #microserv Microservices 時代の開発環境 Helm の難点 ➔ テンプレートに引数をひたすら与えて分岐しまく るとツラミがある ◆ 全部

    Values としてカスタマイズ可能になっていないとい けない ◆ 他人の書いた分岐とか読めたもんじゃなくなっていきそう ◆ インデントの考慮がだるい
  18. #microserv Microservices 時代の開発環境 Kustomize

  19. #microserv Microservices 時代の開発環境 https://github.com/kubernetes-sigs/kustomize

  20. #microserv Microservices 時代の開発環境 個人の 遊びプロジェクトで 試した

  21. #microserv Microservices 時代の開発環境 https://github.com/mtsmfm/gh-deck/commit/58478b0ca5266ebe723c9082418ad74a7ef5e76e?diff=unified

  22. #microserv Microservices 時代の開発環境 ➔ /Dockerfile ➔ /k8s ◆ /base •

    kustomization.yaml • deployment.yaml • ... ◆ /overlays • /development ◦ kustomization.yaml ◦ deployment.yaml ◦ … • /production ◦ kustomization.yaml ◦ deployment.yaml ◦ ...
  23. #microserv Microservices 時代の開発環境 ➔ /Dockerfile ➔ /k8s ◆ /base •

    kustomization.yaml • deployment.yaml • ... ◆ /overlays • /development ◦ kustomization.yaml ◦ deployment.yaml ◦ … • /production ◦ kustomization.yaml ◦ deployment.yaml ◦ ... Kustomize 用の 設定ファイル
  24. #microserv Microservices 時代の開発環境 ➔ /Dockerfile ➔ /k8s ◆ /base •

    kustomization.yaml • deployment.yaml • ... ◆ /overlays • /development ◦ kustomization.yaml ◦ deployment.yaml ◦ … • /production ◦ kustomization.yaml ◦ deployment.yaml ◦ ... k8s の普通の YAML 郡
  25. #microserv Microservices 時代の開発環境 ➔ /Dockerfile ➔ /k8s ◆ /base •

    kustomization.yaml • deployment.yaml • ... ◆ /overlays • /development ◦ kustomization.yaml ◦ deployment.yaml ◦ … • /production ◦ kustomization.yaml ◦ deployment.yaml ◦ ... base の YAML に merge される 環境毎の定義
  26. #microserv Microservices 時代の開発環境

  27. #microserv Microservices 時代の開発環境

  28. #microserv Microservices 時代の開発環境 新しい定義たち Merge される定義たち

  29. #microserv Microservices 時代の開発環境 コマンドの結果を secret へ

  30. #microserv Microservices 時代の開発環境

  31. #microserv Microservices 時代の開発環境

  32. #microserv Microservices 時代の開発環境 開発に欲しい プロセスを足す

  33. #microserv Microservices 時代の開発環境 Pry 用に stdin と tty

  34. #microserv Microservices 時代の開発環境 この辺をキーに merge

  35. #microserv Microservices 時代の開発環境 Draft にあって Kustomize にないもの ➔ docker build

    した結果を k8s に展開する楽な 方法がない ◆ docker build -t して新しいタグ付け ◆ kubectl patch なりで Deployment の更新 ◆ Draft なら draft up で済む
  36. #microserv Microservices 時代の開発環境 ➔ /bin ◆ docker-build ◆ deploy-dev ◆

    deploy-prd
  37. #microserv Microservices 時代の開発環境 ➔ /bin ◆ docker-build ◆ deploy-dev ◆

    deploy-prd 開発用のイメージを Build
  38. #microserv Microservices 時代の開発環境

  39. #microserv Microservices 時代の開発環境 開発用に build 高速化でき る arg を追加

  40. #microserv Microservices 時代の開発環境 (概ね) 一意になりつつソート 可能なタグづけ

  41. #microserv Microservices 時代の開発環境 ➔ /bin ◆ docker-build ◆ deploy-dev ◆

    deploy-prd 手元の k8s に展開 本番の k8s に展開
  42. #microserv Microservices 時代の開発環境

  43. #microserv Microservices 時代の開発環境 hostPath のマウント用 最新の image の tag

  44. #microserv Microservices 時代の開発環境 _人人人人人人人_ > sed で十分 <  ̄Y^Y^Y^Y^Y^Y ̄

  45. #microserv Microservices 時代の開発環境 やってみての感想 ➔ テンプレートなんか要らなかったんや... ◆ 素の YAML 同士だから書きやすい、読みやすい

    ➔ docker build && deploy 機構なんか要らなかっ たんや... ◆ それ sed で ry
  46. #microserv Microservices 時代の開発環境 やってみての感想 ➔ 個人ごとに違う Secrets を .env 的に1ファイル

    にまとめたい気もする ◆ 新しいのが増えたときに設定していなければ死ぬような 工夫も欲しい ➔ 開発用 Docker image はどこで build するべき なのか未だにわからん ◆ デフォは CI で build したものを参照?