Prijímame nové projekty · tím výlučne zo seniorov · práca na diaľku PWN-ALL · Štúdio na mieru

Softvér v Rust a Python ktorý prežije tím, ktorý ho dodal.

Sme štúdio zložené výlučne zo skúsených odborníkov, ktoré zámerne vytvára softvér na mieru v dvoch jazykoch: Rust, kde je chyba drahá, a Python, kde je pomalé dodanie drahé.

Priemerné zlepšenie p99 v 40 migráciách
Zníženie pamäte 0 oproti referenčným hodnotám JVM / Node
Služby v prevádzke 0 od roku 2024
Vyriešené bezpečnostné incidenty 0 za celú našu históriu
Tímy, ktoré dôverujú nášmu kódu
01 Dva jazyky. Nie päť.

Jeden stack, vybraný zámerne.

Polyglotné agentúry znejú skvele v prezentácii. V praxi však znamenajú tri systémy zostavovania, štyri varianty null a cintorín polozanedbaných služieb. Vybrali sme dva jazyky, ktoré pokrývajú 95 % skutočných pracovných úloh — a v oboch sme sa stali veľmi, veľmi dobrými.

Hot path · systémy · bezpečnosť

Rust

9,6 vnitřní skóre

Bezpečný pre pamäť bez garbage collectora. Bez dátových konfliktov už v čase kompilácie. Najprísnejší recenzent kódu, akého kedy budete mať — a keď vás raz pustí ďalej, vaša služba vás v nedeľu nezobudí.

Keď po ňom siahneme

  • Platobné kanály a všetko, čo sa týka peňazí alebo osobných údajov
  • Vysoko vyťažené API brány s SLA na úrovni 99,999 %
  • Porovnávacie motory s nízkou latenciou, obchodovanie, v reálnom čase
  • Moduly WebAssembly odoslané do prehliadača
  • Nástroje CLI a démony, ktoré sa musia spustiť v priebehu milisekúnd

Kompromisy, ktoré nebudeme ignorovať

  • Zaškolenie nových zamestnancov: ~2–4 týždne do produktivity
  • Časy kompilácie na obrovských pracovných priestoroch (riešime pomocou sccache)
  • Mladší ekosystém ako Java — vyspelý tam, kde na tom záleží
Lepidlo · dáta · ML · rýchlosť

Python

9,3 skóre vnútornej zhody

Najrýchlejšia cesta od tabule k fungujúcemu systému. Najbohatší ekosystém na Zemi pre dáta, strojové učenie a automatizáciu. Moderný Python — 3.12, uv, ruff, pydantic, FastAPI — je presný, typizovaný a dostatočne rýchly jazyk pre väčšinu toho, čo potrebujete.

Keď po ňom siahneme

  • Interné nástroje, prehľadové panely, administrátorské panely
  • ETL, dátové potrubia, Airflow / Dagster / Prefect
  • ML — trénovanie, poskytovanie, vyhodnocovanie
  • Automatizácie a integrácie s API dodávateľov
  • MVP, ktoré sa dodávajú v tomto štvrťroku, nie až budúci rok

Kompromisy, ktoré nebudeme ignorovať

  • Priepustnosť jedného jadra je 20–50× pomalšia ako v Rust
  • Vyššia pamäť na požiadavku — pre niektoré pracovné zaťaženia fatálne
  • Dynamické typovanie spôsobuje problémy bez prísneho mypy / pydantic
Rust, kde je chyba drahá. Python, kde je pomalé dodanie drahé. Jeden tím. Žiadne dogmy.
02 Čísla, nie dojem

Rust a Python vs. obvyklí podozriví.

Kliknite na ukazovateľ, aby ste zvýraznili, kde sa každý jazyk nachádza. Skóre je v rozmedzí 0–10 a je zostavené z našich vlastných benchmarkov a verejných zdrojov (Techempower R22, CLBG, skutočné migrácie, ktoré sme realizovali).

Kritérium Rust Python Go C++ Java Node.js
Surový výkon (p99, jedno jadro) 10 3 7 10 7 5
Bezpečnosť pamäte a súťaže o dáta 10 9 8 2 8 7
Čas do funkčného prototypu 5 10 7 3 6 8
Rozsah ekosystému 8 10 7 9 10 9
Súbežnosť bez problémov 10 6 9 4 6 7
Prevádzkové náklady na žiadosť 10 5 8 9 5 6
Dostupnosť senior talentov 6 10 7 8 10 9
10-ročná udržateľnosť 10 8 8 5 8 5
03 Od → K

Čo sa zmení pri migrácii.

Vyberte si počiatočný jazyk. Pozrite sa, aký vplyv má prechod na Rust alebo Python. Čísla sú mediány z našich posledných 40 migračných projektov, nie marketingové reči.

Aktuálne na

C / C++

Rýchle, áno. Ale každý nulový ukazovateľ je potenciálnym CVE, každé vlákno je potenciálnym súbojom o dáta a váš systém kompilácie je pre niekoho prácou na plný úväzok.

Typické problémy
  • CVE týkajúce sa bezpečnosti pamäte
  • Nedefinované správanie
  • Rozrastanie systému kompilácie
Presunúť do

Rust

Priepustnosť ×6,4
Pamäťová náročnosť −78
Zlyhania behu −99 %
Mesačné náklady na výpočtový výkon −65 %

Najlepšie, ak momentálne žijete s chybami typu null-pointer, súťažami o dáta alebo pamäťou, ktorá neobmedzene rastie. Rust zachováva rýchlosť a odstraňuje nástrahy.

Prechod na

Python

Rýchlosť vývoja ×3,1
Počet riadkov kódu −55 %
Čas do vydania −60 %
Režijné náklady na prevádzku +40 %

Najlepšie, ak skutočnou cenou je čas inžinierov, nie CPU. Vymeňte surovú priepustnosť za kratšiu spätnú väzbu, bohatšie knižnice a kód, ktorý ľudia skutočne dokážu prečítať.

Ako meriame tieto čísla

Mediány zo 40 dokončených migrácií v rokoch 2023 až 2026. Prietok meraný na aplikačnej vrstve (end-to-end p50 pri realistickom zaťažení, nie mikrotesty). Pamäť je RSS v ustálenom stave. Náklady sú mesačné výpočtové zdroje na požiadanie na AWS/GCP, všetko ostatné je rovnaké. Individuálne výsledky sa líšia — na požiadanie zverejňujeme aj tie, ktoré neprebehli podľa plánu.

04 Čísla bez hviezdičiek

Počet požiadaviek za sekundu pri reálnom zaťažení.

Identická pracovná záťaž — overenie JSON → dotaz Postgres → vykreslenie — merané na jednom počítači s procesorom AMD Ryzen 7. Nie sú to mikrotesty. Zdroj a metodika ↓

  1. 1 Rust · Axum
    21 030 požiadaviek/s
  2. 2 C# .NET · ASP.NET Core
    14 707 požiadaviek/s
  3. 3 Node.js · Fastify
    9 340 požiadaviek/s
  4. 4 C++ · Drogon
    7 200 požiadaviek/s
  5. 5 Go · Gin
    3 546 požiadaviek/s
  6. 6 Python · FastAPI (Uvicorn)
    1 185 požiadaviek/s
  7. 7 PHP · Laravel
    299 požiadaviek/s

Prečítajte si to správne: Python je na spodku tohto grafu a to je v poriadku. FastAPI nespúšťame na hot path. Spúšťame ho tam, kde 1 185 požiadaviek za sekundu je už ~10× viac, než si pracovná záťaž vyžaduje, a hodiny práce inžinierov majú väčšiu hodnotu ako cykly CPU. Metodika: AMD Ryzen 7, Linux, Docker, jedna inštancia, jeden populárny framework na každý jazyk. Čísla sú priemery z viacerých behov.

05 Skutočné náklady na nefunkčný kód

Koľko vás vlastne stojí výpadok.

„Päť deviatok“ nie je marketing. Nižšie je uvedené, koľko stojí jedna hodina neplánovaného výpadku, podľa odvetvia — so zdrojmi. Vytvárame Rust tam, kde sa tieto čísla nachádzajú.

Náklady, ktoré vznikli od otvorenia tejto sekcie
Financie / zdravotníctvo 0 ~83 000 $/min · 5 miliónov $/hod
Automobilový priemysel 0 ~38 000 $/min · 2,3 mil. $/hod
Veľké podniky 0 23 750 $/min · 1,4 mil. $/hod.
Stredný podnik 0 ~5 000 $/min · 300 000 $/hod
Financie a zdravotníctvo 5 miliónov USD a viac za hodinu

Vertikálne trhy s najvyššou stávkou. Obchodné platformy, zúčtovacie systémy a klinické systémy môžu počas vážneho výpadku prekročiť 5 miliónov USD za hodinu — a to ešte pred započítaním akýchkoľvek nákladov na reguláciu alebo súdne spory.

Zdroj: Štúdia Gartner 2024 Fortune 500; ITIC 2024 Hodinové náklady na výpadok.
Výroba automobilov 2,3 milióna USD za hodinu

Zastavená výrobná linka spôsobuje stratu približne 640 USD za sekundu. Výpadok spoločnosti CrowdStrike v júli 2024 stál len spoločnosť Delta Air Lines 380 miliónov USD za päť dní.

Zdroj: Rozpis odvetví Erwood Group 2025; Postmortem Antithesis CrowdStrike.
Veľké podniky (priemer) 1,4 milióna USD za hodinu

Údaj spoločnosti BigPanda za rok 2024 pre veľké podniky: 23 750 USD za minútu. ITIC uvádza, že 41 % veľkých podnikov stráca medzi 1 a 5 miliónmi USD za hodinu výpadku.

Zdroj: Výskum spoločnosti BigPanda z roku 2024; 11. výročná správa ITIC o hodinových nákladoch na výpadok.
Global 2000 (Oxford Economics) 400 mld. USD/rok

Celkové skryté náklady na neplánované výpadky v 2 000 najväčších spoločnostiach sveta, podľa štúdie Oxford Economics z roku 2024 – v priemere 200 miliónov USD na spoločnosť, ak sa spočítajú tržby, produktivita a náklady na nápravu.

Zdroj: Oxford Economics 2024, „The Hidden Costs of Downtime“ (Skryté náklady výpadkov).
Stredné a veľké podniky (typická hodina) 300 000 USD a viac / hodina

Prieskum ITIC z roku 2024: viac ako 90 % stredných a veľkých podnikov v súčasnosti považuje jednu hodinu neplánovaného výpadku za prekročenie tejto hranice — bez započítania právnych, občianskoprávnych alebo regulačných sankcií.

Zdroj: Správa ITIC o hodinových nákladoch na výpadky z roku 2024.
Malé a stredné podniky (SMB) 25 000 – 150 000 USD/hodina

Spoločná štúdia ITIC / Calyptix z roku 2025 zistila, že mnohé malé a stredné podniky strácajú toľko za hodinu; spoločnosť Siemens uvádza, že malé a stredné podniky postihnuté výpadkami môžu zaznamenať straty až 150 000 USD/hod. Priemerná dĺžka výpadku je 87 minút.

Zdroj: ITIC + Calyptix 2025; Siemens True Cost of Downtime 2024.
06 Vybrané projekty

Tri projekty. Tri rôzne problémy.

Anonymizované tam, kde to vyžaduje dohoda o mlčanlivosti, konkrétne tam, kde to vyžadujú výsledky. Toto sú projekty, na ktoré by sme technického nákupcu upozornili ako prvé.

  1. Prípad 01 Python Databáza Kryptomeny GDPR

    Fintech dátový trezor: 4× menší, 5,5× rýchlejší, globálne kompatibilný.

    Klient prevádzkoval 1,8 TB Postgres cluster preplnený starými stĺpcami, nefunkčnými indexmi a inline šifrovanými BLOBmi, ktoré narastali sedem rokov. Kryptografia bežala na zastaranej knižnici, na ktorú upozornili tri samostatné audity. Riziko porušenia regulácií bolo reálne; audítori krúžili okolo.

    Čo sme urobili

    • Úplný audit schémy a využitia, odstránenie nepoužívaných stĺpcov a indexov, zavedenie správneho rozdelenia.
    • Migrácia kryptografického potrubia zo staršej knižnice na moderný, auditovaný AEAD stack s rotujúcimi kľúčmi.
    • Previesť šifrovanie BLOB-inline na šifrovanie s odkazom na obálku + vyhradený KMS.
    • Zosúladenie uchovávania údajov a tokov prístupu subjektov s GDPR, CCPA a APPI.
    Výsledok

    Rovnaké dáta, štvrtina nákladov na úložisko, 5,5-násobná priepustnosť a čistý zdravotný certifikát pre ďalšieho regulátora, ktorý zaklopal na dvere.

  2. Prípad 02 Rust C++ → Rust Bezpečnosť Ukladanie

    Služba v C++ prepísaná v Rust: viac ako 100 chýb triedy CVE odstránených za 9 týždňov.

    Služba na spracovanie súborov pre používateľov v C++, ktorá sa zrútila každých 4–5 dní a bola vždy opravená na mieste. Náš audit odhalil viac ako 100 skutočných chýb: cesty k odmietnutiu služby , pretečenie vyrovnávacej pamäte, neobmedzené spracovanie požiadaviek. Chyby 503 v špičke boli týždenným rituálom. Pokiaľ ide o úložisko, nahrané súbory používateľov sa nahromadili do močiaru duplicitných súborov, ktoré zapĺňali úložisko.

    Čo sme urobili

    • Kompletné prepísanie v Rust (axum + tokio) s prísnou validáciou vstupov a obmedzenými limitmi zdrojov.
    • Testy založené na vlastnostiach + cargo-fuzz nad každým parserom a hranicou formátu prenosu.
    • Úložná vrstva adresovaná podľa obsahu s deduplikáciou v čase zápisu.
    • Modro-zelené nasadenie v rámci 4-hodinového integračného okna, bez výpadkov.
    Výsledok

    Služba sa zmenila z „krehkej a týždenne opravovanej“ na „prestali sme sledovať pager“. Náklady na úložisko klesli vďaka deduplikácii, žiadosti o podporu týkajúce sa chýb a 503-iek vyschli a prepis sa zaplatil sám za štvrťrok.

  3. Prípad 03 Rust Python eBPF / XDP CRM · 4 000 používateľov

    Enterprise CRM, prestavané: 18 serverov → 5, zníženie nákladov o viac ako 60 %.

    Interný CRM slúži viac ako 4 000 používateľom v oblastiach IAM, SOC, centralizovaného protokolovania, chatu, zdieľania súborov, VoIP a end-to-end šifrovaných dát. Osemnásť serverov, Cloudflare na vrchole a účet za cloud, ktorý neustále rástol bez ohľadu na počet zamestnancov. Prebudovali sme hot path v Rust, ponechali Python na integračnej a reportovacej vrstve a umiestnili eBPF/XDP filter priamo pred vstup.

    Čo sme urobili

    • Služby Rust pre autentizáciu (IAM), zasielanie správ v reálnom čase, VoIP signalizáciu, prenos súborov.
    • Python pre administrátorské rozhrania, reporting, koreláciu udalostí SOC, integráciu s API dodávateľov.
    • Filtrovanie botov a zneužívania pomocou eBPF/XDP v jadre – nahradilo Cloudflare pre túto pracovnú záťaž.
    • Prepracovaný potrubie štruktúrovaného protokolovania na základe schémy zero-copy.
    Výsledok

    O trinásť serverov menej, žiadna položka Cloudflare, tím SOC vidí čistejší signál cez protokolovacie potrubie a finančný riaditeľ prestal klásť nepríjemné otázky o rozpočte na infraštruktúru.

07 Ako skutočne pracujeme

Nastavte parametre. Sledujte, ako sa mení plán.

Každý projekt vyvažuje rýchlosť, náklady a spoľahlivosť. Nižšie uvedený päťstupňový odhad je kalibrovaný podľa mediánov v odvetví (zistenie 2–6 týždňov, architektúra 1–4 týždne, implementácia 4–20 týždňov, zabezpečenie 2–8 týždňov, odovzdanie 1–2 týždne — podľa správy z rokov 2024–2026 od spoločností NIX United, Agilie, SOLTECH, OTG Lab). Posuňte posuvníky; plán sa prispôsobí v reálnom čase.

01

Objavovanie

3 týždne

Prečítajte si svoj kód, porozprávajte sa so svojimi operátormi, vymenujte neznáme faktory a vyberte jazyk pre každú komponentu.

  • Rozhovory s odborníkmi a audit kódu
  • Register rizík a ciele SLA
  • Rozhodnutie o jazyku pre každú službu
02

Architektúra

2 týždne

Zmluvy pred kódom. OpenAPI / protobuf, dátové modely, topológia nasadenia, kostry runbookov.

  • RFC pre každú verejnú zákazku
  • Dátový model + plán migrácie
  • Základná infraštruktúra ako kód
03

Implementácia

8 týždňov

Malé PR, CI zelená od prvého dňa, nasadenie pri každom zlúčení, kontrola druhým seniorom.

  • Rust: axum · tonic · sqlx
  • Python: FastAPI · Pydantic · SQLAlchemy
  • Týždenné ukážky + zoznam zmien
04

Zabezpečenie

3 týždne

Fuzzing, testy založené na vlastnostiach, záťažové testy s realistickým prevádzkovým zaťažením, model hrozieb.

  • cargo-fuzz · proptest · hypothesis
  • k6 záťažové testy viazané na SLO
  • Bezpečnostná kontrola a audit závislostí
05

Odovzdanie

1 týždeň

Runbooky, striedanie pohotovostných služieb, ADR a tím, ktorý to už raz dodal.

  • Runbooky + matica pohotovostných služieb
  • Protokol ADR a diagramy architektúry
  • 30-dňová podpora po spustení
08 Ten istý problém, dva jazyky

Ako vyzerá ten istý koncový bod v každom z nich.

Načítanie používateľa, overenie vstupu, uloženie do Postgresu, vrátenie JSON. Prepínanie medzi jazyky — oba sú skutočný kód, ktorý by sme skutočne dodali.

SQL_CREATE_USER = "insert into users(email,name) values(lower($1),$2) returning id,email,name"
Name = Annotated[str, StringConstraints(strip_whitespace=True, min_length=1, max_length=120)]

class UserIn(BaseModel):
    email: EmailStr
    name: Name

class UserOut(UserIn):
    id: int

@router.post("/users", response_model=UserOut, status_code=201)
async def create_user(u: UserIn) -> UserOut:
    try:
        row = await pool.fetchrow(SQL_CREATE_USER, str(u.email), u.name)
   except UniqueViolationError as exc:
        raise HTTPException(status_code=409, detail="email už existuje") from exc
    if row is None:
        raise HTTPException(status_code=500, detail="vloženie zlyhalo")
    return UserOut.model_validate(dict(row))
#[derive(Deserialize, Validate)]
#[serde(deny_unknown_fields)]
pub struct UserIn {
    #[validate(email)]
    pub email: String,
    #[validate(custom(function = "valid_name"))]
    pub name: String,
}

pub async fn create_user(
    State(pool): State<PgPool>,
    ValidatedJson(u): ValidatedJson<UserIn>,
) -> Result<(StatusCode, Json<UserOut>), ApiError> {
   let user = sqlx::query_as!(UserOut,
        "insert into users(email,name) values(lower($1),$2) returning id,email,name",
        u.email.as_str(),
        u.name.trim(),
    )
    .fetch_one(&pool)
    .await
    .map_err(ApiError::from_db)?;

    Ok((StatusCode::CREATED, Json(user)))
}
Počet riadkov kódu
16 22
Priepustnosť
1 185 požiadaviek/s 21 030 požiadaviek/s
Latentnosť p50
21,0 ms 1,6 ms
RAM v kľude
41,2 MB 8,5 MB
Odpovieme do 1 pracovného dňa. Bez žartov.

Prečítali ste celú stránku.
Pustime sa do toho.

Povedzte nám, čo vám na vašom staku nevyhovuje, alebo čo chcete vytvoriť od nuly. Dostanete skutočný technický názor – nie predajnú prezentáciu.

  • Žiadni začínajúci inžinieri. Žiadne offshoring.
  • Možnosti s pevnou cenou na ohraničené práce.
  • Podpísanie dohody o mlčanlivosti ešte predtým, ako vás o niečo požiadame.