Back to blog
ENGINEERING 7 min read Mar 5, 2026

90-Second Provisioning: The Engineering Behind Order-to-VM

Customer clicks 'Order' — 90 seconds later they have SSH credentials. Here's every step in between and how we made each one fast.

Marko Petrović

Platform Architect

When someone asks what PLATFORMA does differently, we usually answer with a number: 90 seconds. That's the time from a customer clicking 'Order VPS' to having SSH credentials in their inbox. Most cloud providers take 5–15 minutes. Some take hours because there's a human in the loop.

90 seconds isn't magic. It's the result of eliminating every unnecessary step and parallelizing everything that remains. Here's the full breakdown.

The Timeline

0.0s — Customer submits order through the portal. The order service validates the request, checks inventory, and creates an order record. 0.8s — Order confirmed event hits Kafka. The provisioning service picks it up within 200ms.

1.0s — Provisioning starts. We call OpenStack Nova to create the instance. Simultaneously, we call Neutron to allocate a floating IP and configure security groups. These happen in parallel, not sequentially.

15–60s — The VM boots. This is the longest step and the one we have least control over. Boot time depends on the image size, hypervisor load, and storage backend. We've optimized our base images to be minimal — the Ubuntu image is 350MB, not 2GB. We pre-cache images on every compute node.

60–70s — Cloud-init runs. We inject the customer's SSH key, configure the hostname, set up monitoring agents, and run any post-provisioning scripts. This is templated and takes under 10 seconds.

70–80s — DNS configuration. We create an A record pointing to the floating IP. Propagation within our managed DNS is instant — we control the authoritative nameservers.

80–85s — Verification. The provisioning service SSH-es into the new instance to verify it's reachable and healthy. If this fails, it retries twice before marking the provisioning as failed.

85–90s — Notification. The notification service sends the customer their SSH credentials, IP address, and portal login link via email. The order status updates to 'Active' in real-time via WebSocket.

Where Teams Get Stuck

The biggest mistake we see other platforms make is sequential processing. Create VM → wait → assign IP → wait → configure DNS → wait → send email. Each step waits for the previous one to complete. We start DNS allocation and IP assignment at the same time as VM creation. By the time the VM boots, everything else is ready.

PROVISIONING TIMELINE
Order
Nova
Boot
Ready
0.8sOrder → Kafka
60sVM boot
90sTotal

The second mistake is human approval gates. Every manual step adds 30 minutes to days of latency. Our entire flow is automated with zero human touchpoints. If a provisioning fails, the system retries automatically and only alerts an engineer after three failures.

The Kafka Backbone

Every step in the pipeline communicates via Kafka events. This gives us three things: decoupling (the order service doesn't know or care how provisioning works), reliability (events are persisted and can be replayed), and observability (every event is a breadcrumb in the audit trail).

When a customer asks 'where's my server?' — we can show them exactly which step is in progress, down to the second.