In addition to dominant US providers like AWS, Azure, and GCP, the French company Scaleway now offers a comprehensive serverless computing portfolio. This includes services for Function as a Service, a lightweight Key/Value Store, and a simple messaging service, providing the basic functionalities for cloud-native serverless computing. To put this offering to the test, I migrated a sample application to Scaleway, and I can now share my experiences in this post.
Use Case and Test Environment
The application consists of a Single Page Application, a backend with multiple serverless functions for API calls and OAuth authentication, and a Key/Value database for user management. I originally built the implementation on AWS, where numerous Managed Services were available to me. Now I looked for an equivalent on Scaleway, and I was able to implement the application with few limitations. The repositories for both implementations can be found on GitHub.
Feature | AWS Service | Scaleway Service |
---|---|---|
Hosting the Single Page Application | AWS S3 | Scaleway Object Storage |
Managing Subdomains | AWS Route53 | Scaleway Domains and DNS |
Delivering the Website with SSL/TLS | AWS CloudFront | Partially covered by Object Storage |
Creating SSL Certificates | AWS CertificateManager | - |
Serverless Functions Backend | AWS Lambda | Scaleway Serverless Functions |
Consolidating Functions | AWS ApiGateway | - |
Managing External Secrets | AWS ParameterStore | Scaleway Secret Manager |
Session Management for Users | AWS DynamoDB | Managed Database for Redis |
Positive Experiences
Overall, I really enjoyed working with Scaleway. The UI is very clean and intuitive, especially if you're used to the cluttered interface of the AWS console. This allowed me to get a good overview of the services' functionalities just by navigating the website. I created my application using Infrastructure as Code and the Scaleway Terraform Provider. This worked well for me and, in my experience, provided clear error messages when something went wrong.
In my opinion, Scaleway sensibly relies on Open Source Software in many places, saving them a lot of work in implementing their own solutions. For example, logs and metrics are displayed in a Grafana instance transparently integrated into the system, meaning logs are automatically collected and can be accessed directly in the console with a click. While this means not everything feels as seamlessly integrated as with other providers, it allows Scaleway to focus on other exciting features.
One of these features is the ability to deploy serverless functions, which I extensively tested for my use case. There's also the option to deploy serverless containers and design communication between services using queues and topics. Permissions between these services are managed via a simple IAM system. For me, these are exactly the features I expect from a competitive cloud provider to build cloud-native applications.
Challenges and Obstacles
While implementing my sample application, I encountered some challenges. This was mainly because my original implementation was tailored to AWS, and Scaleway didn't offer all the features I used. I'd like to provide a few examples of features you might currently have to do without if you choose Scaleway.
In my AWS implementation, I could split my serverless backend into multiple functions, which I then consolidated with an API Gateway and made available under a single URL using path-based routing. This isn't possible with Scaleway, as there's no equivalent to the API Gateway, and each function gets its own URL. Since my backend is quite small, I combined all the code into one function and then evaluated the access paths within the function. However, for larger applications, this isn't practical, which would require hosting your own service to handle routing. Scaleway recommends a solution based on the Kong Gateway for this.
The permission system for inter-service communication is also not entirely mature in some areas. For example, to access the Secrets Manager, I first had to create an API key in the IAM service that received permission for the Secrets Manager via a policy. I then passed this API key to my serverless function via an environment variable, which has to read this value and use it for direct access to the secret. With AWS, on the other hand, I can simply assign access to a specific secret to the Execution Role of a Lambda function via a Policy. This eliminates manual key management, meaning no key can be lost or fall into the wrong hands.
As an alternative to AWS CloudFront, Scaleway offers a feature called Edge Services, which can provide public endpoints for buckets and load balancers with caching and SSL/TLS. While operating the service via the interface works well, creating resources via Terraform caused a crash for me. This rendered the entire feature unusable in the web console until I removed the corresponding resources with Terraform. Scaleway Edge Services are currently still advertised as a new feature, so these errors will likely be fixed soon.
Generally, I had the feeling that a lot of work is currently being done on new functions and services, and much is in a state of change.
With the relatively new offering for Serverless Functions, I encountered an obstacle as well when searching the documentation.
For example, the reference documentation for the handler function code currently doesn't state exactly what the event
and context
objects passed to the function look like or what attributes they provide.
So, you have to piece this information together from examples found online.
Conclusion
Overall, I really enjoyed working with Scaleway, especially because of the intuitively designed web console interface. It offers an easy entry point, particularly for developers with little experience in cloud technologies, thanks to its slightly reduced feature set and easy use. While some use cases require more effort than would be the case with the large hyperscalers, there's usually a solution for most problems. The basic services required for a serverless architecture are present, and there are even some specialized offerings for IoT or machine learning applications. Personally, I was most bothered by the permission concept, as I'm very used to managing all permissions through Roles and Policies when using AWS and not having to worry about secrets. However, for customers who want to rely on European solutions and don't require special features, Scaleway represents a sensible alternative to the established US companies in my opinion.
More articles
fromFlorian Lüdiger
Your job at codecentric?
Jobs
Agile Developer und Consultant (w/d/m)
Alle Standorte
More articles in this subject area
Discover exciting further topics and let the codecentric world inspire you.
Blog author
Florian Lüdiger
IT Consultant
Do you still have questions? Just send me a message.
Do you still have questions? Just send me a message.