14.11.2025. ·
2 min

TikTok je prepisao samo najkritičnije delove koda iz Go u Rust i time uštedeo 300.000 dolara godišnje

HelloWorld
0
TikTok je prepisao samo najkritičnije delove koda iz Go u Rust i time uštedeo 300.000 dolara godišnje

TikTok inženjerski tim pronašao je način da uštedi više od 300.000 dolara godišnje optimizacijom sopstvenog backend sistema. Umesto da kompletno prepišu servis, odlučili su da samo ključne Go API-je zamene Rust kodom, što je donelo drastično bolje performanse i manju potrošnju resursa.

Kada su TikTok API servisi za plaćanja počeli da obrađuju više od 100.000 zahteva u sekundi, Go runtime se našao pod ozbiljnim opterećenjem. CPU je postao usko grlo sistema, a dodatna optimizacija Go koda više nije davala rezultate. Najveći problemi bili su intenzivna serijalizacija i deserijalizacija podataka, pauze zbog garbage collectiona i neefikasna alokacija memorije.

Zbog toga je tim odlučio da testira Rust, poznat po performansama i kontroli memorije bez garbage collectora. Ispostavilo se da je to bio pun pogodak jer je Rust implementacija značajno smanjila opterećenje sistema i ubrzala rad API-ja.

Rust pokazao jasnu prednost u performansama

Rezultati su bili izuzetni. Nakon što su prepisali samo najopterećenije API-je, CPU upotreba pala je za 33%, memorijska potrošnja smanjena za 72%, a p99 latencija skraćena za 76%. Brojevi jasno pokazuju koliko Rust može biti efikasniji u realnim produkcionim uslovima.

Prednost Rust jezika leži u njegovoj arhitekturi. Ne koristi garbage collector, već ima determinističko vlasništvo i poznat životni ciklus objekata. Pored toga, koristi Copy-on-Write strukture koje sprečavaju nepotrebno kopiranje podataka i omogućava zero-cost apstrakcije koje eliminišu dodatni runtime trošak.

Delimična migracija kao idealno rešenje

TikTok inženjeri su odlučili da samo CPU-intenzivne delove sistema prepišu u Rust, dok je ostatak ostao u Go jeziku. Novi servisi su najpre pokrenuti u tzv. shadow režimu, gde su rezultati testirani paralelno bez uticaja na korisnike, sve dok nije potvrđena 100% tačnost i stabilnost.

Ovakav pristup pokazao se kao idealan balans između performansi i održavanja. TikTok je na taj način zadržao jednostavnost Go jezika, a istovremeno iskoristio brzinu i efikasnost Rust implementacije.

 

Oceni tekst

0

0 komentara

Iz ove kategorije

Svi članci sa Bloga

Slični poslovi

Povezane kompanije po tagovima