Slide 1

Slide 1 text

IaCにおける 理想のドキュメント管理を⽬指す 濱⽥孝治(ハマコー)

Slide 2

Slide 2 text

@hamako9999 濱⽥孝治 (ハマコー) 2

Slide 3

Slide 3 text

3 IaCに必要な ドキュメントとは︖

Slide 4

Slide 4 text

4 最初にお聞きしたい 皆さんがIaCで実現したいことって なんですか︖

Slide 5

Slide 5 text

5 IaCで期待されることの例 • 構築⼿順書をなくしたい • ヒューマンエラーを無くしたい • 効率よくインフラを構築したい • 不要なドキュメントを無くしたい

Slide 6

Slide 6 text

6 IaCで期待されることの例 • 構築⼿順書をなくしたい • ヒューマンエラーを無くしたい • 効率よくインフラを構築したい • 不要なドキュメントを無くしたい エクセルで作ったパラメー タシートとかとか

Slide 7

Slide 7 text

7 経験上 インフラを担う我々が必ず作っている ドキュメントがある

Slide 8

Slide 8 text

8

Slide 9

Slide 9 text

9 構成図

Slide 10

Slide 10 text

10 構成図を書くことのメリット・デメリット メリット • 管理対象領域にどんなリソースがあるのかひと⽬で 把握できる • 各リソースのリレーションが把握できる • 他⼈と対象領域に対する認識を共有しやすい

Slide 11

Slide 11 text

11 構成図を書くことのメリット・デメリット メリット • 管理対象領域にどんなリソースがあるのかひと⽬で 把握できる • 各リソースのリレーションが把握できる • 他⼈と対象領域に対する認識を共有しやすい デメリット • IaCとは別に管理しメンテする必要がある

Slide 12

Slide 12 text

12 構成図を書くことのメリット・デメリット メリット • 管理対象領域にどんなリソースがあるのかひと⽬で 把握できる • 各リソースのリレーションが把握できる • 他⼈と対象領域に対する認識を共有しやすい デメリット • IaCとは別に管理しメンテする必要がある 多大なメリットを感じながらも、 運用していくなかで忘れられがち

Slide 13

Slide 13 text

13 構成図の管理 どうするのか︖

Slide 14

Slide 14 text

14 構成図の管理がめんどくさい 問題に対する解決アプローチ 3つ

Slide 15

Slide 15 text

15 構成図の管理アプローチ3点 リポジトリ管理しない ①インフラから構成図を常に⾃動⽣成 リポジトリ管理する ②コードで構成図を作成するツールを使う ③専⽤ツールを使って構成図(SVG)を修正

Slide 16

Slide 16 text

16 リポジトリ管理しない ①インフラから構成図を常に⾃動⽣成

Slide 17

Slide 17 text

17 ①インフラから構成図を常に⾃動⽣成 ⾃動⽣成 Cloudviz Cacoo Cloud Mapper 構成図

Slide 18

Slide 18 text

18 ①インフラから構成図を常に⾃動⽣成 しんどい理由︓ 情報量が⾜りない(もしくは多すぎる) 構成図に表現すべきなのはシステムのコンテキストを把 握した上で⼈間が表現したいと意図した箇所 例)リソースのグルーピング、並び順、リレーション ⾃動⽣成にそのあたりを求めることはできない

Slide 19

Slide 19 text

19 リポジトリ管理する ②コードで構成図を作成するツールを使う

Slide 20

Slide 20 text

20 ②コードで構成図を作成するツールを使う ⾃動⽣成 PlantUML nwdiag Diagrams 構成図 txt Python

Slide 21

Slide 21 text

21 ②コードで構成図を作成するツールを使う https://gigazine.net/news/20200518-diagrams/

Slide 22

Slide 22 text

22 ②コードで構成図を作成するツールを使う しんどい理由︓ • 図を書くための独⾃記法を習得する必要がある テキストで構成図を書く⽬的だけに新しい記法を習得す るコストを払うか︖ 構成図をコードで管理するのであれば、他のアプローチ があるはず

Slide 23

Slide 23 text

23 リポジトリ管理する ③専⽤ツールを使って構成図(SVG) を修正

Slide 24

Slide 24 text

24 ③専⽤ツールを使って構成図(SVG)を修正 Cacoo draw.io SVG ⼿動修正

Slide 25

Slide 25 text

25 ③専⽤ツールを使って構成図(SVG)を修正 良い理由︓ • 専⽤ツール(Cacoo, draw.io)を使って構成図が書ける (導⼊コストが低い) • SVGファイル(XML)を扱えるためリポジトリにのせや すい GitHubなどでもSVGはそのまま図として表現されるため、 READMEに埋め込んだり、Pull requestでIaCと合わせてレ ビュー対象にするのが簡単

Slide 26

Slide 26 text

26 さらに最近いい感じのがリリースされました

Slide 27

Slide 27 text

27 Visual Studio Code Draw.io Integration 「コードと⼀緒に構成図が書ける︕」 • Visual Studio CodeのエクスプローラからSVG ファイルクリックでdraw.ioのUI起動 • そのまま編集して保存でSVGファイルが更新される

Slide 28

Slide 28 text

28 こんな雰囲気になる

Slide 29

Slide 29 text

29 まとめ

Slide 30

Slide 30 text

30 まとめ • インフラを扱うとき構成図は必須のドキュメント • IaCのコードと合わせて構成図もリポジトリ管理す るべき • 餅は餅屋。構成図の編集は専⽤ツールを使う • draw.ioインテグレーションなどを使って、IaCと同 じデベロッパーエクスペリエンスを実現しよう︕

Slide 31

Slide 31 text

31 IaCで楽しいエンジニアライフを 濱⽥孝治(ハマコー) @hamako9999