Koyeb Serverless Platform Public Preview

May 17, 2022

Yann Léger

Yann Léger
@yann_eu

Édouard Bonlieu

Édouard Bonlieu
@edouardb_

Bastien Chatelard

Bastien Chatelard
@bchatelard

12 min read

Today, we are super excited to share that the Koyeb platform is available for everyone in public preview.

If you don't know us yet, Koyeb is the developer platform to build, deploy and scale full-stack applications where your users are. We've been working on the platform since early 2021. The private preview has been intense with over 10,000 developers joining the community and now over 3000 applications running on the platform.

Our key focus is on providing an outstanding developer experience: we let you deploy with a simple git push or using containers. We completely abstract servers, hence the term serverless we often use, and aim to provide natively all the features you need in a modern platform, with zero additional configuration.

We never wrote about the product itself, even though we wrote engineering posts about the stack behind the Koyeb Serverless Engine, Multi-Region Service Mesh or the cost of Kubernetes. There is a lot to say but we will try to keep it short!

To get straight to the point, here is a short demo on how to deploy using git-driven deployment:

Et voilà! Your API or web app is live and securely accessible on the internet with a .koyeb.app URL which you can change to your own domain. All apps deployed on the platform are load-balanced, accelerated and secured by a global edge network with over 250 locations.

Also, you will soon be able to deploy in 10 global locations simultaneously with a click or API call and operate near your users to drastically improve performance without having to think about networking or global load-balancing.

If this is already too long for you, you can sign up right away to experiment and deploy two nano services for free in less than 5 minutes! You might end up being queued to access the platform as we're trying to make sure everyone enjoys a smooth deployment experience: we ask for some patience on the review process.

Let's dive into what you can do today with the product:

Built-in standard features to let you deploy in minutes

Our goal is to drastically simplify and accelerate application development. To do that, we rely on open standards and include key advanced features with zero additional configuration.

Deploy your apps in minutes

We provide two main ways to deploy applications:

  1. From source using a simple git push: you select your repository and we will take care of building and deploying your app each time you push new commits.
  2. Using containers: we support deploying from any private or public container registry.

You can always use our web interface, CLI, or our API to interact with the platform.

When you deploy, your application is available in 3 minutes on average. The deployment time will vary depending of the size of the project you have to build and on the container image size.

Zero configuration native features

The platform is feature packed, here is what's immediately available:

  • Deploy from a GitHub repository: connect any GitHub repository and enjoy continuous deployment.
  • Deploy pre-built containers: deploy Docker containers from any registry
  • Native TLS and Custom Domains: all apps are automatically secured with TLS and you can configure your own domain.
  • Built-in load-balancing and horizontal scaling: all services running on the platform can be scaled simply by moving a slider - all the traffic is automatically load-balanced between all the instances available.
  • Autohealing: we perform regular health-checks and if your application or the infrastructure supporting it fails, we automatically restart it on another server.
  • Global Edge Network: traffic is automatically accelerated via our global edge network.
  • WebSockets support: WebSockets work out-of-the-box. Ari wrote a tutorial on how to build a Rust speed test using Actix and WebSockets on Koyeb and the complete demo application is available on GitHub.
  • Service Mesh and Discovery: no need to think about low-level VPCs, DNS or load-balancing for internal services, we provide a built-in service mesh for all your micro-services.
  • Zero-trust security: all network traffic is encrypted in transit and all data stored on the local storage is encrypted at rest.
  • Observability and troubleshooting: we provide runtime logs aggregated at the service level to see everything that's happening through one single view and simplify troubleshooting. You can also access a production shell to troubleshoot your applications.

We could easily write a dedicated post for each feature and we will go into more detail on what these features enable in the coming weeks. In the meantime, if you want to learn more about any of these features, you can head out to our documentation.

As a business, we don’t want our engineers to struggle with infrastructure - we want to focus on our core product. With Koyeb, everything we need is built-in, no additional configuration is needed for load-balancers, TLS, or continuous deployment.

Guillaume Charmes

Director of Engineering at Immertec

Getting started: deploy on Koyeb

We will briefly explore some key features and show how to use them. We will use the CLI but these features are all available in the web interface.

Continuous Deployment from GitHub

We currently rely on buildpacks to transform your application source code into an OCI image. We then run this image inside of MicroVMs on the platform.

Once your repository is connected, the build and deployment process will be triggered each time you push new changes. You can also trigger a redeployment manually if needed.

Here is how to deploy from a public GitHub repository using the CLI:

$ koyeb app init flask-on-koyeb --git github.com/koyeb/example-flask --git-branch main --ports 8080:http --routes /:8080

You can also deploy from the web console.

We currently support automated continuous deployment of Node.js, Go, Python, Ruby, PHP, and Java projects. We are working on the following improvements:

  • built-in continuous integration and deployment based on Dockerfiles for those who want to control the complete operating system,
  • improved and more transparent runtime detection to simplify troubleshooting,
  • adding Rust support.

If you're limited by our build process, you can rely on container-based deployments as seen below.

Deploying pre-built Docker containers

Need to deploy pre-built containers? Koyeb allows deployment from any public and private container registry.

$ koyeb app init koyeb-demo --docker docker.io/koyeb/demo --ports 3000:http --routes /:3000

You can easily integrate with your continuous deployment pipeline using the Koyeb CLI. We have a GitHub action example to redeploy each time a new version of a container image is pushed to a registry.

Bring your custom domain

Hard to deploy applications in production without using your own domain, right? Here is how to create and assign your domain to a Koyeb app:

$ koyeb domains create example.tld --attach-to koyeb-demo

Configure your DNS provider, et voilà!

Scale your app

The CLI is a bit ahead of time on this one as the parameter are designed with autoscaling in mind (see the min/max), but you can already scale with a simple update of the service.

$ koyeb services update koyeb-demo/flask --min-scale 5 --max-scale 5

Coming next: deploy in 10 global locations simultaneously

To run your apps where your users are, you will soon be able to deploy in 10 global locations with a single click.

And when we say deploy in 10 global locations, you will be able to select between 1 and 10 locations and your application will run exactly where you asked without any additional configuration. All the global and inter-region networking will be automatically managed and secured.

We will go into more details once we're live, in the meantime you can already learn more about how it works in our engineering post building a Multi-Region Service Mesh with Kuma/Envoy, Anycast BGP, and mTLS.

We've worked with the Koyeb team to seamlessly integrate the Kuma service mesh inside of their serverless platform and are impressed to see how this technology mix redefines application connectivity!

Marco Palladino

Co-founder & CTO at Kong Inc.

We are currently live with one core location located in Paris, France and will expand to 10 global locations by the end of the year. You can vote for the 5 first locations and ask for more to help us prioritize on our public roadmap platform:

The multi-region deployment engine is already live and we are working on effectively deploying the core locations.

With Koyeb, developers can easily deploy multi-region, low latency applications on high-performance bare metal. The simplicity and power of the Koyeb platform is a game-changer for those looking to push business applications to the edge.

Zachary Smith

Global Head Edge Infrastructure at Equinix

Teaming up with MongoDB, Aiven and more

Building an outstanding experience means joining forces with people who share our passion to empower developers with easy-to-use technologies.

We're excited to see how Koyeb is democratizing the deployment of global applications for developers. The combination of Koyeb + MongoDB Atlas delivers a killer joint experience for customers!

Andrew Davidson

VP Cloud Products at MongoDB

We share a common objective with the team at Mongo: allowing developers and businesses all around the world to build global applications in seconds.

We crafted some content and demo applications to get you started with Koyeb + MongoDB:

We share the Koyeb's team philosophy about simplification of cloud infrastructure: they focus on application deployment, we make data infrastructure simple - this is the perfect combo.

Ari Lampela

Senior Director, Partners at Aiven

If you need to run relational databases including PostgreSQL, MySQL, or Redis, we recommend combining Koyeb with Aiven. They provide an advanced offering for completely managed databases, reducing configuration to what is strictly necessary.

Chimezie wrote about how to deploy a Rest API using Koa, Prisma, and Aiven on Koyeb.

Pricing: start for free and grow with outstanding performance

Our pricing model is simple: we charge you depending on how many resources you use, by the second.

The pricing is linear depending on the amount of RAM, CPU, and local storage you use. It starts at $0.000001/second per 256MB of RAM.

This is way too many zeros for most human beings, so we often express it by the hour, $0.0036/hr, or by month, about $2.68/mo for 31-day months. Nevertheless, it's always accounted for by the second.

We will also charge you $0.04/GB for outbound bandwidth above 100GB per month. We don't charge for requests.

Start for free

We provide a free tier that includes $5 of free credit every month to let you easily deploy your hobby projects. This credit will allow you to run up to two nano services full-time (256MB of RAM) for free on the platform.

Once you consume all your free credit, you will simply be charged depending on your usage.

Production plans

Once you're ready for production, we provide a startup plan at $79/month to access larger machines (more than 2GB of RAM per instance) and support.

If you need more than 16GB of RAM/16 vCPUs per instance or have a mission-critical application, let us know!

Outstanding price/performance ratio

Behind the scenes, all your apps are transparently deployed in Firecracker microVMs running on top of BareMetal servers. These microVMs provide top-notch security and performance thanks to hardware-assisted virtualization.

To reduce latency, your workloads are powered by the latest generations of Intel and AMD high-end CPUs. And all of this is native, without any management or code modification from you.

We don't ask you to trade simplicity for performance, we provide high-end performance at an affordable price. Give it a try, do benchmarks, and let us know how it goes! We're confident that you'll be positively surprised.

Check the full pricing page.

The features that didn't make the cut this time and our plans for the future

Several features that we have planned for further down the road, but didn't make the cut for this announcement: autoscaling, scale-to-zero, native worker support, build from Dockerfile, and CPU/RAM metering are the ones which comes immediately to mind but we are planing to go well beyond that.

We consider them as essential features and are commited to deliver them in the coming months.

In 2022, deploying, running, and scaling full-stack applications remains a challenge. Our mission is to provide the fastest way to run APIs, full-stack apps, and event-driven workloads around the world with high performance and a developer-centric experience.

The industry has pushed developers and businesses into Kubernetes and FaaS, but these technologies are infrastructure technologies which require setup, operational work, and expertise. We, as an industry, can provide way better abstractions for developers and that's what we intend to do.

We're not stacking an additional layer of configuration, we bring a completely managed technology with all the standards you'd expect from a modern platform.

Finally, and most importantly, let us know what you think of the platform!

Join us on Slack or on Twitter if you're one of those!

Yann, Edouard, Bastien and the whole Koyeb team.