강의

멘토링

커뮤니티

Programming

/

Devops & Infra

[DevOps定石3] GitHub Actionsで正しく構築するCI

GitHub Actionsに基づいてCIをどのように構成するか、およびCIにはどのような内容が含まれるべきかについて学習し、Google DevOps Report 2022で話題になったSLSA Frameworkによる検証の部分を学習できます。

難易度 初級

受講期間 無制限

  • JeongSuk Lee
github-actions
github-actions
CI/CD
CI/CD
continuous-integration
continuous-integration
SonarQube
SonarQube
github-actions
github-actions
CI/CD
CI/CD
continuous-integration
continuous-integration
SonarQube
SonarQube

受講後に得られること

  • CI

  • GitHub Actions

  • SLSAフレームワーク

  • InfraCost

  • Software Bill of Material

  • SonarQube

  • TruffleHog

  • ConfTest

  • AWS IAM

CI構成のためのGithub Action!

ビルドオートメーションのみ
CIの全部だと思いましたか?

「CIが一体どんなものなのか気になります。技術的観点から概念をつかむにはどうしたらいいのでしょうか?」

「企業でJenkinsのようなCIソリューションをインストールして使っていますが、CI内にどのようなコンテンツを入れるべきでしょうか?」

「CI/CD戦略に対するコンサルティングは受けましたが、実装方法が悩みです」

「私たちの組織のCI構成の評価と管理が必要です」

組織でCIを導入する場合、実際に内容を見ると、ビルド後のパッケージ配布がすべてであることが多いです。ただし、CIで実装する必要があるのはSoftware Supply Chain(ソフトウェアサプライチェーン)を構成することで、 CIソリューションをインストールするだけではありません。

CIが初めての組織にとって最小限の重要な知識

Github Actionsを使用して Continuous Integration (CI) を構成する方法と、CI 内で Software Supply Chain を構成する際に必要なツールをどのように適用するかを学びます。

このレッスンでは、CIを使用してSoftware Supply Chainを構成するときに少なくとも実装する必要があるModel CI Flowについて説明します。 CIシステムを構築し評価するための基準と方法が気になった方には、この講義が役立つことを願っています。


CIが必要な目的と理由
確実にお知らせします。

Case 1 CI 構成のガイドラインはありますか?

SLSA Frameworkを介してSoftware Supply Chainのガイドラインを提示します。

Case 2 CIシステムにはHostとAgentという概念がありますが、どのように構成するのですか?

CI HostはGithub Actionsを使用し、AgentはGithubが提供するSaaSベースのAgentまたはEphemeral環境ベースの独自のAgentを構成する方法について説明します。

Case 3当社の技術的な方針ガイドラインをCIに入れたいのですが、方法がありますか?

CIでセキュリティチェックを適用する方法については、SonarQubeとAqua Trivyを参照してください。また、ConfTest を通じてPolicy as Codeとは何かについて説明します。

Case 4組織は Terraform を通じて IaC を使用しています。

InfraCostを活用して GitHub Pull Request に Terraform 変更のコスト増減を表示する方法について説明します。

CIはツールだけでなく本質も保持しなければなりません。

CIは、単なるCIソフトウェアをインストールし、ビルドを自動化するだけではありません。ビルドとArtifactの作成をカバーする一般的なCIレッスンとは異なり、このレッスンは、CIの本目的であるSoftware Supply Chain ManagementとGated Commitという概念に基づいています。

さらに、最近のオープンソースライブラリによるセキュリティ侵害事故(Log4j、SolarWind)によって浮上しているSoftware Bill of Materialを基盤に、Dependency management、SLSA Frameworkなどの最新トレンドまで反映して進めます。


学習内容
確認してください📚

基準を確立するCI学習

CIがCIソフトウェアをインストールしてビルドを自動化するだけではないことがわかります。さらに、SLSA Frameworkについて理解し、これがどのソリューションと組み合わせて、Framework Levelのトップレベルである4段階まで上げることができるかについて学びます。

実装のためのコア技術まで

Gated Commitを実現する方法をGitHubを通じて学習し、Microservice構造上で関連サービスのCIチェーンを作成する方法を学びます。 GitHub Custom Actionsを作成し、それを活用して再利用可能なSoftware Supply Chainを作成する方法を理解します。 Persistent agentとEphemeral agentの特徴と違いを一緒に理解します。

詳細カリキュラム📖

Github Actions はじめに

  • Github Commit Signing
  • Spring/GradleベースのCI Process + Slack Notification
  • Node.jsベースのサービスCIプロセス+関連サービスCIプロセスの呼び出し

IaC展開の安定性を検証する

  • ConfTestを使用したPolicy as codeの実装
  • TruffleHogによるCredential Exposure Checkの実装
  • InfraCostを活用したPull Request内のTerraform IaC予想追加コスト コメントする

CIでセキュリティの脆弱性を確認する

  • SonarQube community editionを使用したSASTの構成
  • Aqua TrivyとDependency Trackによる脆弱性チェックとSBOM管理

プライベートリポジトリを使用したコンテナイメージの管理

GitHub Custom Actionを使用してBuild Processをモジュール化する

  • Container ベースの Custom Action の構成
  • JavaScript ベースのカスタムアクションの設定
  • Composite Actionの設定

GitHub Self-hosted runnerを実装する

SLSA FrameworkによるSummary


DevOpsの定石
イ・ジョンソクです。

韓国・オーストラリア・イギリスでFull-stack Developer、DevOps Engineer/Consultantで15年ほど働いているDigital Nomad IT Engineerです。 IT組織の運用最適化のために絶えず新しいトピックについて勉強しており、引退するまでEngineerで生活したいという夢を持っています。現在、オーストラリアのMelbourneにある銀行のDeveloper ExperienceチームでDevOpsとして活動しています。

詳細履歴

  • 前)The Latin Travellerでインターンとして初めての職場生活を開始! [London, UK]
  • 前) 韓進グループトパス旅行情報 - Java/Oracle開発 [Seoul, JP]
  • 前) NuSkin Korea - Java/Oracle開発 [Seoul, JP]
  • ビジネスフローへの好奇心でFull-time MBAコース卒業 [Seoul/Nice, KR/FR]
  • 前) KOSCOM - C開発 [Seoul, JP]
  • 前) KDB大宇証券 - Java、C#、Python、MongoDB、Oracle、Sybase、ActiveMQなどを利用した開発 [Seoul, JP]
  • 前) National Australia Bank (NAB) - フルスタック開発 [Melbourne, AU]
  • 前)オーストラリアの4大銀行の1つ - Full-stack Development/In-house DevOps Consulting [Melbourne, AU]
  • 前) Amazon Web Services - DevOps Consultant [Seoul/Melbourne, JP/AU]
  • 県)オーストラリアの4大銀行の1つ - DevOpsでDORA Metricsの定義とScalable CI Structureの実装で交際... [Melbourne, AU]

Q&A 💬

Q. CIを実装するときにJenkinsをインストールしてBuild Commandを入れてデプロイするだけではありませんか?

CI実装はビルド自動化をすることは目標ではありません。全体的なSoftware Supply Chainで発生する可能性のあるビルド、テスト、組織のセキュリティ/コンプライアンス要件などを自動化してチェックし、信頼できるArtifactをCDパーツに渡すことがその目的と言えます。

Q. 使用するソフトウェアが多いのに関連した基礎知識が必要ですか?

本講義で使用するソフトウェアに関する部分については、使用目的と使用方法についての部分を説明しながらCIと統合する過程を進めます。

Q. DevOpsでキャリアを積むとき、このパートはどれほど重要ですか?

DevOpsに関連するポジションでは、CI / CDの部分は基本的な要件として含まれており、CIの質問でパイプラインをどのように構成するかについてのアイデアや経験を求めることがよくあります。この時、重要な見方がPipeline flowとGated commitに関わる部分であり、本講義ではこれらの部分を扱っています。

💾受講前の注意
練習には、次のPC仕様とサービスバージョンが必要です。

  • CPU:4コア以上x86-64/amd64シリーズ
  • メモリ8GB以上、ストレージ30GB以上
  • Kubernetes 1.21以上、Helm 3.8以上
  • Software build tool、IaC(Terraform、Kubernetes、Helm)、Shell Scriptなどを使って講義が行われますが、これについての基礎知識がないとしても聞くことに問題はありません。
  • 授業資料は[セクション2 - SigNozのインストール]授業下のノートをご確認ください。講義に使用したすべてのSource CodeをGitHub Repositoryを通じて提供します。 Google フォームリンクによるアクセスの承認には最大 48 時間かかる場合があります。 本講義のソースコードやコンテンツを他人と共有しないでください。

関連講義を一緒に見る📺

こんな方に
おすすめです

学習対象は
誰でしょう?

  • CI内でコンテンツをどのように構成するのか疑問に思った人

  • GitHub Actionsが初めてだから基本知識を得たい人

  • Microservice ArchitectureでCIがどのように構成されているのか疑問に思う人

  • CIでDevSecOpsがどのように構成されているのか疑問に思った人

前提知識、
必要でしょうか?

  • Shell Scripts

  • Kubernetes環境のインストール方法、MinikubeまたはEKS/GKE/AKSのセットアップ方法

  • Helm コマンドのインストール方法

こんにちは
です。

433

受講生

17

受講レビュー

7

回答

3.7

講座評価

7

講座

韓国、オーストラリア、イギリスでフルスタック開発者、DevOpsエンジニア/コンサルタントとして約15年間活動しているデジタルノマドITエンジニアです。IT組織運営の最適化のために絶えず新しいテーマについて勉強しており、引退するまでエンジニアとして過ごしたいという夢を持っています。現在はオーストラリア・メルボルンにある銀行のDeveloper ExperienceチームでDevOpsとして活動しています。

カリキュラム

全体

20件 ∙ (6時間 34分)

講座掲載日: 
最終更新日: 

受講レビュー

全体

3件

5.0

3件の受講レビュー

  • sponge님의 프로필 이미지
    sponge

    受講レビュー 6

    平均評価 5.0

    5

    100% 受講後に作成

    開発チームを対象に、実務で必ず実装しなければならない現実的な継続的な統合(Continuous Integration)の出発点が提示された講義だと思います。 単にビルドとユニットテストを回すことを超えて、静的分析、セキュリティ、署名とパブリッシング、そしてフィードバックまでを含む Gated check-in を構成する事例とその過程が圧縮されていました。になるのを防ぐようになり、これを通じて開発チームのコラボレーションが効果的に向上するだろうと自然に期待されました。聞いている間、現在管理中のCIプロセスをリファクタリングしたかったので大変だったㅎㅎ) 何よりも、やや複雑で多くの過程を経ることについて迷子になりやすいのですが、SLSA Frameworkを通じて講義過程で取り上げた内容の整理や高度化の方向も教えてくれて本当にありがとうございます。 もしこの講義を初めて受講する方なら、最初のOverviewの後に一番最後にある'SLSA Frameworkを通じてSummary'

    • eomsi4706님의 프로필 이미지
      eomsi4706

      受講レビュー 2

      平均評価 5.0

      5

      30% 受講後に作成

      • stevenmin님의 프로필 이미지
        stevenmin

        受講レビュー 1

        平均評価 5.0

        5

        100% 受講後に作成

        現在開発して運営しているシステムが会社のデータセンター基盤に戻るレガシーシステムなので、この講義を聞くのは難しい部分もありました。 しかし、この講義で紹介しているさまざまなシステム間の連携と新しい開発パターンを見ながら、このGithub Actions以外にも学べるものが多かったです。 一般101講義とは違って豊富な経験から出てくるコメント一つ一つが多くの刺激と助けてくれてありがとう。 今後私が管理するGHEにGithub Actionsが適用される予定ですが、多くのお役に立てそうです。 ありがとうございます。

        ¥24,249

        JeongSuk Leeの他の講座

        知識共有者の他の講座を見てみましょう!

        似ている講座

        同じ分野の他の講座を見てみましょう!