SlideShare a Scribd company logo
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

More Related Content

What's hot

BuildKitの概要と最近の機能
BuildKitの概要と最近の機能BuildKitの概要と最近の機能
BuildKitの概要と最近の機能Kohei Tokunaga
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話Kumazaki Hiroki
 
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)NTT DATA Technology & Innovation
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)NTT DATA Technology & Innovation
 
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線Motonori Shindo
 
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)NTT DATA Technology & Innovation
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Akihiro Suda
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較Akihiro Suda
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説murachue
 
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021Preferred Networks
 
DevOpsにおけるAnsibleの立ち位置と使い所
DevOpsにおけるAnsibleの立ち位置と使い所DevOpsにおけるAnsibleの立ち位置と使い所
DevOpsにおけるAnsibleの立ち位置と使い所Hidetoshi Hirokawa
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAkihiro Kuwano
 
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )Hironobu Isoda
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!mosa siru
 
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)NTT DATA Technology & Innovation
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)NTT DATA Technology & Innovation
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjugYahoo!デベロッパーネットワーク
 
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドAkihiro Suda
 

What's hot (20)

BuildKitの概要と最近の機能
BuildKitの概要と最近の機能BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
 
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
 
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説
 
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
 
DevOpsにおけるAnsibleの立ち位置と使い所
DevOpsにおけるAnsibleの立ち位置と使い所DevOpsにおけるAnsibleの立ち位置と使い所
DevOpsにおけるAnsibleの立ち位置と使い所
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
 
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
 
SpringBootTest入門
SpringBootTest入門SpringBootTest入門
SpringBootTest入門
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
 
Paxos
PaxosPaxos
Paxos
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
 
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
 

Similar to GitLabのAutoDevOpsを試してみた

GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」Taisuke Inoue
 
第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を導入しようShinya Nakajima
 
心・技・態 -LINEにおける改善の真実-
心・技・態 -LINEにおける改善の真実-心・技・態 -LINEにおける改善の真実-
心・技・態 -LINEにおける改善の真実-LINE Corporation
 
Windows ChatGPT Bing AI.pptx
Windows ChatGPT Bing AI.pptxWindows ChatGPT Bing AI.pptx
Windows ChatGPT Bing AI.pptxAtomu Hidaka
 
Wg for ai_dev_ops_20180713
Wg for ai_dev_ops_20180713Wg for ai_dev_ops_20180713
Wg for ai_dev_ops_20180713Yutaka Terasawa
 
【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?
【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?
【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?Developers Summit
 
PCCC21:株式会社日立製作所 「研究開発力向上のための研究DXソリューション」
PCCC21:株式会社日立製作所 「研究開発力向上のための研究DXソリューション」PCCC21:株式会社日立製作所 「研究開発力向上のための研究DXソリューション」
PCCC21:株式会社日立製作所 「研究開発力向上のための研究DXソリューション」PC Cluster Consortium
 
OutSystems ユーザー会 セッション資料
OutSystems ユーザー会 セッション資料OutSystems ユーザー会 セッション資料
OutSystems ユーザー会 セッション資料Tsuyoshi Kawarasaki
 
Gitlab ci & ecsへのデプロイ
Gitlab ci & ecsへのデプロイGitlab ci & ecsへのデプロイ
Gitlab ci & ecsへのデプロイiwata jaws-ug
 
【de:code 2020】 GitHub 新機能のご紹介(2020 年 5 月発表)
【de:code 2020】 GitHub 新機能のご紹介(2020 年 5 月発表)【de:code 2020】 GitHub 新機能のご紹介(2020 年 5 月発表)
【de:code 2020】 GitHub 新機能のご紹介(2020 年 5 月発表)日本マイクロソフト株式会社
 
GHE導入から社内普及までの軌跡 - エバンジェリストとしての取り組みについて -
GHE導入から社内普及までの軌跡 - エバンジェリストとしての取り組みについて -GHE導入から社内普及までの軌跡 - エバンジェリストとしての取り組みについて -
GHE導入から社内普及までの軌跡 - エバンジェリストとしての取り組みについて -ShionITO1
 
Office365最新動向と運用管理tips
Office365最新動向と運用管理tipsOffice365最新動向と運用管理tips
Office365最新動向と運用管理tipsMari Miyakawa
 
20171129 01 講演資料_チームレベル agile からエンタープライズ dev_ops へ
20171129 01 講演資料_チームレベル agile からエンタープライズ dev_ops へ20171129 01 講演資料_チームレベル agile からエンタープライズ dev_ops へ
20171129 01 講演資料_チームレベル agile からエンタープライズ dev_ops へkitter11
 

Similar to 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超入門
 

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

More from 富士通クラウドテクノロジーズ株式会社 (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)の運用とセキュリティ
 
インフラチームのリモートワーク
インフラチームのリモートワークインフラチームのリモートワーク
インフラチームのリモートワーク
 
いつでも在宅勤務
いつでも在宅勤務いつでも在宅勤務
いつでも在宅勤務
 

Recently uploaded

本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題についてMasatsugu Matsushita
 
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料Toru Miyahara
 
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料Toru Miyahara
 
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例Kurata Takeshi
 
今年こそ始めたい!SQL超入門 セミナー資料 2024年5月22日 富士通クラウドミートアップ
今年こそ始めたい!SQL超入門 セミナー資料 2024年5月22日 富士通クラウドミートアップ今年こそ始めたい!SQL超入門 セミナー資料 2024年5月22日 富士通クラウドミートアップ
今年こそ始めたい!SQL超入門 セミナー資料 2024年5月22日 富士通クラウドミートアップToru Miyahara
 
【登壇資料】スタートアップCTO経験からキャリアについて再考する CTO・VPoEに聞く by DIGGLE CTO 水上
【登壇資料】スタートアップCTO経験からキャリアについて再考する  CTO・VPoEに聞く by DIGGLE CTO 水上【登壇資料】スタートアップCTO経験からキャリアについて再考する  CTO・VPoEに聞く by DIGGLE CTO 水上
【登壇資料】スタートアップCTO経験からキャリアについて再考する CTO・VPoEに聞く by DIGGLE CTO 水上mizukami4
 

Recently uploaded (6)

本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
 
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
 
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
 
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
 
今年こそ始めたい!SQL超入門 セミナー資料 2024年5月22日 富士通クラウドミートアップ
今年こそ始めたい!SQL超入門 セミナー資料 2024年5月22日 富士通クラウドミートアップ今年こそ始めたい!SQL超入門 セミナー資料 2024年5月22日 富士通クラウドミートアップ
今年こそ始めたい!SQL超入門 セミナー資料 2024年5月22日 富士通クラウドミートアップ
 
【登壇資料】スタートアップCTO経験からキャリアについて再考する CTO・VPoEに聞く by DIGGLE CTO 水上
【登壇資料】スタートアップCTO経験からキャリアについて再考する  CTO・VPoEに聞く by DIGGLE CTO 水上【登壇資料】スタートアップCTO経験からキャリアについて再考する  CTO・VPoEに聞く by DIGGLE CTO 水上
【登壇資料】スタートアップCTO経験からキャリアについて再考する CTO・VPoEに聞く by DIGGLE CTO 水上
 

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 へ