Slide 1

Slide 1 text

株式会社ネットワールド SI技術本部 丸投げ! ChatGPT で Azure の環境を IaC する ソリューションアーキテクト課 海野 航

Slide 2

Slide 2 text

2 Copyright © 2023 Networld Corporation All Rights Reserved. もくじ • はじめに • HashiCorp Terraform が実現する Infrastructure as Code • Networld X というイベントで… • 同じプロンプトと同じ素材での再現性はどうか • 同じプロンプトと別の素材での再現性はどうか • まとめ

Slide 3

Slide 3 text

Copyright © 2023 Networld Corporation All Rights Reserved. はじめに

Slide 4

Slide 4 text

4 Copyright © 2023 Networld Corporation All Rights Reserved. 自己紹介 ネットワールドのソリューションアーキテクト NVIDIA NGCA, VMware vExpert 趣味とか… : 海野 航 (うんの わたる)

Slide 5

Slide 5 text

Copyright © 2023 Networld Corporation All Rights Reserved. Terraform が実現する Infrastructure as Code

Slide 6

Slide 6 text

10 Copyright © 2023 Networld Corporation All Rights Reserved. 詳しい Terraform の概要は過去の HCCJP をご覧ください!! https://www.youtube.com/watch?v=WXFTPh7EnHY

Slide 7

Slide 7 text

11 Copyright © 2023 Networld Corporation All Rights Reserved. そもそも Infrastructure as Code (IaC) とは? インフラ CPUやメモリ、ディスクといったリソース、 あるいは仮想マシンやアプライアンスそのもの コードで 表現すること を

Slide 8

Slide 8 text

12 Copyright © 2023 Networld Corporation All Rights Reserved. Terraform による IaC で インフラセルフサービスを実現 導 入 前 導 入 後 ソフトウェア開 発者 ソフトウェア開 発者 インフラ要件 (作業指示書) Terraform の コード (HCL) インフラ SE が 作業を実施 Terraform が プロビジョニング 開発者が 要求した リソース 開発者が 要求した リソース

Slide 9

Slide 9 text

13 Copyright © 2023 Networld Corporation All Rights Reserved. ネットワールドが推している IaC ツールは Terraform

Slide 10

Slide 10 text

14 Copyright © 2023 Networld Corporation All Rights Reserved. Terraform が Infrastructure as Code を実現する 再利用可能な ソースコードとして インフラの構成を 定義する 多様なインフラを ワークフローを 変えることなく 導入する 出典 : Terraformで超サクッとループで リソースを用意する方法 https://dev.classmethod.jp/cloud/ aws/terraform-network-variable/ 出典 : Azure 上の HashiCorp Terraform https://azure.microsoft.com/ja- jp/solutions/devops/terraform/

Slide 11

Slide 11 text

15 Copyright © 2023 Networld Corporation All Rights Reserved. Terraform を提供する HashiCorp とネットワールドの関係 ネットワールド、米HashiCorp社と 世界初のディストリビューター契約を締結 出典 : https://headlines.yahoo.co.jp/hl?a=20200417-00173793-bcn-prod

Slide 12

Slide 12 text

Copyright © 2023 Networld Corporation All Rights Reserved. Networld X というイベントで…

Slide 13

Slide 13 text

17 Copyright © 2023 Networld Corporation All Rights Reserved.

Slide 14

Slide 14 text

18 Copyright © 2023 Networld Corporation All Rights Reserved.

Slide 15

Slide 15 text

19 Copyright © 2023 Networld Corporation All Rights Reserved.

Slide 16

Slide 16 text

20 Copyright © 2023 Networld Corporation All Rights Reserved. アーカイブで配信中

Slide 17

Slide 17 text

21 Copyright © 2023 Networld Corporation All Rights Reserved.

Slide 18

Slide 18 text

22 Copyright © 2023 Networld Corporation All Rights Reserved. ChatGPT芸を打つ 入力したプロンプト 「この構成図とヒアリング項目に基づいて Terraformのコードを生成してください。 セキュリティの観点からクレデンシャル情報の 項目は別ファイルにします。」

Slide 19

Slide 19 text

23 Copyright © 2023 Networld Corporation All Rights Reserved. ChatGPT芸を打つ

Slide 20

Slide 20 text

24 Copyright © 2023 Networld Corporation All Rights Reserved. 実際に使った画像と項目がこちら

Slide 21

Slide 21 text

25 Copyright © 2023 Networld Corporation All Rights Reserved. 実際のリポジトリ : 手作業の修正なし、ガチでコミットした https://github.com/unnowataru/networld-x-2023/

Slide 22

Slide 22 text

26 Copyright © 2023 Networld Corporation All Rights Reserved. Terraform Cloud で Azure にプロビジョニングする流れ • 生成したコードを GitHub に格納する

Slide 23

Slide 23 text

27 Copyright © 2023 Networld Corporation All Rights Reserved. Terraform Cloud で Azure にプロビジョニングする流れ • Terraform Cloud の初期設定 と リポジトリの紐付けをする

Slide 24

Slide 24 text

28 Copyright © 2023 Networld Corporation All Rights Reserved. このときはちゃんと動いてくれた

Slide 25

Slide 25 text

Copyright © 2023 Networld Corporation All Rights Reserved. 同じプロンプトと同じ素材 での再現性はどうか

Slide 26

Slide 26 text

30 Copyright © 2023 Networld Corporation All Rights Reserved. 1回目 • 「... additional resources for NIC, public IP, VM, etc.」が発生 • main.tf の1ファイル構成

Slide 27

Slide 27 text

31 Copyright © 2023 Networld Corporation All Rights Reserved. 2回目 • またしても1ファイル構成かつ “terraform init” ができない

Slide 28

Slide 28 text

32 Copyright © 2023 Networld Corporation All Rights Reserved. 3回目 • ちゃんとしてそう • main.tf, secrets.tfvars, variables.tf の3ファイル構成

Slide 29

Slide 29 text

33 Copyright © 2023 Networld Corporation All Rights Reserved. 4回目 • なんかあやしい • ファイル名の定義なし と secrets.tfvars の2ファイル構成

Slide 30

Slide 30 text

34 Copyright © 2023 Networld Corporation All Rights Reserved. みたいな感じで5回目~10回目まで繰り返した結果 応答言語 実行可否 ファイルNo.1 ファイルNo.2 ファイルNo.3 コメント 評価 1st 英語 × main.tf × 2nd 英語 × ファイル名なし × 3rd 英語 ○ secrets.tfvars main.tf variables.tf 美しい ○ 4th 英語 ○ ファイル名なし secrets.tfvars 手作業でファイル名を変更 △ 5th 英語 × main.tf × 6th 英語 × main.tf × 7th 英語 ○ variables.tf main.tf secrets.tfvars 美しい ○ 8th 英語 × ファイル名なし × 9th 英語 ○ ファイル名なし secrets.tfvars variables.tf 手作業でファイル名を変更 △ 10th 英語 × ファイル名なし ×

Slide 31

Slide 31 text

Copyright © 2023 Networld Corporation All Rights Reserved. 同じプロンプトと別の素材 での再現性はどうか

Slide 32

Slide 32 text

36 Copyright © 2023 Networld Corporation All Rights Reserved. 次に試す画像がこちら (項目は同じ)

Slide 33

Slide 33 text

37 Copyright © 2023 Networld Corporation All Rights Reserved. いけますね • 普通に ”terraform apply” まで実行できた

Slide 34

Slide 34 text

38 Copyright © 2023 Networld Corporation All Rights Reserved. 2回目~10回目まで • また繰り返す… (2回目はイマイチだった)

Slide 35

Slide 35 text

39 Copyright © 2023 Networld Corporation All Rights Reserved. みたいな感じで10回目まで繰り返した結果 応答言語 実行可否 ファイルNo.1 ファイルNo.2 ファイルNo.3 コメント 評価 1st 英語 ○ ファイル名なし secrets.tfvars 手作業でファイル名を変更 ○ 2nd 英語 × ファイル名なし × 3rd 英語 × ファイル名なし × 4th 英語 × ファイル名なし × 5th 英語 × ファイル名なし × 6th 英語 ○ secrets.tfvars main.tf ○ 7th 英語 ○ variables.tf secrets.tfvars main.tf ○ 8th 英語 × ファイル名なし × 9th 英語 × ファイル名なし secrets.tfvars variables.tf 一部欠落したパラメータあり × 10th 英語 △ ファイル名なし secrets.tfvars 手作業でファイル名を変更 △

Slide 36

Slide 36 text

Copyright © 2023 Networld Corporation All Rights Reserved. ヒアリング項目だけではどうか

Slide 37

Slide 37 text

41 Copyright © 2023 Networld Corporation All Rights Reserved. もしかして画像は関係ないのでは… 入力したプロンプト 「この構成図とヒアリング項目に基づいて Terraformのコードを生成してください。 セキュリティの観点からクレデンシャル情報の 項目は別ファイルにします。」

Slide 38

Slide 38 text

42 Copyright © 2023 Networld Corporation All Rights Reserved. 日本語で応答が出力される • しかも、精度が高く感じられる

Slide 39

Slide 39 text

43 Copyright © 2023 Networld Corporation All Rights Reserved. 5回目まで繰り返した結果 応答言語 実行可否 ファイルNo.1 ファイルNo.2 ファイルNo.3 コメント 評価 1st 日本語 ○ ファイル名なし secrets.tfvars 手作業でファイル名を変更 ○ 2nd 日本語 ○ main.tf secrets.tfvars ○ 3rd 日本語 ○ terraform.tfvars main.tf 丁寧な解説付き ◎ 4th 日本語 ○ ファイル名なし variables.tf secrets.tfvars 手作業でファイル名を変更 ○ 5th 日本語 ○ ファイル名なし secrets.tfvars 手作業でファイル名を変更 ○

Slide 40

Slide 40 text

Copyright © 2023 Networld Corporation All Rights Reserved. (参考)手書きのヒアリング項目だけではどうか

Slide 41

Slide 41 text

45 Copyright © 2023 Networld Corporation All Rights Reserved. 一応生成はしてくれる • 誤読あり AIGen → A1Gen • 一部欠落のセクションあり (NSGがない)

Slide 42

Slide 42 text

Copyright © 2023 Networld Corporation All Rights Reserved. (参考)構成図だけではどうか

Slide 43

Slide 43 text

47 Copyright © 2023 Networld Corporation All Rights Reserved. 一応生成はしてくれる

Slide 44

Slide 44 text

Copyright © 2023 Networld Corporation All Rights Reserved. まとめ

Slide 45

Slide 45 text

49 Copyright © 2023 Networld Corporation All Rights Reserved. まとめ 今回の検証条件では… 構成図を含めると期待する回答への応答精度が下がった 構成図を含めたときに 期待する回答への打率は3割ぐらい ヒアリング項目をテキストのみで伝えた場合は まさかの100% とは言え、正しいかどうかを判断するためには 各プロダクトやサービスの知識が必要ですよね

Slide 46

Slide 46 text

50 Copyright © 2023 Networld Corporation All Rights Reserved. 詳しい Terraform の概要は過去の HCCJP をご覧ください!! https://www.youtube.com/watch?v=WXFTPh7EnHY ChatGPT と組み合わせて もっとすぐできるようになってます

Slide 47

Slide 47 text

No content