Cloudflare Workers vs Koyeb
Serverless providers claim, "Write your code, and push it on our serverless platform", but are all platforms equal? Platforms are purposefully designed and optimized to run different types of workloads. While some are built to support small, short-lived functions, others are created to support larger workloads including full-fledged containers.
Cloudflare Workers are great for small functions that will perform fast by running at the edge, such as functions that customize content for end users depending on their locations. However, due to Cloudflare Workers' limitations that we will cover below, you cannot run everything with them.
Koyeb is great for full-stack applications: web applications, microservices, APIs, cron jobs, and more. We created this page to illustrate the differences between Koyeb and Cloudflare Workers and, ultimately, help you decide if Koyeb is the best fit for your workload. If you want to run more than a function at the edge, we think you should give Koyeb a test drive.
To learn more about using functions and containers in your deployment strategy, check out our Cloud Computing and Serverless Architectures: What are FaaS and CaaS? (opens in a new tab) blog post.
Features
Types of services: Koyeb allows you to deploy and run web apps, APIs, event-driven functions, workers, and cron jobs. Cloudflare Workers can be used to host functions at the edge and cron jobs.
CI/CD: Koyeb automatically builds and deploys your app each time you git push with native continuous deployment and continuous integration features. As for Cloudflare Workers, CI/CD is not built in to the technology, you'll need to use a third-party tool.
Private network, service mesh, and service discovery: Koyeb automatically provides each application a secure private network that comes with built-in service discovery and a service mesh. All services are automatically load balanced and reachable through a dedicated DNS entry and the built-in service mesh enables secure inter-service communication. Cloudflare Workers do not run in a private network with a service mesh or service discovery. Moreover, communication between Workers is not possible if the Workers are in different zones.
Computing power: Cloudflare Workers' limits CPU time to 10ms per request on the free plan and at 30s with a paid plan. Koyeb is more flexible as there is no CPU time limit per request. On Koyeb, you can have up to 16 High-End vCPUs per request, while you have no control on Cloudflare Workers.
Memory: Cloudflare Workers' memory is fixed at 128MB. If Cloudflare Workers receive requests that require more than this limit, requests will be canceled. In contrast, Koyeb can sustain large memory requirements and you can decide how much RAM you need for your workloads. Koyeb offers up to 16GB of RAM for each request and we can even provide more RAM for large workloads.
SSD storage: Cloudflare Workers doesn't provide local SSD storage for file processing. On Koyeb you can get up to 160GB of high-performance local SSD storage for temporary caching or file processing purposes.
Autohealing: Koyeb offers built-in TCP health checks on all applications you deploy. The platform also lets you define additional HTTP health checks to ensure your applications are running properly, and automatically respawn them if they become unresponsive. On the other hand, troubleshooting an unhealthy application is your responsibility with Cloudflare Workers.
Autoscaling: Koyeb and Cloudflare Workers are both serverless: autoscaling and load balancing are built-in, and you don't pay for capacity you don’t need. Traffic is automatically routed and load balanced across servers. Sleep well as your code scales effortlessly.
Global edge network: Global edge networks deliver content to users across the globe with low latency by serving content that is cached at edge locations. Koyeb’s Global Edge Network provides native load balancing, TLS encryption. Both Cloudflare Workers and Koyeb run global edge networks.
Developer experience
Deployment methods: Koyeb supports git-driven deployment and Docker deployment from any container registry whereas Cloudflare Workers do not support Docker or git-driven deployment.
Ease of Use: You can use the Koyeb CLI or the Console to deploy on Koyeb. With git-driven deployment, simply put your code in a GitHub repository and push it to Koyeb. Koyeb will automatically detect the language of your service, then build and deploy it for you. In comparison, the learning curve is steeper with Cloudflare Workers. You will need to read their Workers' specific documentation to understand how to deploy your code.
Languages support: Koyeb supports many runtimes including Node.js, Python, Go, Ruby, Rust, Java, Clojure, Scala, and PHP. Plus, since you can run any container image on Koyeb, Koyeb virtually supports any language as long as you can put it into a container. In comparison, Cloudflare Workers support JavaScript and WebAssembly (Wasm). You will need to check out their guides to use Wasm-compiled languages with Cloudflare Workers.
CLI: The Koyeb CLI lets you programmatically interact with Koyeb directly from your terminal. Cloudflare Workers also has a CLI, it's called Wrangler.
Rollback: Koyeb's built-in versioning lets your rollback easily, which lets you deploy new features faster and fearlessly. Cloudflare Workers do not support rollbacks.
Koyeb Secrets: Koyeb provides a secure mechanism to securely store, reuse, and retrieve sensitive information like passwords or API tokens in your apps.
Performance
The Koyeb Serverless Engine runs directly on top of high-end bare metal servers and uses the latest generations of Intel and AMD CPUs. All workloads on Koyeb are transparently deployed in microVMs thanks to the lightweight virtualization provided by Firecracker.
From container orchestration with Nomad to Firecracker lightweight virtualization and Kuma for service mesh control planes, Koyeb was purpose-built to run serverless workloads. Learn more about the technologies powering Koyeb with The Koyeb Serverless Engine: from Kubernetes to Nomad, Firecracker, and Kuma (opens in a new tab).
Security: While Cloudflare isolates workloads using V8 isolates, Koyeb runs containerized workloads in secure Firecracker microVMs. Koyeb's isolation technology with Firecracker provides strong security and runs workloads on high-performing bare metal machines. Learn more about the benefits of Firecracker (opens in a new tab) and how the technology works (opens in a new tab).
Regional deployment control: On Koyeb, you can control which regions your code runs in. Cloudflare Workers do not let you choose or exclude regions which can be a severe issue for compliance.
Timeouts and limitations: Cloudflare Workers have a timeout of 50 ms with a 30-second duration for additional compute time on the paid plan. Workers are built for function-like workloads, so workers should execute within that time limit. In comparison, workloads on Koyeb can have long operations running in the background. This means your code can do whatever it needs to do (for example, run a complex calculation for 30 minutes) and will not time out.
Customer support
Cloudflare Workers: For those using the free plan, there are Cloudflare Workers community channels. Paid tiers provide the option to submit support tickets, while paying for business & enterprise plans enable the possibility to chat with Cloudflare engineers.
Koyeb: All Koyeb users can join the Koyeb community (opens in a new tab) to talk directly with other users and the Koyeb team. Koyeb offers an email contact and 99.9% uptime SLA with the startup plan and 24x7x365 support with its Enterprise plan.
Pricing
Koyeb and Cloudflare Workers' prices are expressed in different ways:
- The Cloudflare Workers pricing model is based on the number of requests your function-like workloads handle and on the time each request takes to process.
- Koyeb provides a per second linear pricing model based on the computing resources your application uses and the amount of network bandwidth it consumes. The number of requests is unlimited.
Free plan
Requests | Limits per request | Memory | |
---|---|---|---|
Cloudflare Workers | 100,000 / day | 10 ms CPU time limit | 128MB |
Koyeb | Unlimited | 120 sec timeout | 512MB (or up to 2G for less time) |
Key limitations | Cloudflare Workers free plan | Koyeb free plan |
---|---|---|
Number of subrequests | 50 | Unlimited |
Script/Image size | 1MB | 1GB |
Number of Scripts/Services | 30 scripts | 32 Services (2 Apps with up to 16 Services each) |
While Cloudflare gatekeeps certain features or imposes limits across paid tiers, all of Koyeb's native features are included whether using the free or a paid tier.
Business plans
For production usage, Koyeb and Cloudflare offerings are significantly different:
- Cloudflare offers 2 paid plans that revolve around the number of requests and request duration limits
- Koyeb offers a linear pricing model based on actual usage of computing resources (CPU/RAM/SSD)
We will focus on:
- Cloudflare Workers Unbound plan as we believe the 50ms limit of the bundled plan is not appropriate for production
- Koyeb's pay-per-use plan which provides up to 2GB of RAM per Service
Cloudflare Workers - Unbound Plan | Koyeb | |
---|---|---|
Requests | $0.15 / million | Included |
Duration | $12.50 / million GB-second (opens in a new tab) | $4 / million GB-second (opens in a new tab) |
Network Bandwidth | "Normal" traffic according to their terms of service | $0.04/GB for outbound traffic |
Koyeb provides a variety of Instance sizes with different CPU, RAM, and SSD allocations so you can select and optimize computing resources for your workloads. This option does not exist with Cloudflare Workers as all Cloudflare Workers are limited to 128 MB of memory.
Conclusion
We built Koyeb to provide developers with the fastest way to deploy their apps globally. The built-in features we provide aim to create a true serverless experience that powers the necessary underlying infrastructure of your apps and speeds up the time between a feature idea and its reality.
Join us on our community platform (opens in a new tab) to let us know if you think something is missing in this comparison or if you think there is an error in our side of the story!