08.12.2025. ·
5 min

Amazon je srušio mikroservise sopstvenim primerom. Da li su tebi stvarno potrebni

HelloWorld
0
Amazon je srušio mikroservise sopstvenim primerom. Da li su tebi stvarno potrebni

Mikroservisi su godinama predstavljani kao jedini ispravan put ka modernom softveru. Ali kada Amazon izbaci mikroservise iz Prime Video sistema i smanji troškove za 90 odsto, industrija je ostala bez najjačeg argumenta. Ako čak i Amazon priznaje da mikroservisi nisu uvek rešenje, vreme je da se ovo pitanje ponovo ozbiljno postavi.

Godinama se razvija čudan paradoks u IT svetu. S jedne strane, svi guraju mikroservise kao univerzalno rešenje. S druge, sve više velikih sistema tiho se vraća monolitima. Kada se u maju 2023. pojavila informacija da je Prime Video napustio mikroservise i prešao na monolit, mnogi su to dočekali sa nevericom. Još čudnije, originalni blog post Amazona kasnije je uklonjen. Internet, naravno, pamti sve.

Ovo nije izolovan slučaj. Sve više iskusnih arhitekata otvoreno poručuje da su mikroservisi prečesto pogrešan izbor, naročito za timove koji nemaju ekstremni nivo skale. I dok su konferencije, oglasi za posao i marketing prepuni fraza poput “cloud native” i “mikroservisi po difoltu”, stvarnost na produkcionim sistemima izgleda daleko surovije.

Mikroservisi zaista rešavaju ozbiljne probleme, ali samo u ekstremnim uslovima. Većina sistema nikada neće dostići taj nivo opterećenja.

Veliki povratak monolita koji je uzdrmao industriju

Prime Video tim je izgradio složen distribuirani sistem zasnovan na AWS Lambda funkcijama i Step Functions orkestraciji. Na papiru je sve delovalo idealno. Na praksi, sistem se raspadao već na oko pet odsto očekivanog opterećenja. Previše mrežnih poziva, previše orkestracije, previše troškova.

Rešenje je bilo brutalno jednostavno. Sve je svedeno u jedan proces, u jedan monolit. Rezultat je bio 90 odsto niži troškovi, daleko bolje performanse i jednostavnije održavanje. To nije uradio mali startap bez budžeta. To je uradio Amazon.

Sličnu sudbinu imali su i drugi.

Twilio Segment je došao do 140 mikroservisa. Tri inženjera su radila gotovo isključivo na gašenju požara u sistemu. Brzina razvoja je pala, broj bagova eksplodirao. Kada su sve vratili u jedan monolit, testovi su umesto sat vremena trajali milisekunde, a razvoj je ponovo ubrzan.

Shopify je još ranije povukao drugačiji potez. Umesto mikroservisa, izabrali su modularni monolit. Jedna ogromna baza koda, ali sa jasno definisanim modulima i granicama odgovornosti. Rezultat je sistem od preko 2,8 miliona linija koda koji obrađuje desetine terabajta podataka svake minute.

Ako se čak i pioniri mikroservisa vraćaju monolitu, vreme je da se ozbiljno zapitamo zašto većina firmi i dalje srlja u suprotnom pravcu.

Skrivena cena mikroservisa koju timovi potcenjuju

Na prezentacijama mikroservisi izgledaju elegantno. U praksi, svaki novi servis uvodi novi mrežni poziv. Svaki mrežni poziv uvodi novu tačku mogućeg pada. Umesto običnih funkcijskih poziva, sada imate autentifikaciju, load balancere, service mesh, tracing, centralizovano logovanje, nadzor, orkestraciju, CI/CD cevi i konstantne probleme sa verzijama.

Operativni troškovi rastu brže od samih aplikacija. Kod Prime Video sistema više se plaćalo prebacivanje podataka između servisa nego sama obrada.

Produktivnost programera dodatno trpi. Jedna promena sigurne baze podataka u monolitu postaje višenedeljna koordinacija između timova u mikroservis arhitekturi. Greške koje bi kompajler uhvatio u monolitu pojavljuju se tek u produkciji kod mikroservisa.

Problem sa podacima je još ozbiljniji. ACID transakcije nestaju. Uvode se sagas, kompenzacije i eventualna konzistentnost. Ono što je nekada bila jedna SQL transakcija postaje niz mrežnih operacija sa retry mehanizmima i polu-uspelim stanjima koja je teško i objasniti, a kamoli debugovati.

Sve ovo ne dolazi odjednom. Složenost se gomila tiho, ali nemilosrdno.

Modularni monolit i SOA kao racionalna alternativa

Modularni monolit nije stari zakucani monolit iz devedesetih. To je jedan sistem sa jasno razdvojenim modulima koji komuniciraju kroz definisane interfejse. Razlika u odnosu na mikroservise je ključna. Sve je u jednom procesu, bez mrežnih poziva, bez parcijalnih padova, sa punom transakcionom sigurnošću.

Shopify, Facebook i brojni veliki sistemi upravo ovako funkcionišu. Timovi imaju autonomiju, ali infrastruktura ostaje jednostavna.

Druga realna opcija je service oriented architecture ili SOA. Umesto stotina sitnih servisa, postoje veće domenske celine. Autentifikacija, korisnički profili i notifikacije mogu biti jedan servis, a ne deset njih. Time se zadržava odvajanje odgovornosti, ali bez mikro fragmentacije sistema.

Ovaj model koriste ozbiljne enterprise kompanije već decenijama, uključujući banke i avio-kompanije sa milionskim opterećenjima.

Docker radi i bez mikroservisa

Još jedan mit koji se često ponavlja jeste da su kontejneri rezervisani isključivo za mikroservise. Docker jednako dobro radi sa monolitima, SOA sistemima, API servisima i event-driven arhitekturama.

Kontejnerizovan monolit nudi čisto okruženje, jednostavno skaliranje, lak deployment i konzistentnost između development i produkcije. Razlika je u tome što ne uvodite složenost orkestracije stotina servisa.

Za veliku većinu sistema, horizontalno skaliranje celokupne aplikacije je sasvim dovoljno i daleko stabilnije.

Zašto 90 odsto firmi realno ne treba mikroservise

Džejson Vorner, bivši tehnički direktor GitHuba, vrlo precizno je rekao da bi 90 odsto kompanija na svetu bez problema moglo da radi kao monolit sa jednom primarnom bazom, keševima i backupom. To govori čovek koji je vodio sisteme internet razmera.

Nik Šrok, koautor GraphQL-a, upozorava da mikroservisi često ostaju zakucani u organizacionoj strukturi iz prošlosti i da kompanije godinama kasnije plaćaju cenu pogrešnih odluka.

Kelsi Hajtaur iz Kubernetes sveta je još siroviji. Monolit će gotovo uvek pobediti mikroservise na performansama ako se pogleda čista matematika mrežne latencije.

Ovo nisu teoretičari. Ovo su ljudi koji su gradili sisteme koji danas hrane internet.

Zaključak koji industrija pokušava da ignoriše

Industrija je zaljubljena u složenost. Isto kao dete koje želi bicikl sa 21 brzinom za vožnju oko zgrade. Dok radi, izgleda impresivno. Kada počnu zaglavljeni lanci i ispali menjači, shvati se koliko je jednostavnost bila pametniji izbor.

Poenta nije da mikroservise treba baciti u smeće. Poenta je da arhitektura mora da prati stvaran problem, a ne marketing konferencija i cloud provajdera. Za većinu firmi, modularni monolit, dobro postavljen SOA ili čak klasičan monolit u Docker kontejnerima donosi više stabilnosti, manju cenu i brži razvoj nego armija mikroservisa.

Ako čak i Amazon povlači ručnu, pravo pitanje više nije da li su mikroservisi moderni. Pravo pitanje je da li su uopšte racionalni za vaš konkretan sistem.

 

Oceni tekst

0

0 komentara

Iz ove kategorije

Svi članci sa Bloga

Slični poslovi

Povezane kompanije po tagovima