Pár čísel o Webnode infra a jejím přesunu do cloudu

17.03.2025

Rádi bychom se s Vámi podělili o náš příběh migrace do cloudu, v našem případě AWS. A proč jsme vybrali právě tento cloud? O tom se dočtete dále v článku.

Všechno to začalo už před více jak 5 lety (tedy zhruba přelom let 2019 a 2020), kdy jsme začali uvažovat, jak dále s naší infrastrukturou. Jak zajistit, že každý náš projekt může být servírován z libovolného uzlu systému, v tomto případě serveru? Jak jít s dobou a nezůstat u řešení ze začátku tisíciletí? A nenakupovat stále další a další hardware. Pojďme si to nejdřív ukázat na pár číslech, to vlastně řekne nejvíc. 


Jak to vypadalo před migrací aneb po 15 letech vývoje..

  • 200+ fyzických serverů v různých datacentrech převážně po Česku, některé i v zahraničí

  • 400+ VPS

  • 200+ VPS pro běh starší verze Webnode

  • 100+ výkonnějších VPS pro běh aktuální verze Webnode

  • 10+ VPS pro běh portálu, mikroslužeb a dalších aplikací

  • 5 velkých db serverů s asynchronní replikací dat

  • 3 opravdu velké MTA servery

  • 5 serverů ELK

  • 10+ DNS serverů

  • 10+ VPS pro různé druhy proxy (ProxySQL, HAproxy atp.)

  • 10+ VPS pro distribuované služby jako Kafka, Aerospike

  • AWS S3 + CDN – ano, už tehdy jsme byli částečně moderní!

  • a hromada drobností, mini-vps na kdejakou blbost..

No, na údržbu a rozšiřování žádná sláva.

O zhruba 3 roky intenzivní práce později..

Srpen 2024, tadá! Veškerá infrastruktura kompletně odmigrovaná z datacenter, běžíme čistě v AWS. Moment, opravdu? Tak dobře, téměř. DNS a mailservery jsme svěřili našim partnerským firmám v team.blue. Jde o takové množství dat, že jejich správa a hostování v cloudu už byly trochu mimo naše možnosti. Představte si, že spravujete statisíce domén druhé úrovně a k tomu mailboxy. Zaplatit byť jen dolar měsíčně za mailbox provozovaný třetí stranou už dokáže solidně zahýbat rozpočtem. Pomocnou ruku jsme tedy více než uvítali.
A co na tom trvalo tak dlouho? V prvé řadě vymyslet vůbec jak, kam, za kolik.. A pak začit zgruntu překopávat aplikace, spojení na databáze, uložení všech souborů, cache, optimalizovat cronjoby. Vše ve škále milionů uživatelských projektů.

Největší výzvou bylo umístění těch milionů schemat databází jednotlivých projektů. Ano, určitě dnes najdete i lepší způsob než mít pro každý projekt (tedy vlastně každý nový web) vlastní databázové schéma, ale takto byla aplikace navržena již před více než 15 lety. Kompletně ji přepsat by byla opravdu velká výzva. My se nechtěli pouštět do dalšího kroku do neznáma, takže jsme se rozhodli toto řešení zachovat. A znáte někdo cloudovou službu, která toto zvládne? My už ano, takže proto AWS.

No a jak tedy vypadá produkce v AWS?

  • 15 – 30 EC2 instancí pro EKS (Kubernetes) - ano, celý náš workload opravdu utáhne relativně nevelké množství, po všech těch optimalizacích. Je to tak, cloud tě donutí. A kolik to je reálně výkonu? Při 30 instancích 312 jader CPU a 1248 GB RAM.

  • 4 opravdu velké Elasticache instance

  • 4 RDS instance pro systemovou databázi

  • 16 instancí Aurory pro projektové databáze - jo, tohle je ten kanón, který v AWS mají

  • 2 MSK instance – Kafka toho zase tolik nepotřebuje

  • S3 a CDN – tady se mnoho nezměnilo - stále máme v S3 uloženy terabyty dat a přes CDN servírujeme stovky GB denně

A nestojí to raketu? Jo, levné to není. Dražší než původní setup po těch optimalizacích ale téměř taky ne. A hardware? To už není náš problém, nemusíme vyměnit ani šroubek zastaralých strojů. Natož vyměňovat disky v DC uprostřed noci. Rozjet novou appku nebo databázi? Za půl dne hotovo. Zkuste si to taky.

Všechno zalité sluncem?

Jasně, fuckupy byly taky, a ne vždycky malé. S cache to fakt není jednoduché. Mezizónový traffic dokáže dost vytrestat, když ho musíte zaplatit. Nechat na začátku pro Kubernetes příliš malé subnety byl vyloženě blbý nápad, kterého si nikdo nevšiml. Nechtějte vědět, co se stane, když v k8s dojdou IP adresy. Lesson learned, člověk se má pořád co učit..

Chcete se o tom pobavit víc? Stavte se na náš meetup!


Za Webnode Honza Koukal