Slide 1

Slide 1 text

AeonNext における Collaborativeな開発 イオンネクスト株式会社 坂井勇登

Slide 2

Slide 2 text

目次 ◼ 自己紹介、会社紹介 ◼ GitHub Codespacesを使った開発環境の共通化 • GitHub Codespaces • devconintainer.yamlを使った共通化 • ローカルのVS codeとの同期(settings.json) ◼ GitHub Copilotや他AIを使った開発 • AIファーストな開発 • GitHub Copilot Enterpriseを入れてみて ◼ まとめ 2

Slide 3

Slide 3 text

自己紹介 氏名:坂井 勇登(さかいはやと) 所属 • イオンネクスト株式会社 SRE リード • 2023年11月より現職 職歴 • 官公庁向けシステム開発 プログラマー • 国内小売グループ システム会社 インフラエンジニア その他 • 割と国内のJTCと呼ばれそうなところを経験してきてます

Slide 4

Slide 4 text

会社・サービス紹介 • 会社名:イオンネクスト株式会社 • 2019年12月 デジタル、AIおよびロボティクス機能の強化に向け 新会社として設立 • 次世代ネットスーパーの立ち上げ、運営を行う事業会社 買い物を変える。毎日を変える。 • サービス:グリーンビーンズ(Green Beans) • 概要:次世代ネットスーパー • 主な特徴 • 野菜・生鮮の鮮度へのこだわり、豊富な品揃え • 幅広く、かつ細かい(1hおき)配送時間の指定 • プロモーション(クーポン、オウンドメディア、etc) • テクノロジー導入(AI / ロボット)

Slide 5

Slide 5 text

このたび7月でおかげさまで1周年を迎えることが出来ました! 今週末には感謝祭イベントも企画しているのでぜひご参加ください。

Slide 6

Slide 6 text

Tech Stack

Slide 7

Slide 7 text

今年度に入ってからの社内の様子 • 開発環境について • 開発環境がばらばら。社内貸与PCはWindows、一部の人はMac。 • リンター等のツールも人によって使ってたり、使ってなかったり 7 • AIファーストをうたい始める • イオン(株)やイオンネクストCTOがAI活用を積極的に、と働きかけ始める • 社内でも開発・運用、いろんなところにAIを入れてまずは活用してみようという動きに GitHub Codespaces による開発環境の共通化 AI(GitHub Copilot Enterprise)を入れてみよう

Slide 8

Slide 8 text

GitHub Codespaces を使った開発環境の共通化

Slide 9

Slide 9 text

Codespacesとは • クラウドでホストされる開発環境。VS CodeやJetBrainsから利用できる。 • 実体は仮想マシン上で実行されているコンテナー • カスタマイズも可能 • プロジェクトで利用するフレームワーク、ツール、拡張機能 • ローカルのVS Codeとの設定 • プロジェクトのすべてのユーザーに対して同じ開発環境を提供できる • 新規参入者がすぐに開発に着手できる

Slide 10

Slide 10 text

カスタマイズの方法①:devcontainer.json • ベースイメージの管理 { "name": "Debian", } devcontainer.json • 他リポジトリへのアクセス管理 • 他リポジトリのライブラリや、Terraformモ ジュールを参照するときに • VSCodeの拡張 • フレームワーク、ツールの管理 "image": "mcr.microsoft.com/devcontainers/base:bullseye", "customizations": { "codespaces": { "repositories": { “hoge/fuga": { "permissions": "write-all", }, }, "vscode": { "extensions": [ "GitHub.copilot", ], "settings": { "editor.formatOnSave": true, "editor.defaultFormatter": "esbenp.prettier-vscode", "prettier.singleQuote": true, }, }, }, "features": { "ghcr.io/dhoeric/features/trivy:1": {}, "ghcr.io/devcontainers/features/terraform:1": { "version": "latest", }, }

Slide 11

Slide 11 text

カスタマイズの方法②:ローカルのVSCodeとの同期 • devcontainer.json は共通設定 • 個人のVSCodeの設定をしたい場合は、 VSCode Desktopのsetting.jsonを同期 させる 参照 アカウントの GitHub Codespaces をパーソナライズす る - GitHub Docs

Slide 12

Slide 12 text

GitHub CopilotやAI を使った開発方法

Slide 13

Slide 13 text

AIファーストな開発・運用 • 開発 • Notion にDesign Doc を作成。AIレビュー(AIに読み取らせるため図もMarkdownで記述) Mermaid Markdown 要件定義 / 設計 開発 / コーディング Mermaid Markdown AIレビュー ソースコード叩き コード生成 ソースコード完成 人によるレビューと手直し Design Doc記載 Design Doc修正 • Markdownの構成図からTerraformコードをAIに書いてもらい、最後のレビューと手直しだけを人が実施

Slide 14

Slide 14 text

AIファーストな開発・運用 • 運用 • AIを用いた日々の運用業務 New Relic AI • ログの検索補助 • 原因調査補助 Jira AI • チケット検索補助 • 類似のインシデント提案

Slide 15

Slide 15 text

AIファーストな開発・運用(再掲) • 開発 • Notion にDesign Doc を作成。AIレビュー(AIに読み取らせるため図もMarkdownで記述) Mermaid Markdown 要件定義 / 設計 開発 / コーディング Mermaid Markdown AIレビュー ソースコード叩き コード生成 ソースコード完成 人によるレビューと手直し Design Doc記載 Design Doc修正 • Markdownの構成図からTerraformコードをAIに書いてもらい、最後のレビューと手直しだけを人が実施

Slide 16

Slide 16 text

AIファーストな開発・運用(再掲) • 開発 • Notion にDesign Doc を作成。AIレビュー(AIに読み取らせるため図もMarkdownで記述) • Markdownの構成図からTerraformコードをAIに書いてもらい、最後のレビューと手直しだけを人が実施 Mermaid Markdown 要件定義 / 設計 開発 / コーディング Mermaid Markdown AIレビュー ソースコード叩き コード生成 ソースコード完成 人+AIによるレビュー と手直し Design Doc記載 Design Doc修正 GitHub Copilot Enterprise でPull Request Summaryが提供 コードレビューにもAIを

Slide 17

Slide 17 text

GitHub Copilotの機能とEnterprise版の違い • 開発者向け GitHub Copilot GitHub Copilot Enterprise • コード補完 • チャット機能 • CLI連携 左記に加えて • Pull Request 要約 • Copilot ナレッジベース • on GPT-4o GitHub Copilot GitHub Copilot Enterprise • ポリシー管理 • アクセス管理 • 使用状況データの確認 • 監査ログ • ファイルの除外 • 違いなし • 管理者向け GitHub Copilot Enterprise on GPT-4o - The GitHub Blog

Slide 18

Slide 18 text

Pull Request 要約 • GitHub Copilot がPull Requestの概要を生成。変更点を素早く把握できる。 PR作成時にボタンを押すだけで要作作成 実際に出来た要約例 サマリ 変更されたワーク フローファイル 変更されたDoc 変更された Terraform関連の ファイル

Slide 19

Slide 19 text

GitHub Copilot ナレッジベース Markdownのドキュメントを読ませて、それも回答のナレッジとして使うことができる。 Notionからページをエクスポートして読ませる

Slide 20

Slide 20 text

管理者向け機能の補足 • ポリシー管理 • 機能自体のON-OFF(IDE上、モバイル上、CLI上、公開コードをもとにしたのサジェスト) • 勝手に使って、実はライセンス違反してました。とかが嫌なら公開コードをもとにしたサジェストはOFFがいいかも。 • アクセス管理 • だれが、Copilot使えるかを管理 • 使用状況データの確認 • だれが、いつ Copilot を使ったかがわかる • どう使っているか、どういう回答を得たか、までは分からない • 監査ログ • 予約シートとか、ナレッジベースの変更をログで記録可能 • ファイルの除外(ベータ版) • Copilotが読み取らないファイルを指定できる • Configuring content exclusions for GitHub Copilot – GitHub Docs • 業務委託に見せたくないリポジトリをサジェストに使わせない、とかができる(ただし、全員に対して効くので取捨選択が必要)

Slide 21

Slide 21 text

まとめ

Slide 22

Slide 22 text

まとめと今後に期待すること 最後に • 今後エンジニアとしては、AIを使って業務を効率よく進める事が求められる • 求められるスキルとしては、要件定義力、プロンプトエンジニアリング、AIの成果物をレビューする力などになるのでは まとめ • 今の時代では特にエンジニアは人材流動もあるし、開発環境共通化は課題 • GitHub Codespacesなら新規参入者向けの開発環境を即提供できる • GitHub CopilotやCopilot Chatは開発補助として、すごくいいプロダクト。 • ただし、現状としてはPR Summaryはファイル一覧と差分が少しでるだけなのでGitHub Copilot Enterpriseまで使える ようにするかは時期尚早かも • 今後の機能改善にも期待

Slide 23

Slide 23 text

Thank you