Evolucija web hostinga jedne aplikacije koja raste

Grow to scale, scale to grow.

xPanel hosting

Napisao si neku malu aplikaciju (uglavnom PHP), koristio si SSG ili nešto treće, nećeš imati traffic, bitno ti je da se vidi. Kupićeš domen i hosting ćeš to platiti 2-3k dinara godišnje i to radi. Međ Srba cPanel je popularan, nažalost.

VPS

Okej, tvoja aplikacija ipak ima neki trafik, sporo radi na Panel hostingu ili ti treba malo više prostora na hardu, cimaš istog provajdera, dobiješ instaliran WHM, dao ti je 4GB RAM-a, 2 vCPU-a i 50ak GB SSD-a, sada plaćaš 40ak$ mesečno, mnogo je skuplje ali to eto možeš da se bahatiš sa resursima.

Dedicated server

Okej, sada si baš narastao, imaš po par hiljada pregleda u minuti, uzimaš po neku kintu od aplikacije. Ideš na Hetzner ili OVH, zakupljuješ dedicated server, sada već imaš 32GB RAM-a, 8 jezgara, 1TB NVmE-a, tu je i 1gbps uplink, ozbiljnji resursi. Paneli i softverska rešenja su ispala iz priče, pametno bi bilo da digneš Debian, nisi debil pa ćeš podesiti Nginx umesto Apacha, FPM, MariaDB, naterao si aplikaciju da priča sa Redis-om pa je response time dosta nizak. Neke stvari baš ne možeš da keširaš Redisom pa si podesio i nginx proxy_cache.

Posla ima mnogo više, aplikacija je narasla, server ima solidne perfomanse, nije skup, plaćaš ga od 50-80e ali ima mnogo više posla, kada nešto rikne ti popravljaš, brineš o backupima i slično.

Ovde si neki duži period, zona konfora. Možda si prešao na neki veći server i zakupio neki manji VPS za development server.

Ranije bi ljudi dizali Load Balancere (ili koristili DNS load bancer) i iza njih držali više dedicated servera na koje bi stavljaji aplikacije i pišali bi krv dok nameste MySQL clustere, proxije i GlusterFS/CEPH za distribuirani storidž i budili bi se u 3 noću subotom jer je stigla notifikacija da se MySQL samo tako odlučio da prestane da radi i kosa bi ti vrlo ubrzo počela da liči na nekoga ko se budi nedeljom ujutru da ide na kej i igra boćanje. Tako da svako kome je lično zdravlje bitno, prelazi direkt na cloud.

CLOUD

There is no cloud, just someone else’s computer

WTF je Cloud? Pogledaj ovaj filmić

Sada je već priča postala ozbiljna, u zavisnosti od aplikacije zaradjuješ neki keš, prodao si dobro njemačko auto Golfa, nabavio stil i kupio Đuliju. Život je lep.

Došao je trenutak da ponovimo priču sa početka: Grow to scale, scale to grow

Svi pričaju o tome, pa moraš i ti, došlo je vreme za cloud. Realno imaš nekoliko opcija:

Ako si i malo pametan, izabraćeš opciju 1 ili 3, Azure ne bih preporučio ni najgorem neprijatelju, ovu ostalu dvojicu biraš ako imaš neki shady biznis ili si rusofil koji ne voli NATO pakt.

Pored njih su tu i DigitalOcean, Linode, Hetzner Cloud, OVH Cloud, IBM cloud, Oracle ali ili su sranje, ili nemaju dovoljno usluga ili su papreno skupi.

Cloud je skup biznis, nemaju svi muda da udju u njega tako da ima malo igrača. Jebi ga.

Zašto si na cloudu?

Cloud ti rešava probleme kao što su: SPOF, LB, Skaliranje, CDN, WAF, PoP, Distribuirani storidz, GDPR i još brdo stvari kojih nisi ni svestan, koji su izazvani malo tehničkim, malo poslovnim malo pravnim malo političkim problemima.

Cloud je pre svega IaaS, odnosno infrastruktura kao servis, gde ti koristiš njihove servise i ne moraš da se njakaš da ih ti praviš održavaš i slično.

Ako si pametan i odabereš AWS, koristićeš servise kao što su: EC2, S3, RDS, EKS, ECS, ElastiCache, CloudFront, SES i Elastic BeanStalk.

Ali pazi, cloud je kao dobra rakija, čovek se lako navuče i aplikacija prestaje da ti bude Provider Independed. Što je najgore od svega, u ovom trenutku verovatno imaš minimum 5-10 developera tako da i oni vole dobar deo svog posla da oteraju u neke cloud servise kako bi sebi oslobodili grbaču.

Za ove igrarije treba ti ozbiljan DevOps, a kao sto znamo (mi) devopsi su govna.

To sve radi, to je sve sjajno, sve radi kako treba, ne brineš ni očemu, autoscaling, backupi, CI/CD, monitoring, sve je tu.

U ovom trenutku počinješ da dobijes bol u predelu prepona, to je bol u jajima za infrastrukturu jer si to skinuo sa kurca, ali tako počinje da se javlja bol u bubregu, odnosno novčaniku.

Skup taj cloud brate

Dok si trepnuo račun za AWS ti je 15k$ mesečno, pogotovo ako su developeri pušteni sa lanca i ne radite nikakve testove, testiranje perfomansi i SAST

Ovo je neki prelazni period gde ti je najveći problem to što te boli zeludac kada se vratiš sa prasetine kod Duće ili iz Knina i što ti žena kenja za pritisak a ti voliš slanu kožuru sa vruće prasetine.

Hybrid Cloud

Idemo malena, život je pred nama

Sada je prošlo već dosta godina, zaposlio si nekoliko ljudi sa 10+ godina iskustva čije pozicije zvuče nešto kao CEO, CTO, COO, CSO i SRE, Ranisan ti već dugo ne pomaže i opasno merkaš da pazariš Aero 3

Šta mu dodje taj Hybrid Cloud?

U mikroservisima si do lakata. Mislim realno nisi pipnuo terminal godinama ali pravićemo se da te i dalje zanima i dešava se sledeće:

Opet se ponavlja Skup taj cloud brate fraza, ili te jebe politika, ili te jebu perfomanse, ili te jebe tehnologija, nešto te uglavnom jebe i to na suvo.

Odlučujes da napraviš distancu od Clouda. I dalje koristiš dobar deo njegovih fensi usluga ali si nešto sto je skupo (nešto CPU intensive) pomerio nazad na fizičke servere. Npr. imaš aplikaciju kojoj je potrebna neka zajebana matematika ili koristis GPU za neka renderovanja i sl. Odlučuješ da napraviš svoj Data Centar (server sobu, da budemo realni) i tu staviš 50ak fizičkih servera, povežeš na mrežu i to povežeš sa ostatkom aplikacije u Cloudu. Ili koristiš OutPost.

Zakomplikovao jesi, uštedeo para verovatno jesi, uglavnom ideš u nekom smeru ni sam ne znaš gde.

Kubernetes meme

Private Cloud

Sada si već debelo mudo, firma ti verovatno ima profit ravan BDP-u omanje države, zajebi Bezosa, zajebi sve, praviš svoj datacentar. Ako nisi mudo, onda si ili naučni institut, ili država ili špijuniraš pola planete, što te opet čini mudom.

Datacentar, hiljade servera, elektrana, hlađenje, agregati, optika, BGP, anycast, IPv6 i svi ti fensi termini. Skupo, jeste, mnogo skupo. Da se marfijev zakon ne bi primenio na tebi sazidaš jos jedan DC minimum 80km dalje da budeš po standardu. Dva je realno gadan broj, a 3 je srpski pa napraviš jos jedan, što da bi fleksao drugarima iz srednje što da bi imao redundaciju bitnih podataka kako Bog zapoveda.

Instalirao si OpenShift ili nešto treće, uglavnom slušaš sta kažu ovi, valjda, ja nemam pojma, nikada nisam pravio datacentar, pitaj nekog starijeg.

Šta dalje?

Pročitaš Simulacra and Simulation, izađes iz Matrixa, upoznaš Arhitektu i vratiš se u Zion ili kao svaki pravi Srbin domaćin čovek počneš da praviš kulen i kobasice.

Šta god radio, sasrećom!