Google Cloud Platform

ゲスト投稿 : Codefresh と Google Cloud による組み込みレジストリとワンクリック デプロイ

編集部注 : 今回は、Docker ネイティブな継続的インテグレーション / 継続的デリバリ(CI/CD)プラットフォームを提供している Codefresh の投稿をお届けします。Kubernetes、Google Container Registry と統合された Codefresh を使用すれば、クラウド ネイティブなアプリケーションのビルド、テスト、Container Engine 上の Kubernetes を含む Google Cloud へのデプロイが簡単になります。

従来のパイプラインは設計時にコンテナやクラウド サービスのことを考慮していませんでした。そこで私たち Codefresh は、Docker とクラウド サービスを中心に据えて CI/CD プラットフォームを構築し、パイプライン全体を単純化してウェブ アプリケーションのビルド、テスト、およびデプロイを容易にしました。

私たちは先ごろ Google Cloud とパートナー契約を結び、このプラットフォームに 2 つの重要な機能を追加しました。組み込みレジストリ(Google 独自の Container Registry を利用)と、Google Container Engine へのワンクリックデプロイです。

327587.png

組み込みレジストリのメリット

Codefresh の組み込みレジストリは、本番レジストリに取って代わるものではなく、開発やテストで使用するデベロッパー向けのレジストリです。本番レジストリは本番グレードのイメージを提供する唯一の供給源ですが、Codefresh の組み込みレジストリは開発のために必要なイメージを管理します。

このアプローチには他にも大きなメリットがいくつかあります。

  • テスト フローに組み込まれているため、イメージの品質管理が向上します。
  • ビルド アシスト イメージ(たとえば、Java や他のコンパイル言語で使われるもの)は、開発スペースにきちんと構造化されています。
  • Codefresh ではイメージにメタデータ(たとえば、テスト結果、コミット情報、イメージの SHA、ログ、イシュー ID など)を付加できるので、デベロッパー向けのサンドボックス的なレジストリが作れます。
  • 組み込みレジストリはビルド マシンに「近い」ので、ビルド スピードが向上します。
組み込みレジストリを利用すれば、デベロッパーは、タグや拡張メタデータを使ってビルド フローからイメージを呼び出せます。たとえば、あるサービスを別のサービスのさまざまなバージョンと組み合わせたときにどのように動作するかをテストしたい場合は、Git コミット ID(イメージの SHA)でイメージを参照することができます。

なお、組み込みレジストリの試用にはベータ テストへの参加が必要になります。

Kubernetes へのワンクリック デプロイ

私たちは Codefresh の本番環境を Container Engine 上の Kubernetes で管理しています。Codefresh のビルド、テスト、デプロイには Codefresh 自体を使っているので、私たちは Kubernetes への簡単なデプロイ方法を確保する必要がありました。

そこで、Codefresh に Kubernetes デプロイ イメージを追加しました。これは、UI と Codefresh YAML の両方で利用できます。デプロイ イメージには、認証情報を渡すだけで新イメージをプッシュするスクリプトが含まれています。

これにより、デプロイを容易に自動化できるようになります。ブランチの承認と組み合わせると、権限を持つ人は誰でもコードを承認して簡単に本番環境にプッシュできます。

Codefresh でこの機能を試すには、パイプライン エディタでデプロイ スクリプトを選択し、必要なビルド パラメータを追加します。詳細は、Kubernetes へのデプロイに関するドキュメントを参照してください。
j8OujDgSZS_aD_0TVEgxUag7CXLx1D1w5d5zJ6usHr2b0xiM1wE6xusVcMfvUKXi25z3eMzfRjKLsSDNYLcA83WMveHqU0IC5hrMmTi0y0yK1h2PjrbIs_BwsNq9SEZZKT3p3vCM8o2f.PNG

もしくは、Codefresh.yml に次のコードを追加します。

  deploy-to-kubernetes-staging:
    image: codefreshio/kubernetes-deployer:master
    tag: latest
    working-directory: ${{initial-clone}}
commands:
      - /deploy/bin/deploy.sh ./root
    environment:
      - ENVIRONMENT=${{ENVIRONMENT}}
      - KUBERNETES_USER=${{KUBERNETES_USER}}
      - KUBERNETES_PASSWORD=${{KUBERNETES_PASSWORD}}
      - KUBERNETES_SERVER=${{KUBERNETES_SERVER}}
      - DOCKER_IMAGE_TAG=${{CF_REVISION}}

Container Engine への移行

Container Engine やその他の Kubernetes 環境に移行する場合は、Codefresh デプロイ イメージがすべてを単純化してくれます。Kubernetes へのプッシュはクラウドに依存しません。あなたの Kubernetes デプロイを指定するだけです。

Codefresh と Docker 用 CI/CD

Codefresh は、オープンソースおよび商用ソフトウェアで使われている Docker 用 CI ツールです。個々の Docker イメージのビルドおよびテスト インフラストラクチャを自動的にデプロイし、スケーリングします。また、すべてのコード ブランチのために共有可能な環境をデプロイします。

ぜひ https://codefresh.io/ をご覧になり、組み込みレジストリのベータ テストにご参加ください。

* この投稿は米国時間 4 月 19 日、Codefresh の CEO and Co-founder である Raziel Tabib によって投稿されたもの(投稿はこちら)の抄訳です。

- By Raziel Tabib, CEO and Co-founder, Codefresh