Every startup founder believes in rapid success. But few actually know what such success entails and how to prepare for the risks that come with it.
StartupJobs clearly illustrates how important it is for companies to react quickly to growth and adapt their infrastructure in time.
And just as important, how crucial it is to have an experienced partner who can design and manage such infrastructure.
Websites typically consist of:
- application code (e.g. PHP) + assets (JavaScript, CSS, fonts)
- database (MySQL)
- file data (images, PDFs…)
In 99% of cases, these components are all hosted on one server. Some more complex websites may have additional components (e.g. RabbitMQ, ElasticSearch). And that already brings a host of potential problems, as was the case with StartupJobs.
Humble beginnings: how StartupJobs quickly outgrew free hosting
It’s hard to imagine now, but in 2012 StartupJobs launched their website using a free hosting service.
When such a solution (understandably) no longer sufficed, they moved to a virtual server.
Once that wasn’t enough, they obtained one managed VPS from Webglobe for each project:
- 1 managed VPS for the .CZ website and components (MySQL, RabbitMQ, ElasticSearch and Matomo – an open-source alternative to Google Analytics)
- 1 managed VPS for the .COM website (for the US market)
- 1 managed VPS for development and staging
“In the first year, our traffic quadrupled. After two years, it was already 9x higher.”
Filip Mikschik, founder
Success brought the need for easy scalability
Even with a more powerful VPS, the Czech website was still regularly overloaded.
To the point that during emergency use of our dynamic configuration, it consumed the performance of the entire shared physical server by itself.
The website also experienced unexpected outages caused by conflicts between PHP versions.
The quickest (but only temporary) solution was to add more servers.
It became clear that a significant step forward was needed: to abandon the existing infrastructure and build a new one from the ground up.
The challenge for Webglobe
StartupJobs simply needed a tailor-made high-availability infrastructure that wouldn’t hold back their growth. That meant it had to be:
- Highly available (with an absolute minimum of outages)
- More performant (able to process more requests and serve more clients simultaneously)
- Flexible (allowing easier component replacement)
“Our user count has been growing steadily at 20% year-on-year. We wanted to be sure our website could handle it.”
Filip Mikschik, founder
For maximum availability, it was essential to isolate all components and ensure fault tolerance.
The failure of any one component must not cause the failure of the whole website.
The road to a high-availability infrastructure
So we designed an entirely new architecture and a major upgrade of all technologies, including changing the server operating system.
StartupJobs’ developers also played a key role, as they had to modify the website backend based on our recommendations.
We separated demanding operations that were slowing down the database and created a dedicated server for each of them.
To make the restructuring more efficient and reduce costs, we split the work into 2 stages:
1. “Stabilisation” stage
- Separation of applications (websites) and services (e.g. MySQL), each moved to separate servers
- Upgrading all components to the latest versions
- Isolating demanding backend processes
- Creating a storage server for images and PDFs, shared between the backend and frontend
2. Transition to full high-availability infrastructure
- Duplication of all components for the website, MySQL, RabbitMQ, ElasticSearch, etc.
- Creating automatic failover for easy switching to another server
The core of the innovative solution became three main Docker Swarm servers with redundant infrastructure, allowing easy switching between specific server parts. Additional dedicated Docker nodes were added for testing.
All of this was accompanied by shared load balancers for optimal load distribution and efficient scaling.
For example, if one server goes down now, the system automatically switches to another, reducing service downtime to mere seconds.
“With the new infrastructure, we handled a record 46% growth in users in 2023.”
Peter Orosz, CTO
The story doesn’t end here – what if StartupJobs keeps growing at the same pace?
We already have a solution prepared for even faster growth of StartupJobs. We’ve long recommended transitioning from shared virtualisation to a dedicated virtualisation cluster with physical servers.
We’re hardware experts. We use only enterprise-grade components with significantly longer lifespans than what’s typically used in gaming, for example.
And we know how to optimise them to truly get the maximum out of physical servers.