A Qovery contest · A new season every month

The rush is coming.
Keep every customer.

A monthly game for engineers. Thousands of customers hit your app at once, and you decide how it grows to serve them. Every customer kept waiting or turned away costs money. Lose the least, spend the least, climb the leaderboard.

Real Kubernetes autoscaling under the hood: the Horizontal Pod Autoscaler and KEDA, on a cluster run by Qovery.

Control room · Swift Otters · Flash CrowdReal run on Qovery
Play it as
Money lost€0
Lost checkouts0
Instances1
Infra bill€0.00
Incoming trafficInstancesLost requests (errors, timeouts)0:00 / 10:00

A real wave on Qovery. Instances arrived too late, and every lost request cost money.

Three steps to the leaderboard

Every team starts with the same app and faces the same rush. Only your choices differ.

Continue with GitHub
Continue with GitLab
Swift Otters · your app is ready

Sign in and play

Name your team and get your own app to defend. Nothing to install, ready in about 2 minutes.

Scale-up trigger60%
Min instances4
Max instances24

Pull the levers

Decide how fast your app grows, how big it gets and what you are willing to spend. A practice wave replays every time you move a lever.

Swift Otters142
Calm Herons131
Bold Lynx118

Ride the wave

Launch a ranked run when you're ready. Every team faces the same waves, and your best run of the month goes on the public leaderboard.

Downtime has a price

Pick what your app is. When it slows down or falls over, you watch the money go, live. After 5 seconds, your customer is gone.

Every business has the same prices and the same 5-second limit, so the leaderboard stays fair. Google found that 53% of mobile visits are abandoned when a page takes more than 3 seconds to load, so 5 seconds is generous.

Double Wave · 10 min
  1. Warm-up
  2. Spike
  3. Calm
  4. Comes back
  5. Long tail

The wave leaves too

Every wave is ten minutes of customers, the same for every team. When the rush ends, every server you kept running for nothing still costs you.

  • 10x in 15 seconds: how fast do you react?
  • A calm, then it comes back: did you scale down too far?
  • Ranked waves shift the timing, so you can't hard-code a schedule
Beginner1 scenario · 3 levers · points ×1●○○○
Intermediate3 scenarios · 6 levers · points ×2●●○○
Expert5 scenarios · 10 levers · points ×3●●●○
KEDA3 scenarios · 12 levers · points ×4●●●●

Four leagues, from first steps to expert

Each league brings new kinds of waves and new levers. One setup has to hold every wave of your league: acing one and crashing on another won't win.

  • Beginner: learn how your app reacts to a rush
  • Intermediate: trade speed against your bill
  • Expert: cheap servers that can vanish mid-wave, and every second of startup
  • KEDA: react to the crowd itself, sleep through quiet nights, get ready before an announced rush
fast − slow − 5 × failed€ spent
Availability ≥ 99%p95 ≤ [300] msUnder budget

Keep them happy, keep them all, keep the bill low

Customers served fast earn points. Customers kept waiting cost points, and customers you lose cost five times more. The less you spend on servers to get there, the higher you rank.

  • Let too many customers down and your score is halved
  • Blow the budget and you're out
  • Watch the money go, live, while the wave hits
  • A season every month: up to 3 ranked runs a day, your best one counts

Your levers

The same settings teams tune in production. You unlock more as you move up a league.

Scale-up trigger Beginner

How busy your app gets before it adds a server. Early is safe, late is cheap.

Min and max instances Beginner

How many servers wait for the rush, and how far you let it grow.

Scale-down delay Intermediate

How long to keep extra servers once the rush ends. It might come back.

Instance size Intermediate

A few big servers or many small ones.

Scaling metric Intermediate

Watch how hard your app works, or how much it holds in memory. One reacts sooner than the other.

Max scale-up step Expert

Grow a little at a time, or all at once.

Warm pool Expert

Servers on standby, ready the second the rush hits, at half price.

Startup probe delay Expert

Send customers to a new server too early and they fail. Too late and they wait.

Spot share Expert

Servers at 40% of the price, until the cloud takes them back mid-wave.

Request-rate scaling KEDA

Grow with the crowd itself, not with how busy your servers are.

Scheduled pre-scaling KEDA

Be ready before an announced ticket drop. The timing shifts a little.

Scale to zero KEDA

No customers, no servers, no bill. The first customer after a quiet night waits.

A podium every month

A new season starts on the 1st. The podium goes to the three teams with the most points that month: 25 for first place in a league down to 1 for tenth, times the league's weight, from ×1 in Beginner to ×4 in KEDA. See the championship

1st place3 months of Qovery Scale+ a $500 gift card for the teamScale: priority support, expert onboarding and compliance add-ons
2nd place3 months of Qovery Growth+ a $300 gift card for the teamGrowth: production and staging, with monitoring included
3rd place3 months of Qovery Starter+ a $100 gift card for the teamStarter: your first production app on your own cloud

Compare the plans on qovery.com/pricing · Official rules

Keep it fair

Every month is a season, from the 1st to the last day (UTC). Teams of 1 to 3, and you can play again every month.

Allowed

  • Any lever in your control room
  • Unlimited practice waves
  • Up to 3 ranked runs a day; your best of the month counts
  • One league per month; move up whenever you want
  • Changing settings between ranked waves
  • Playing solo or under your company's name

Not allowed

  • Trying to reach the environment outside the control room
  • Detecting or filtering the load generator
  • Changing settings during a ranked wave
  • Going over the budget cap

Questions

I've never configured autoscaling. Can I play?

Yes. Your control room starts with working defaults, and the practice wave shows what each lever changes as you move it.

Can I play before ranked sign-ups open?

Yes. Practice mode needs no sign-in: same game, same levers, against sample teams, with your runs kept in this browser. Ranked runs need a Qovery sign-in and a real environment for your team; you can ask for one email when sign-ups open.

What else is there between ranked runs?

A daily challenge: one scenario a day for everyone, with three levers and its own ranking, and a streak if you come back every day. Achievements for things like zero lost customers, half the budget or a personal best. And practice waves, as many as you want.

When can I play?

Any time. Every calendar month is a season, from the 1st to the last day (UTC). Your team and your app stay from one month to the next; the leaderboard starts fresh on the 1st, and past months stay public.

Who pays for the instances?

Qovery does. The infra bill comes from public instance prices and the money lost from your slow and lost requests. Both are game numbers, and nobody gets a bill.

Do I need a Qovery account? Do I need my own cloud?

Yes, you need a Qovery account. It keeps your session, your team, your dedicated app and your scores from one day, and one month, to the next. Sign in with GitHub, GitLab or Google; if you don't have an account yet, signing in creates one, free and without a card.

You don't need any infrastructure, cloud account or credit card. Your team's app runs on Qovery's infrastructure, and Qovery pays for it.

Do harder leagues earn more points?

Not in the monthly ranking: each league has its own, since the scenarios and budgets differ. In the yearly championship, yes: a place earns 25, 18, 15, 12, 10, 8, 6, 4, 2 or 1 points, times ×1 in Beginner, ×2 in Intermediate, ×3 in Expert and ×4 in KEDA. Winning Expert is worth three times winning Beginner.

How is the score computed?

Each request is fast (under 300 ms), slow (300 ms to 5 s) or lost (an error, or no answer within 5 s). A scenario scores fast − slow − 5 × lost, divided by what your instances cost at public cloud prices. Under 99% availability, or over the p95 latency target, the scenario score is halved. Over budget in any scenario and the run is disqualified. Your league score is half your average scenario and half your weakest one.

What runs behind the game?

Each team gets its own environment on Qovery, on a Kubernetes cluster managed by Qovery. Your app is a small Go service, and the levers are its Kubernetes autoscaling settings: the Horizontal Pod Autoscaler (CPU or memory target, min and max replicas, scale-down window, scale-up policy), the readiness probe, spot capacity, and KEDA scalers (request rate, cron, scale to zero) in the KEDA league. The control room applies them through the Qovery API in about 15 seconds.

The load generator runs inside your environment and calls your app on its internal address, so internet latency never counts against you.

What do winners get?

Each month, the podium team gets three months of a Qovery plan for its company and a gift card for the players to keep: Scale and $500 for first, Growth and $300 for second, Starter and $100 for third. If your company already pays for Qovery, you get the gift card but not the plan months. Every player also gets a result card to share after each ranked run. The plans are described on qovery.com/pricing.

Can I see how others did it?

At the end of each month, the top 10 settings of the season are published on the leaderboard.

Ready for the wave?

Sign in, name your team, and you're playing in about 2 minutes. Free, on us.