[51CTO.com クイック翻訳] ご存知のとおり、DevOps によってもたらされた大きな変化により、コンテナにより開発チームはこれまでにないスピードでプログラム コードを配信できるようになりました。もちろん、コンテナの構築、パッケージ化、デプロイのプロセスを実行する必要があります。これがコンテナ パイプラインを使用する理由です。
現在、コンテナ パイプラインにはさまざまなオプションがありますが、どれがあなたとあなたのプロジェクトに適しているでしょうか?この記事では、6 つのコンテナ パイプラインを検討し、その構成、利点、制限、価格について説明して比較します。 コンテナパイプラインとは何ですか? まず、コンテナ パイプラインが実際に何であるかについて説明します。パイプラインは、ソフトウェア開発プロセスのさまざまな段階、特に継続的インテグレーションと継続的デリバリー (CI/CD) 段階の自動化に役立ちます。コンテナ パイプラインは、初期イメージの構築から本番環境への展開まで、コンテナ プロセスのすべての段階を自動化します。つまり、コンテナ パイプライン全体は通常、次の 3 つのステージで構成されます。
現在、各種コンテナ パイプライン ツールによって違いはありますが、通常は上記の 2 ~ 3 つのステージが含まれます。以下では、最も一般的な 6 種類のコンテナ パイプラインについて説明します。 1. ヘロクHeroku は、Docker を活用した完全なコンテナ パイプラインです。追加のハードウェアを構成したり、さまざまなサービス プロバイダーを活用したりすることなく、同じプラットフォーム上でさまざまなコンテナーを構築、テスト、検証、およびデプロイできます。 構成 Heroku アプリケーションは、heroku.yml マニフェストを使用して構成されます。マニフェストは、コンテナの構築とデプロイに必要な手順を定義します。以下は、カスタム Dockerfile を使用したアプリケーションのマニフェストの例です。
Git を使用してコンテナをデプロイする必要がある場合 (https://devcenter.heroku.com/articles/git)、次のコマンドを実行します。
Heroku ではパイプラインがサポートされているため、継続的デリバリー ワークフローのさまざまな段階を反映するために、コンテナを複数の異なる環境にデプロイできます。たとえば、パイプラインを使用して、本番環境にデプロイする前にステージング環境で変更をテストできます。 長所と限界 Heroku は非常に使いやすく、パイプライン全体に必要なのは 1 つの YAML ファイルだけです。完全に管理されているため、変更のテストと展開のための複数の環境が提供されます。変更が正しく展開されなかった場合は、変更をロールバックすることもできます。 もちろん、Heroku のすべての機能が Docker デプロイメントで利用できるわけではありません。たとえば、Heroku CI を使用してアプリケーションのテスト スイートを実行することはできません。これは、イメージをビルドするときにテスト スイートを実行するか、マルチステージ ビルドを使用することを意味します。また、パイプラインのプロモーションを使用して、コンテナーをパイプラインの 1 つのステージから次のステージに昇格させることはできません。代わりに、コンテナをターゲット ステージに再デプロイする必要があります。 価格 Heroku では、毎月 1,000 回の無料ランタイムを備えた Web dyno とワーカー dyno を含む無料プランを提供しています。有料プランは、実行時間あたり 1 ダイノあたり 7 ドルから始まり、大容量の dyno やスケーラビリティの向上などの機能が含まれます。 Heroku の価格設定の詳細については、 を参照してください。 私の意見 Heroku は、コンテナ パイプライン向けの非常にシンプルでコスト効率の高いソリューションです。完全に管理された環境を提供するため、CI/CD プロセスを完全に制御できます。無料版と標準版の両方が提供されているので、試してみる価値があります。 2. Azure DevOpsAzure DevOps は、プロジェクト管理、ソース コード管理 (SCM)、CI/CD のための Microsoft のオールインワン サービスです。 DevOps ライフサイクルのほぼすべての段階を制御できるだけでなく、コンテナ固有の高度な機能も多数提供されます。これらには、プライベート コンテナー レジストリや、Azure Kubernetes Service (AKS) との統合が含まれます。同時に、Azure Pipelines はプラットフォームベースの CI/CD サービスを提供します。 構成 Web ベースのユーザー インターフェイスを使用して、Azure DevOps 全体を管理できます。もちろん、チェックインされたアプリケーション ソース コードと YAML ベースのマニフェストを使用して Azure Pipelines を構成することもできます。 Web UI を使用すると、デプロイメント環境、リリース、成果物を管理および追跡できます。 長所と限界 チームが Azure を使用している場合、Azure DevOps は既存のワークフローの自然な拡張となります。ホスト型とオンプレミス型の両方のインストール、および Azure App Service、Kubernetes、Azure Functions を含む複数の Azure ターゲットへのデプロイをサポートします。 ただし、Azure DevOps は Azure を含む他のサービスと簡単に統合できません。統合を構成するときに、Azure Container Registry などのサービスから値をコピーして貼り付ける必要がある場合もあります。このタイプのセットアップは面倒で非効率的です。 価格 Azure Pipelines では、1 か月あたり 1,800 分の無料同時 CI/CD ジョブを含む無料レベルが提供されます。その他の「ジョブ」の料金は 40 ドルですが、ホストされた成果物 (画像など) の料金は 1 GB あたり月額 2 ドルです。もちろん、Azure Boards などの付加価値サービスも月額料金が発生します。 Azure DevOps Services の価格の詳細については、 を参照してください。 私の意見 Azure DevOps は、ワンストップの DevOps 管理ソリューションを必要とするチームや、既に Azure を使用しているチームに最適です。開発ライフサイクルを 1 か所に集中させることで、開発ライフサイクルが大幅に簡素化されます。ただし、基本的なコンテナ パイプラインだけを必要とするチームにとっては、複雑すぎる可能性があります。 3. GitLab CI/CDGitLab はオープンソースの SCM から生まれましたが、すぐに完全な DevOps 管理ソリューションへと発展しました。 Azure DevOps と同様に、プロジェクト管理、プライベート コンテナー レジストリ、Kubernetes を含むキュレーションされた環境などの機能を提供します。 構成 GitLab CI/CD は GitLab Runner によって駆動され、CI/CD パイプラインの各ステップを自己完結型の環境で実行できます。これは、gitlab-ci.yml マニフェストを介して構成されます。マニフェストは、条件付きロジックや他のマニフェストのインポートを含む高度な構成をサポートします。 あるいは、Auto DevOps を使用して、構成なしでパイプライン全体を自動化することもできます。 Herokuish を使用すると、GitLab は Heroku ビルドパックを使用し、ソース コード (Dockerfile など) に基づいてアプリケーションのビルド方法を自動的に決定します。 Auto DevOps は、ユニット テストを自動的に実行し、コード品質分析を実行し、イメージをスキャンしてセキュリティの問題を検出できます。 GitLab はデプロイメントに dpl ツールを使用します。このツールは、クラウド プラットフォームや Kubernetes クラスターなど、さまざまなプロバイダーをサポートしています。 長所と限界 GitLab は非常に柔軟なパイプラインを提供しており、自分で構成することも、組み込みツールを使用して完全に自動化することもできます。 YAML 構成により、プロジェクトの依存関係の作成や、異なるプロジェクトからの複数のパイプラインの結合など、より幅広いプロジェクト構造とステップが可能になります。 GitLab は Herokuish や dpl などのオープンソース ツールを使用しているため、幅広いプロジェクト タイプ、言語、デプロイメント ターゲットをサポートしています。 GitLab は既存の環境にランナーとアーティファクトをデプロイできますが、それらの環境を GitLab 自体で構成したり維持したりすることはできません (もちろん、Google Kubernetes Engine と Amazon Elastic Kubernetes Service は除きます)。また、Azure Pipelines を使用するのと同じくらい直感的なグラフィカル パイプライン構成ツールもありません。 価格 GitLab はオープン コア モデルを採用しており、オープン ソース ベース バージョンと追加機能を備えた有料のエンタープライズ エディションを提供しています。有料プランの価格は、ユーザーあたり月額 4 ドルから 99 ドルです。価格設定の仕組みはユーザー数に基づいて決まります。 CI パイプラインの実行と特定の機能へのアクセスに、毎月分数が割り当てられます。もちろん、すべてのプランには無制限のコード リポジトリ、プロジェクト計画ツール、および 1 か月あたり 2,000 分の無料パイプラインが含まれています。 私の意見 GitLab は強力な CI/CD ツールです。オープンソース版は多くの商用ツールと同様に機能が豊富で、ホスティングもサポートしています。ただし、別のデプロイメント環境を維持する必要があります。 4. AWS エラスティック ビーンズトークElastic Beanstalk は単純なパイプラインというよりは、AWS リソースをオーケストレーションするためのツールです。 ECS コンテナ、S3 バケット、EC2 インスタンスなどのリソースのセットアップ、負荷分散、スケーリング、監視を自動化します。特定のニーズに基づいて、AWS 内で完全にカスタマイズされたパイプラインを作成できます。 構成 Beanstalk 構成では、コンテナをデプロイする方法と、コンテナがデプロイされる環境について説明します。これはまさに Dockerrun.aws.json ファイルで定義されているものです。さらに、Beanstalk では次のような独自の概念も導入されています。
長所と限界 Beanstalk は非常に強力なツールです。 Docker だけでなく AWS でも動作します。自動スケーリング、ローリングアップデート、監視、リリース管理などのサービスを提供し、ユーザーがリソースに直接アクセスして管理できるようにします。 ただし、Beanstalk は通常のパイプラインよりも複雑です。単一のコンテナ環境を使用しており、コンテナのバージョンを環境に密接に結合できる場合を除き、イメージ リポジトリでさまざまな Docker イメージを事前にビルドしてホストする必要があります。さらに、関連する更新は Beanstalk CLI を通じてのみトリガーできます。したがって、コンテナに障害が発生した場合は、Beanstalk コンソールを使用して手動で解決する必要があります。 価格 Beanstalk 自体は無料ですが、提供される AWS コンポーネントには通常料金がかかります。たとえば、ECS ノードと ELB ロードバランサーを使用して環境を構成する場合、ノードとロードバランサーの両方が通常の構成に従って課金されます。 私の意見 Beanstalk は、利用可能な多数の AWS サービスを利用して、すべてのサービスを効率的に管理する方法を提供します。オーケストレーション ツールとしては非常に強力ですが、コンテナ パイプラインとしては構成が複雑すぎます。 5. Google クラウドビルドCloud Build は、Google Cloud Platform (GCP) 上に構築されたコンテナベースの CI サービスです。ソースコードまたは Dockerfile から直接イメージを構築し、GKE、Cloud Run、その他の GCP サービスに直接デプロイできます。 構成 Cloud Build は、cloudbuild.yaml または JSON ファイルを介して構成されます。イメージを構築するプロセスと、結果のイメージを保存する場所を定義できます。たとえば、次のような簡単なコマンドを使用して、Docker イメージをビルドし、Google Container Storage にプッシュできます。
Cloud Build は、ソースコードの変更に基づいてビルド プロセスを自動的に開始するトリガーもサポートしています。 長所と限界 Cloud Build は、GKE、App Engine、Cloud Run などの他の GCP サービスとうまく統合されます。ビルド ホストのサイズと容量を直接制御できるほか、イメージ レイヤーをキャッシュしてビルドを高速化することもできます。ビルドの検証またはデバッグが完了したら、ローカル ビルドを実行して Cloud Run にプッシュすることもできます。 Cloud Build は GCP を中心に構築されているため、サポートされるデプロイメント ターゲットの数は限られています。コンテナを他のプラットフォームにデプロイする場合は、追加の手順が必要です。さらに、GitLab と同様に、Cloud Build では視覚的なパイプライン構成ツールは提供されていません。 価格 価格は主にビルドマシンのサイズとビルドにかかる時間に基づいて決まります。標準の n1-standard-1 インスタンスのコストはビルド 1 分あたり 0.003 ドルなので、n1-highcpu-32 インスタンスでは最大 0.064 ドルになります。 n1-standard-1 インスタンスでは、1 日あたり 120 分の無料ビルド時間が提供されます。 私の意見 Cloud Build の主な利点は、シンプル、高速、習得が簡単、安価、そして他の GCP サービスと適切に統合されていることです。すでにデプロイ環境をお持ちの場合や、GCP をご利用の場合は、Cloud Build を試してみることをお勧めします。 6. ジェンキンスXJenkins は最も人気のある CI/CD ツールの 1 つですが、Jenkins X は包括的な Kubernetes 統合を追加することでさらに一歩前進しています。 Jenkins X は Kubernetes にデプロイできるだけでなく、Kubernetes クラスターを構成および管理することもできます。 構成 Jenkins X Pipelines は、Kubernetes 上で CI/CD パイプラインを実行するのに役立つ Tekton Pipelines 上に構築されています。パイプラインを構成するには、jenkins-x.yml ファイルを使用できます。 Jenkins X は、ソース コードをイメージにパッケージ化して Kubernetes にデプロイするのに役立つビルドパックも提供します。 長所と限界 Jenkins X は、Jenkins と Kubernetes という 2 つの人気のある既存のプロジェクトを活用して、スケーラブルな CI/CD プラットフォームを作成します。 CI/CD パイプライン全体を自動化し、プレビュー環境とパイプラインのアップグレードをサポートします。 Jenkins が含まれているため、Jenkins 開発者のコミュニティ全体にアクセスできるようになります。 ただし、Jenkins X には Kubernetes が必要なので、クラスター構成などの問題が伴うことは留意しておく必要があります。もちろん、コマンドライン ツールを使用すると、このプロセスの大部分を自動化できます。 価格 Jenkins X はオープンソースです。 私の意見 Jenkins を使用しているチームにとって、Jenkins X は自然な進化です。厳しい制限と要件はいくつかありますが、Kubernetes を使用するチームの場合、既存のインフラストラクチャとネイティブに統合できます。 要約する
これらのサービスのほとんどはオープンソースであるか、無料トライアルを提供しているため、試してみて、ワークフローに最適なコンテナ パイプラインを見つけることができます。 コンテナ パイプラインの比較 (Michael Bogan 著) [51CTOによる翻訳。パートナーサイトに転載する場合は、元の翻訳者と出典を51CTO.comとして明記してください。 |
<<: 2020年のクラウドコンピューティング産業チェーンの現状分析
>>: 東南アジアにおけるクラウドコンピューティングの発展方向は何ですか?
単語をすばやく正確に分割する方法は、SEO のためのタグ集約と情報関連付けを抽出するのに役立ちます。...
webhostingbuzz は、仮想ホスト\VPS などの割引コードを公開しています: 割引コード...
1年も経たないうちに、Facebookの創設者マーク・ザッカーバーグ氏はWeb 2.0サミットで、F...
[[435236]]マルチクラウド戦略の実装は、それを採用するかどうかを決定するのと同じくらい難しい...
調査会社ガートナーによれば、2020年までに、依然として「クラウドなし」のポリシーを持つ企業は、現在...
アリババクラウドは7月11日、データベースバックアップサービス「DBS」が正式に商用利用を開始したと...
[[382903]] [編集者注] 2018 年 1 月、OpenAI の公式ブログでは、Kuber...
黄家居が亡くなって20年が経ちました。彼の傑作をいくつか皆さんに紹介したいと思います。ファンの皆さん...
1. 外部リンクの品質が低い一部のウェブサイトでは外部リンクを大量に掲載していますが、その品質は非常...
床を掃いたり、箱を動かしたり、ダンスやパルクールをしたりと、あらゆる種類のかっこいいロボットが人々の...
Alpharacks、年末プロモーションが始まりました。256Mメモリ、512M、1G、2Gの特別価...
今年のChinaJoyでは、私たちがよく知っているシーンが多く上演されたが、「一見微妙だが、実は大き...
クラウド コンピューティングは、テクノロジーの世界に変革をもたらし、急速に成長し続けています。 20...
私は長年SEOをやっていますが、ウェブサイトの順位を保証することは決してありません。検索エンジンのト...
Dangdang.comがTmallへの参入を発表(写真提供:テンセントテクノロジー) Dangda...