Alibaba Cloud Compute Nest は、クラウドでのソフトウェアデプロイを簡素化するワンストッププラットフォームです。Git リポジトリを Compute Nest サービスの仕様に準拠するように設定することで、ソフトウェアを自動的にクラウドにデプロイできます。Compute Nest は、さまざまなアーキテクチャとデプロイタイプに対応する公式テンプレートを提供しています。これらのテンプレートは、Compute Nest の公式リポジトリからコピーしてカスタマイズできます。その後、Compute Nest コンソールを使用してサービスを作成および公開し、ソフトウェアをクラウドにデプロイします。このトピックでは、Compute Nest の仕様に準拠した Git リポジトリの作成方法について説明します。
Git リポジトリの設定
ソフトウェア開発者は、多くの場合、GitHub、GitLab、Gitee などのプラットフォームで独自のリポジトリを管理しています。通常、ソフトウェアをデプロイするには、手動でサーバーをセットアップし、環境を構築する必要があります。Alibaba Cloud Compute Nest は、クラウドソフトウェアデプロイのためのワンストッププラットフォームを提供します。リポジトリを Compute Nest サービスの仕様に準拠するように設定することで、ソフトウェアをクラウドベースのアプリケーションとして自動的にクラウドにデプロイできます。リポジトリがない場合は、Compute Nest の公式リポジトリからテンプレートをアカウントにコピーできます。
推奨される公式リポジトリ
2024 年 2 月 28 日現在、Compute Nest は 8 つのプライベートサービステンプレートと 5 つのフルマネージドサービステンプレートを提供しています。これらのテンプレートは、さまざまなアーキテクチャシナリオをカバーしています。
サービスタイプ | テンプレート名 | アーキテクチャ | デプロイタイプ | GitHub アドレス |
プライベートサービス | ECS ベーシック版向け Spring Boot パッケージ | 単一 ECS | パッケージ (ファイルデプロイメント) | https://github.com/aliyun-computenest/springboot-ecs-package-demo.git |
ECS ベーシック版向け Spring Boot イメージ | 単一 ECS | ECS イメージデプロイメント | https://github.com/aliyun-computenest/springboot-ecs-image-demo.git | |
Function Compute 向け kodbox | FC サービス | なし | ||
WordPress | ベーシック版: ECS + RDS 高可用性版: 複数 ECS インスタンス + RDS + SLB + EIP | パッケージ (ファイルデプロイメント) | https://github.com/aliyun-computenest/wordpress-ecs-demo.git | |
Auto Scaling を使用した ECS 向け Spring Boot パッケージ | ECS + SLB + EIP + ESS | パッケージ (ファイルデプロイメント) | https://github.com/aliyun-computenest/springboot-scaling-ecs-demo.git | |
ACK コンテナー向け Spring Boot | ACK + SLB + EIP | コンテナーイメージ | https://github.com/aliyun-computenest/springboot-ack-docker-demo.git | |
ECS コンテナー向け Spring Boot | 単一 ECS | コンテナーイメージ | https://github.com/aliyun-computenest/springboot-ecs-docker-demo.git | |
ACK Helm 向け Spring Boot | ACK + SLB + EIP | コンテナーイメージ、Helm Chart デプロイメント | https://github.com/aliyun-computenest/springboot-ack-helm-demo.git | |
シングルテナントフルマネージドサービス | Spring Boot シングルテナントマネージド版 | ECS + RDS + EIP | パッケージ (ファイルデプロイメント) | https://github.com/aliyun-computenest/springboot-managed-demo.git |
MySQL 向け ECS + SLB アーキテクチャ (PrivateLink をサポート) | ECS + SLB | パッケージ (ファイルデプロイメント) | https://github.com/aliyun-computenest/mysql-managed-demo.git | |
ECS 向け WordPress シングルテナントマネージド版 | ECS + ローカル MySQL + EIP | パッケージ (ファイルデプロイメント) | https://github.com/aliyun-computenest/wordpress-managed-demo.git | |
ACK 向け WordPress マルチテナントマネージド版 | ACK + ローカル MySQL | デプロイメントアーティファクトなし。Pod は YAML を使用してデプロイされます。 | https://github.com/aliyun-computenest/wordpress-managed-ack-demo.git | |
ACK 向け MariaDB マルチテナントマネージド版 | ACK + ローカル MariaDB | デプロイメントアーティファクトなし。Pod は YAML を使用してデプロイされます。 | https://github.com/aliyun-computenest/mariadb-managed-ack-demo.git |
リポジトリのディレクトリとファイルの説明
このセクションでは、ECS リポジトリ向けの WordPress シングルテナントマネージド版を例として、リポジトリ内のディレクトリとファイルについて説明します。ソフトウェアを正しく埋め込むことができるように、各ファイルの機能を確認してください。
wordpress-managed-demo
├── README.md - README
├── docs - サービスドキュメントファイル
│ └── index.md
├── resources - サービスリソースファイル
│ ├── icons
│ │ └── service_logo.png - デフォルトのサービスアイコン
│ └── artifact_resources - アーティファクトのリソースファイル
│ └── file - ファイルアーティファクトのディレクトリ
│ ├── epel-release-latest-7.noarch.rpm - EPEL インストールパッケージ
│ ├── remi-release-7.rpm - Remi インストールパッケージ
│ └── wordpress-6.2-zh_CN.tar.gz - WordPress ファイルアーティファクト
├── ros_templates - サービス ROS テンプレート。複数のテンプレートを含めることができます。
│ └── cluster.yaml - クラスター版の ROS テンプレート
│ └── template.yaml - ベーシック版の ROS テンプレート
├── config.yaml - サービス構成ファイル。Compute Nest コマンドラインツール (computenest-cli) はこのファイルを使用してサービスをビルドします。
├── preset_parameters.yaml - VpcId や VSwitchId などのサービスプロバイダー向けの事前設定パラメーター。ROS テンプレートのコンテンツは、プロバイダーが入力するためのフォームとしてレンダリングされます。config.yaml ファイルの設定
これは、computenest-cli がサービスをビルドするために使用するコア構成ファイルです。このファイルで、サービス構成を指定できます。その後、computenest-cli は対応する Compute Nest OpenAPI を呼び出し、指定されたパラメーターを渡します。サービス作成中に、API が呼び出されて Compute Nest サービスが作成され、デプロイメントアーティファクトが作成され、イメージベースのデプロイメントを使用している場合は ECS イメージが作成されます。
Service:
RegionId: cn-hangzhou # サービスがデプロイされるリージョン。
DeployType: ros # デプロイタイプ。これは Resource Orchestration Service (ROS) を使用します。
TenantType: SingleTenant # テナントタイプ。これはシングルテナントサービスです。
DeployMetadata: # デプロイメントメタデータ構成。
ServiceInstanceNameRule:
Prefix: wp # サービスインスタンス名のプレフィックス。
SupplierDeployMetadata: # サプライヤーのデプロイメントメタデータ。
RoleName: ${RoleName} # 使用するロールの名前。
UserType: Aliyun # ユーザータイプ。これは Alibaba Cloud ユーザーです。
SupplierTemplateConfigs: # サプライヤーテンプレート構成の配列。
- Name: High-availability Edition # テンプレート名。
Url: 'templates/template.yaml' # テンプレートファイルの URL。
PredefinedParameters: [] # 事前定義されたパラメーターのリスト。
HiddenParameterKeys: # 非表示のパラメーターキーのリスト。
- VpcId
- VSwitchId
- ZoneId
ParameterMappings: # パラメーターマッピング構成。
- ParameterKey: RegionId
ParameterMappingKeys: # パラメーターマッピングキー。
- VpcId
- ZoneId
- VSwitchId
ParameterValueMapping: # パラメーター値マッピング構成。これはリージョンのパラメーター値を指定します。
cn-hangzhou:
Parameters:
VpcId: ${VpcId}
ZoneId: ${ZoneId}
VSwitchId: ${VSwitchId}
FileArtifactRelation: # ファイルデプロイメントアーティファクトの関連付け構成。
'{{ computenest::file::wordpress }}': # ファイルデプロイメントアーティファクトの関連付けの識別子。この識別子を templates/template.yaml で使用して、デプロイメントアーティファクトを指定できます。
ArtifactId: ${Artifact.Artifact_1.ArtifactId} # ファイルデプロイメントアーティファクトの ID。
ArtifactVersion: ${Artifact.Artifact_1.ArtifactVersion} # ファイルデプロイメントアーティファクトのバージョン。
TemplateConfigs: # テンプレート構成の配列。
- Name: High-availability Edition
Url: templates/parameters.yaml # パラメーターテンプレートファイルの URL。
AllowedRegions: # 許可されたリージョンのリスト。
- cn-hangzhou
ServiceType: managed # サービスタイプ。これはマネージドサービスです。
ServiceInfo: # サービス情報構成。
Locale: en-US # ローカライズ構成。これは英語 (米国) 用です。
ShortDescription: WordPress demo # 簡単な説明。
Image: 'icons/service_logo.jpg' # サービスアイコン。
Name: WordPress Managed Edition # サービス名。
ShareType: Public # 共有タイプ。これはパブリックサービスです。
ApprovalType: Manual # 承認タイプ。これには手動承認が必要です。
Artifact: # デプロイメントアーティファクト構成。構成後、対応する Compute Nest デプロイメントアーティファクトがビルドされます。
Artifact_1:
ArtifactType: File # デプロイメントアーティファクトタイプ。これはファイルです。
ArtifactName: WordPress # デプロイメントアーティファクトの名前。
Description: WordPress # 説明。
ArtifactProperty: # デプロイメントアーティファクトプロパティ構成。
RegionId: cn-hangzhou # デプロイメントアーティファクトが配置されているリージョン。
Url: 'artifacts/wordpress-6.2-en_US.tar.gz' # デプロイメントアーティファクトファイルの URL。サービスの公開
リポジトリを設定した後、Compute Nest コンソールにログインし、リポジトリから直接サービスを作成して、ソフトウェアをクラウドにデプロイできます。