At the core of the serverless experience is the idea of easily running a workload in response to an event without having to manage infrastructure. Basically, you write the code, decide when it should run, and the serverless platform takes it from there.
For the Koyeb Serverless Engine, which launched earlier this year, this idea was taken to the next level of ease, with the workloads coming in the form of a variety of pre-written data-processing functions that users could choose from, making it quick and easy to do things like resize images or send a Slack notification upon a certain event. Now, the company has expanded its capabilities to include the ability to run not only user-written functions but also containers, side by side on the same event-driven platform.
Yann Léger, Koyeb co-founder and CEO, explained that users normally have to choose one service for event-driven functions and another entirely for containers. With the newly launched ability to run both on the Koyeb Serverless Engine, Léger says they hope to ease the developer experience, allowing users to run whatever code they have, without having to worry about time limits or compatible runtimes.
“It’s really about the developer experience and giving them the tools they want to use, because the landscape has evolved. We’re really getting rid of the need for DevOps competencies, and looking to provide developers a way where they can have these kinds of capabilities without having to understand what’s going on,” explained Léger. “We’re really looking to simplify the development experience and abstract away the complex setup you have to do when you deploy these kinds of applications. We remove some limits you have in current offerings, where end users have to select a specific cloud technology between functions and containers, when they just want to be able to, for instance, process images and videos. We are letting them select the technology which is the most suitable depending on their needs.”
As an example of these limits, Léger points to Amazon Web Services’ Lambda serverless service, which he says doesn’t allow users to execute a function for more than 15 minutes, making it unsuitable for more heavy data processing. Koyeb, by contrast, allows its users to run functions and containers for up to 24 hours.
“What we’ve found is that most of the serverless space is focused on FaaS (Function as a Service), on ‘lightweight’ data-processing and simple data transformations. On the other end, containers are usually used for heavy processing as they let you embed the system dependencies you need, but they come with a more complex setup,” said Léger. “We’re bridging this gap with a unified platform for functions and containers with the same simplicity of deployment and scalability for both technologies.”
While a major focus of this release is this ability to run user-created code in its various forms, Koyeb has also open sourced the pre-written functions it offers in a GitHub repository, which also includes an action to install and configure a Koyeb CLI, as well as an example Hello World function to help users get started. This release also introduces an integration with Git and GitHub that simplifies the process of deployment even further. Rather than packaging up your functions into a ZIP file, as you might with AWS Lambda, users need only connect Koyeb with their repository, making deployment as easy as pushing the code.
Currently, Léger explained, Koyeb has a focus on asynchronous functions, making concerns about cold start times and the like less pertinent. Moving forward, however, he said that they are planning to move more into the synchronous space early next year, as things like providing an HTTP API using Python is a space he sees a lot of interest around.