Weitere ähnliche Inhalte Ähnlich wie GitLabのAutoDevOpsを試してみた (20) Mehr von 富士通クラウドテクノロジーズ株式会社 (20) GitLabのAutoDevOpsを試してみた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
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テンプレートの例
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 へ