19
Terraformの運⽤に 疲れた話 株式会社オプティマインド ⼭⼝ 貴⽣

Terraformの運⽤に 疲れた話 - OPTIMINDTerraform workspace でステートを管理 (workspaceが自動的に管理す るので意識をする事はない) ├── environments

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Terraformの運⽤に 疲れた話 - OPTIMINDTerraform workspace でステートを管理 (workspaceが自動的に管理す るので意識をする事はない) ├── environments

Terraformの運⽤に疲れた話

株式会社オプティマインド⼭⼝ 貴⽣

Page 2: Terraformの運⽤に 疲れた話 - OPTIMINDTerraform workspace でステートを管理 (workspaceが自動的に管理す るので意識をする事はない) ├── environments

会社について

Page 3: Terraformの運⽤に 疲れた話 - OPTIMINDTerraform workspace でステートを管理 (workspaceが自動的に管理す るので意識をする事はない) ├── environments

株式会社オプティマインド所在地︓名古屋

事業内容︓ラストワンマイルのルート最適化AIを活⽤したサービス開発

主な⽤途︓配送計画作成

会社について

Page 4: Terraformの運⽤に 疲れた話 - OPTIMINDTerraform workspace でステートを管理 (workspaceが自動的に管理す るので意識をする事はない) ├── environments

会社について

Page 5: Terraformの運⽤に 疲れた話 - OPTIMINDTerraform workspace でステートを管理 (workspaceが自動的に管理す るので意識をする事はない) ├── environments

会社について

Page 6: Terraformの運⽤に 疲れた話 - OPTIMINDTerraform workspace でステートを管理 (workspaceが自動的に管理す るので意識をする事はない) ├── environments

Terraformの運⽤を⾒直しました

Page 7: Terraformの運⽤に 疲れた話 - OPTIMINDTerraform workspace でステートを管理 (workspaceが自動的に管理す るので意識をする事はない) ├── environments

├── preview│ ├── gke.tf│ ├── …│ └── variable.tf├── dev│ ├── gke.tf│ ├── …│ └── variable.tf├── staging│ ├── gke.tf│ ├── …│ └── variable.tf├── prod│ ├── gke.tf│ ├── …│ └── variable.tf

毎回コンフリクトが発生

従来の運⽤

Page 8: Terraformの運⽤に 疲れた話 - OPTIMINDTerraform workspace でステートを管理 (workspaceが自動的に管理す るので意識をする事はない) ├── environments

毎回マージに時間がかかるので新機能の検証が

億劫になる

Page 9: Terraformの運⽤に 疲れた話 - OPTIMINDTerraform workspace でステートを管理 (workspaceが自動的に管理す るので意識をする事はない) ├── environments

仕事に⽣産性がなさ過ぎて気が滅⼊ってくる…

Page 10: Terraformの運⽤に 疲れた話 - OPTIMINDTerraform workspace でステートを管理 (workspaceが自動的に管理す るので意識をする事はない) ├── environments
Page 11: Terraformの運⽤に 疲れた話 - OPTIMINDTerraform workspace でステートを管理 (workspaceが自動的に管理す るので意識をする事はない) ├── environments

運⽤ルール含めてちゃんと⾒直す

Page 12: Terraformの運⽤に 疲れた話 - OPTIMINDTerraform workspace でステートを管理 (workspaceが自動的に管理す るので意識をする事はない) ├── environments

Terraform workspaceでステートを管理

(workspaceが自動的に管理するので意識をする事はない)

├── environments│ ├── state│ │ ├── preview│ │ ├── dev│ │ ├── staging│ │ └── prod│ ├── main.tf│ ├── …│ └── variable.tf├── module│ ├── gke.tf│ ├── …│ └── variable.tf

⾒直し後の運⽤

環境毎の変数を共通のvariableで管理

moduleは全環境共通同じものを使用する

Page 13: Terraformの運⽤に 疲れた話 - OPTIMINDTerraform workspace でステートを管理 (workspaceが自動的に管理す るので意識をする事はない) ├── environments

├── environments│ ├── state│ │ ├── preview│ │ ├── dev│ │ ├── staging│ │ └── prod│ ├── main.tf│ ├── …│ └── variable.tf├── module│ ├── gke.tf│ ├── …│ └── variable.tf

⾒直し後の運⽤

Page 14: Terraformの運⽤に 疲れた話 - OPTIMINDTerraform workspace でステートを管理 (workspaceが自動的に管理す るので意識をする事はない) ├── environments

├── environments│ ├── state│ │ ├── preview│ │ ├── dev│ │ ├── staging│ │ └── prod│ ├── main.tf│ ├── …│ └── variable.tf├── module│ ├── gke.tf│ ├── …│ └── variable.tf

⾒直し後の運⽤

Page 15: Terraformの運⽤に 疲れた話 - OPTIMINDTerraform workspace でステートを管理 (workspaceが自動的に管理す るので意識をする事はない) ├── environments

├── environments│ ├── state│ ├── main.tf│ ├── …│ └── variable.tf├── module│ ├── gke.tf│ ├── …│ └── variable.tf

├── environments│ ├── state│ ├── main.tf│ ├── …│ └── variable.tf├── module│ ├── gke.tf│ ├── …│ └── variable.tf

devpreview

マージ

⾒直し後の運⽤

previewで検証しやすくするため環境ごとにブランチを分ける

Page 16: Terraformの運⽤に 疲れた話 - OPTIMINDTerraform workspace でステートを管理 (workspaceが自動的に管理す るので意識をする事はない) ├── environments

・ルールが明確化された事で簡単にマージできるようになった

・変数を⼀つのvariableで持つ事で差分を簡単に把握できるようになった

まとめ

Page 17: Terraformの運⽤に 疲れた話 - OPTIMINDTerraform workspace でステートを管理 (workspaceが自動的に管理す るので意識をする事はない) ├── environments

⼈が増えてきたらプルリクを使ったCI/CDに切り替える

今後の課題

Page 18: Terraformの運⽤に 疲れた話 - OPTIMINDTerraform workspace でステートを管理 (workspaceが自動的に管理す るので意識をする事はない) ├── environments

またはTerraform enterpriseに移⾏する

今後の課題

Page 19: Terraformの運⽤に 疲れた話 - OPTIMINDTerraform workspace でステートを管理 (workspaceが自動的に管理す るので意識をする事はない) ├── environments

ご静聴ありがとうございました︕