R-team: z ručně spouštěných Windows serverů na GitOps platformu v Kubernetes, o 40 % levněji
R-team, firma obchodující s kryptoměnami na vlastní účet, provozovala své boty, příjem tržních dat a exekuční jádro jako procesy spouštěné ručně na třech Windows serverech. Obchoduje se nepřetržitě, takže jsme nemohli nic zastavit ani my. Kubernetes platformu jsme postavili vedle starých serverů, nechali obě běžet souběžně, dokud se výsledky neshodovaly, produkci přepnuli během jednoho večera podle scénáře a potom převedli všechny služby na GitOps.
Klient: R-teamObor: Fintech / krypto tradingCloud: DigitalOceanSpolupráce: od února 2025, pokračujeTým na naší straně: managed DevOps tým

- 3 → 1Windows servery nahradil jeden Kubernetes cluster
- −40 %Náklady na infrastrukturu
- 32Aplikací nasazovaných přes GitOps
- 1 denNa převod čtyř živých klíčových služeb na GitOps
Výchozí stav
Nepřetržitý byznys na procesech, které nikdo nesepsal
R-team obchoduje nonstop na několika burzách. Jeho stack rostl tak, jak tradingové stacky obvykle rostou: zhruba osmnáct procesů v Pythonu (boty, websocketové přijímače tržních dat, exekuční jádro, kontrola rizik a reporty) na třech Windows serverech, spouštěných ručně z batch souborů. Žádná infrastruktura jako kód, žádný centrální monitoring a přehled o tom, co kde běží, existoval hlavně v hlavách lidí.
Dokud byl tým malý, fungovalo to. S každou další strategií to ale přestávalo stačit: nový bot znamenal další ruční spuštění, oprava na jednom serveru se mohla zapomenout na druhém a nikdo nedokázal s jistotou říct, co v produkci právě běží. Otázka zněla, jak převést byznys, který nikdy nezavírá, na moderní platformu a nevsadit přitom obchodní pozice na migraci.
Jedna platforma popsaná v kódu
Každý server, cluster, databáze i služba definované v Gitu. Stav produkce si přečtete, nemusíte si ho pamatovat.
Migrace, která nesmí prodělat
Nová platforma se musela proti staré osvědčit na skutečných obchodních datech dřív, než převzala jedinou pozici.
Samoobsluha pro tradingový tým
Vývojáři strategií mají nasadit nového bota, aniž by čekali na infrastrukturního inženýra.
Co jsme postavili
Platforma vrstvu po vrstvě
Všechno je definované jako kód a prochází revizí v pull requestech. Změny infrastruktury se plánují v pull requestu a aplikují se jen záměrným spuštěním pipeline.
Jak jsme migrovali
Postavit vedle, ověřit, pak přepnout
Nejdřív rozplést monolit
Služby žily v jednom repozitáři a spouštěly se jako skripty. Rozdělili jsme je do vlastních repozitářů s vlastními pipeline a image.
- Sdílený tradingový kód se stal verzovanými knihovnami v privátním registru.
- Renovate otevírá pull requesty s aktualizacemi ve všech projektech, které je používají.
Obě platformy souběžně
Kubernetes platforma běžela vedle Windows serverů na samostatném obchodním účtu se stejnými tržními daty.
- Vlastní reporty R-teamu (plán vs. skutečnost) obě platformy porovnávaly.
- Produkce se přesunula, až když se výsledky téměř shodovaly (zhruba z 95 %).
Přepnutí za jeden večer podle scénáře
Přechod proběhl podle sepsaného plánu o třinácti krocích v klidném obchodním okně.
- Zastavit boty, skriptem uzavřít pozice, přepnout produkční přístupy, znovu nasadit, sledovat.
- Windows servery zůstaly jako testovací prostředí a po několika týdnech skončily.
Živé tradingové služby pod GitOps, aniž bychom na ně sáhli
Po přepnutí se služby pořád nasazovaly přes CI pipeline, které zapisovaly přímo do clusteru a při každém běhu znovu vytvářely tajemství. Git a cluster se rozcházely. Čtyři klíčové služby (kontrolu rizik, přijímače tržních dat, služby botů a exekuční jádro) jsme převedli na Argo CD za jeden den, ve vlnách podle rizika. Jako první šla nejmenší služba, jako kanárek.
O dva dny později následovaly komponenty platformy: telemetrie, logování, metriky a DNS. Infrastrukturních deploy pipeline je místo osmi pět a to, co běží v clusteru, odpovídá tomu, co je v Gitu.
Nasazování
Od strategie do produkce pokaždé stejnou cestou
- NapsatVývojář pracuje na strategii nebo službě v jejím vlastním repozitáři.
- SestavitZnovupoužitelné šablony pipeline sestaví a otestují image.
- PublikovatImage a sdílené knihovny jdou do privátního registru.
- OznačitPipeline zapíše novou verzi image do Gitu. Do clusteru nesahá.
- SynchronizovatArgo CD změnu nasadí a drží cluster ve shodě s Gitem.
- SledovatDashboardy a alerty v týmovém chatu ukážou dopad.
Nový bot je jeden values soubor v jednom chartu. Po předání si vývojáři R-teamu přidávají nové boty sami, bez požadavku na infrastrukturu. Rollback je git revert.
Provoz
Jak to běží den za dnem
Alerty s návodem
Pravidla alertů jsou v Gitu vedle infrastruktury a chodí do týmového chatu. Každé má záznam v runbooku, včetně připraveného promptu pro analýzu s AI asistentem.
Aktuální Kubernetes
Cluster prošel během spolupráce upgradem přes tři minor verze Kubernetes, takže R-team nikdy neběžel na nepodporované verzi.
Menší plocha pro útok
Veřejně dostupné endpointy logů a databází jsme uzavřeli a každá aplikace čte jen svá vlastní tajemství přes politiku jen pro čtení.
Náklady
Levnější provoz než servery, které nahradil
Windows servery byly dimenzované na nejvytíženější hodinu a platily se nonstop. V Kubernetes sdílejí zátěže nody a každý typ zátěže má pool dimenzovaný podle skutečné spotřeby. Náklady na infrastrukturu tím klesly o 40 %.
Výsledky
Kde je R-team dnes
| Oblast | Dříve | Dnes |
|---|---|---|
| Kde služby běží | Asi 18 procesů na 3 Windows serverech | Jeden Kubernetes cluster definovaný v Terraformu |
| Jak se spouštějí | Ručně, z batch souborů | Argo CD, z Gitu |
| Co kde běží | Zčásti nezdokumentované | 32 aplikací, všechny viditelné v Gitu |
| Tajemství | Pipeline je při každém běhu vytvářely znovu | Vault, pro každou aplikaci jen pro čtení |
| Nový obchodní bot | Ruční nastavení na serveru | Jeden values soubor, přidají ho vývojáři R-teamu |
| Monitoring | Žádný centrální | Metriky, logy, trasy a alerty jako kód |
| Rollback | Ručně | Git revert |
| Náklady na infrastrukturu | Tři servery dimenzované na špičku | −40 % |
Co dál
Kam může platforma pokračovat
Další logické kroky: samostatné testovací prostředí přímo v clusteru, aby Windows testovací okruh už nebyl potřeba, převod ingress controlleru a Grafany na Argo CD a AI asistent, který prověří alerty z porovnání plánu se skutečností a zapíše svá zjištění přímo k alertu.

