Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ソフトウェア開発ライフサイクルを進化させるGitHub Universe 2024の最新トピック

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers. →

ソフトウェア開発ライフサイクルを進化させるGitHub Universe 2024の最新トピック

ソフトウェア開発ライフサイクルを進化させるGitHub Universe 2024の最新トピック
https://connpass.com/event/338803/

2024年12月5日 (木曜日) 12:00 - 13:00

アバナードのSDLCチームがGitHub Universe 2024で発表された最新機能を、ソフトウェア開発ライフサイクル(SDLC)の「Plan(計画)」「Develop(開発)」「Deliver(デリバリー)」「Operate(運用)」の各ステップにおけるGitHubの最新アップデートを活用する方法をデモを含めてご紹介しました。

本イベントの内容やコメントは個人の見解であり、Avanade Japanの方向性、戦略、意見ではありません。

Avatar for AvanadeJapanSDLC

AvanadeJapanSDLC

December 05, 2024

Other Decks in Technology

Transcript

  1. ©2024 Avanade Inc. All Rights Reserved. 2 Sr.Consultant - DevOps

    Engineering MVP for Technologies(DevOps) Director - Full-Stack Development MVP for Developer Technologies (.NET) & AI Platform (AI Services) Consultant - Backend Development MVP for Microsoft Azure(Cloud Native) Manager - DevOps Engineering Yutaka Osada Avanade Japan K.K. He/Him/His 今日話す人たち
  2. ©2024 Avanade Inc. All Rights Reserved. 3 • Plan •

    GitHub Issues2.0でタスク管理はどう変わるか • Develop • GitHub Modelsで生成AIを簡単に作る • GitHub Copilotによる開発体験の向上 › multi-file editing › copilot code review › .NETテストのdebug › custom instruction › GitHub Copilot for Azure • GitHub Sparkによる自然言語でのマイクロアプリ開発 • Deliver • 品質とセキュリティのシフトレフト • DevSecOpsの実践でよりセキュアに本番環境へ • Found means fixで実現する、よりセキュアな開発者体験 • Operate • 増大するセキュリティ負債 • セキュリティキャンペーンによる大規模なセキュリティ債務の修復と根絶 • まとめ アジェンダ
  3. ©2024 Avanade Inc. All Rights Reserved. 4 GitHubで実現するソフトウェア開発ライフサイクル (SDLC)の最適化 GitHubの豊富なツールセットを活用することで、開発ライフサイクル全般を通じたプロセス改善が可能となります。各フェーズに適した

    機能を組み合わせることで、スムーズな設計支援からコードの品質管理、リリース後のセキュリティ対応まで、効率的かつ統合的なワー クフローを実現します。 Plan Develop Deliver Operate 凡例: プレビュー中 GA中 自然言語によるマ イクロアプリの 開発 GitHub Spark チケット内容から 実現ステップの サジェストによる 設計支援 Copilot Workspace GitHub Copilot によるコードレ ビュー Copilot Code reviews プロジェクト計画 やタスク管理を ソースの変更と リンクする GitHub Issues クラウド上の チーム開発環境の セットアップ GitHub Codespaces 依存関係による脆 弱性の検知 稼働中のクラウド 環境とコードベー スを含めたセキュ リティリスクの 監視 GitHub Advanced Security × MS Defender for Cloud Dependabot 最大1000件のセ キュリティアラー トのトリアージの 整理 Security campaign with Copilot Autofix CI/CD ワークフローの生 成 リリースノートの 生成 GitHub Actions GitHub Actions 生成AIを活用し たアプリ開発を容 易に GitHub Models Mermaidダイア グラムでの設計書 作成の補助 GitHub Copilot オープンソースプ ロジェクトの自動 修正機能 Copilot Autofix for open source テストコードの 生成の補助 GitHub Copilot 機密情報の漏洩を 防ぐためのスキャ ン機能 secret scanning
  4. ©2024 Avanade Inc. All Rights Reserved. 6 GitHub Issues2.0でタスク管理はどう変わるか(1/2) Sub-Issueの作成とIssueのラベル付け

    Sub-IssueとIssueのラベル付けにより、階層的なバックログの作成が可能。タスクの依存関係を可視化する ことができる。これに伴い、Issueの高度な検索も可能に。 階層的なバックログ 配下のIssueの進捗状況のトラック も可能
  5. ©2024 Avanade Inc. All Rights Reserved. 7 GitHub Issues2.0でタスク管理はどう変わるか(2/2) 作業の粒度に合わせたIssueの作成、管理が可能になり、開発タスクをまとめるハイレベルなビジネス

    ゴールやマイルストーンを管理できるようになった https://docs.github.com/ja/issues/tracking-your-work-with-issues/about-issues 開発者だけでなく管理者がより大きなレイヤーでの作業管 理やスケジューリングができそう チーム間のコラボレーションの向上、開発者だけでなく管理 者にとっても作業の追跡性が向上する • タスクをより小さな単位に分解し、進捗を親子 関係で管理できるようになるため、大規模プロ ジェクトにおいても全体像と詳細作業の両方を 容易に把握可能 • タスクの親子関係を明示することで、優先順位 やボトルネックを見つけやすくなり、計画の精度が 向上する。 例:プロダクトマネージャーはエピックを用いて全体 の優先順位を管理し、開発者はサブタスクを通じて 自分の具体的な作業に集中できる。 • バグ修正、機能開発、ドキュメント改善といった 作業を視覚的に分けられるため、計画立案と実 行がスムーズになる。 • 全体計画と詳細タスクの両方が整理されるため、 チームメンバー全員が計画の意図を共有しやす くなる。
  6. ©2024 Avanade Inc. All Rights Reserved. 9 • 開発者がGitHub上で直接AIモデルを利用、比較、実験、構築できるプラットフォーム •

    Azure OpenAI Service、Microsoft 以外のMetaやMistral、などの主要なAIモデルにアクセス • コード生成からAzure経由でのデプロイまでをシンプルに行うことが可能 • GitHub Codespacesとの連携により、モデル推論コードをプロジェクトに統合しやすく、AIア プリケーションの開発と実行が楽になる • Azure OpenAIのPlaygroundをGitHub上で利用できるイメージ • 著名なモデルを軽く試してみたいときに使えそうなサービスという印象 GitHub Modelsで生成AIを簡単に作る GitHub Models とは
  7. ©2024 Avanade Inc. All Rights Reserved. 11 GitHub Modelsで生成AIを簡単に作る 主要なシステム設定パラメータの説明

    説明 項目 # AIモデルが生成する応答の基本的なコンテキストやトーンを設定する System Prompt 1 モデルが生成する応答の最大長を設定するパラメータ。トークンとは、一般的に単語や 単語の一部を指し、文字数ではなくトークン数で制限することで応答の長さを管理する Max Tokens 2 モデルが生成する文章の多様性を制御するパラメータ。値が高いほど、出力がランダム で多様性に富み、低いほど、出力がより集中した選択となる。ゼロに近づくほど決定的 な出力になりやすい Temperature 3 出力候補の中から確率の高いものを選択する際の制御パラメータ。累積確率がP以下と なる候補を考慮してサンプリングが行われ、少数の高い確率の選択肢に絞られる Top P 4 応答内で既に登場したトークンや概念の出現頻度を減らすためのペナルティ。似たよう な内容の繰り返しが減り、文章の多様性が向上する Presence Penalty 5 特定のトークンが複数回出現するのを抑制するためのペナルティ。主に文章の中で重複 する単語の数を減らして、より自然でおそらく簡潔な言語生成を促す効果がある Frequency Penalty 6 モデルの応答生成を停止するためのトークン、またはテキストシーケンスを指定する。 指定した文字列が生成されると、モデルはそこで出力を停止する Stop 7
  8. ©2024 Avanade Inc. All Rights Reserved. 12 GitHub Copilotによる開発体験の向上 (0/5)

    デモで使うSrcの構造 データ取得 Console App item.csv(商品マスタ) String 商品コード String 商品名 Decimal 金額 C:Work │ CopilotDemo.sln │ ├─CopilotDemo │ │ CopilotDemo.csproj │ │ item.csv │ │ Program.cs │ │ │ ├─Models │ │ Item.cs │ │ │ ├─Repositories │ │ ItemRepository.cs │ │ │ └─Services │ ItemService.cs │ └─CopilotDemo.Tests CopilotDemo.Tests.csproj ItemRepositoryTests.cs
  9. ©2024 Avanade Inc. All Rights Reserved. 13 • 複数ファイルを指定することで、プロンプトによる自動修正を可能とする GitHub

    Copilotによる開発体験の向上 (1/5) multi-file editing Open Edit Session Prompt Selected multi-file. 指定したファイルに対して、命令文に従い 自動修正が行われる https://github.blog/changelog/2024-10-29-multi-file- editing-code-review-custom-instructions-and-more- for-github-copilot-in-vs-code-october-release-v0- 22/#start-a-code-editing-session-with-multi-file- editing-preview
  10. ©2024 Avanade Inc. All Rights Reserved. 14 • Copilotによるコードレビューを可能とする •

    プッシュする前にすべての変更のレビューをリクエストできる VS Code でコードレビューを使用するには、次の2つの方法がある 選択内容をレビュー: クイックレビューパスを実行するには、エディターでコードを選択し、エディターのコンテキストメニュー から「Copilot >レビューとコメント」を選択するか、コマンドパレットから「 GitHub Copilot: レビューと コメント」コマンドを使用します。 (この機能はプレビュー段階です。) 変更のレビュー: コミットされていないすべての変更をより詳細にレビューするには、ソース管理ビューでCopilot コードレ ビューボタンを選択します。これは、GitHub のプル リクエストでも実行できます。 (待機リストに参加し てください。すべての Copilot サブスクライバーが対象です) GitHub Copilotによる開発体験の向上 (2/5) copilot code review https://github.blog/changelog/2024-10-29-multi-file-editing-code-review-custom-instructions-and-more-for-github-copilot-in-vs-code-october-release- v0-22/#code-review-preview
  11. ©2024 Avanade Inc. All Rights Reserved. 15 GitHub Copilotによる開発体験の向上 (2/5)

    copilot code review レビューしてもらいたいコードを選択し、右クリック >Copilotからレビューとコメントを押下 https://github.blog/changelog/2024-10-29-multi-file-editing-code-review-custom-instructions-and-more-for-github-copilot-in-vs-code- october-release-v0-22/#code-review-preview
  12. ©2024 Avanade Inc. All Rights Reserved. 16 • テストエクスプローラーに[Copilot でデバッグ]ボタンが導入され、失敗したテストのデバッ

    グを選択することでブレークポイントを自動的に付与する GitHub Copilotによる開発体験の向上 (3/5) .NETテストのdebug • 失敗したテストを選択 • 関連する本体側Src/当該UTに対して自動 的にブレークポイントを付与された上で実行さ れる https://devblogs.microsoft.com/visualstudio/transform-your-debugging-experience-with-github-copilot/
  13. ©2024 Avanade Inc. All Rights Reserved. 17 • ワークスペースまたはリポジトリで、GHCPが規則ファイ ルを基に回答を提示

    • .github/copilot-instructions.mdファイルを使用 特定の目的に合わせてカスタム命令を指定 コード生成の指示: コード生成に固有のコンテキストを提供。たとえば、プライベート変数 には常にアンダースコアをプレフィックスとして付けるように指定した り、シングルトンを特定の方法で実装するように指定したり、、コード 生成の指示は、設定またはワークスペースの Markdown ファイルで指 定ができる テスト生成手順: テストを生成するためのコンテキストを提供。たとえば、生成されたす べてのテストで特定のテスト フレームワークを使用するように指定で きます。テスト生成手順は、設定またはワークスペースの Markdown ファイルで指定ができる。 GitHub Copilotによる開発体験の向上 (4/5) custom instruction https://code.visualstudio.com/docs/copilot/copilot-customization .github/copilot-instructions.md ``` # コーディングガイドライン - 関数宣言はアロー関数を使うこと - 変数名はキャメルケースを使うこと - JSDoc を記述すること ``` VS Code の場合 settings.json の設定 を追加 "github.copilot.chat.codeGeneration.useIn structionFiles": true
  14. ©2024 Avanade Inc. All Rights Reserved. 18 • Azure クラウドを操作するためのパーソナル

    アシスタントとして、IaC実装を加速する GitHub Copilotによる開発体験の向上 (5/5) GitHub Copilot for Azure コマンド @azure /help @Azureで何ができるかを見 る @azure /learn Azureについて学ぶ @azure /resources Azureリソースに関する 情報 @azure /diagnose アプリケーションの何が問 題なのかを把握する @azure /changeTenant 使用するAzureテ ナントを選択する https://techcommunity.microsoft.com/blog/azuredevcommunityblog/streamline-your-azure-workflow-introducing-github- copilot-for-azure-in-vs-code/4276989
  15. ©2024 Avanade Inc. All Rights Reserved. 19 GitHub Sparkによる自然言語でのマイクロアプリ開発 Unix哲学に基づいたアプリ開発

    GitHub Spark=自然言語で「マイクロアプリ」を開発できる機能 • コードの記述もデプロイも不要 「マイクロアプリ」とは • Unix哲学に基づく考え方 • シンプルでコンパクト、「1つのことをうまくやる」アプリ GitHub Sparkで作成できるアプリの特徴 • 自然言語のみで構築 • アプリのホスト、データストレージ、テーマ設定、LLMへのアクセスがマネージド • PWA対応なのでWebでもスマートフォンでもSparkを管理&起動できる GitHub Spark: https://githubnext.com/projects/github-spark Unix哲学: https://en.m.wikipedia.org/wiki/Unix_philosophy
  16. ©2024 Avanade Inc. All Rights Reserved. 21 • 現在GitHub を利用する開発者は1億人を超える

    • GitHubの見解として「GitHub を使用してソフトウェア プロジェクトを構築、保守、および貢献する開発者が公式 に 1 億人を超えている」 • GitHubを利用する開発者10億人を目指すと宣言 • AI時代に合わせて、「開発者」の定義を変えることで10億人を目指そうとしてる › 開発者の枠を広げる • AIの登場により、従来の「開発者」「非開発者」の壁を壊す時が来た • 今までは母国語で開発できないことが開発を始める大きな壁になっていた • これからは、情熱や創造性があればだれでも開発者になれる! GitHub Sparkによる自然言語でのマイクロアプリ開発 GitHub が提唱するAI時代の開発者 https://github.blog/news-insights/company-news/100-million-developers-and-counting/
  17. ©2024 Avanade Inc. All Rights Reserved. 22 • 現在GitHub を利用する開発者は1億人を超える

    • GitHubの見解として「GitHub を使用してソフトウェア プロジェクトを構築、保守、および貢献する開発者が公式 に 1 億人を超えている」 • GitHubを利用する開発者10億人を目指すと宣言 • AI時代に合わせて、「開発者」の定義を変えることで10億人を目指そうとしてる › 開発者の枠を広げる • AIの登場により、従来の「開発者」「非開発者」の壁を壊す時が来た • 今までは母国語で開発できないことが開発を始める大きな壁になっていた • これからは、情熱や創造性があればだれでも開発者になれる! GitHub Sparkによる自然言語でのマイクロアプリ開発 GitHub が提唱するAI時代の開発者 https://github.blog/news-insights/company-news/100-million-developers-and-counting/ それを叶えるのがGitHub Spark
  18. ©2024 Avanade Inc. All Rights Reserved. 24 品質とセキュリティのシフトレフト ソフトウェア開発ライフサイクルの早期段階で品質とセキュリティを担保する Plan

    Develop Deliver Test Operate Release! Plan Develop Operate Deliver リリースの直前にテストを実行すると、 重大なセキュリティリスクや脆弱性、障害が見つ かったときのリカバリに掛かるコストが膨大になる Release! ソフトウェア開発ライフサイクルの早期にテスト、 セキュリティ対策を組み込んで継続的にチェックす ることによって脆弱性や障害を早期に発見する 直前にバグやセキュリティ脆弱性がたくさん 見つかってリリースが遅れる、 リリース後にインシデントが発生する 継続的なテストやセキュリティ対策により、 早期に品質が保証されるのでリリース時や リリース後のリスクが低下する
  19. ©2024 Avanade Inc. All Rights Reserved. 25 凡例: • 変更されたソースコードにはセキュリティ的な脆弱性は含まれていないか?

    • 使用しているパッケージに由来する脆弱性はないか? • シークレットは混入していないか? DevSecOpsの実践でよりセキュアに本番環境へ プルリクエスト(PR)作成のタイミング、mainブランチにマージするタイミングでGitHub Advanced Security(GHAS)の機能を使うことで高度なセキュリティチェックと脆弱性の検知が可能 Develop Deliver GitHub Repository PR Check CI GitHub Repository CD 開発者 • 変更されたソースコードにはセキュリティ的な脆弱性は含まれていないか? • 使用しているパッケージに由来する脆弱性はないか? • シークレットは混入していないか? 静的コード解析 単体テストの実行 開発者 コードレビュー mainブランチ にマージ 静的コード解析 単体テストの実行 結合テストの実行 各環境にデプロイ /デリバリー 変更分をPR Release! Code scanning Dependabot Secret Scanning ※GHASを使用
  20. ©2024 Avanade Inc. All Rights Reserved. 26 Found means fix(見つけたときにはもう修正されている)

    で実現するよりセキュアな開発者体験(1/2) すべてのパブリックリポジトリに対してCopilot Autofix for CodeQL Code scanning alertがGA。 無料で利用可能に。 • GitHub Copilotを搭載したこの機能は、プルリクエストと コードベースに既に存在する過去のアラートの両方で、 CodeQLが発見した脆弱性の自動修正を提供します。 • Copilot Autofixは、プルリクエストに含まれるCodeQL アラートの修正を提案しようとしますが、Copilotの提案を 全面的に受け入れるか、部分的に受け入れるか、まった く受け入れないかを決定するのは最終的には開発者 • Copilotに自動修正をリクエストし、それをレビューして、 修正提案をPRとして開くか、影響を受けるブランチにその ままコミットするか(あるいはどちらもしないか)を決めるこ とができます。 https://docs.github.com/en/code-security/code-scanning/managing-code-scanning-alerts/responsible-use-autofix-code-scanning
  21. ©2024 Avanade Inc. All Rights Reserved. 27 Found means fix(見つけたときにはもう修正されている)

    で実現するよりセキュアな開発者体験(2/2) GitHubパートナーのコードスキャニングツールとの統合 • Copilot AutofixをESLint、JFrog SAST、Black DuckのPolaris プラットフォーム(Coverity®搭載) など、サポート対象のパートナーコードスキャンツールとネイティブに統合することができる EslintやSonarqubeなどGitHubのサポート対象の サードパーティーの静的解析ツールによるコードスキャンを 実施することができる。 静的解析のツールによって発見された脆弱性は Copilot AutofixでAIによる修正案が提示される
  22. ©2024 Avanade Inc. All Rights Reserved. 29 増大するセキュリティ負債 最初からしっかりと早期のセキュリティ対策や脆弱性の排除をプロセスに組み込めていたというパターンは 多くはありません。

    これからしっかりやっていく!とプロセスを変更したとしても「これまでに」蓄積されていたセキュリティ 的な脆弱性は、ソフトウェアの稼働が⾧くなればなるほど大きな負債となります。 Release! Release1 Release2 Release3 Plan Develop Deliver Operate ・・・ XSSやSQL injectionに対して 無防備なコード シークレットの混入 使用中のパッケージに依存する脆弱性 セキュリティリスクの負債の増大・・・ 負債
  23. ©2024 Avanade Inc. All Rights Reserved. 30 セキュリティ・キャンペーンによる大規模な セキュリティ債務の修復と根絶 「これまでに蓄積された脆弱性も含めて」これまでにない規模で脆弱性を修復します。一度に最大数千

    件のアラートをトリアージし、タイプ、重大度、リポジトリ、チームごとにフィルタリングして、 Copilot Autofix による修正提案と説明を表示します。 • キャンペーンが作成されると、Copilot Autofix は、サポートされているすべて のアラートに対する修正を自動的に提 案する https://docs.github.com/ja/enterprise-cloud@latest/code-security/securing-your-organization/fixing-security-alerts-at-scale/about-security-campaigns
  24. ©2024 Avanade Inc. All Rights Reserved. 32 GitHubで実現するソフトウェア開発ライフサイクル (SDLC)の最適化 GitHubの豊富なツールセットを活用することで、開発ライフサイクル全般を通じたプロセス改善が可能となります。各フェーズに適した

    機能を組み合わせることで、スムーズな設計支援からコードの品質管理、リリース後のセキュリティ対応まで、効率的かつ統合的なワー クフローを実現します。 Plan Develop Deliver Operate 凡例: プレビュー中 GA中 自然言語によるマ イクロアプリの 開発 GitHub Spark チケット内容から 実現ステップの サジェストによる 設計支援 Copilot Workspace GitHub Copilot によるコードレ ビュー Copilot Code reviews プロジェクト計画 やタスク管理を ソースの変更と リンクする GitHub Issues クラウド上の チーム開発環境の セットアップ GitHub Codespaces 依存関係による脆 弱性の検知 稼働中のクラウド 環境とコードベー スを含めたセキュ リティリスクの 監視 GitHub Advanced Security × MS Defender for Cloud Dependabot 最大1000件のセ キュリティアラー トのトリアージの 整理 Security campaign with Copilot Autofix CI/CD ワークフローの生 成 リリースノートの 生成 GitHub Actions GitHub Actions 生成AIを活用し たアプリ開発を容 易に GitHub Models Mermaidダイア グラムでの設計書 作成の補助 GitHub Copilot オープンソースプ ロジェクトの自動 修正機能 Copilot Autofix for open source テストコードの 生成の補助 GitHub Copilot 機密情報の漏洩を 防ぐためのスキャ ン機能 secret scanning