Skip to content
Merged
153 changes: 82 additions & 71 deletions faq/serverless-containers.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,66 +10,44 @@ category: serverless
productIcon: ContainersProductIcon
---

## What is serverless computing, and how does it differ from traditional cloud hosting?
## Overview

### What is serverless computing, and how does it differ from traditional cloud hosting?

Serverless computing is a cloud execution model where the cloud provider dynamically manages the allocation of compute resources. Unlike traditional hosting models, you do not need to provision, scale, or maintain servers. Instead, you focus solely on writing and deploying your code, and the infrastructure scales automatically to meet demand.

## Why consider using Serverless Containers, Functions, or Jobs for my projects?
### Why consider using Serverless Containers, Functions, or Jobs for my projects?

These services allow you to build highly scalable, event-driven, and pay-as-you-go solutions. Serverless Containers and Functions help you create applications and microservices without worrying about server management, while Serverless Jobs lets you run large-scale, parallel batch-processing tasks efficiently. This can lead to faster development cycles, reduced operational overhead, and cost savings.

## Can I run any application on Serverless Containers?
### Can I run any application on Serverless Containers?

Yes. Because Serverless Containers supports any containerized application, you can choose the language, runtime, and framework that best suits your needs. As long as it can run in a container and respond to HTTP requests, Serverless Containers can host it.

## What are the cost benefits of using serverless services like Serverless Containers?
### What are the cost benefits of using serverless services like Serverless Containers?

With serverless, you only pay for the computing resources you use. There are no upfront provisioning costs or paying for idle capacity. When your application traffic is low, the cost scales down, and when traffic spikes, the platform automatically scales up, ensuring you never overpay for unused resources.

## Can updates of Serverless Containers cause downtime?

No, deploying a new version of your Serverless Container generates a **rolling update**. This means that a new version of the service is gradually
rolled out to your users without downtime. Here is how it works:

* When a new version of your container is deployed, the platform automatically starts routing traffic to the new version incrementally, while still serving requests from the old version until the new one is fully deployed.
* Once the new version is successfully running, we gradually shift all traffic to it, ensuring zero downtime.
* The old version is decommissioned once the new version is fully serving traffic.

This process ensures a seamless update experience, minimizing user disruption during deployments. If needed, you can also manage traffic splitting between versions during the update process, allowing you to test new versions with a subset of traffic before fully migrating to it.

## Can I upgrade Serverless Container resources (vCPU and RAM) at any time?

Yes, Serverless Containers resources can be changed at any time without causing downtime - see the previous question for full details.

## How does scaling work in these serverless services?

Scaling in Serverless Containers and Serverless Functions is handled automatically by the platform. When demand increases - more requests or events - the platform spins up additional instances to handle the load. When demand decreases, instances spin down. This ensures optimal performance without manual intervention.

## How do I integrate my serverless solutions with other Scaleway services?

Integration is straightforward. Serverless Functions and Containers can be triggered by events from [Queues](/serverless/messaging/concepts/#queues) and [Topics and Events](/serverless/messaging/concepts/#topics-and-events), and can easily communicate with services like [Managed Databases](/managed-databases/) or [Serverless databases](/serverless/sql-databases/). [Serverless Jobs](/serverless/jobs/) can pull data from [Object Storage](/storage/object), or output processed results into a database. With managed connectors, APIs, and built-in integrations, linking to the broader Scaleway ecosystem is seamless.

## Can I migrate existing applications to Serverless Containers?
### Are applications deployed on Serverless Containers stateless?

Yes. Many traditional applications can be containerized and deployed to Serverless Containers. This makes it easier to modernize legacy systems without a complete rewrite. By moving to a serverless platform, you gain automatic scaling, reduced operational overhead, and a simpler infrastructure management experience.
Yes, all applications deployed on Serverless Containers are stateless. This means the server does not store any state about the client session. Instead, the session data is stored on the client and passed to the server as needed.

## Are applications deployed on Serverless Containers stateless?

Yes, all applications deployed on Serverless Containers are stateless. This means the server does not store any state about the client session. Instead, the session data is stored on the client and passed to the server as needed.
## Billing

## How am I billed for Serverless Containers?
### How am I billed for Serverless Containers?

### Principles
#### Principles

Serverless Containers are billed on a pay-as-you-go basis, strictly on resource consumption (Memory and CPU).

* **Memory consumption:** The memory consumption is obtained by multiplying the memory tier chosen by the container run duration.
* **vCPU consumption:** The vCPU consumption is obtained by multiplying the vCPU tier chosen by the container run duration.
* **Ephemeral storage:** Is free of charge, the maximum value of ephemeral storage depends on the memory value.

<Lightbox src={["scaleway-caas-billing-1.webp", "scaleway-caas-billing-2.webp"]} size={"medium"} alt={["Scerverless Containers Billing", "Serverless Containers Billing"]} />
<Lightbox src={["scaleway-caas-billing-1.webp", "scaleway-caas-billing-2.webp"]} size={"medium"} alt={["Serverless Containers Billing", "Serverless Containers Billing"]} />

### Prices
#### Prices

* **Memory consumption:** €0.10 per 100 000 GB-s, and we provide a **400 000 GB-s free tier** per account and per month.

Expand All @@ -93,7 +71,7 @@ Serverless Containers are billed on a pay-as-you-go basis, strictly on resource
| 0.56 vCPU | €0.0000056 |
| 1.12 vCPU | €0.0000112 |

### Example
#### Example

| Criteria | Value |
|--------------------------- |-------------- |
Expand All @@ -102,7 +80,7 @@ Serverless Containers are billed on a pay-as-you-go basis, strictly on resource
| Amount of vCPU allocated | 70 mvCPU |
| Free tier | Yes |

#### Price calculation
##### Price calculation

* **Memory consumption**
* *Allocated Memory conversion:* 128 MB = 0.125 GB
Expand All @@ -119,15 +97,40 @@ Serverless Containers are billed on a pay-as-you-go basis, strictly on resource

**Monthly Cost: €22.35**

## How can I select the right resources (vCPU/RAM/ephemeral storage) for Serverless Containers ?
## Resources and performance

### Can I upgrade Serverless Container resources (vCPU and RAM) at any time?

Yes, Serverless Containers resources can be changed at any time without causing downtime - see the previous question for full details.

### How does scaling work in these serverless services?

Scaling in Serverless Containers and Serverless Functions is handled automatically by the platform. When demand increases - more requests or events - the platform spins up additional instances to handle the load. When demand decreases, instances spin down. This ensures optimal performance without manual intervention.

### Can updates of Serverless Containers cause downtime?

No, deploying a new version of your Serverless Container generates a **rolling update**. This means that a new version of the service is gradually
rolled out to your users without downtime. Here is how it works:

* When a new version of your container is deployed, the platform automatically starts routing traffic to the new version incrementally, while still serving requests from the old version until the new one is fully deployed.
* Once the new version is successfully running, we gradually shift all traffic to it, ensuring zero downtime.
* The old version is decommissioned once the new version is fully serving traffic.

This process ensures a seamless update experience, minimizing user disruption during deployments. If needed, you can also manage traffic splitting between versions during the update process, allowing you to test new versions with a subset of traffic before fully migrating to it.

### Can I migrate existing applications to Serverless Containers?

Yes. Many traditional applications can be containerized and deployed to Serverless Containers. This makes it easier to modernize legacy systems without a complete rewrite. By moving to a serverless platform, you gain automatic scaling, reduced operational overhead, and a simpler infrastructure management experience.

### How can I select the right resources (vCPU/RAM/ephemeral storage) for Serverless Containers ?

Insufficient vCPU, RAM or ephemeral storage can lead to containers going to error status. Make sure to provision enough resources for your container.

We recommend you set high values, [use metrics to monitor](/serverless/containers/how-to/monitor-container/) the resource usage of your container, then adjust the values accordingly.

## How can I reduce the cold-starts of Serverless Containers ?
### How can I reduce the cold-starts of Serverless Containers ?

* **Optimize the startup**: Cold-starts can be affected by a loading a large number of dependencies and opening lot of resources at startup.
* **Optimize the startup**: Cold-starts can be affected by loading a large number of dependencies and opening several resources at startup.
Ensure that your code avoids heavy computations or long-running initialization at startup and optimize the number of loaded libraries.

* **Keep your container warm**: You can use CRON triggers at certain intervals to keep your container warm or set the min-scale parameter to `1` when required.
Expand All @@ -136,72 +139,80 @@ Ensure that your code avoids heavy computations or long-running initialization a

* **Use sandbox v2**: We recommend you use sandbox v2 (advanced settings) to reduce cold starts.

## What are the limitations of Serverless Containers?
### What are the limitations of Serverless Containers?

Refer to our dedicated page about [Serverless Containers limitations and configuration restrictions](/serverless/containers/reference-content/containers-limitations/) for more information.

## Where should I host my container images for deployment ?
### Why does my container have an instance running after deployment, even with min-scale 0?

<Macro id="container-registry-note" />
Currently, a new container instance will always start after each deployment, even if there is no traffic and the minimum
scale is set to 0. This behavior is not configurable at this time.

## How can I copy an image from an external registry to Scaleway Container Registry?
## Usage

You can copy an image from an external registry using the Docker CLI, or open source third-party tools such as Skopeo. Refer to the [dedicated documentation](/serverless/containers/api-cli/migrate-external-image-to-scaleway-registry/) for more information.
### How can I deploy my containers?

## Can I whitelist the IPs of my containers?
There are several ways to deploy containers. Refer to the [dedicated documentation](/serverless/containers/reference-content/deploy-container/) to determine the best method for your use case.

Serverless Containers does not yet support Private Networks. However, you can use the Scaleway IP ranges defined at [https://www.scaleway.com/en/peering/](https://www.scaleway.com/en/peering/) on Managed Databases and other products that allow IP filtering.
### How do I integrate my serverless solutions with other Scaleway services?

## How can I deploy my Containers?
Integration is straightforward. Serverless Functions and Containers can be triggered by events from [Queues](/serverless/messaging/concepts/#queues) and [Topics and Events](/serverless/messaging/concepts/#topics-and-events), and can easily communicate with services like [Managed Databases](/managed-databases/) or [Serverless databases](/serverless/sql-databases/). [Serverless Jobs](/serverless/jobs/) can pull data from [Object Storage](/storage/object), or output processed results into a database. With managed connectors, APIs, and built-in integrations, linking to the broader Scaleway ecosystem is seamless.

There are several ways to deploy containers. Refer to the [dedicated documentation](/serverless/containers/reference-content/deploy-container/) to determine the best method for your use case.
### Where should I host my container images for deployment ?

## Which protocols are supported by Serverless Containers?
<Macro id="container-registry-note" />

Serverless Containers use the **http1** protocol by default, but some services (e.g., gRPC) only support http2.
### How can I copy an image from an external registry to Scaleway Container Registry?

Protocol switching is available in the Console under the `Advanced options` section in the `Deployment` tab.
You can copy an image from an external registry using the Docker CLI, or open source third-party tools such as [Skopeo](https://github.com/containers/skopeo). Refer to the [dedicated documentation](/serverless/containers/api-cli/migrate-external-image-to-scaleway-registry/) for more information.

### How do Serverless Containers health checks work ?

A Serverless Container is set to `ready` once the specified port is correctly bound to the container, and will start receiving traffic. If your application needs to perform some tasks before receiving traffic (e.g. connect to a database), it is important to run them before binding to the port (starting the webserver).
For now, the `HEALTHCHECK` Docker directive has no impact on container readiness. In the future, the health check will be customizable for your applications.

## Network and storage

### Can I whitelist the IPs of my containers?

## Why does my gRPC container not respond?
Serverless Containers does not yet support Private Networks. However, you can use the Scaleway IP ranges defined at [https://www.scaleway.com/en/peering/](https://www.scaleway.com/en/peering/) on Managed Databases and other products that allow IP filtering.

### Which protocols are supported by Serverless Containers?

Containers use http1 by default, yet the gRPC protocol requires http2. You can upgrade the protocol to http2 (`h2c`).
Serverless Containers use the **http1** protocol by default, but some services (e.g., gRPC) only support `http2`.

Protocol switching is available in the Console under the `Advanced options` section in the `Deployment` tab.

## How does Serverless Container healthcheck work ?
### Why does my gRPC container not respond?

A Serverless Container is set to `ready` once the specified port is correctly bound to the container, and will start receiving traffic. If your application needs to perform some tasks before receiving traffic (e.g. connect to a database), it's important to run them before binding to the port (starting the webserver).
For now, the `HEALTHCHECK` Docker directive has no impact on container readiness. In the future, the healthcheck will be customizable for your applications.
Containers use **http1** by default, yet the gRPC protocol requires `http2`. You can upgrade the protocol to `http2` (`h2c`).

## How can I configure access to a Private Network?
### How can I configure access to a Private Network?

Scaleway Serverless Containers does not currently support Scaleway VPC or Private Networks, though this feature is under development.

To add network restrictions on your resource, consult the [list of prefixes used at Scaleway](https://www.scaleway.com/en/peering/). Serverless resources do not have dedicated or predictable IP addresses.
To add network restrictions on your resource, refer to the [list of prefixes used at Scaleway](https://www.scaleway.com/en/peering/). Serverless resources do not have dedicated or predictable IP addresses.

## How can I attach Block Storage to a Serverless Container?
### How can I attach Block Storage to a Serverless Container?

Scaleway Serverless Containers do not currently support attaching Block Storage. These containers are designed to be
stateless, meaning they do not retain data between invocations. For persistent storage, we recommend using external
solutions like Scaleway Object Storage.

## Why does my container have an instance running after deployment, even with min-scale 0?

Currently, a new container instance will always start after each deployment, even if there is no traffic and the minimum
scale is set to 0. This behavior is not configurable at this time.

## How can I store data in my Serverless resource?
### How can I store data in my Serverless resource?

Serverless resources are by default [stateless](/serverless/containers/concepts/#stateless), local storage is ephemeral.

For some use cases, such as saving analysis results, exporting data etc., it can be important to save data. Serverless resources can be connected to other resources from the Scaleway ecosystem for this purpose:
For certain use cases, such as saving analysis results or exporting data, it can be important to have permanent storage to save data. Serverless resources can be connected to other resources from the Scaleway ecosystem for this purpose:

### Databases
#### Databases

* [Serverless Databases](/serverless/sql-databases/): Go full serverless and take the complexity out of PostgreSQL database operations.
* [Managed MySQL / PostgreSQL](/managed-databases/postgresql-and-mysql/): Ensure scalability of your infrastructure and storage with our new generation of Managed Databases designed to scale on-demand according to your needs.
* [Managed Database for Redis®](/managed-databases/redis/): Fully managed Redis®* in seconds.
* [Managed MongoDB®](/managed-databases/mongodb/): Get the best of MongoDB® and Scaleway in one database.

### Storage
#### Storage

* [Object Storage](/storage/object/): Multi-AZ resilient object storage service ensuring high availability for your data.
* [Scaleway Glacier](/storage/object/): Our outstanding Cold Storage class to secure long-term object storage. Ideal for deep archived data.
Expand All @@ -212,10 +223,10 @@ Explore all Scaleway products in the console and select the right product for yo
Further integrations are also possible even if not listed above, for example, [Secret Manager](/identity-and-access-management/secret-manager/) can help you to store information that requires versioning.
</Message>

## Can I use Serverless Containers with Edge Services?
### Can I use Serverless Containers with Edge Services?

You cannot use Serverless Containers with Edge Services because there are no native integrations between the two products yet.

## Can I use the IP address of a Serverless Function?
### Can I use the IP address of a Serverless Function?

By design, it is not possible to guarantee static IPs on Serverless compute resources.
Loading
Loading