Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -9,57 +9,70 @@ dates:
Serverless Containers can be deployed and managed using various tools. This page aims to help you find the right tool for your use case.

<Message type="tip">
You can find examples using all the deployment methods shown here in our [Serverless Examples repository](https://github.com/scaleway/serverless-examples).
You can find examples using all the deployment methods shown here in our
[Serverless Examples
repository](https://github.com/scaleway/serverless-examples).
</Message>

## Scaleway console
## Comparison of deployment tools

The [Scaleway console](https://console.scaleway.com/) is the easiest way to get started deploying Containers.
| Tool | Type | Best For | Learning Curve | Link |
| ------------------------ | -------------------- | ------------------------------------------------ | -------------- | ------------------------------------------------------------------------------------------------------------------------ |
| **Terraform** | IaC (Infrastructure) | Production infrastructure & complex environments | High | [Terraform/OpenTofu provider](https://registry.terraform.io/providers/scaleway/scaleway/latest/docs/resources/container) |
| **Scaleway CLI** | Command line | Automation scripts & quick debugging | Low | [Scaleway CLI](https://github.com/scaleway/scaleway-cli) |
| **Scaleway SDKs** | Code-based | Programmatic control within applications | High | [Scaleway SDKs](https://www.scaleway.com/en/docs/scaleway-sdk/) |
| **Scaleway Console** | UI / Web | Learning, POCs, monitoring, manual fixes | None | [Scaleway Console](https://console.scaleway.com/) |
| **API (cURL/REST)** | Raw Request | Edge cases where CLI/SDK isn't available | High | [Scaleway HTTP API](https://www.scaleway.com/en/developers/api/) |
| **Serverless Framework** | IaC (Application) | Quick API development & function-centric apps | Medium | [Serverless Framework](https://github.com/scaleway/serverless-scaleway-functions) |

The console lets you deploy containers from the Scaleway Container Registry or public repositories.
## Breakdown

Refer to the [dedicated documentation](/serverless-containers/how-to/deploy-container/) for more information.
### Terraform

## Serverless framework
Terraform is a declarative tool focused on infrastructure lifecycle.

[Serverless Framework](https://www.serverless.com/) is a tool dedicated to easing the deployment of serverless applications, including Scaleway Serverless Functions and Containers.
- **Pros:** State management (knows exactly what is deployed); handles dependencies perfectly (example: "don't deploy the container until the database is ready").
- **Cons:** Can be verbose. Deploying a simple container requires writing ~50 lines of HCL compared to one CLI command.
- **When to use:** Use this for production-grade projects where you need a repeatable, auditable infrastructure.

With Serverless Framework, you can deploy your Dockerfile as a Serverless Container via a single command: `serverless deploy`.
### Serverless Framework

Your Container configuration is done via a single YAML file, which can be checked into your version control system.
Unlike Terraform, this is **application-centric**. It abstracts away some parts of the base configuration into a simple `serverless.yml` file.

Installation guides, examples, use cases, and advanced documentation are available in the [Serverless Scaleway Plugin repository](https://github.com/scaleway/serverless-scaleway-functions).
- **Pros:** Fast to deploy Serverless only projects with integrated build features, useful especially for Serverless Functions.
- **Cons:** Update cycle is lower on Serverless Framework compared to other tools (auto generated), so new features can take some time to be deployed.
- **When to use:** Ideal for Serverless Functions, microservices, REST APIs, and small event-driven architectures.

Serverless Framework can be used in many use cases such as CI/CD, production deployments, and multi-project deployments with [serverless-compose](https://www.serverless.com/framework/docs/guides/compose).
### Scaleway CLI

Many of the examples found in our [Serverless Examples repository](https://github.com/scaleway/serverless-examples) make use of Serverless Framework, and may help you get started.
It is a wrapper around the Scaleway API that allows you to trigger deployments from your terminal.

## Terraform/OpenTofu
- **Pros:** Perfect for CI/CD pipelines (GitHub Actions, GitLab CI), automation, quick changes and updates from the command line, easy to integrate.
- **Cons:** No "state." If you run a CLI command twice, it might fail or create a duplicate resource because it doesn't track what already exists like Terraform does.
- **When to use:** Use for one-off tasks or inside a `deploy.sh` script for very small projects.

Serverless Containers integrate easily with your infrastructure as code, via our [Terraform/OpenTofu provider and resources](https://registry.terraform.io/providers/scaleway/scaleway/latest/docs/resources/container).
### Scaleway SDKs

You can find examples using Terraform/OpenTofu in our [Serverless Examples repository](https://github.com/scaleway/serverless-examples), such as our [example using Terraform/OpenTofu to deploy an NGINX container](https://github.com/scaleway/serverless-examples/tree/main/containers/nginx-cors-private-python).
The SDK allows your **application code** to manage your resources. For example, a Go application that programmatically spins up a new Serverless Container based on user input.

## API

The [Scaleway HTTP API](https://www.scaleway.com/en/developers/api/) lets you manage your Serverless Containers via HTTP calls.

The HTTP API can be useful when integrating Container management into your automated tasks, continuous integration, and more custom use cases.

## CLI
The available SDKs are:

The [Scaleway CLI](https://github.com/scaleway/scaleway-cli) is a simple command line interface that allows you to create, update, delete and list your Serverless Containers.
- [Go SDK](https://github.com/scaleway/scaleway-sdk-go)
- [JS SDK](https://github.com/scaleway/scaleway-sdk-js)
- [Python SDK](https://github.com/scaleway/scaleway-sdk-python)

Installation instructions and documentation are available in the [Scaleway CLI repository](https://github.com/scaleway/scaleway-cli).
- **Pros:** Total programmatic control.
- **Cons:** Can be complex as a deployment method because you are essentially writing your own deployment from scratch.
- **When to use:** Use when your application logic requires dynamic resource creation.

## Scaleway SDKs
### Scaleway console

The Scaleway Software Development Kits (SDK) allow you to manage your resources directly from your favorite languages.
The clean and easy web-based interface provided by Scaleway.

The available SDKs are:
- **Pros:** Great for "exploring" new services and seeing what settings are available, monitor your resources, do quick changes, explore features and documentation directly.
- **Cons:** If you change a setting in the console and forget to update your code, your environment is now out of sync. It can be complex to replicate multiple times the same resource.
- **When to use:** For discovery, learning, prototyping, monitoring, smaller projects.

- [Go SDK](https://github.com/scaleway/scaleway-sdk-go)
- [JS SDK](https://github.com/scaleway/scaleway-sdk-js)
- [Python SDK](https://github.com/scaleway/scaleway-sdk-python)
### Tip

The documentation for each SDK is held in its respective repository.
Many teams use a hybrid approach. They use **Terraform** to provision the "static" infrastructure, the **CLI** to deploy new application code, and **Scaleway Console** to monitor your different Containers.