Compute Nest allows you to import repositories from GitHub, Gitee, public GitLab, and Apsara DevOps CodeUp to Compute Nest to create services. This feature helps developers and independent software vendors (ISVs) who register with Compute Nest significantly reduce the complexity of service creation and quickly create services. Developers can then test and update the created services and publish the services to Alibaba Cloud Marketplace. This topic describes how to create a service by using a Git repository.
Prerequisites
A Git repository that you want to use is created.
Overview
You can use Git repositories to quickly create Compute Nest services. To create a service, you need to only grant Compute Nest the permissions to access a Git repository, import the Git repository to Compute Nest, and then perform basic configurations. The following scenarios and configurations are supported.
The supported code hosting platforms include GitHub, Gitee, public GitLab, and Apsara DevOps CodeUp. You can grant Compute Nest the permissions to access an appropriate platform and pull a repository that you require from the platform.
Various deployment scenarios are supported.
Private Service and Managed Service scenarios
Service type
Definition
Description
Private service
Software and resources are deployed within the customer accounts.
Private services are suitable for deploying Platform as a Service (PaaS) and Software as a Service (SaaS) applications in virtual private clouds (VPCs) within customer accounts.
Fully managed service
Software and resources are deployed within the service provider accounts.
Fully managed services are suitable for deploying PaaS and SaaS applications in VPCs within the service provider accounts. Service providers have full permissions to manage the cloud resources and customer applications. Compute Nest allows you to use exclusive resources in the following services: single-tenant fully managed services and fully managed services deployed in multi-tenant Container Service for Kubernetes (ACK) clusters. In single-tenant fully managed services, resources are exclusive to each customer. In fully managed services deployed in multi-tenant ACK clusters, resources are exclusive to each pod.
Multiple application runtimes and deployment types
Application runtime
Deployment type
Parameter
Description
Container
Docker Compose
Docker-Compose Yaml File Path
Path of a Docker Compose file in a specific repository
Docker-Compose ENV File Path
The path of a .env file in Docker Compose in a specific repository. If the repository does not have a .env file, the default .env file is used.
Custom Deployment Parameters
The custom environment variable, which is dynamically specified during actual deployment. For example, if the
Passwordvariable is set to test in a .env file.You can specify a custom password to replace the default value in the .env file when you deploy the service.
Dockerfile
Dockerfile Path
The path of the Dockerfile file in a specific repository.
Custom Deployment Parameters
The key of the environment variable of the Docker runtime. For example, in the docker run -e key=value command, the value parameter specifies the actual value that you enter during deployment.
Advanced Options: Docker Image Build Parameters
The parameter used to build a Docker image. The parameter is suitable for scenarios in which the multi-stage feature is enabled for Dockerfiles and environment variables must be specified before you can build an image.
Custom Deployment Parameters
The key of the environment variable of the Docker runtime. For example, in the docker run -e key=value command, the value parameter specifies the actual value that you enter during deployment.
Service Port
The service port. After a service is deployed, the service can be accessed by using <IP address>:<Port>.
Inbound Port of Security Group
The inbound port of the security group that you want to access based on your business scenario.
Kubernetes Cluster
Helm Chart
Chart Directory
The directory in which a Helm chart resides. You can select the chart directory in a repository when you create a service.
Chart Values
This parameter is used to configure custom variables for Helm charts. After you specify the chart directory, the values of the custom Helm chart parameters overwrite the default values.
Output Content Type
The output content type, including the content in a document that comes along with a Helm chart or the custom content that is displayed by running commands.
Linux Shell
SourceCode
Root Directory
The root directory of the source code or the source application. Commands are run in the root directory.
Custom Deployment Parameters
The parameter name that is dynamically passed in a command or script. Replace the parameter name with the actual parameter name when you deploy the service.
Commands
The commands that are run on application startup.
Base Image
The base image. You can select a CentOS 7.9, Node.js 20, or Docker 26 base image.
Service Port
The port from which the application that you want to deploy can be accessed.
Inbound Port of Security Group
The inbound port that is defined in the security group.
Timeout Period
The timeout period for command execution. This prevents resource wastes that occur when commands are not run for an extended period of time.
Elastic Compute Service (ECS) images can be managed and built. Failures to pull Docker images may occur due to various reasons in the Chinese mainland. To prevent such failures, Compute Nest pulls Docker images in repositories to ECS instances over the Alibaba Cloud transmission network and builds ECS images based on the Docker images. The Docker images are managed by Compute Nest and shared with your Alibaba Cloud account.
Services can be updated by using code repositories. When a new commit is made in a repository, Compute Nest automatically pulls the latest repository to update the related service.
Procedure
Log on to the Compute Nest console.
In the left-side navigation pane, click My Services. On the Created Services tab of the My Services page, click Create Service.
On the Create Service page, configure the service information.
Select a service creation method and configure the repository information.
Parameter
Description
Select Service Creation Method
Select Quick Launch (From Repository).
Repository User/Organization
If your customers belong to an organization repository, you can select a personal repository or an organization repository.
Repository Name
The name of the repository to which you want to import your service.
Repository Branch
The branch of the repository.
After you specify a repository branch, Compute Nest automatically detects resource description files in the repository branch. You can proceed to the next step only if a resource description file is detected.
After you select a repository, the Basic Information Configuration page appears. You can select specific configurations based on your business requirements.
In this example, the LobeChat application is deployed in a self-hosting manner by using Docker Compose. You can select the corresponding parameters. In the
Custom Deployment Parameterssection, you configure custom environment variables in the specified Docker Compose .env file. The custom parameters can be dynamically filled in during instance deployment. Click Next: Basic Information Configuration.Configure the basic information about the service.
Item
Description
Service Icon
The icon of the service. The JPG and PNG formats are supported. We recommend that you upload an image whose resolution is 192 × 192 pixels for optimal clarity.
Service Name
The name of the service. The name can be 3 to 200 characters in length, and can contain digits, letters, and underscores (_).
The system generates a default name for your service based on your repository information. You can use the default name or customize a name.
Service Description
The description of the service. The description can be 10 to 500 characters in length.
Version Description
The description of the service version. The version description must be 1 to 200 characters in length. We recommend that you add information about the software version to this description. The description of each version must be unique within a service.
Service Agreement Documentation
The name of the service agreement document and URL of the document defined by the service provider.
Click Create Service. In the message that appears, click OK. After the service is created and submitted, you can click Go to List.
On the My Services page, the service is in the Creating state. You can click
View Logsand wait until the service is created. If the operation fails, an error log is reported. You can modify the repository and parameters based on the log content. If BuildService Success appears in the log, the service is created.After you refresh the My Services page, the service is in the Pending Pre-release state.
What to do next
Update the service.
To update the service, click
Modify Versionon the service card. In the Modify Version dialog box, selectUpdate in ConsoleorUpdate by Synchronized Repositoryand then click OK. If you select Update by Synchronized Repository, Compute Nest pulls a repository of the service again from the background and builds the service based on the files in the current repository.Test the service.
After you save the service, you can test the service. You can also pre-release the service and then share the service with the specified users to test the service. For more information, see Test a service.
Publish the service.
After the service passes the test, submit the service for review. After the review is complete, publish the service. For more information, see Publish a service.