自動デブオプス

GitLab Auto DevOpsは、ソフトウェアデリバリプロセスをサポートするために連携する設定済みの機能とインテグレーションを集めたものです。

Auto DevOpsはプログラミング言語を検出し、CI/CDテンプレートを使用してデフォルトのパイプラインを作成・実行し、アプリケーションのビルドとテストを行います。その後、デプロイを設定してステージングとプロダクションにアプリをデプロイし、レビューアプリを設定してブランチごとに変更をプレビューできます。

デフォルトの設定を使用してアプリを迅速に出荷し、後で反復してカスタマイズできます。

APIでAuto DevOpsを管理することもできます。

Auto DevOpsの紹介については、Auto DevOps in GitLab 11.0をご覧ください。

Auto DevOps の機能

Auto DevOpsは、DevOpsの各ステージにおける開発をサポートします。

ステージ自動DevOps機能
ビルド自動ビルド
ビルド自動依存関係スキャン
テスト自動テスト
テスト自動ブラウザ・パフォーマンス・テスト
テスト自動コードインテリジェンス
テスト自動コード品質
テスト自動コンテナスキャン
テスト自動車免許コンプライアンス
デプロイアプリの自動レビュー
デプロイ自動デプロイ
Secure自動動的アプリケーション・セキュリティ・テスト(DAST)
Secure自動静的アプリケーションセキュリティテスト(SAST)
Secure自動シークレット検出

アプリケーションプラットフォームやPaaSとの比較

Auto DevOpsは、アプリケーション・プラットフォームやPlatform as a Service (PaaS)によく含まれる機能を提供します。

HerokuにインスパイアされたAuto DevOpsは、複数の点でHerokuを超えています:

  • Auto DevOpsはあらゆるKubernetesクラスターで動作します。
  • 追加費用はかかりません。
  • クラスターはご自身でホスティングされたものでも、公開クラウド上のものでもご利用いただけます。
  • Auto DevOpsは段階的なステップアップを提供します。カスタマイズが必要な場合は、テンプレートを変更することから始め、そこから進化させていきます。

Auto DevOpsを始める

始めるには、AutoDevOpsを有効にするだけです。これだけでAuto DevOpsパイプラインを実行し、アプリケーションをビルドしてテストすることができます。

アプリのビルド、テスト、デプロイを行いたい場合:

  1. デプロイの要件を表示します。
  2. Auto DevOpsを有効にします。
  3. アプリをクラウドプロバイダにデプロイします。

Auto DevOpsの有効化または無効化

インスタンスのタイプに応じて、以下のレベルでAuto DevOpsを有効または無効にすることができます:

インスタンスタイププロジェクトグループ インスタンス(管理エリア)
GitLab SaaS {チェックサークル}はい {チェックサークル}はい {点線円}いいえ
GitLab 自己管理 {チェックサークル}はい {チェックサークル}はい {チェックサークル}はい

Auto DevOpsを有効にする前に、デプロイの準備を検討してください。そうしないと、Auto DevOpsはアプリをビルドしてテストすることはできますが、デプロイすることはできません。

プロジェクト・レベルで

個々のプロジェクトでAuto DevOpsを使用するには、プロジェクト単位で有効にします。より多くのプロジェクトで使用する場合は、グループまたはインスタンスで有効にできます。これにより、プロジェクトごとに有効にする手間を省くことができます。

前提条件:

  • 少なくともプロジェクトのメンテナーのロールを持っている必要があります。
  • プロジェクトに.gitlab-ci.yml が存在しないことを確認してください。存在する場合、CI/CD設定がAuto DevOpsパイプラインよりも優先されます。

プロジェクトの Auto DevOps を有効にするには、以下の手順に従います:

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. Settings > CI/CDを選択します。
  3. Auto DevOpsを展開します。
  4. Default to Auto DevOps pipelineチェックボックスを選択します。
  5. オプションですが、推奨します。ベースドメインを追加します。
  6. オプションですが、推奨します。デプロイ戦略を選択します。
  7. 変更を保存を選択します。

GitLabはデフォルトブランチでAuto DevOpsパイプラインをトリガーします。

これを無効にするには、同じ手順でDefault to Auto DevOps pipelineチェックボックスをオフにします。

グループレベルで

GitLab 11.10で導入されました

グループレベルでAuto DevOpsを有効にすると、そのグループ内のサブグループとプロジェクトに設定が継承されます。各サブグループやプロジェクトでAuto DevOpsを有効にするのではなく、グループで有効にすることで時間を節約することができます。

グループで有効にした場合でも、Auto DevOps を使用したくないサブグループやプロジェクトでは、Auto DevOps を無効にすることができます。

前提条件:

  • グループのオーナーロールを持っている必要があります。

グループの Auto DevOps を有効にするには、以下の手順に従います:

  1. 左のサイドバーで、Search(検索)を選択するか、Go to(移動)を選択してグループを探します。
  2. Settings > CI/CDを選択します。
  3. Auto DevOpsを展開します。
  4. Default to Auto DevOps pipelineチェックボックスを選択します。
  5. 変更を保存を選択します。

グループレベルで Auto DevOps を無効にするには、同じ手順に従って、[Default to Auto DevOps pipeline] チェックボックスをオフにします。

グループレベルでAuto DevOpsを有効にした後、そのグループに属するプロジェクトに対してAuto DevOpsパイプラインをトリガーすることができます:

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. プロジェクトに.gitlab-ci.yml ファイルが含まれていないことを確認してください。
  3. Build > Pipelinesを選択します。
  4. Auto DevOpsパイプラインをトリガーするには、パイプラインの実行を選択します。

インスタンスレベルで

すべてのプロジェクトでAuto DevOpsをデフォルトで有効にするには、インスタンスレベルで有効にします。AutoDevOpsを実行したくないグループやプロジェクトごとにAutoDevOpsを無効にすることもできます。

インスタンスでAuto DevOpsを無効にしても、グループオーナーとプロジェクトメンテナーは、グループとプロジェクトレベルでAuto DevOpsを有効にすることができます。

前提条件:

  • インスタンスの管理者である必要があります。

インスタンスでAuto DevOpsを有効にするには:

  1. 左のサイドバーで、Search を選択するか、次のページに進んでください。
  2. Admin Areaを選択します。
  3. Settings > CI/CDを選択します。
  4. Auto DevOpsを展開します。
  5. Default to Auto DevOps pipelineチェックボックスを選択します。
  6. オプション。Auto DevOpsベースドメインを追加します。
  7. 変更を保存を選択します。

有効にすると、Auto DevOpsはすべてのプロジェクトでパイプラインの実行を試みます。特定のプロジェクトでパイプラインが失敗すると、それ自体が無効になります。GitLab管理者はAuto DevOps設定でこれを変更できます。

CI/CD設定ファイルが存在する場合、それは変更されず、Auto DevOpsはそれに影響を与えません。

インスタンスレベルでAuto DevOpsを無効にするには、同じプロセスに従い、Default to Auto DevOps pipelineチェックボックスをオフにします。

アプリをクラウドプロバイダにデプロイします。

GitLabアップデート時にAuto DevOpsの依存関係をアップグレード

GitLabをアップデートする際には、新しいGitLabのバージョンに合わせてAuto DevOpsの依存関係をアップグレードする必要があるかもしれません:

非公開レジストリのサポート

Auto DevOps で非公開コンテナレジストリを使用できる保証はありません。

代わりに、GitLabコンテナ・レジストリをAuto DevOpsで使用することで、設定を簡素化し、予期せぬ問題を防ぐことができます。

プロキシの後ろにアプリケーションをインストール

GitLab と Helm のインテグレーションは、プロキシ経由でのアプリケーションのインストールをサポートしていません。

そうしたい場合は、実行時にインストールポッドにプロキシ設定を注入する必要があります。

トラブルシューティング

Auto DevOpsのトラブルシューティングをご覧ください。