SlideShare ist ein Scribd-Unternehmen logo
1 von 13
Downloaden Sie, um offline zu lesen
1
GitLabのAuto DevOpsを
試してみた
Toshitaka Ito / 伊藤 俊廷
Senior Solutions Architect (APJ)
2021.03.31
第35回ニフクラエンジニアミートアップ: GitLabとニフクラでDevOpsを実践してみた
2
Toshitaka Ito
Senior Solutions Architect (APJ) at GitLab
Toshi has experience with Enterprise Apps Security vendor with a
focus on CI/CD skills. Prior to that, Toshi worked as a Technical
Consultant for one of the largest Japanese consultancies with
hands-on experience in Web Application Framework, Natural
Language Processing and Cloud Technology.
linkedin.com/in/toshitaka-ito/
gitlab.com/toshitakaito
3
GitLab: 会社とコミュニティ
会社
- 2014年法人化
- 65カ国以上にまたがる 1200名以上の従業員
- All-remote:オフィスを持たない
- 毎月の製品(オンプレ) リリースとGitLab.com(SaaS)の提供
広範な普及
- 100,000以上の組織
- 3000万以上のユーザ
- セルフマネージド (オンプレ)
DevOpsリポジトリとして70%の市場
シェア
強固なコミュニティ
- 2011年設立
- オープンソースモデル
- 3,000名以上のコードコントリビュータ
4
シングルアプリケーションによる
DevOpsプラットフォーム
5
Manage Plan Create Verify Package Secure Release Configure Monitor Defend
Audit
Management
Compliance
Value Stream
管理
DevOps Score
Insights
Agile プロジェ
クト管理
Kanban
Boards
Time Tracking
Epics
Roadmaps
Service Desk
Source Code
Management
Code Review
Wiki
Web IDE
Snippets
Continuous
Integration (CI)
コード品質
Code Testng &
Coverage
Web パフォー
マンステスト
Usability
Testing
Accessibility
Testing
Package
Registry
コンテナ
レジストリ
Dependency
Proxy
Git LFS
SAST
Secret
Detection
DAST
Dependency
Scanning
Container
Scanning
License
Compliance
セキュリティ脆
弱性管理
Continuous
Delivery (CD)
Pages
Review Apps
Advanced
Deployments
フィーチャーフ
ラグ
Release
Orchestration
Secrets
Management
Auto DevOps
Kubernetes
管理
ChatOps
Runbook
Configuration
Serverless
Infrastructure
As Code
Metrics
Alert
Management
Incident
Management
Logging
Tracing
Error Tracking
Container
Network
Security
カテゴリ別の主な機能とAuto DevOps
Auto DevOps
6
GitLab Auto DevOpsとは
GitLab CI/CD パイプラインの
ベストプラクティスの自動生成
7
Auto DevOpsの始め方と実施内容
1. アプリのDockerイメージのビルド
○ ソースコードの言語、プラットフォームの検出(Dockerfileがなければ)
○ 言語、プラットフォームに応じた一般的なビルドステップを実行
○ ビルドしたDockerイメージをGitLabコンテナレジストリにpush
2. アプリのテストコード実行
3. 静的スキャンを実行し、マージリクエストへ記録
○ コード品質スキャン
○ シークレット検出
○ 静的アプリケーションセキュリティテスト(SAST)
○ 依存関係(Dependency)スキャン
○ コンテナスキャン
○ ライセンススキャン
4. 自動生成されたサブドメインでレビューアプリとしてデプロイ
○ Helm Chartを利用
5. レビューアプリに対しスキャンし、マージリクエストへ記録
○ 動的アプリケーションセキュリティテスト(DAST)
○ ブラウザパフォーマンステスト
6. ステージング環境へデプロイ
○ ブランチのマージ後のみ
○ ポストデプロイメントステップの実行(例:DBのマイグレーション)
7. 本番(プロダクション)環境へのデプロイ
○ カナリアデプロイメントのサポート
○ インクリメンタルロールアウト(段階的デプロイ)のサポート
8. Prometheusによるモニタリング
9. デプロイボードによる全デプロイメントの記録
Step 1: Kubernetes 連携の設定
Step 2: Auto DevOps有効化
または定義テンプレートの利用
Step 3: あとはGitLabにおまかせ
https://docs.gitlab.com/ee/topics/autodevops/stages.html
8
Auto DevOpsの環境要件
1. 必須要件
○ DockerまたはKuberntes ExecutorのGitLab Runner
■ GitLab.comを使うのが一番手っ取り早く試せる
2. アプリをデプロイする場合
○ Kubernetesの用意、GitLabとの連携
■ Hatoba*1などのマネージドKubernetesを使用するのがおすすめ
■ Nginx Ingressのインストール
○ ドメインの用意
■ [IP_Address].nip.ioで到達可能なマネージドKubernetesなら、ドメイン取得なしでも可
3. アプリをモニタリングする場合
○ Prometheusのインストール
4. アプリをTLS/HTTPS化する場合
○ cert-managerのインストール
https://docs.gitlab.com/ee/topics/autodevops/requirements.html#auto-devops-requirements-for-kubernetes
※1 2021-03-31時点ではHatoba上でのAuto DevOpsの動作は未検証
9
Auto DevOpsのもう一つの活用方法
Auto DevOpsの構成要素
1. GitLab CI定義ファイルの
テンプレート
2. 各ジョブ専用のdockerイメージ
CI/CD パイプライン定義ファイルの
リファレンスとして
● mainブランチ以外のみでジョブを実
行させるには
● マージリクエストでレビューアプリの
URLをセットするには
● ブランチごとにユニークなイメージ
tag
名の生成するには
Auto Deployテンプレートの例
10
Demo
11
デモシナリオ
1. GitLab.com上のGitLabグループを
Kubernetesと連携済み
2. Springのサンプル
(https://gitlab.com/jkrooswyk/joel-spri
ngsample)を新規プロジェクトとしてイン
ポート
3. マージリクエストを経由し、リポジトリ直下
に.gitlab-ci.ymlのAuto DevOpsテンプ
レートを追加する
4. GitLabが用意するNodeJS Expressのプ
ロジェクトテンプレートから作成したプロ
ジェクトでも試してみる
12
告知
GitLab 日本語ページ
https://about.gitlab.com/ja-jp/
GitLab Hackathon 1Q '2021 in 日本語Day 2
日時:2021年4月1日(木) 14:00〜18:00 (途中入退場可)
https://gitlab-jp.connpass.com/event/209232/
GitLab DevOps Webinar シリーズ:
アプリケーションセキュリティのシフトレフトを実践するには(第三回)
Date: 2021年4月22日(木曜日)
Time: 14:00〜15:00(日本時間)
https://page.gitlab.com/shiftleft-applicationsecurity-jp.html
質問はコミュニティSlack https://gitlab-jp.herokuapp.com/ や jp_sales@gitlab.com へ
13
Everyone can contribute

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
 
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
 
KeycloakでAPI認可に入門する
KeycloakでAPI認可に入門するKeycloakでAPI認可に入門する
KeycloakでAPI認可に入門する
 
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
 
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
 
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?
 
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajpAt least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
 
JenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudy
JenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudyJenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudy
JenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudy
 
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
 
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
 
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
 

Ähnlich wie GitLabのAutoDevOpsを試してみた

Ähnlich wie GitLabのAutoDevOpsを試してみた (20)

GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
 
GitLabで始めるDevOps入門
GitLabで始めるDevOps入門GitLabで始めるDevOps入門
GitLabで始めるDevOps入門
 
GitLab Prometheus
GitLab PrometheusGitLab Prometheus
GitLab Prometheus
 
第2回すだちくん勉強会におけるIoT最新動向と題したプレゼン資料
第2回すだちくん勉強会におけるIoT最新動向と題したプレゼン資料第2回すだちくん勉強会におけるIoT最新動向と題したプレゼン資料
第2回すだちくん勉強会におけるIoT最新動向と題したプレゼン資料
 
Visual Studio App CenterでAndroid開発にCI/CDを導入しよう
Visual Studio App CenterでAndroid開発にCI/CDを導入しようVisual Studio App CenterでAndroid開発にCI/CDを導入しよう
Visual Studio App CenterでAndroid開発にCI/CDを導入しよう
 
心・技・態 -LINEにおける改善の真実-
心・技・態 -LINEにおける改善の真実-心・技・態 -LINEにおける改善の真実-
心・技・態 -LINEにおける改善の真実-
 
Windows ChatGPT Bing AI.pptx
Windows ChatGPT Bing AI.pptxWindows ChatGPT Bing AI.pptx
Windows ChatGPT Bing AI.pptx
 
Atlassian Summit US 2017 #augj
Atlassian Summit US 2017 #augjAtlassian Summit US 2017 #augj
Atlassian Summit US 2017 #augj
 
Wg for ai_dev_ops_20180713
Wg for ai_dev_ops_20180713Wg for ai_dev_ops_20180713
Wg for ai_dev_ops_20180713
 
【BS6】 マイクロソフトの GitHub との取り組み
【BS6】 マイクロソフトの GitHub との取り組み 【BS6】 マイクロソフトの GitHub との取り組み
【BS6】 マイクロソフトの GitHub との取り組み
 
【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?
【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?
【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?
 
PCCC21:株式会社日立製作所 「研究開発力向上のための研究DXソリューション」
PCCC21:株式会社日立製作所 「研究開発力向上のための研究DXソリューション」PCCC21:株式会社日立製作所 「研究開発力向上のための研究DXソリューション」
PCCC21:株式会社日立製作所 「研究開発力向上のための研究DXソリューション」
 
OutSystems ユーザー会 セッション資料
OutSystems ユーザー会 セッション資料OutSystems ユーザー会 セッション資料
OutSystems ユーザー会 セッション資料
 
Gitlab ci & ecsへのデプロイ
Gitlab ci & ecsへのデプロイGitlab ci & ecsへのデプロイ
Gitlab ci & ecsへのデプロイ
 
【de:code 2020】 GitHub 新機能のご紹介(2020 年 5 月発表)
【de:code 2020】 GitHub 新機能のご紹介(2020 年 5 月発表)【de:code 2020】 GitHub 新機能のご紹介(2020 年 5 月発表)
【de:code 2020】 GitHub 新機能のご紹介(2020 年 5 月発表)
 
OSS光と闇
OSS光と闇OSS光と闇
OSS光と闇
 
GHE導入から社内普及までの軌跡 - エバンジェリストとしての取り組みについて -
GHE導入から社内普及までの軌跡 - エバンジェリストとしての取り組みについて -GHE導入から社内普及までの軌跡 - エバンジェリストとしての取り組みについて -
GHE導入から社内普及までの軌跡 - エバンジェリストとしての取り組みについて -
 
Office365最新動向と運用管理tips
Office365最新動向と運用管理tipsOffice365最新動向と運用管理tips
Office365最新動向と運用管理tips
 
20171129 01 講演資料_チームレベル agile からエンタープライズ dev_ops へ
20171129 01 講演資料_チームレベル agile からエンタープライズ dev_ops へ20171129 01 講演資料_チームレベル agile からエンタープライズ dev_ops へ
20171129 01 講演資料_チームレベル agile からエンタープライズ dev_ops へ
 
今さら聞けない人のためのgit超入門
今さら聞けない人のためのgit超入門今さら聞けない人のためのgit超入門
今さら聞けない人のためのgit超入門
 

Mehr von 富士通クラウドテクノロジーズ株式会社

Mehr von 富士通クラウドテクノロジーズ株式会社 (20)

IPsec VPNとSSL-VPNの違い
IPsec VPNとSSL-VPNの違いIPsec VPNとSSL-VPNの違い
IPsec VPNとSSL-VPNの違い
 
弊社サービスを使って ノーコード開発してみた.pdf
弊社サービスを使って ノーコード開発してみた.pdf弊社サービスを使って ノーコード開発してみた.pdf
弊社サービスを使って ノーコード開発してみた.pdf
 
今から始めるUbuntu入門_202307.pdf
今から始めるUbuntu入門_202307.pdf今から始めるUbuntu入門_202307.pdf
今から始めるUbuntu入門_202307.pdf
 
非エンジニアがクラウド上にMinecraftサーバーを構築するまでの記録
非エンジニアがクラウド上にMinecraftサーバーを構築するまでの記録非エンジニアがクラウド上にMinecraftサーバーを構築するまでの記録
非エンジニアがクラウド上にMinecraftサーバーを構築するまでの記録
 
自宅k8s/vSphere入門
自宅k8s/vSphere入門自宅k8s/vSphere入門
自宅k8s/vSphere入門
 
FJcloud-Vの無料トライアルで雑にWordPressを入れてみた(リベンジ)
FJcloud-Vの無料トライアルで雑にWordPressを入れてみた(リベンジ)FJcloud-Vの無料トライアルで雑にWordPressを入れてみた(リベンジ)
FJcloud-Vの無料トライアルで雑にWordPressを入れてみた(リベンジ)
 
今さら聞けないバックアップの基礎
今さら聞けないバックアップの基礎今さら聞けないバックアップの基礎
今さら聞けないバックアップの基礎
 
DevOps with GitLabで始める簡単DevOps
DevOps with GitLabで始める簡単DevOpsDevOps with GitLabで始める簡単DevOps
DevOps with GitLabで始める簡単DevOps
 
自宅vSphereからニフクラに引っ越ししてみた
自宅vSphereからニフクラに引っ越ししてみた自宅vSphereからニフクラに引っ越ししてみた
自宅vSphereからニフクラに引っ越ししてみた
 
自宅インフラの育て方 第2回
自宅インフラの育て方 第2回自宅インフラの育て方 第2回
自宅インフラの育て方 第2回
 
NGINX App Protect on Hatobaで実現するセキュリティサービス公開 構築手順書
NGINX App Protect on Hatobaで実現するセキュリティサービス公開 構築手順書NGINX App Protect on Hatobaで実現するセキュリティサービス公開 構築手順書
NGINX App Protect on Hatobaで実現するセキュリティサービス公開 構築手順書
 
これから始めるエンジニアのためのクラウド超入門
これから始めるエンジニアのためのクラウド超入門これから始めるエンジニアのためのクラウド超入門
これから始めるエンジニアのためのクラウド超入門
 
「ネットワーク超入門 IPsec VPN編」
「ネットワーク超入門 IPsec VPN編」「ネットワーク超入門 IPsec VPN編」
「ネットワーク超入門 IPsec VPN編」
 
マネージドKubernetes、「Kubernetes Service Hatoba」を使ってみよう
マネージドKubernetes、「Kubernetes Service Hatoba」を使ってみようマネージドKubernetes、「Kubernetes Service Hatoba」を使ってみよう
マネージドKubernetes、「Kubernetes Service Hatoba」を使ってみよう
 
vSphere 7 へのアップグレードについて
vSphere 7 へのアップグレードについてvSphere 7 へのアップグレードについて
vSphere 7 へのアップグレードについて
 
VM 基盤運用チームの DevOps
VM 基盤運用チームの DevOpsVM 基盤運用チームの DevOps
VM 基盤運用チームの DevOps
 
緊急事態宣言解除後のセキュリティ・チェックリストを解説してみた
緊急事態宣言解除後のセキュリティ・チェックリストを解説してみた緊急事態宣言解除後のセキュリティ・チェックリストを解説してみた
緊急事態宣言解除後のセキュリティ・チェックリストを解説してみた
 
入社2年目社員から見た VDI(DaaS)の運用とセキュリティ
入社2年目社員から見たVDI(DaaS)の運用とセキュリティ入社2年目社員から見たVDI(DaaS)の運用とセキュリティ
入社2年目社員から見た VDI(DaaS)の運用とセキュリティ
 
インフラチームのリモートワーク
インフラチームのリモートワークインフラチームのリモートワーク
インフラチームのリモートワーク
 
いつでも在宅勤務
いつでも在宅勤務いつでも在宅勤務
いつでも在宅勤務
 

GitLabのAutoDevOpsを試してみた

  • 1. 1 GitLabのAuto DevOpsを 試してみた Toshitaka Ito / 伊藤 俊廷 Senior Solutions Architect (APJ) 2021.03.31 第35回ニフクラエンジニアミートアップ: GitLabとニフクラでDevOpsを実践してみた
  • 2. 2 Toshitaka Ito Senior Solutions Architect (APJ) at GitLab Toshi has experience with Enterprise Apps Security vendor with a focus on CI/CD skills. Prior to that, Toshi worked as a Technical Consultant for one of the largest Japanese consultancies with hands-on experience in Web Application Framework, Natural Language Processing and Cloud Technology. linkedin.com/in/toshitaka-ito/ gitlab.com/toshitakaito
  • 3. 3 GitLab: 会社とコミュニティ 会社 - 2014年法人化 - 65カ国以上にまたがる 1200名以上の従業員 - All-remote:オフィスを持たない - 毎月の製品(オンプレ) リリースとGitLab.com(SaaS)の提供 広範な普及 - 100,000以上の組織 - 3000万以上のユーザ - セルフマネージド (オンプレ) DevOpsリポジトリとして70%の市場 シェア 強固なコミュニティ - 2011年設立 - オープンソースモデル - 3,000名以上のコードコントリビュータ
  • 5. 5 Manage Plan Create Verify Package Secure Release Configure Monitor Defend Audit Management Compliance Value Stream 管理 DevOps Score Insights Agile プロジェ クト管理 Kanban Boards Time Tracking Epics Roadmaps Service Desk Source Code Management Code Review Wiki Web IDE Snippets Continuous Integration (CI) コード品質 Code Testng & Coverage Web パフォー マンステスト Usability Testing Accessibility Testing Package Registry コンテナ レジストリ Dependency Proxy Git LFS SAST Secret Detection DAST Dependency Scanning Container Scanning License Compliance セキュリティ脆 弱性管理 Continuous Delivery (CD) Pages Review Apps Advanced Deployments フィーチャーフ ラグ Release Orchestration Secrets Management Auto DevOps Kubernetes 管理 ChatOps Runbook Configuration Serverless Infrastructure As Code Metrics Alert Management Incident Management Logging Tracing Error Tracking Container Network Security カテゴリ別の主な機能とAuto DevOps Auto DevOps
  • 6. 6 GitLab Auto DevOpsとは GitLab CI/CD パイプラインの ベストプラクティスの自動生成
  • 7. 7 Auto DevOpsの始め方と実施内容 1. アプリのDockerイメージのビルド ○ ソースコードの言語、プラットフォームの検出(Dockerfileがなければ) ○ 言語、プラットフォームに応じた一般的なビルドステップを実行 ○ ビルドしたDockerイメージをGitLabコンテナレジストリにpush 2. アプリのテストコード実行 3. 静的スキャンを実行し、マージリクエストへ記録 ○ コード品質スキャン ○ シークレット検出 ○ 静的アプリケーションセキュリティテスト(SAST) ○ 依存関係(Dependency)スキャン ○ コンテナスキャン ○ ライセンススキャン 4. 自動生成されたサブドメインでレビューアプリとしてデプロイ ○ Helm Chartを利用 5. レビューアプリに対しスキャンし、マージリクエストへ記録 ○ 動的アプリケーションセキュリティテスト(DAST) ○ ブラウザパフォーマンステスト 6. ステージング環境へデプロイ ○ ブランチのマージ後のみ ○ ポストデプロイメントステップの実行(例:DBのマイグレーション) 7. 本番(プロダクション)環境へのデプロイ ○ カナリアデプロイメントのサポート ○ インクリメンタルロールアウト(段階的デプロイ)のサポート 8. Prometheusによるモニタリング 9. デプロイボードによる全デプロイメントの記録 Step 1: Kubernetes 連携の設定 Step 2: Auto DevOps有効化 または定義テンプレートの利用 Step 3: あとはGitLabにおまかせ https://docs.gitlab.com/ee/topics/autodevops/stages.html
  • 8. 8 Auto DevOpsの環境要件 1. 必須要件 ○ DockerまたはKuberntes ExecutorのGitLab Runner ■ GitLab.comを使うのが一番手っ取り早く試せる 2. アプリをデプロイする場合 ○ Kubernetesの用意、GitLabとの連携 ■ Hatoba*1などのマネージドKubernetesを使用するのがおすすめ ■ Nginx Ingressのインストール ○ ドメインの用意 ■ [IP_Address].nip.ioで到達可能なマネージドKubernetesなら、ドメイン取得なしでも可 3. アプリをモニタリングする場合 ○ Prometheusのインストール 4. アプリをTLS/HTTPS化する場合 ○ cert-managerのインストール https://docs.gitlab.com/ee/topics/autodevops/requirements.html#auto-devops-requirements-for-kubernetes ※1 2021-03-31時点ではHatoba上でのAuto DevOpsの動作は未検証
  • 9. 9 Auto DevOpsのもう一つの活用方法 Auto DevOpsの構成要素 1. GitLab CI定義ファイルの テンプレート 2. 各ジョブ専用のdockerイメージ CI/CD パイプライン定義ファイルの リファレンスとして ● mainブランチ以外のみでジョブを実 行させるには ● マージリクエストでレビューアプリの URLをセットするには ● ブランチごとにユニークなイメージ tag 名の生成するには Auto Deployテンプレートの例
  • 11. 11 デモシナリオ 1. GitLab.com上のGitLabグループを Kubernetesと連携済み 2. Springのサンプル (https://gitlab.com/jkrooswyk/joel-spri ngsample)を新規プロジェクトとしてイン ポート 3. マージリクエストを経由し、リポジトリ直下 に.gitlab-ci.ymlのAuto DevOpsテンプ レートを追加する 4. GitLabが用意するNodeJS Expressのプ ロジェクトテンプレートから作成したプロ ジェクトでも試してみる
  • 12. 12 告知 GitLab 日本語ページ https://about.gitlab.com/ja-jp/ GitLab Hackathon 1Q '2021 in 日本語Day 2 日時:2021年4月1日(木) 14:00〜18:00 (途中入退場可) https://gitlab-jp.connpass.com/event/209232/ GitLab DevOps Webinar シリーズ: アプリケーションセキュリティのシフトレフトを実践するには(第三回) Date: 2021年4月22日(木曜日) Time: 14:00〜15:00(日本時間) https://page.gitlab.com/shiftleft-applicationsecurity-jp.html 質問はコミュニティSlack https://gitlab-jp.herokuapp.com/ や jp_sales@gitlab.com へ