Ako nevhodná infraštruktúra zbytočne brzdila úspech Startupjobs

Symboly znázorňujúce infraštruktúru od Webglobe
Symboly znázorňujúce infraštruktúru od Webglobe
Ikona peňaženky 57 000 používateľov
Ikona úspěchu 46 % medziročný nárast používateľov
Ikona nastavenia Ľahká škálovateľnosť

Každý zakladateľ startupu verí v raketový úspech. Málokto však skutočne vie, čo všetko takýto úspech obnáša a ako sa pripraviť na riziká, ktoré sa s ním spájajú.

Na StartupJobs je dobre vidieť, ako je pre firmy dôležité na rýchly rast pohotovo reagovať a včas mu prispôsobiť svoje zázemie.

A takisto, aké dôležité je mať skúseného partnera, ktorý takéto zázemie dokáže navrhnúť a spravovať.

Webové stránky se typicky skládají z:

  • kódu aplikácie (napr. PHP) + assetov (Java Script, CSS, fontov)
  • databázy (MySQL)
  • súborových dát (obrázkov, PDF…)

V 99 % prípadov sú tieto komponenty všetky hostované na jednom serveri. Niektoré zložitejšie weby však majú ešte ďalšie (napr. RabbitMQ, ElasticSearch). A to už môže viesť k množstvu potenciálnych problémov, ako to bolo v prípade StartupJobs.

Skromné začiatky: Ako StartupJobs rýchlo prerástli freehosting

Dnes si už len ťažko predstaviť, že StartupJobs svoj web v roku 2012 spúšťali na freehostingovej službe.

Keď im takýto webhosting (z pochopiteľných dôvodov v krátkom čase) prestal stačiť, prešli na virtuálny server.

Keď jeden server prestal stačiť, zaobstarali si vo Webglobe server pre každý projekt zvlášť:

  1. 1 managed VPS pre .CZ web s komponentmi (MySQL databázou, RabbitMQ, ElasticSearch a Matomo – open source alternatívu Google Analytics)
  2. 1 managed VPS pre .COM web (pre americký trh)
  3. 1 managed VPS na vývoj a staging

„Za 1. rok nám návštevnosť stúpla 4x a za 2 roky už 9x.”

Filip Mikschik, zakladateľ

S úspechom prišla potreba ľahkej škálovateľnosti 

Aj s výkonnejším VPS bol však český web naďalej pravidelne preťažený.

Dokonce tak, že pri krízovej aplikácii našej dynamickej konfigurácie spotreboval výkon celého zdieľaného fyzického serveru len pre seba.

Web mal zároveň nečakané výpadky zapríčinené konfliktom medzi verziami PHP.

Najrýchlejším (ale len dočasným) riešením bolo pridať ďalšie servery. 

Blížil sa čas, keď bolo potrebné spraviť razantný krok vpred, zahodiť súčasnú infraštruktúru a vybudovať novú, od základov inak.

Výzva pre Webglobe

StartupJobs jednoducho potrebovali high-availability infraštruktúru na mieru, ktorá nebude brzdiť rast firmy. To znamená, že bude:

  1. vysoko dostupná (s absolútne minimálnym počtom výpadkov)
  2. priepustnejšia (spracuje väčšie množstvo požiadaviek a web tak dokáže obslúžiť viac klientov súčasne)
  3. flexibilnejšia (umožní jednoduchšiu výmenu komponentov)

„Počet používateľov nám stabilne medziročne rástol o 20 %. Chceli sme mať istotu, že to náš web ustojí.”

Filip Mikschik, zakladateľ

Pre maximálnu dostupnosť bolo úplne nevyhnutné všetky komponenty izolovať a zaistiť ich odolnosť voči zlyhaniu.

Výpadok ktoréhokoľvek komponentu nesmel spôsobiť výpadok celého webu.

Cesta k vlastnej high-availability infraštruktúre

Preto sme navrhli úplné novú architektúru a zásadný upgrade všetkých technológií vrátane zmeny operačného systému serverov.

Veľká úloha pripadla aj developerom StartupJobs, ktorí na základe našich odporúčaní museli upraviť backend webu.

Náročné operácie spomaľujúce databázu sme spoločne oddelili a pre oboje následne vytvorili špeciálny server.

Reštrukturalizáciu sme kvôli väčšej efektivite a zníženiu nákladov rozdelili na 2 etapy:

1. „Stabilizačná” etapa

  • rozdelenie aplikácií (webov) a služieb (napr. MySQL) a ich presun na samostatné servery
  • upgrade komponentov na najnovšie verzie
  • separácia náročných procesov v backende webu
  • tvorba storage serveru pre obrázky a PDF, zdieľané medzi backendom a frontendom

2. Prechod na plnohodnotnú high-availability infraštruktúru

  • duplikácia všetkých komponentov pre web, MySQL, RabbitMQ, ElasticSearch atď.
  • tvorba automatického failoveru pre jednoduché prepnutie na iný server

Základom inovatívneho riešenia sa stali tri hlavné Docker Swarm servery s redundantnou infraštruktúrou umožňujúce jednoduché prepínanie medzi jednotlivými serverovými časťami. K nim pribudli samostatné Docker nody na testovanie.

To všetko v sprievode zdieľaných load balancerov na optimálne rozdelenie záťaže a efektívne škálovanie.

Ak by napríklad teraz malo prísť k výpadku jedného serveru, systém automaticky prepne na druhý, a vďaka tomu zníží nedostupnosť služieb na jednotky sekúnd.

„S novou infraštruktúrou sme v roku 2023 ustáli rekordný 46 % rast používateľov.”

Peter Orosz, CTO

Príbeh sa nekončí – čo ak StartupJobs naďalej porastú rovnakou rýchlosťou?

Pre ďalší rýchly rast StartupJobs máme už vopred navrhnuté riešenie. Dlhodobo odporúčame prechod zo zdieľanej virtualizácie na vlastný virtualizačný cluster s fyzickými servermi.

Na hardvér sme odborníci. Používame výlučne enterprise grade komponenty s výrazne dlhšou životnosťou v porovnaní s tým, čo sa bežne používa napr. v gamingu. 

A vieme, ako ho optimalizovať, aby sme z fyzických serverov dostali skutočne maximum.

S čím vám môžeme pomôcť?

Obráťte sa na nás, sme tu pre vás. Ozveme sa najneskôr do 24 hodín.


    Toto pole je povinné
    Toto pole je povinné
    Helper Text
    Toto pole je povinné
    Toto pole je povinné