Serverless: 1 year in, and we’re just getting started
Captured source
source ↗Serverless: 1 year in, and we’re just getting started Scale • Simon Shillaker • 17/11/22 • 7 min read
Today marks one year since Scaleway’s Serverless Functions and Containers entered General Availability. We’ve achieved a lot in the past year, and we’re only just getting started. In the serverless team, we don't see serverless as a single product, but as an ecosystem, driven by a philosophy of making the cloud easier to use, more efficient, but also more affordable to use., we are committed to delivering a set of services and frameworks that provide a complete serverless experience to a diverse range of applications. In this post we’ll describe the big ideas behind the serverless ecosystem, where we are today, and where we’re going in the future.
Making the cloud feel like one big operating system
Writing and running code on a laptop is exactly that, writing the code, then telling the operating system to run it. Developers don't need to specify how to configure or share the underlying resources, which bits of the system to interface with, or what limits they want to enforce. It’s so simple that even children can do it. Serverless is about bringing this same simplicity to the cloud, making it as simple as running an application on your laptop. This means users can focus on writing code, while the serverless platform handles the rest. This means provisioning, configuring, and scaling whatever underlying infrastructure is needed, billing the user only for what they use, and cleaning up afterwards.
We still have a way to go before we achieve the serverless dream, and today serverless is still synonymous with just two products: function-as-a-service, and container-as-a-service. Both represent a significant step forward in shielding the user from complexity, allowing them to focus on writing code, and billing them only for what they use. However, functions and containers are just the foundations of the larger serverless ecosystem. To provide a complete serverless experience, we must also consider how we compose functions and containers into larger workflows, how we manage state and scale our storage, how we can make it easy to port existing applications, and how we can write new applications for this novel environment.
How we built our Serverless foundations: Functions and Containers
Just as you can’t build a house on shaky foundations, you can’t build a serverless ecosystem without a solid base. In serverless, this base is Functions-as-a-Service and Containers-as-a-Service. These are the workhorses of serverless, executing user’s code, and scaling on demand. On top of this base of FaaS and CaaS, we can build the rest of our serverless ecosystem. We started work on our FaaS and CaaS products as early as 2019.
Although we were quick to get to an MVP, GA was still almost two years away. These two years were spent on building the scaffolding around the core compute product, to create a secure, smooth, production-grade serverless product. Significant projects included the build-and-deploy pipeline, configuring and stress-testing our autoscaling, performance tuning and profiling, scaling the platform across multiple clusters in multiple regions, security audits, and integrating the product into the Scaleway ecosystem. At the time, the company was focused on bare metal and virtual machines, so setting up and running a scalable serverless infrastructure was a big change in mindset.
It was also a big technical change, as we were sharing infrastructure between tenants at a much higher granularity, and dealing with high-volume, short-lived workloads. This placed increased stress on our metrics, logs, and internal APIs, and required a rethink of how we do observability and billing. It also put a strain on our nascent managed Kubernetes Service, with the volume of containers regularly causing headaches for the Container Registry Service. We launched the working beta in the summer of 2020.
The platform was slow during the first weeks due to unexpected consumption from the beta testers and we ran into several scaling issues. Through more than a year of beta tests, we gathered lots of feedback on how we could build an even better and more innovative product. Some of the ideas that came out of this process are still in the pipeline, so watch this space! Finally, after two years of work and a last minute bug that almost crashed the product, we were happy to release our serverless platform to the world. Scaleway’s Serverless Functions and Containers entered GA in November 2021.
Since then, we have continuously added features to make our products more performant, flexible, powerful, and easy-to-use. Although we will continue to add features to make these foundations even better (such as support for public and private container registries, new language runtimes, and improved logging and metrics), we are now in the next phase of building our serverless ecosystem.
What’s next in the serverless ecosystem?
Now that we have a solid foundation in place with Serverless Functions and Containers, we can look to the future of serverless, and what that means for the rest of the ecosystem at Scaleway. We have worked closely with existing users of both serverless and non-serverless products to determine how our serverless ecosystem can best suit their needs. As a result of these consultations, we are now working on a number of products and enhancements that will allow users to build more complex applications, at larger scale, with more data, and more resources. We can break this work down into 5 categories: workflows, storage, programming, developer experience, and performance. ## Workflows Although users can achieve a lot with single functions and containers, the real power of serverless comes from orchestrating multiple functions and containers as part of larger workflows. These workflows can be used for any multi-stage task, from downstream data processing pipelines, to multi-stage image compression and analysis, to distributed machine learning training. Serverless workflows cannot be configured without suitable plumbing to pass data between stages. This is where Scaleway’s new Messaging and Queueing service comes into play. Part of the next phase of our serverless ecosystem is a serverless orchestrator, built on messaging and queueing, which lets users connect functions and containers to a number of different event sources, including queues, publish-subscribe, and Amazon S3 events.
State…
Excerpt shown — open the source for the full document.