Successfully reported this slideshow.
Your SlideShare is downloading. ×

俺のTerraform CI/CD ライフサイクル

Advertisement

More Related Content

Advertisement

Related Books

Free with a 30 day trial from Scribd

See all

俺のTerraform CI/CD ライフサイクル

  1. 1. https://hitto.jp/ 俺のTerraform CI/CDライフサイクル 2021年9月30日 HiTTO株式会会社  https://hitto.jp/ AIソリューション事業部 SRE 本間 匡晃 m.homma@hitto.co.jp 1
  2. 2. https://hitto.jp/ 2 職 歴 株式会社ラクス 株式会社CyberAgen t 株式会社ビズリーチ HiTTO株式会社 自己紹介 S e l f - i n t r o d u c t i o n 本間 匡晃 ( m a s a t e r u h o m m a ) や って る こ と SR E 趣 味 FORTNITE/筋トレ @HonMarkHunt
  3. 3. 3 会 社 紹 介
  4. 4. https://hitto.jp/ 商   号 所 在 地 設   立 代 表 者 資 本 金 事 業 内 容 H i T T O 株 式 会 社 東 京 都 千 代 田 区 神 田 錦 町 2 - 2 - 1 K A N D A S Q U A R E 1 1 F 2 0 0 6 年 3 月 代 表 取 締 役   C o - C E O 五 十 嵐 智 博 代 表 取 締 役   C o - C E O 木 村 彰 人 1 億 9 , 4 6 5 万 円 ( 資 本 準 備 金 を 含 む ) 社 内 向 け H R チ ャ ッ ト ボ ッ ト 「 H i T T O 」 の 提 供 4 シ ゴ ト の ナ レ ッ ジ を 体 系 化 し 、 新 し い コ ミ ュ ニ ケ ー シ ョ ン を 創 り 出 す
  5. 5. 5 国内初 人事/労務A I 搭載 継続利用率 99.5% ※2 ※1:出典 調査研究レポート 業務自動化ツール市場マーケティング分析    2019年5月 株式会社テクノ・システム・リサーチ調べ
 ※2:HiTTO株式会社 自社調べ(2020年3月∼2021年2月 継続利用率の平均値) 組織の生産性を向上させるHRチャットボットです 会 社 紹 介
  6. 6. 6 24時間365日、従業員からの質問にHiTTOが自動で回答 従来の問合わせ対応 HiTTOでの問合せ対応 すべて人が対応 チャットボットが自動応答 人事部門 チャットボット ハナコさん 人事部門 会 社 紹 介
  7. 7. 7 1 . まえおき! 2 . C I / C Dライフサイクル 3 . C I / C D以外のケース 4 . 現状の課題 5 . まとめ 本日のアジェンダ
  8. 8. 1 . ま え お き !
  9. 9. 9 今日話すこと 話そうと思ったきっかけ 今日話さないこと ● コードを書いてからインフラに適応され るまでの一連の流れ ● どのような狙いがあってそうしたのか ● アーキテクチャ ● 機能の紹介 TerraformとCI/CDを用いた 弊社での開発の流れ 各社どのように運用してい るかあまり情報がなかった Terraformそのものの プラクティス ● サービスの種類/メンバーの熟練度/事業 のフェーズなどによってベストプラク ティスはない ● 弊社の状況と自分がどういう意思決定 で構築したのかの情報を世に出すこと に価値があると思った ● 調べてもあんまり出て来なくて困った 1 . ま え お き !
  10. 10. 10 今日話すこと 話そうと思ったきっかけ 今日話さないこと ● コードを書いてからインフラに適応され るまでの一連の流れ ● どのような狙いがあってそうしたのか ● アーキテクチャ ● 機能の紹介 TerraformとCI/CDを用いた 弊社での開発の流れ 各社どのように運用してい るかあまり情報がなかった Terraformそのものの プラクティス ● サービスの種類/メンバーの熟練度/事業 のフェーズなどによってベストプラク ティスはない ● 弊社の状況と自分がどういう意思決定 で構築したのかの情報を世に出すこと に価値があると思った ● 調べてもあんまり出て来なくて困った 1 . ま え お き !
  11. 11. 11 今日話すこと 話そうと思ったきっかけ 今日話さないこと ● コードを書いてからインフラに適応され るまでの一連の流れ ● どのような狙いがあってそうしたのか ● アーキテクチャ ● 機能の紹介 TerraformとCI/CDを用いた 弊社での開発の流れ 各社どのように運用してい るかあまり情報がなかった Terraformそのものの プラクティス ● サービスの種類/メンバーの熟練度/事業 のフェーズなどによってベストプラク ティスはない ● 弊社の状況と自分がどういう意思決定 で構築したのかの情報を世に出すこと に価値があると思った ● 調べてもあんまり出て来なくて困った 1 . ま え お き !
  12. 12. 12 細かいのは省きます CI IaC コード管理 使用ツール・サービス Cloud Provider ● モノレポ ● マイクロサービスでサービスごと のリポジトリにインフラのコード もあるみたいな構成ではない ● アプリケーションで採用されて いたので同じく利用 ● DEV, STG, PRD, XXXなどでアカ ウントを分けているマルチアカ ウント構成 ● 流石にこれはそう ● V1.0.0 1 . ま え お き !
  13. 13. 2 . C I / C D ラ イ フ サ イクル
  14. 14. 14 a long long time ago… 2 . C I / C D ラ イ フ サ イ ク ル $ terraform apply 構うもんかよ
  15. 15. 15 a long long time ago… 2 . C I / C D ラ イ フ サ イ ク ル $ terraform apply 俺しかいねえ んだからよ…. 開発者( 私) がローカルPC から
 直接terraform コマンドを実行 terraform を触るのは
 自分1 人のみ
  16. 16. 16 a long long time ago… 2 . C I / C D ラ イ フ サ イ ク ル $ terraform apply 01 03 自分以外のSREの方がjoinしてくれた時 にレビューフレンドリーな形にしておき たい! 将来的にはSREではないアプリエンジニ アもterraformを使って必要な修正が自分 たちでできるようにしたい 誰でも簡単に安心してインフラを変更で きるようにしたい! Applyの度にドキドキしたくない! 02 モチベーション
  17. 17. 17 現在の構成 ~plan実行時~ 2 . C I / C D ラ イ フ サ イ ク ル $ terraform plan $ terraform plan $ terraform plan $ git push on push Result
  18. 18. 18 現在の構成 ~plan実行時~ 2 . C I / C D ラ イ フ サ イ ク ル $ terraform plan $ terraform plan $ terraform plan $ git push on push Result 開発者が変更した Te r r a f o r m のコードを ブランチにpush
  19. 19. 19 現在の構成 ~plan実行時~ 2 . C I / C D ラ イ フ サ イ ク ル $ terraform plan $ terraform plan $ terraform plan $ git push on push Result Pushをトリガーに C Iを起動
  20. 20. 20 現在の構成 ~plan実行時~ 2 . C I / C D ラ イ フ サ イ ク ル $ terraform plan $ terraform plan $ terraform plan $ git push on push Result tflintとterraform fmt を実行し結果をPR にコメント
  21. 21. 21 現在の構成 ~plan実行時~ 2 . C I / C D ラ イ フ サ イ ク ル $ terraform plan $ terraform plan $ terraform plan $ git push on push Result 管理している全てのアカ ウントにplan を実行し 結果をPR にコメント
  22. 22. 22 現在の構成 ~plan実行時~ 2 . C I / C D ラ イ フ サ イ ク ル $ terraform plan $ terraform plan $ terraform plan $ git push on push Result 管理している全てのアカ ウントにplan を実行し 結果をPR にコメント
  23. 23. 23 現在の構成 ~plan実行時~ 2 . C I / C D ラ イ フ サ イ ク ル $ terraform plan $ terraform plan $ terraform plan $ git push on push Result ここまででlint も OK で Plan結果の差分もPR に コメントされているので レビュワーをアサイン ビュイーは各種コメント 結果を見ながらレ ビューを実施
  24. 24. 24 現在の構成 ~apply実行時~ 2 . C I / C D ラ イ フ サ イ ク ル $ terraform apply $ terraform apply $ terraform apply Merge on pus h only master Result
  25. 25. 25 現在の構成 ~apply実行時~ 2 . C I / C D ラ イ フ サ イ ク ル $ terraform apply $ terraform apply $ terraform apply Merge on pus h only master Result レビューが終わっ たら PR をm a s t e rブランチ にマージ
  26. 26. 26 現在の構成 ~apply実行時~ 2 . C I / C D ラ イ フ サ イ ク ル $ terraform apply $ terraform apply $ terraform apply Merge on pus h only master Result m a s t e rブランチのみ C Iでterraform appl y そ全環境向けに実行
  27. 27. 27 現在の構成 ~apply実行時~ 2 . C I / C D ラ イ フ サ イ ク ル $ terraform apply $ terraform apply $ terraform apply Merge on pus h only master A p p l y結果を Sl ack にコ メントして通知 Result
  28. 28. 3 . C I / C D 以 外 の シ ーン
  29. 29. 29 この構成で気づいたこと 3 . C I / C D 以 外 の シ ー ン
  30. 30. 30 この構成で気づいたこと 3 . C I / C D 以 外 の シ ー ン やっぱローカルで terraformコマンド 打ちてえなぁ … $ terraform plan $ terraform import
  31. 31. 31 この構成で気づいたこと $ terraform plan $ terraform import terraform 実行のため のa w s c r e d e n t i a lが ローカルに必要だが IAM の管理とセキュリ ティー麺が課題 3 . C I / C D 以 外 の シ ー ン
  32. 32. 32 GSuiteアカウントでローカルから認証 GSuite をidP にして ローカルPC でa w sの 時間制限付き c r e d e n t i a lを発行で きるようにした 3 . C I / C D 以 外 の シ ー ン
  33. 33. 33 この構成で気づいたこと GSuite をidP にして ローカルPC を https://product-blog.hitto.co.jp/ 「GSuiteアカウントでらくらくaws認証!」 Common soon… 3 . C I / C D 以 外 の シ ー ン
  34. 34. 4 . 現 状 の 課 題
  35. 35. 4 . 現 状 の 課 題 1. Terraformのアップデート大変 2. 構成ドリフトの検知
  36. 36. 4 . 現 状 の 課 題 1. Terraformのアップデート大変 2. 構成ドリフトの検知 renovateを 使ってみてぇなぁ
  37. 37. 4 . 現 状 の 課 題 1. Terraformのアップデート大変 2. 構成ドリフトの検知 どうしたらいいのか わかんねえなぁ…
  38. 38. 5 . ま と め
  39. 39. 5 . ま と め 1. planしてreview、mergeしてapply
 という運用にしてみたら結構良かった 3. 2人目のSREを探しています! 2. ローカルでterraform触りたい日もある

×