CODING継続的デプロイ(CODING Continuous Deployment、CODING-CD)は、ソフトウェアをビルドした後のリリースとデプロイ納入プロセスを管理します。上流Gitリポジトリ、アーティファクトリポジトリにシームレスにアクセスして全自動化されたデプロイを実現し、同時にWebhookなどの外部アクセス機能に対応できるため、各種の開発ツール、運用保守ツールを統合しやすくなります。適切な技術アーキテクチャ、運用保守ツールを使用し、ブルーグリーンデプロイメントやグレースケールリリース(カナリアリリース)、ロールバックリリース、クイックロールバックなどの機能を簡単に実現します。
継続的、制御可能、自動化された方法でソフトウェア製品をサービスクラスターにリリースします。ブルーグリーンデプロイメント、グレーリリース(カナリアリリース)など多くのリリースポリシーをサポートします。
Dockerミラーリング、Warパッケージ、Helmパッケージ、またはソフトウェアのソースコードかを問わず、すべてCODING継続的デプロイで近日リリースされるアーティファクトとして構成されるため、CODING継続的インテグレーションとCODINGアーティファクトリポジトリにシームレスにリンクでき、全フローでのCI/CDを実現します。
リリースフローでは、継続的デプロイを流れ作業ライン化して、多くのマイクロサービスを簡単にアレンジし、様々なクラスター環境(テスト、プレリリース、生産)間のリリースフロー制御、プロセス予備レイアウト、エラーロールバック等の機能に応用できます。
静的なウェブサイトのデプロイは、CODING継続的デプロイの特徴的な機能であり、コードリポジトリのコードまたはプロジェクトファイルを1つの静的サイトにデプロイすることで、カスタムドメイン名、SSL/TLS証明書の自動継続をサポートします。個人ブログや企業の公式サイトなどの簡易サイトの構築にも使用できます。
CODING継続的デプロイは、Tencent CloudのCODING DevOps製品の重要な部分です。将来的にはアプリ、リリースフロー、リリースリスト、審査フローなどのコンテンツと、CODINGのアジャイルなプロジェクト管理、コード管理、継続的インテグレーション、アーティファクトリポジトリを高度に統合して、よりスムーズな使用体験を実現します。
Spinnakerに基づき、CODING継続的デプロイは、下流の運用保守システム(ログシステム、監視システム、CMDBなど)とも統合してDevOpsクローズドループを実現します。
- アプリ:基礎になるリリースユニットです。多くの場合、マイクロサービスのフレームワークのマイクロサービスに対応します。1度のリリースプロセスで、1つのアプリのソフトウェアバージョンをアップグレードします。
- アーティファクト:アーティファクトとは、アプリに属する1つのコンセプトであり、リリースプロセスで対応するソフトウェアやそのバージョンを意味します。よくあるアーティファクトにはwarパッケージ、Dockerミラーリングなどがあります。
- クラスター:クラスターとは、アプリを運用する環境のことです。通常1つのアプリにはテストクラスター、プリ生産クラスター、生産クラスターなどいくつかのクラスターがあります。クラスターには、アプリの運用に必要なアプリインスタンス、Cloud Load Balance、ファイアウォールなどのコンテンツがあります。
- リリースポリシー:アプリがリリースプロセスにおいて、何らかのポリシーによって大規模クラスターのソフトウェアのバージョン変更を制御することを意味します。よくあるものに、グレーポリシー(カナリアポリシー)、ロールバックポリシー、ブルー、グリーンポリシーなどがあります。
- リリースフロー:予め設定した一連のリリース操作のフローテンプレートを指します。1度のリリースで様々なアプリのリリースバージョンの前後のリクエスト順やパラレル、シリアルなどのロジックをコントロールするのによく使用されます。
- リリースリスト:リリースフローの実施プロセスを指し、対応するフローは運用保守タイプのロールによってデプロイコンソールでプリセットされます。開発タイプのロールはプロジェクトで提起されます。リリースリストは審査フローと組み合わされており、手動によるレビュー、監査、リスク制御を簡単に行えます。
- 審査フロー:事前に設定した一連のリリースフローを実行する前の審査操作テンプレートを指します。審査フローは、時間、バージョン、タイプなどの状況を基に、様々なリリースフローと関連付けがフレキシブルに行われます。
継続的デプロイ(Continuous Deployment、略称はCD)とは、ソフトウェア開発プロセスにおいて自動化方式によりソフトウェアを本番環境(production environment)に頻繁かつ継続的にデプロイし、ソフトウェア製品を迅速に納入し使用することです。
現在、Dockerミラーリング、Genericファイルをサポートしており、将来的には例えば、Helmパッケージ、Warパッケージといったより多くのその他のタイプをサポートできるように拡張していきます。
現在はKubernetes、Tencent Cloud CVM、Tencent Cloud TKE、SCF (Serverless Cloud Function)をサポートしており、将来的にはSpinnakerの拡張メカニズムをベースに、より多くのタイプのアプリクラスターをサポートしていきます。
よく使用される動的言語の多くは、コンパイルとビルドのプロセスがないため、アプリのデプロイフローアーティファクト設定で、Gitコードリポジトリを設定できることは、ファイルパス後にリリースすることを意味します。