Skip to content

Commit 9b1d26d

Browse files
thomas-tacquetnerda-codesRoRoJBemilie
authored
feat(containers): concepts improvements (#4059)
* feat(containers): concepts improvements * update tags * stateless * Apply suggestions from code review Co-authored-by: nerda-codes <[email protected]> * Apply suggestions from code review Co-authored-by: Rowena Jones <[email protected]> * precision sandbox * Update serverless/containers/concepts.mdx Co-authored-by: Emilie BOUIN <[email protected]> --------- Co-authored-by: nerda-codes <[email protected]> Co-authored-by: Rowena Jones <[email protected]> Co-authored-by: Emilie BOUIN <[email protected]>
1 parent 7373c11 commit 9b1d26d

File tree

1 file changed

+76
-15
lines changed

1 file changed

+76
-15
lines changed

serverless/containers/concepts.mdx

Lines changed: 76 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ meta:
55
content:
66
h1: Containers - Concepts
77
paragraph: Key concepts of Scaleway Serverless Containers.
8-
tags: containers cold-start concurrency container-registry gbs environment-variables jwt vcpu
8+
tags: containers cold-start concurrency container-registry environment-variables jwt vcpu serverless scale autoscaling
99
dates:
1010
validation: 2024-11-14
1111
categories:
@@ -31,43 +31,83 @@ Refer to the [dedicated documentation](/serverless/containers/reference-content/
3131

3232
## Container
3333

34-
A container is a package of software that includes all dependencies: code, runtime, configuration, and system libraries so that it can run on any host system. Scaleway provides custom Docker images that are entirely handled for you in the cloud. With Containers, you can rely on your favorite technologies such as Django, or Ruby on Rails.
34+
A container is a package of software that includes all dependencies: code, runtime, configuration, and system libraries so that it can run on any host system. Scaleway provides custom Docker images that are entirely handled for you in the cloud.
3535

3636
## Container Registry
3737

38-
Container Registry is the place where your images are stored before being deployed.
38+
Container Registry is the place where your images are stored before being deployed, we recommend using Scaleway Container Registry for optimal integration. [Migration guide](/serverless/containers/api-cli/migrate-external-image-to-scaleway-registry/).
3939

4040
## CRON trigger
4141

42-
A CRON trigger is a mechanism used to automatically invoke a Serverless Function at a specific time on a recurring schedule. It works similarly to a traditional Linux [cron job](https://en.wikipedia.org/wiki/Cron), using the `* * * * *` format, and uses the **UTC** time zone. Refer to our [cron schedules reference](/serverless/containers/reference-content/cron-schedules/) for more information.
42+
A CRON trigger is a mechanism used to automatically invoke a Serverless Function at a specific time on a recurring schedule.
43+
44+
It works similarly to a traditional Linux [cron job](https://en.wikipedia.org/wiki/Cron), using the `* * * * *` format, and uses the **UTC** time zone. Refer to our [cron schedules reference](/serverless/containers/reference-content/cron-schedules/) for more information.
45+
46+
## Custom domain
47+
48+
By default, a generated endpoint is assigned to your Serverless resource. Custom domains allows you to use your own domain - see our [custom domain documentation](/serverless/containers/how-to/add-a-custom-domain-to-a-container) for full details.
49+
50+
## Deployment
51+
52+
Some parameter changes require a new deployment of the container to take effect. The deployment happens without causing downtime, as traffic is switched to the newest version.
53+
54+
## Endpoint
55+
56+
An endpoint is the URL generated to access your resource. It can be customized with [custom domains](#custom-domain).
4357

4458
## Environment variables
4559

46-
An environment variable is a variable whose value is set outside the program, typically through functionality built into the operating system, or microservice. An environment variable is made up of a name/value pair, and any number may be created and available for reference at a point in time.
60+
Environment variables are key/value pairs injected in your container. They are useful to share information such as configurations with your container. Some names are reserved. [See details about reserved names](/serverless/containers/reference-content/containers-limitations/#configuration-restrictions).
4761

4862
## Ephemeral storage
4963

50-
In addition to vCPU and RAM, Serverless Containers also provide a storage volume for the duration of the task. This storage space allows to hold the data retrieved by the job, and disappears once the execution is complete. The maximum size of the ephemeral storage is tied to the allocated memory.
64+
In addition to vCPU and RAM, Serverless Containers also provide a storage volume for the duration of the task. This storage space allows you to hold the data retrieved by the job, and disappears once the execution is complete.
65+
66+
The maximum size of the ephemeral storage is tied to the allocated memory.
5167

5268
## GB-s
5369

5470
Unit used to measure the resource consumption of a container. It reflects the amount of memory consumed over time.
5571

56-
## Image
72+
## gRPC
5773

58-
An image is a blueprint from which an arbitrary number of brand-new containers can be started. You can start a container from an image, perform operations in it, and save another image based on the latest state of the container.
74+
gRPC is supported on Serverless Containers, as long as you have enabled http2 (`h2c`) protocol.
75+
76+
## Healthcheck
77+
78+
To determine the status of a container, the default healthcheck automatically checks if basic requirements are met, to define the status as `ready`.
79+
80+
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).
81+
82+
## Instance
83+
84+
A Serverless Container instance handles incoming requests based on factors like the request volume, min scale, and max scale parameters.
5985

6086
## JWT Token
6187

62-
JWT (JSON Web Token) is an access token you can create from the console or API to enable an application to access your Private Container. Consult the [Developer documentation](https://www.scaleway.com/en/developers/api/serverless-containers/#path-tokens) for more details.
88+
JWT (JSON Web Token) is an access token you can create from the console or API to enable an application to access your private container. [Find out how to secure a container](/serverless/containers/how-to/secure-a-container/#restrict-access-to-your-containers).
89+
90+
## Load balancing
91+
92+
The Serverless infrastructure manages incoming request traffic. In scenarios like sudden traffic spikes or load testing, resources are automatically scaled based on the max scale parameter to handle the load.
93+
94+
## Max scale
95+
96+
This parameter sets the maximum number of container instances. You should adjust it based on your container's traffic spikes, keeping in mind that you may wish to limit the max scale to manage costs effectively.
97+
98+
## Min scale
99+
100+
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. However, this setting also impacts the costs of your Serverless Container.
63101

64102
## mvCPU
65103

66104
A [vCPU](#vcpu) (Virtual Central Processing Unit) is equivalent to 1000 mvCPU.
67105

68106
## Namespace
69107

70-
A namespace is a project that allows you to [group your containers](/serverless/containers/how-to/create-manage-delete-containers-namespace/). Containers in the same namespace can share environment variables and access tokens, defined at the namespace level.
108+
A namespace is a project that allows you to [group your containers](/serverless/containers/how-to/create-manage-delete-containers-namespace/).
109+
110+
Containers in the same namespace can share environment variables, secrets and access tokens, defined at the namespace level.
71111

72112
## NATS trigger
73113

@@ -86,11 +126,15 @@ The value defined in the port parameter will then be passed to your container du
86126

87127
A container's privacy policy defines whether a container may be invoked anonymously (**public**) or only via an authentication mechanism provided by the [Scaleway API](https://www.scaleway.com/en/developers/api/serverless-containers/#authentication) (**private**).
88128

129+
## Registry endpoint
130+
131+
The registry endpoint parameter is the resource linked to the container image used in your Serverless Container.
132+
89133
## Sandbox
90134

91135
A sandbox is an isolation area for your container. Serverless Containers offer two sandboxing environments:
92-
- **v2** - Recommended for faster cold starts.
93-
- **v1** - Legacy sandboxing with slower cold starts, but fully supports Linux system call interface.
136+
- **v2** - Recommended for faster cold starts. Can introduce some overhead on specific worklows with consequent amount of *syscalls*.
137+
- **v1** - Legacy sandboxing with slower cold starts, but fully supports Linux system call interface. Prefer this option when processing large amount of *syscalls*.
94138

95139
## Scale to zero
96140

@@ -110,7 +154,11 @@ Serverless allows you to deploy your Functions (FaaS) and Containerized Applicat
110154

111155
## Serverless Framework
112156

113-
Serverless.com (Serverless Framework) is a tool that allows you to deploy serverless applications without having to manage Serverless Container’s API call. Write and deploy a YAML configuration file, everything else is handled automatically, even the image building.
157+
Serverless.com (Serverless Framework) is a tool that allows you to deploy serverless applications without having to manage Serverless Container's API call. Write and deploy a YAML configuration file, everything else is handled automatically, even the image building.
158+
159+
## Serverless Job
160+
161+
Serverless Jobs are similar to Serverless Containers but are better suited for running longer workloads. See [the comparaison between Serverless products](/serverless/containers/reference-content/difference-jobs-functions-containers) for more information.
114162

115163
## SQS trigger
116164

@@ -121,7 +169,20 @@ The container can then process the message and perform any required actions, suc
121169

122170
## Stateless application
123171

124-
A stateless application is a computer program that does not save client data between sessions. Data generated in one session is not saved for use in the next session with that client. All applications deployed on Serverless Containers are stateless.
172+
A stateless application is a computer program that does not save client data between sessions. Data generated in one session is not saved for use in the next session with that client.
173+
174+
To store data persistently, use products like [Managed Databases]/managed-databases/) or [Object Storage](/storage/object/).
175+
176+
## Status
177+
178+
A Serverless Container can have the following statuses:
179+
* **Ready**: your Serverless Container is operational to serve requests.
180+
* **Pending**: your resource is under deployment.
181+
* **Error**: something went wrong during the deployment process. [Check our troubleshooting documentation](/serverless/containers/troubleshooting/cannot-deploy-image) to solve the issue.
182+
183+
## Terraform
184+
185+
Terraform is a tool for managing infrastructure using code. [Read the Terraform documentation for Serverless Containers](https://registry.terraform.io/providers/scaleway/scaleway/latest/docs/resources/container).
125186

126187
## Timeout
127188

@@ -138,4 +199,4 @@ Unit used to measure the resource consumption of a container. It reflects the am
138199

139200
## Protocol
140201

141-
Serverless Containers supports **http1** (default) and **http2** (`h2c`). Use HTTP/2 if your container application is configured to listen for HTTP/2 requests, such as a gRPC service or a web server that uses HTTP/2 features like multiplexing, otherwise HTTP/1 is recommended.
202+
Serverless Containers supports **http1** (default) and **http2** (`h2c`). Use HTTP/2 if your container application is configured to listen for HTTP/2 requests, such as a **gRPC** service or a web server that uses HTTP/2 features like multiplexing, otherwise HTTP/1 is recommended.

0 commit comments

Comments
 (0)