diff --git a/pages/serverless-containers/concepts.mdx b/pages/serverless-containers/concepts.mdx
index 6a58e72cdf..d663d24b12 100644
--- a/pages/serverless-containers/concepts.mdx
+++ b/pages/serverless-containers/concepts.mdx
@@ -22,6 +22,8 @@ Autoscaling parameters are [min-scale](/serverless-containers/concepts/#min-scal
* **CPU usage:** to scale based on CPU percentage, suitable for intensive CPU workloads.
* **RAM usage** to scale based on RAM percentage, suitable for memory intensive workloads.
+Refer to the [dedicated documentation](/serverless-containers/reference-content/containers-autoscaling/) for more information on autoscaling.
+
## Cold start
Cold start is the time a Container takes to handle a request when it is called for the first time.
@@ -87,11 +89,17 @@ Unit used to measure the resource consumption of a container. It reflects the am
gRPC is supported on Serverless Containers, as long as you have enabled http2 (`h2c`) protocol.
-## Healthcheck
+## Health check
-To determine the status of a container, the default healthcheck automatically checks if basic requirements are met, to define the status as `ready`.
+To determine the status of a container, the default health check automatically checks if basic requirements are met, to define the status as `ready`. You can customize the following elements to better fit your use case:
+- The **probe type** defines the type of check to perform to define if your container is ready:
+ - The **TCP** probe will check if the TCP connection of your Serverless Container is opened on the specified port
+ - The **HTTP** probe allows you to define a custom path to your Serverless Container to get the readiness status. It can be useful to check if all requirements are met, such as the connection to the database, etc.
+- The **failure threshold** corresponds to the maximum number of checks that can fail before declaring the Serverless Container in error. Defaults to 30.
+- The **interval** corresponds to the duration in seconds between every check. Defaults to 10 seconds.
+- The **path** (HTTP probe type only) corresponds to the endpoint to call you Serverless Container (example: `/health`).
-You can define custom healthcheck rules with a [specific endpoint via the Scaleway API](https://www.scaleway.com/en/developers/api/serverless-containers/#path-containers-create-a-new-container).
+You can define custom health check rules via the [Scaleway console](/serverless-containers/how-to/manage-a-container/) or set a [specific endpoint via the Scaleway API](https://www.scaleway.com/en/developers/api/serverless-containers/#path-containers-create-a-new-container).
## Instance
diff --git a/pages/serverless-containers/how-to/deploy-container.mdx b/pages/serverless-containers/how-to/deploy-container.mdx
index 0deb580d54..73d4796741 100644
--- a/pages/serverless-containers/how-to/deploy-container.mdx
+++ b/pages/serverless-containers/how-to/deploy-container.mdx
@@ -7,7 +7,7 @@ content:
paragraph: Deploy containers from the Scaleway Container Registry or from external public registries.
tags: deploy container create scaleway-registry docker image external registry public
dates:
- validation: 2024-11-05
+ validation: 2025-02-25
posted: 2021-05-26
categories:
- serverless
@@ -40,16 +40,44 @@ You can deploy a container from the [Scaleway Container Registry](/container-reg
Available memory depends on allocated vCPU, and the maximum ephemeral storage value depends on allocated memory.
- - Set your [scaling](/serverless-containers/concepts/#scaling) preferences, or leave them at default values. The Scaleway platform automatically scales the number of available instances of your container to match the incoming load, depending on the settings you define here.
- - Click **Advanced options** to define any [environment variables](/serverless-containers/concepts/#environment-variables) you want to inject into your container. For each environment variable, click **+Add variable** and enter the key/value pair.
- - Add [secrets](/serverless-containers/concepts/#secrets) for your container. Secrets are environment variables that are injected into your container, but the values are not retained or displayed by Scaleway after initial validation.
-
- Encode your environment variables and secrets to `base64` if they are too large, and contain carriage returns.
-
- - Set the desired [privacy policy](/serverless-containers/concepts/#privacy-policy) for your container. This defines whether container invocation may be done anonymously (**public**) or only via an authentication mechanism provided by the [Scaleway API](https://www.scaleway.com/en/developers/api/serverless-containers/#authentication) (**private**).
- - Set a custom [timeout](/serverless-containers/concepts/#timeout) for your container.
- - Verify the **estimated cost**.
-5. Click **Deploy container** to finish.
+5. Set your [autoscaling](/serverless-containers/concepts/#autoscaling) preferences:
+ - **Request concurrency**: your container automatically scales up/down within the minimum and maximum values entered based on the number of concurrent requests received on each active instance of your container.
+ - **CPU percentage**: your container automatically scales up/down within the minimum and maximum values entered based on the CPU load.
+ - **RAM percentage**: your container automatically scales up/down within the minimum and maximum values entered based on the RAM used.
+6. In the **Advanced options** section, set the following:
+
+
+ - Declare [environment variables](/serverless-containers/concepts/#environment-variables) you want to inject into your container. For each environment variable, click **+Add variable** and enter the key/value pair.
+ - Declare [secrets](/serverless-containers/concepts/#secrets) for your container. Secrets are environment variables that are injected into your container, but the values are not retained or displayed by Scaleway after initial validation.
+
+ Encode your environment variables and secrets to `base64` if they are too large, and contain carriage returns.
+
+
+
+ - Set the desired [privacy policy](/serverless-containers/concepts/#privacy-policy) for your container. This defines whether container invocation may be done anonymously (**public**) or only via an authentication mechanism provided by the [Scaleway API](https://www.scaleway.com/en/developers/api/serverless-containers/#authentication) (**private**).
+ - Tick the box under **HTTPS connections only** to prevent your container from being called from insecure HTTP connections.
+
+
+ - Set a custom [timeout](/serverless-containers/concepts/#timeout) for the duration of the requests received by your container.
+ - Tick the box under [HTTP protocol](/serverless-containers/concepts/#protocol) to listen to HTTP/2 requests if it is required by your application. Otherwise, we recommend you use HTTP/1.
+
+
+ - Select a [sandbox](/serverless-containers/concepts/#sandbox) version:
+ - Sandbox v2 for shorter cold starts (recommended).
+ - Sandbox v1 if you require full compatibility with the Linux system call interface (legacy).
+
+
+ - Update the [health check](/serverless-containers/concepts/#health-check) behavior according to your needs:
+ - **Probe type**: TCP, or HTTP
+ - **Health checks intervals**: 5s - 120s (default: 30s)
+ - **Failure threshold**: 3 - 50 (default: 10)
+
+
+ - Modify the [ephemeral storage](/serverless-containers/concepts/#ephemeral-storage) according to your needs.
+
+
+7. Verify the **estimated cost**.
+8. Click **Deploy container** to finish.
## Deploy from an external container registry
@@ -73,15 +101,43 @@ Private external container registries are currently not supported.
- Choose a **name** for your container and, optionally, a **description**. The name must only contain alphanumeric characters and dashes.
- Choose the **resources** to be allocated to your container at runtime. These define the performance characteristics of your container.
- Available memory depends on allocated vCPU, and maximum ephemeral storage value depends on allocated memory.
-
- - Set your [scaling](/serverless-containers/concepts/#scaling) preferences, or leave them at default values. The Scaleway platform automatically scales the number of available instances of your container to match the incoming load, depending on the settings you define here.
- - Click **Advanced options** to define any [environment variables](/serverless-containers/concepts/#environment-variables) you want to inject into your container. For each environment variable, click **+Add variable** and enter the key/value pair.
- - Add [secrets](/serverless-containers/concepts/#secrets) for your container. Secrets are environment variables that are injected into your container, but the values are not retained or displayed by Scaleway after initial validation.
-
- Encode your environment variables and secrets to `base64` if they are too large, and contain carriage returns.
+ Available memory depends on allocated vCPU, and the maximum ephemeral storage value depends on allocated memory.
- - Set the desired [privacy policy](/serverless-containers/concepts/#privacy-policy) for your container. This defines whether container invocation may be done anonymously (**public**) or only via an authentication mechanism provided by the [Scaleway API](https://www.scaleway.com/en/developers/api/serverless-containers/#authentication) (**private**).
- - Set a custom [timeout](/serverless-containers/concepts/#timeout) for your container.
- - Verify the **estimated cost**.
-5. Click **Deploy container** to finish.
+5. Set your [autoscaling](/serverless-containers/concepts/#autoscaling) preferences:
+ - **Request concurrency**: your container automatically scales up/down within the minimum and maximum values entered based on the number of concurrent requests received on each active instance of your container.
+ - **CPU percentage**: your container automatically scales up/down within the minimum and maximum values entered based on the CPU load.
+ - **RAM percentage**: your container automatically scales up/down within the minimum and maximum values entered based on the RAM used.
+6. In the **Advanced options** section, set the following:
+
+
+ - Declare [environment variables](/serverless-containers/concepts/#environment-variables) you want to inject into your container. For each environment variable, click **+Add variable** and enter the key/value pair.
+ - Declare [secrets](/serverless-containers/concepts/#secrets) for your container. Secrets are environment variables that are injected into your container, but the values are not retained or displayed by Scaleway after initial validation.
+
+ Encode your environment variables and secrets to `base64` if they are too large, and contain carriage returns.
+
+
+
+ - Set the desired [privacy policy](/serverless-containers/concepts/#privacy-policy) for your container. This defines whether container invocation may be done anonymously (**public**) or only via an authentication mechanism provided by the [Scaleway API](https://www.scaleway.com/en/developers/api/serverless-containers/#authentication) (**private**).
+ - Tick the box under **HTTPS connections only** to prevent your container from being called from insecure HTTP connections.
+
+
+ - Set a custom [timeout](/serverless-containers/concepts/#timeout) for the duration of the requests received by your container.
+ - Tick the box under [HTTP protocol](/serverless-containers/concepts/#protocol) to listen to HTTP/2 requests if it is required by your application. Otherwise, we recommend you use HTTP/1.
+
+
+ - Select a [sandbox](/serverless-containers/concepts/#sandbox) version:
+ - Sandbox v2 for shorter cold starts (recommended).
+ - Sandbox v1 if you require full compatibility with the Linux system call interface (legacy).
+
+
+ - Update the [health check](/serverless-containers/concepts/#health-check) behavior according to your needs:
+ - **Probe type**: TCP, or HTTP
+ - **Health checks intervals**: 5s - 120s (default: 30s)
+ - **Failure threshold**: 3 - 50 (default: 10)
+
+
+ - Modify the [ephemeral storage](/serverless-containers/concepts/#ephemeral-storage) according to your needs.
+
+
+7. Verify the **estimated cost**.
+8. Click **Deploy container** to finish.
diff --git a/pages/serverless-containers/how-to/manage-a-container.mdx b/pages/serverless-containers/how-to/manage-a-container.mdx
index 3610373142..dbdb932882 100644
--- a/pages/serverless-containers/how-to/manage-a-container.mdx
+++ b/pages/serverless-containers/how-to/manage-a-container.mdx
@@ -28,34 +28,90 @@ This page shows you how to manage a container, should you need to verify or edit
1. Click **Containers** in the **Serverless** section of the side menu. The Containers page displays.
2. Click the relevant containers namespace.
-3. Click the name of the container you want to manage.
-4. Check or edit any of the following information as required, on the **Deployment** tab:
+3. Click the name of the container you want to manage, then select the **Settings** tab.
+4. In the **Container image** section:
- Select the **Scaleway** Container Registry.
- Choose an **image** from your Container Registry. Select the required Container Registry namespace from the drop-down list, and then select the container and tag.
- - Choose the **Port** your container is listening on. We recommend configuring your container to listen on the **PORT** environment variable.
- - Choose the **resources** to be allocated to your container at runtime. These define the performance characteristics of your container.
- - Set your **scaling** preferences, or leave them at default values. The Scaleway platform autoscales the number of available instances of your container to match the incoming load, depending on the settings you define here.
- - Define any **environment variables** you want to inject into your container. For each environment variable, click **+Add new variable** and enter the key/value pair.
- - Add **secrets** for your container. Secrets are environment variables which are injected into your container, but the values are not retained or displayed by Scaleway after initial validation.
- - Set the desired **privacy policy** for your container. This defines whether container invocation may be done anonymously (**public**) or only via an authentication mechanism provided by the [Scaleway API](https://www.scaleway.com/en/developers/api/serverless-containers/#authentication) (**private**).
- - Click **Advanced Options** if you wish to set a custom timeout for your container.
-5. Click **Deploy container** to save any changes you have made.
+ - Choose the [port](/serverless-containers/concepts/#port) your container is listening on. We recommend configuring your container to listen on the **PORT** environment variable.
+5. In the **Resources** section, select the vCPU and memory to allocate to your container at runtime. These values define the performance characteristics of your container.
+6. Set your [autoscaling](/serverless-containers/) preferences, or leave them at default values. The Scaleway platform automatically scales the number of available instances of your container to match the incoming load, depending on the settings you define here.
+7. In the **Advanced options** section, check or edit any of the following:
+
+
+ - Declare [environment variables](/serverless-containers/concepts/#environment-variables) you want to inject into your container. For each environment variable, click **+Add variable** and enter the key/value pair.
+ - Declare [secrets](/serverless-containers/concepts/#secrets) for your container. Secrets are environment variables that are injected into your container, but the values are not retained or displayed by Scaleway after initial validation.
+
+ Encode your environment variables and secrets to `base64` if they are too large, and contain carriage returns.
+
+
+
+ - Set the desired [privacy policy](/serverless-containers/concepts/#privacy-policy) for your container. This defines whether container invocation may be done anonymously (**public**) or only via an authentication mechanism provided by the [Scaleway API](https://www.scaleway.com/en/developers/api/serverless-containers/#authentication) (**private**).
+ - Tick the box under **HTTPS connections only** to prevent your container from being called from insecure HTTP connections.
+
+
+ - Set a custom [timeout](/serverless-containers/concepts/#timeout) for the duration of the requests received by your container.
+ - Tick the box under [HTTP protocol](/serverless-containers/concepts/#protocol) to listen to HTTP/2 requests if it is required by your application. Otherwise, we recommend you use HTTP/1.
+
+
+ - Select a [sandbox](/serverless-containers/concepts/#sandbox) version:
+ - Sandbox v2 for shorter cold starts (recommended).
+ - Sandbox v1 if you require full compatibility with the Linux system call interface (legacy).
+
+
+ - Update the [health check](/serverless-containers/concepts/#health-check) behavior according to your needs:
+ - **Probe type**: TCP, or HTTP
+ - **Health checks intervals**: 5s - 120s (default: 30s)
+ - **Failure threshold**: 3 - 50 (default: 10)
+
+
+ - Modify the [ephemeral storage](/serverless-containers/concepts/#ephemeral-storage) according to your needs.
+
+
+8. Click **Deploy container** to save any changes you have made.
### Manage a deployment from an external container registry
1. Click **Containers** in the **Serverless** section of the side menu. The Containers page displays.
2. Click the relevant containers namespace.
-3. Click the name of the container you want to manage.
-4. Check or edit any of the following information as required, on the **Deployment** tab:
+3. Click the name of the container you want to manage, then select the **Settings** tab.
+4. In the **Container image** section:
- Select the **External** container registry.
- Enter the public container **image URL** provided by the external registry.
- - Choose the **Port** your container is listening on. We recommend configuring your container to listen on the **PORT** environment variable.
- - Choose the **resources** to be allocated to your container at runtime. These define the performance characteristics of your container.
- - Set your **scaling** preferences, or leave them at default values. The Scaleway platform autoscales the number of available instances of your container to match the incoming load, depending on the settings you define here.
- - Define any **environment variables** you want to inject into your container. For each environment variable, click **+Add new variable** and enter the key/value pair.
- - Add **secrets** for your container. Secrets are environment variables which are injected into your container, but the values are not retained or displayed by Scaleway after initial validation.
- - Set the desired **privacy policy** for your container. This defines whether container invocation may be done anonymously (**public**) or only via an authentication mechanism provided by the [Scaleway API](https://www.scaleway.com/en/developers/api/serverless-containers/#authentication) (**private**).
- - Click **Advanced Options** if you wish to set a custom timeout for your container.
-5. Click **Deploy container** to save any changes you have made.
+ - Choose the [port](/serverless-containers/concepts/#port) your container is listening on. We recommend configuring your container to listen on the **PORT** environment variable.
+5. In the **Resources** section, select the vCPU and memory to allocate to your container at runtime. These values define the performance characteristics of your container.
+6. Set your [autoscaling](/serverless-containers/) preferences, or leave them at default values. The Scaleway platform automatically scales the number of available instances of your container to match the incoming load, depending on the settings you define here.
+7. In the **Advanced options** section, check or edit any of the following:
+
+
+ - Declare [environment variables](/serverless-containers/concepts/#environment-variables) you want to inject into your container. For each environment variable, click **+Add variable** and enter the key/value pair.
+ - Declare [secrets](/serverless-containers/concepts/#secrets) for your container. Secrets are environment variables that are injected into your container, but the values are not retained or displayed by Scaleway after initial validation.
+
+ Encode your environment variables and secrets to `base64` if they are too large, and contain carriage returns.
+
+
+
+ - Set the desired [privacy policy](/serverless-containers/concepts/#privacy-policy) for your container. This defines whether container invocation may be done anonymously (**public**) or only via an authentication mechanism provided by the [Scaleway API](https://www.scaleway.com/en/developers/api/serverless-containers/#authentication) (**private**).
+ - Tick the box under **HTTPS connections only** to prevent your container from being called from insecure HTTP connections.
+
+
+ - Set a custom [timeout](/serverless-containers/concepts/#timeout) for the duration of the requests received by your container.
+ - Tick the box under [HTTP protocol](/serverless-containers/concepts/#protocol) to listen to HTTP/2 requests if it is required by your application. Otherwise, we recommend you use HTTP/1.
+
+
+ - Select a [sandbox](/serverless-containers/concepts/#sandbox) version:
+ - Sandbox v2 for shorter cold starts (recommended).
+ - Sandbox v1 if you require full compatibility with the Linux system call interface (legacy).
+
+
+ - Update the [health check](/serverless-containers/concepts/#health-check) behavior according to your needs:
+ - **Probe type**: TCP, or HTTP
+ - **Health checks intervals**: 5s - 120s (default: 30s)
+ - **Failure threshold**: 3 - 50 (default: 10)
+
+
+ - Modify the [ephemeral storage](/serverless-containers/concepts/#ephemeral-storage) according to your needs.
+
+
+8. Click **Deploy container** to save any changes you have made.
diff --git a/pages/serverless-containers/quickstart.mdx b/pages/serverless-containers/quickstart.mdx
index 2a23a967bb..e46178a2d2 100644
--- a/pages/serverless-containers/quickstart.mdx
+++ b/pages/serverless-containers/quickstart.mdx
@@ -7,7 +7,7 @@ content:
paragraph: Quickstart guide for Scaleway Serverless Containers.
tags: containers serverless namespace
dates:
- validation: 2024-08-13
+ validation: 2025-02-24
posted: 2021-05-26
categories:
- serverless
@@ -54,8 +54,8 @@ If you have no existing Serverless Containers resources in your current Project,
- Enter a **name** or use the automatically generated one. The name can only contain lowercase alphanumeric characters and dashes.
- Enter a **description** (optional).
- Choose the smallest **resources** available to allocate to your container.
- - Leave the default **scaling** values.
- - In the **Advanced options**, set the **Container privacy policy** to **public**.
+ - Select the **Request concurrency** [autoscaling](/serverless-containers/concepts/#autoscaling) option, then leave the default values.
+ - In the **Security** tab of the **Advanced options**, set the **Container privacy policies** to **public**.
- Verify the estimated cost.
Refer to [How to deploy a Container from the Scaleway Registry](/serverless-containers/how-to/deploy-container/) for more information on the different parameters.
@@ -91,8 +91,8 @@ If you have no existing Serverless Containers resources in your current Project,
- Enter a **name** or use the automatically generated one. The name can only contain lowercase alphanumeric characters and dashes.
- Enter a **description** (optional).
- Choose the smallest **resources** available to allocate to your container.
- - Leave the default **scaling** values.
- - In the **Advanced options**, set the **Container privacy policy** to **public**.
+ - Select the **Request concurrency** [autoscaling](/serverless-containers/concepts/#autoscaling) option, then leave the default values.
+ - In the **Security** tab of the **Advanced options**, set the **Container privacy policies** to **public**.
- Verify the estimated cost.
Refer to [How to deploy a Container from an external container registry](/serverless-containers/how-to/deploy-container/) for more information on the different parameters.
diff --git a/pages/serverless-containers/reference-content/containers-autoscaling.mdx b/pages/serverless-containers/reference-content/containers-autoscaling.mdx
index e7bed35ece..61b617fd4c 100644
--- a/pages/serverless-containers/reference-content/containers-autoscaling.mdx
+++ b/pages/serverless-containers/reference-content/containers-autoscaling.mdx
@@ -18,11 +18,19 @@ categories:
[Autoscaling](/serverless-containers/concepts/#autoscaling) offers several benefits, including improved responsiveness and cost efficiency. By automatically adjusting the number of instances of your resource based on current demand, you ensure that your applications can handle varying loads without manual intervention. This not only enhances user experience by maintaining performance levels but also helps in reducing costs by only using resources when necessary. Additionally, autoscaling helps in optimal resource utilization, minimizing the risk of performance degradation during peak times.
-## Minimum and maximum scales
+Autoscaling can be based on exactly one of the following parameters:
-### Minimum scale (min-scale)
+- Request concurrency
+- CPU percentage
+- RAM percentage
-This parameter sets the lowest value your resource is allowed to scale down to:
+## Request concurrency
+
+### Minimum and maximum scales
+
+#### Minimum scale (min-scale)
+
+This parameter sets the minimum number of instances your resource is allowed to scale down to:
- If you set a value of `0`, all instances of your resource will be terminated after 15 minutes of inactivity.
@@ -30,7 +38,7 @@ This parameter sets the lowest value your resource is allowed to scale down to:
Customizing the minimum scale for Serverless can help ensure that an instance remains pre-allocated and ready to handle requests, reducing delays associated with [cold starts](/serverless-containers/concepts/#cold-start). However, this setting also impacts the costs of your Serverless Container.
-### Maximum scale (max-scale)
+#### Maximum scale (max-scale)
This parameter sets the maximum number of instances of your resource. You should adjust it based on your resource's traffic spikes, keeping in mind that you may wish to limit the max scale to manage costs effectively.
@@ -50,5 +58,27 @@ The same autoscaler decides to remove instances when:
- an instance has not responded to a request for more than 15 minutes of inactivity. The instance is only shut down after this interval, once again to absorb any potential new peaks and thus avoid the cold start. These 15 minutes of inactivity are not configurable.
-Redeploying your resource results in the termination of existing instances and a return to the min scale, which you observe when redeploying.
-
\ No newline at end of file
+Redeploying your resource results in the termination of existing instances and a return to the minimum scale.
+
+
+## CPU and RAM percentage
+
+### Minimum and maximum scales
+
+#### Minimum scale (min-scale)
+
+This parameter sets the minimum number of instances your resource is allowed to scale down to.
+
+
+For technical reasons, the minimum scale for CPU/RAM-based autoscaling is `1`.
+
+
+#### Maximum scale (max-scale)
+
+This parameter sets the maximum number of instances of your resource. You should adjust it based on your resource's CPU or RAM usage spikes, keeping in mind that you may wish to limit the max scale to manage costs effectively.
+
+### Autoscaler behavior
+
+The autoscaler decides to start new instances when the existing instances' CPU or RAM usage exceeds the threshold you defined for a certain amount of time.
+
+The same autoscaler decides to remove existing instances when the CPU or RAM usage of certain instances is reduced, and the remaining instances' usage does not exceed the threshold.
\ No newline at end of file