fbpx

[和訳] Docker EEとGitLabによるCI/CD統合: ウェビナーでのQ&A #docker #gitlab

この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。

本稿は Integrating CI/CD with Docker Enterprise Edition - Demo Webinar Recap (2018/02/07) の和訳です。

モダンなソフトウェア開発の実践において鍵を握るのは、CI (継続的インテグレーション) およびCD (継続的デリバリ)の実践手段です。 Docker Enterprise Edition (Docker EE) はこのDevOpsの考え方を具現化するものです。お好みのツールと既存の手法をDocke EEに統合し、イノベーションに欠かせない品質の向上とスピードアップを手に入れることができます。

Docker EEへのCI/CDの統合 に関する最近のウェビナーで、CIツールの選択肢としてGitLabを利用している開発者の事例をご紹介しました。ウェビナーに参加できなかった方は、次の動画でデモをご覧いただけます:

ウェビナーで多かった質問をご紹介します:

Q: デモで紹介している本番環境へのアプリケーションのデプロイプロセスを説明してください。

A: この事例は イメージプロモーション と呼ばれる機能を活用したものです。これは承認されたイメージを自動で“prod”(訳注:本番用)リポジトリにプッシュするための機能です。セキュリティポリシーでは“dev”(訳注:開発用)リポジトリ内で特定のラベル付けをされたイメージを検索するように定義していました。イメージがセキュリティスキャンによる脆弱性の閾値よりも小さい場合は、“prod” リポジトリに自動的に移動し、“latest”(訳注:最新)とラベル付けします。イメージが“latest”とラベル付けされる更新によって、サービスの更新機能が古い本番環境のウェブサイトのコンテナを、現在の本番環境に対して有効な修正済みコードを持つ新しいバージョンのイメージと置き換えます。

Q: デモの最後の手順は自動化できますか? それとも本番環境へプッシュする前にほかのチェックポイントを追加する必要がありますか?

A: はい。これはとても柔軟な機能なので、ご自身のCI手順に合わせて独自にカスタマイズし設定いただけます。

Q: デモではイメージが本番環境に移動したときに“latest”とタグ付けしていましたが、それがベストプラクティスですか?簡単に上書きされてしまいませんか?

A: デモではシンプルな例をお見せしましたが、ユーザの皆さまは、Docker EEの内蔵機能でセキュリティチェックポイントを追加できますので、独自のセキュリティポリシーを設定いただけます。例えば管理者は特定のリポジトリを“イミュータブル”(訳注:不変,変更不可)と設定することもできます。つまり、イメージが“latest”タグとともに“イミュータブル”と設定したリポジトリにプッシュされれば、そのタグは別のイメージによって上書きされることはありません。また、バージョンナンバーを追加し、ラベルに日付を振るなどの自動イメージプロモーションの活用も可能です。そしてイメージ署名の活用によって、未署名のイメージを本番環境内で実行することを防げます。

Q: DockerにGitLabを統合するために、GitLab RunnerはDTR(Docker Trusted Registry)のアカウントを持っている必要がありますか? またそのイメージを署名するのは誰になりますか?

A: CIツールのためにアカウントを作成する代わりに、デモではClient Bundleを使用しました。つまり、ユーザネームとパスワードを使ってDTRにアクセスするdocker loginコマンドの代わりに、GitLab Runnerにクライアント証明書を添付し、それをDocker EEへの認証に使用するという方法をとりました。このTLS暗号化による認証モデルは、CIツールのDTRおよびUCP(Universal Control Plane)両方へのアクセスを可能にします。Client BundleはUCP内で簡単に作成および破棄が可能です。

Q: イメージ署名機能についてですが、異なる複数のチームが署名キーを取得することは可能でしょうか?

A: はい。Docker EEはロールベースのアクセス制御(RBAC)の一部として、LDAPや Active Directoryとの統合をサポートしています。ユーザもチームも組織も、CI/CDのワークフローのなかでイメージに署名できます。そして管理者は、署名のあるイメージのみが実行可能となるようにDocker EEに設定することができます。

Docker EEをもっと知りたい方は:

新規CTA