ニフクラ エンジニア ミートアップ 2022-02-22
DevOps with GitLab
で始める簡単DevOps
2022/02/22
富士通クラウドテクノロジーズ株式会社
山口 純
© 2022 Fujitsu Cloud Technologies Limited
自己紹介
2 © 2022 Fujitsu Cloud Technologies Limited
自己紹介:
・弊社のDevOpsノウハウを広めていくサービス、DevOps with GitLabの企画・開発を担当
・弊社全社員で利用しているGitLab環境の運用も担当
山口 純
クラウドプラットフォーム本部
プラットフォームSRE部
1/25 DevOps with GitLab リリース
先日、DevOps with GitLab を正式リリースしました!(β版から正式化
3 © 2022 Fujitsu Cloud Technologies Limited
DevOps with GitLab
ニフクラ上でGitLab環境を簡単に構築・利用できるサービス
βから大きく変わったところ:定期アップグレード提供
(その他便利機能も今後提供検討中
構築が簡単
GitLab構築に必要な以下の工程がスキップできる
○ ドメイン取得
○ DNS設定(Aレコード登録)
○ SSL証明書取得・配置
○ サーバー作成・初期設定
○ GitLabインストール
○ GitLabコンフィグ設定(gitlab.rb)
4 © 2022 Fujitsu Cloud Technologies Limited
DevOps with GitLab
構築手順は宮原さんのセッションでご紹介
© 2022 Fujitsu Cloud Technologies Limited
5
本セッションでは構築の先の部分をお話しします
DevOpsってなんでしょう?
6 © 2022 Fujitsu Cloud Technologies Limited
そのまえに
DevOpsの歴史背景
10 Deploys Per Day: Dev and ops Cooperation at Flickr
○2009年: Velocity(主催: O’Reilly)のFlickrの発表で言及される
○開発・運用の非協力による負のループをなくし、ビジネス価値を実現
○運用がシステム変更を受け入れない
○開発は共有せずデプロイ
○運用が把握できない事故が起き、変更に拒絶反応が増す
○変更を受け入れられるよう協力するための工夫
○ツール(インフラ自動化、バージョン管理の共有、ビルド・デプロイ自動化...)
○文化(尊重・信頼・失敗への健全な態度、非難をしない)
© 2022 Fujitsu Cloud Technologies Limited
7
参考 https://www.slideshare.net/jallspaw/10-deploys-per-day-dev-and-ops-cooperation-at-flickr
DevOpsのメリット
© 2022 Fujitsu Cloud Technologies Limited
8
参考: DORA(DevOps Research and Assessment)の「State of DevOps Report 2021」
https://services.google.com/fh/files/misc/state-of-devops-2021.pdf
反映頻度
973倍
変更反映の速度
6570倍
トラブル復旧速度
6570倍
変更による失敗率
1/3 以下
DevOpsを高いレベルで実現しているチームと低いレベルのチームの差
例えば: 6ヶ月(180日)に1回の反映 → 1日に5回の反映で900倍
アプリケーションの機能追加やトラブル対応速度に大きな差が生まれる
DevOpsはリリースを早くする
パイプラインによる自動化が強力なポイント
© 2022 Fujitsu Cloud Technologies Limited
9
パイプライン
.gitlab-ci.ymlの内容を、push(変更アップロード)時に実行
© 2022 Fujitsu Cloud Technologies Limited
10
変更内容を
サーバーへアップロード
(push)
検証環境へ
デプロイ
test build
DevOpsサーバー
.gitlab-ci.ymlで定義の
ジョブを発行
Runnerサーバー
ジョブを取得・実行
review
build成果を
アップロード
本番環境へ
デプロイ
deploy
(手動実行)
(手動実行・定時実行も可能)
デモ
© 2022 Fujitsu Cloud Technologies Limited
11
アプリの修正をアップロードすると自動で検証環境に反映
→ すぐにレビューや動作確認ができる
デモ環境 構成図
12
DevOps
with GitLab
グローバルネットワーク
DevOps
サーバー
クラスター
・ブラウザアクセス元 443/tcp
・Hatobaノード(GitLabRunner) 443/tcp
FW INルールで許可
・Hatobaノード(GitLabRunner) 6443/tcp
(Runnerからkubectl実行に使用)
FW INルールで許可
・Hatoba(k8s) c-Large × 1
・GitLab Runner(kubernetes executor)
https://docs.gitlab.com/runner/install/kubernetes.html
GitLab Runnerセットアップ
Kubernetes
Service Hatoba
ノードプール
© 2022 Fujitsu Cloud Technologies Limited
Kubernetes Service Hatoba
マネージド Kubernetes クラスターをニフクラ上に作成し、
インフラ運用の負荷を軽減できるサービスです。
○特長:
○高い可用性を標準で確保
○構築しやすさ
○開発・運用の効率化
© 2022 Fujitsu Cloud Technologies Limited
13
Kubernetes Service Hatoba は Certified
Kubernetes Conformance Program で認
定されており、Kubernetes の
標準的な機能を利用できます。
(k8s未経験者向け) 構成図
14
DevOps
with GitLab
グローバルネットワーク
DevOps
サーバー
CI/CDサーバー
GitLab
Runner
・ブラウザアクセス元 443/tcp
・GitLabRunner 443/tcp
FW INルールで許可
・SSHログイン元 22/tcp
(Runnerセットアップ ログイン時に使用)
FW INルールで許可
・Ubuntu 20.04LTS
・Docker executor
・GitLab Runnerをインストール
https://docs.gitlab.com/runner/install/linux-
repository.html
・GitLabに登録
https://docs.gitlab.com/runner/register/index.html
GitLab Runnerセットアップ
※本デモはk8sベース © 2022 Fujitsu Cloud Technologies Limited
デプロイ自動化の仕組み
© 2022 Fujitsu Cloud Technologies Limited
15
build
build成果
(コンテナイメージ)
アップロード
(コンテナレジストリ)
Runner
デプロイ自動化の仕組み
© 2022 Fujitsu Cloud Technologies Limited
16
review
Runner
(k8s上)
クラスター
ノードプール
デプロイ
(L7LB設定含む)
Kubernetes
Service Hatoba
ノード
(コンテナレジストリ)
http://Aブランチ.xxx.xxx
http://Bブランチ.xxx.xxx
http://Cブランチ.xxx.xxx
k8sのL7LB設定でブランチ毎の
レビュー環境へのアクセスをルーティング
イメージ取得
デプロイ自動化の効果
単一ツール上で修正からレビューまで自動でシームレスに行える
© 2022 Fujitsu Cloud Technologies Limited
17
開発者 レビュワ
修正をアップロード
手動でビルド実行
手動でテスト実行
開発環境ログイン・デプロイ
(共用の開発環境だと順番待ちも)
レビュー依頼
環境情報をレビュワに伝える
コード差分を確認
レビュー環境へ接続
動作確認
レビュー回数×デプロイ工数の工数削減効果
(+ シームレスであることの作業軽減効果も大きい)
修正をアップロード
レビュー依頼
コード差分を確認
動作確認
開発者 レビュワ
パイプラインの作り方
© 2022 Fujitsu Cloud Technologies Limited
18
test
build deploy
(手動実行)
1個ずつ、見本を探しながら。。。
公式テンプレート集が役に立ちます
https://docs.gitlab.com/ee/ci/examples/
公式の記法ガイドも必読
https://docs.gitlab.com/ee/ci/yaml/
GitLab CIエディターも便利
© 2022 Fujitsu Cloud Technologies Limited
19
GitLab 13.8(2021年1月22日)からGUIエディタも搭載
まとめ
○DevOps with GitLabは構築が簡単
○GitLabではgitlab-ci.ymlを書いてパイプラインを作っていく
○まずビルド, テストをしてみる
○次に検証デプロイを作って...
○GitLabのReviewAppsは便利
20 © 2022 Fujitsu Cloud Technologies Limited
DevOps with GitLab をよろしくお願いします。
今なら無償キャンペーン中!(2022/7/31まで
Thank you
© 2022 Fujitsu Cloud Technologies Limited

DevOps with GitLabで始める簡単DevOps

  • 1.
    ニフクラ エンジニア ミートアップ2022-02-22 DevOps with GitLab で始める簡単DevOps 2022/02/22 富士通クラウドテクノロジーズ株式会社 山口 純 © 2022 Fujitsu Cloud Technologies Limited
  • 2.
    自己紹介 2 © 2022Fujitsu Cloud Technologies Limited 自己紹介: ・弊社のDevOpsノウハウを広めていくサービス、DevOps with GitLabの企画・開発を担当 ・弊社全社員で利用しているGitLab環境の運用も担当 山口 純 クラウドプラットフォーム本部 プラットフォームSRE部
  • 3.
    1/25 DevOps withGitLab リリース 先日、DevOps with GitLab を正式リリースしました!(β版から正式化 3 © 2022 Fujitsu Cloud Technologies Limited DevOps with GitLab ニフクラ上でGitLab環境を簡単に構築・利用できるサービス βから大きく変わったところ:定期アップグレード提供 (その他便利機能も今後提供検討中
  • 4.
    構築が簡単 GitLab構築に必要な以下の工程がスキップできる ○ ドメイン取得 ○ DNS設定(Aレコード登録) ○SSL証明書取得・配置 ○ サーバー作成・初期設定 ○ GitLabインストール ○ GitLabコンフィグ設定(gitlab.rb) 4 © 2022 Fujitsu Cloud Technologies Limited DevOps with GitLab
  • 5.
    構築手順は宮原さんのセッションでご紹介 © 2022 FujitsuCloud Technologies Limited 5 本セッションでは構築の先の部分をお話しします
  • 6.
    DevOpsってなんでしょう? 6 © 2022Fujitsu Cloud Technologies Limited そのまえに
  • 7.
    DevOpsの歴史背景 10 Deploys PerDay: Dev and ops Cooperation at Flickr ○2009年: Velocity(主催: O’Reilly)のFlickrの発表で言及される ○開発・運用の非協力による負のループをなくし、ビジネス価値を実現 ○運用がシステム変更を受け入れない ○開発は共有せずデプロイ ○運用が把握できない事故が起き、変更に拒絶反応が増す ○変更を受け入れられるよう協力するための工夫 ○ツール(インフラ自動化、バージョン管理の共有、ビルド・デプロイ自動化...) ○文化(尊重・信頼・失敗への健全な態度、非難をしない) © 2022 Fujitsu Cloud Technologies Limited 7 参考 https://www.slideshare.net/jallspaw/10-deploys-per-day-dev-and-ops-cooperation-at-flickr
  • 8.
    DevOpsのメリット © 2022 FujitsuCloud Technologies Limited 8 参考: DORA(DevOps Research and Assessment)の「State of DevOps Report 2021」 https://services.google.com/fh/files/misc/state-of-devops-2021.pdf 反映頻度 973倍 変更反映の速度 6570倍 トラブル復旧速度 6570倍 変更による失敗率 1/3 以下 DevOpsを高いレベルで実現しているチームと低いレベルのチームの差 例えば: 6ヶ月(180日)に1回の反映 → 1日に5回の反映で900倍 アプリケーションの機能追加やトラブル対応速度に大きな差が生まれる
  • 9.
  • 10.
    パイプライン .gitlab-ci.ymlの内容を、push(変更アップロード)時に実行 © 2022 FujitsuCloud Technologies Limited 10 変更内容を サーバーへアップロード (push) 検証環境へ デプロイ test build DevOpsサーバー .gitlab-ci.ymlで定義の ジョブを発行 Runnerサーバー ジョブを取得・実行 review build成果を アップロード 本番環境へ デプロイ deploy (手動実行) (手動実行・定時実行も可能)
  • 11.
    デモ © 2022 FujitsuCloud Technologies Limited 11 アプリの修正をアップロードすると自動で検証環境に反映 → すぐにレビューや動作確認ができる
  • 12.
    デモ環境 構成図 12 DevOps with GitLab グローバルネットワーク DevOps サーバー クラスター ・ブラウザアクセス元443/tcp ・Hatobaノード(GitLabRunner) 443/tcp FW INルールで許可 ・Hatobaノード(GitLabRunner) 6443/tcp (Runnerからkubectl実行に使用) FW INルールで許可 ・Hatoba(k8s) c-Large × 1 ・GitLab Runner(kubernetes executor) https://docs.gitlab.com/runner/install/kubernetes.html GitLab Runnerセットアップ Kubernetes Service Hatoba ノードプール © 2022 Fujitsu Cloud Technologies Limited
  • 13.
    Kubernetes Service Hatoba マネージドKubernetes クラスターをニフクラ上に作成し、 インフラ運用の負荷を軽減できるサービスです。 ○特長: ○高い可用性を標準で確保 ○構築しやすさ ○開発・運用の効率化 © 2022 Fujitsu Cloud Technologies Limited 13 Kubernetes Service Hatoba は Certified Kubernetes Conformance Program で認 定されており、Kubernetes の 標準的な機能を利用できます。
  • 14.
    (k8s未経験者向け) 構成図 14 DevOps with GitLab グローバルネットワーク DevOps サーバー CI/CDサーバー GitLab Runner ・ブラウザアクセス元443/tcp ・GitLabRunner 443/tcp FW INルールで許可 ・SSHログイン元 22/tcp (Runnerセットアップ ログイン時に使用) FW INルールで許可 ・Ubuntu 20.04LTS ・Docker executor ・GitLab Runnerをインストール https://docs.gitlab.com/runner/install/linux- repository.html ・GitLabに登録 https://docs.gitlab.com/runner/register/index.html GitLab Runnerセットアップ ※本デモはk8sベース © 2022 Fujitsu Cloud Technologies Limited
  • 15.
    デプロイ自動化の仕組み © 2022 FujitsuCloud Technologies Limited 15 build build成果 (コンテナイメージ) アップロード (コンテナレジストリ) Runner
  • 16.
    デプロイ自動化の仕組み © 2022 FujitsuCloud Technologies Limited 16 review Runner (k8s上) クラスター ノードプール デプロイ (L7LB設定含む) Kubernetes Service Hatoba ノード (コンテナレジストリ) http://Aブランチ.xxx.xxx http://Bブランチ.xxx.xxx http://Cブランチ.xxx.xxx k8sのL7LB設定でブランチ毎の レビュー環境へのアクセスをルーティング イメージ取得
  • 17.
    デプロイ自動化の効果 単一ツール上で修正からレビューまで自動でシームレスに行える © 2022 FujitsuCloud Technologies Limited 17 開発者 レビュワ 修正をアップロード 手動でビルド実行 手動でテスト実行 開発環境ログイン・デプロイ (共用の開発環境だと順番待ちも) レビュー依頼 環境情報をレビュワに伝える コード差分を確認 レビュー環境へ接続 動作確認 レビュー回数×デプロイ工数の工数削減効果 (+ シームレスであることの作業軽減効果も大きい) 修正をアップロード レビュー依頼 コード差分を確認 動作確認 開発者 レビュワ
  • 18.
    パイプラインの作り方 © 2022 FujitsuCloud Technologies Limited 18 test build deploy (手動実行) 1個ずつ、見本を探しながら。。。 公式テンプレート集が役に立ちます https://docs.gitlab.com/ee/ci/examples/ 公式の記法ガイドも必読 https://docs.gitlab.com/ee/ci/yaml/
  • 19.
    GitLab CIエディターも便利 © 2022Fujitsu Cloud Technologies Limited 19 GitLab 13.8(2021年1月22日)からGUIエディタも搭載
  • 20.
    まとめ ○DevOps with GitLabは構築が簡単 ○GitLabではgitlab-ci.ymlを書いてパイプラインを作っていく ○まずビルド,テストをしてみる ○次に検証デプロイを作って... ○GitLabのReviewAppsは便利 20 © 2022 Fujitsu Cloud Technologies Limited DevOps with GitLab をよろしくお願いします。 今なら無償キャンペーン中!(2022/7/31まで
  • 21.
    Thank you © 2022Fujitsu Cloud Technologies Limited