Slide 1

Slide 1 text

1 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology 青木 翔平 Terraform 構成管理 NG祭

Slide 2

Slide 2 text

2 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology 青木 翔平 Shohei Aoki プロフィール  イオンスマートテクノロジー株式会社  インフラエンジニア(現在は完全にAzure Only)  https://www.linkedin.com/in/shohei-aoki-7653a2202/

Slide 3

Slide 3 text

3 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology 組織のNG コーディングのNG 本日話すこと

Slide 4

Slide 4 text

4 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology 組織のNG コーディングのNG 本日話すこと

Slide 5

Slide 5 text

5 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology だいたいの組織構成(当時の) インフラチーム アプリチーム 運用チーム 上位層 ワイ

Slide 6

Slide 6 text

6 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology ヤル気に満ち溢れるワイ インフラチーム アプリチーム 運用チーム 上位層 ワイ クラウドの構成管理と いったらTerraformだ ぜ!

Slide 7

Slide 7 text

7 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology 温度差 インフラチーム アプリチーム 運用チーム 上位層 ワイ クラウドの構成管理と いったらTerraformだ ぜ! ふーん、いいんじゃない ふーん、いいんじゃない ふーん、いいんじゃない ふーん、いいんじゃない ふーん、いいんじゃない ふーん、いいんじゃない

Slide 8

Slide 8 text

8 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology ゴリ押しで導入 IaC

Slide 9

Slide 9 text

9 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology 規模感

Slide 10

Slide 10 text

10 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology 環境変更要求の矢 インフラチーム ○○のシステムと繋げるため にスグに環境変更よろしく ○○のトラブルの暫定対応 のためにスグに環境変更よ ろしく ○○のためにストレージアカ ウントの追加スグによろしく ○○のイベント前にDBのス ペックアップよろしく Terraformのコード修正 間に合わん…

Slide 11

Slide 11 text

11 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology そうすると何が起こるか… 変更 変更 変更 変更 TF反映 TF反映 変更 TF 反映 変更要求 TF Apply △★※? 変更 設定権限 持つ人たち インフラチーム

Slide 12

Slide 12 text

12 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology 構成管理出来てなくね…?

Slide 13

Slide 13 text

13 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology  共感する仲間を増やす - 新しい考えや取り組みを推進しても組織全体で活用されないを自己満の域を出ない。 - 1人で啓蒙活動を続けるにも限界があるので同じチームに自分の考えを共感してもらえる仲間を 増やしていくしかない。 - 共感する仲間が増えそうにないならその組織での推進はキッパリ諦める!(…諦める?)  強い意思で設定変更ロールを割り当てない - 人が自ら環境変更できる手段を全て潰す。 - なんならクラウドのアカウントは閲覧者権限のみ付与する。 - TerraformのCDパイプラインでしか設定変更できない環境を作り、強制的にTerraformを覚 えざるえないようにする。 - もちろん、ネガティブにならないように組織のメンバー全員が取り組みやすいような仕組みを作る。 定期勉強会やハンズオンマニュアルの作成など。 どうすべきだったか?(個人の所感)

Slide 14

Slide 14 text

14 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology 組織のNG コーディングのNG 本日話すこと

Slide 15

Slide 15 text

15 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology 弊社のチームでもちゃんとコーディング規約に変数名について下記を記載しています。 命名規則のNG リソース名や変数名は可読性のために単語の分離に“_”(アンダーバー)を利用 するスネークケースを採用する。 これで「可読性に優れた」命名がされるだろ、と思っていた時期がワイにもありました…

Slide 16

Slide 16 text

16 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology 命名規則のNG !?

Slide 17

Slide 17 text

17 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology  たしかに「名称から意味がわかるようにすること」はルール化していなかった…  とくにコーディングをオフショアに任せる場合はコーディング規約に記載されていない (場合によっては記載されていても)ことは順守しない。 命名規則のNG ちょっとネチッこいんじゃないの…?というくら い守って欲しい規則は明文化しておこう

Slide 18

Slide 18 text

18 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology どのシステムでも使うリソースはModule化してデプロイを効率化しよう! ModuleのNG

Slide 19

Slide 19 text

19 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology ModuleのNG …ん? Descriptionがn/aとな?

Slide 20

Slide 20 text

20 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology  Moduleの説明が書かれていないとModule自体の解析に時間がかかり過ぎる。  その内Moduleのメンテナンスをしなくなり使わなくなる。(Moduleの意味) ModuleのNG Module作成者がいなくなっても再利用・保 守が継続するようにREADMEはちゃんと書 こう

Slide 21

Slide 21 text

21 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology ズバリ、現在azurermのバージョン更新が止まっている。 VersionのNG 理由は色々  バージョンアップの定期運用をちゃんと決めていなかった。  バージョンアップに伴いTerraformリファクタリングするリソースが確保できない。

Slide 22

Slide 22 text

22 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology とはいえバージョンアップを放置しているとTerraformの実行に影響が出てくる。  terraform applyしても設定が反映されないパラメータが出てくる。  Azureの新機能が増えてもTerraformで管理できない。 VersionのNG 早い話が… コーディングしたら終わりじゃないから運用・保守の ルール/体制をしっかり決めておこうね それなりにコストがかかるのでしっかり予算確保を… • リファクタリングしていく体制 • (必要あれば)Terraform Cloud Businessのライセンス費用

Slide 23

Slide 23 text

23 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology まとめ 仲間がいればなんとでもなる 色々あるけど結局 逆に仲間がいないとなんともならない