I couldn't find the benchmark results of the this project. I'm just wondering;
How many users can drone (API) server handle, approximately? (1k, 10k, ?)
(Of course; It depends by bandwidth and CPU)
Assuming that the servers can handle the high-load, Can the drone server respond to 100K thousand users instantly without any instability?
Can the drone server respond to 100K thousand users instantly without any instability?
The largest enterprise using Drone (to my knowledge) is supporting ~3000 developers. It is very unlikely that every developer at the company would be sending simultaneous and constant requests to Drone. The service level objectives, in terms of requests per second, are probably relatively low based on real world usage patterns even when supporting thousands of developers.
The company employing the largest number of developers (to my knowledge) is Samsung with ~40,000 developers. If Samsung had a single Drone installation to support its entire developer workforce it would not need to respond to 100K users instantly. Maybe it would get a few hundred requests per second max.
@bradrydzewski Thank you! So, technically; Does the server structure allow you to handle so many requests per second?
I do not know the theoretical limits. Drone is written in Go and uses chi + Postgres (or mysql or sqlite if you prefer). The techempower benchmarks [1] show that Go + chi can serve 2000 API requests per second, where each API call executes 20 database queries on a cloud server. Most Drone API calls execute under 5 database queries. For Drone, the size of the dataset is likely going to impact performance the most.
Drone is a single-server, single binary installation, that is meant to be self-hosted. The goal is to provide an out-of-the box solution that is easy to install and scales from small teams to organizations with a few thousand developers. Creating a web-scale solution to support millions of users (100K requests per second) is not a goal of the project and is not something we've tested for.
[1] https://www.techempower.com/benchmarks/#section=data-r17&hw=cl&test=query
Thank you for your informative and detailed explanation. :)
I'm going to close, but if anyone wants to purse the benchmarking discussion further, lets create a discussion in our mailing list at https://discourse.drone.io
Most helpful comment
I do not know the theoretical limits. Drone is written in Go and uses chi + Postgres (or mysql or sqlite if you prefer). The techempower benchmarks [1] show that Go + chi can serve 2000 API requests per second, where each API call executes 20 database queries on a cloud server. Most Drone API calls execute under 5 database queries. For Drone, the size of the dataset is likely going to impact performance the most.
Drone is a single-server, single binary installation, that is meant to be self-hosted. The goal is to provide an out-of-the box solution that is easy to install and scales from small teams to organizations with a few thousand developers. Creating a web-scale solution to support millions of users (100K requests per second) is not a goal of the project and is not something we've tested for.
[1] https://www.techempower.com/benchmarks/#section=data-r17&hw=cl&test=query