Tunapokea miradi mipya · timu ya wataalamu wa ngazi ya juu pekee · kazi ya mbali kipaumbele PWN-ALL · Studio ya programu maalum

Programu katika Rust na Python ambayo hudumu zaidi timu iliyoiwasilisha.

Sisi ni studio ya wataalamu wa hali ya juu inayotengeneza programu maalum kwa lugha mbili kwa makusudi: Rust ambapo kufanya makosa ni gharama kubwa, na Python ambapo kuchelewa kutoa ni gharama kubwa.

Wast. p99 uboreshaji katika uhamisho 40
Upunguzaji wa kumbukumbu 0% dhidi ya viwango vya msingi vya JVM / Node
Huduma katika uzalishaji 0 kuanzia 2024
Matukio ya usalama yaliyotolewa 0 katika historia yetu yote
Timu zinazouamini msimbo wetu
01 Lugha mbili. Sio tano.

Mkusanyiko mmoja, ulioteuliwa kwa makusudi.

Shirika zenye lugha nyingi huonekana nzuri kwenye wasilisho la mauzo. Katika uzalishaji zinamaanisha mifumo mitatu ya ujenzi, aina nne za null, na makaburi ya huduma zisizotunzwa kikamilifu. Tulichagua lugha mbili zinazofunika 95% ya mizigo halisi ya kazi — na tulibobea sana, sana katika zote mbili.

Njia ya msingi · mifumo · usalama

Rust

9.6 alama ya uendelezaji wa ndani

Salama kwa kumbukumbu bila mkusanyaji wa taka. Haina mbio za data wakati wa kutengeneza msimbo. Mkaguzi wa msimbo mkali zaidi utakayewahi kuwa naye — na mara tu anapokuruhusu kupita, huduma yako haitakuamsha Jumapili.

Tunapoitumia

  • Mifumo ya malipo na chochote kinachogusa pesa au PII
  • Milango ya API yenye SLA za tano-nane
  • Injini za kulinganisha zenye ucheleweshaji mdogo, biashara, wakati halisi
  • Moduli za WebAssembly zilizotumwa kwenye kivinjari
  • Zana za CLI na daemoni zinazopaswa kuanzishwa ndani ya milisekunde

Maamuzi ya kubadilishana ambayo hatutadanganya kuyaficha

  • Mchakato wa kuanzisha wafanyakazi wapya: takriban wiki 2–4 hadi waweze kutoa mchango
  • Muda wa kutafsiri kwenye maeneo makubwa ya kazi (tunatatua kwa sccache)
  • Mfumo mchanga kuliko Java — umekomaa pale inapohitajika
Gundi · data · ML · kasi

Python

9.3 alama ya uendelezaji wa ndani

Njia ya haraka zaidi kutoka kwenye ubao mweupe hadi mfumo unaofanya kazi. Mfumo tajiri zaidi duniani kwa data, ML na otomatiki. Python ya kisasa — 3.12, uv, ruff, pydantic, FastAPI — ni lugha sahihi, yenye aina, na ya kasi ya kutosha kwa kile unachohitaji zaidi.

Tunapokifikia

  • Zana za ndani, dashibodi, paneli za usimamizi
  • ETL, mirija ya data, Airflow / Dagster / Prefect
  • ML — mafunzo, utoaji, tathmini
  • Otomatishaji na muunganisho na API za wauzaji
  • MVP zinazotolewa robo hii, sio mwaka ujao

Maamuzi yenye hasara hatutayaficha

  • Ufanisi wa kiini kimoja ni polepole mara 20–50 kuliko Rust
  • Kumbukumbu kubwa zaidi kwa kila ombi — hatari kwa baadhi ya mizigo ya kazi
  • Uainishaji wa aina unaobadilika ni tatizo bila mypy / pydantic kali
Rust ambapo makosa ni ghali. Python ambapo kuchelewa kutoa ni gharama kubwa. Timu moja. Hakuna kanuni kali.
02 Nambari, si hisia

Rust na Python dhidi ya lugha zinazotumika kawaida.

Bofya kipimo ili kuonyesha kila lugha inavyofanya. Alama ni 0–10, zimepatikana kutokana na vipimo vyetu wenyewe pamoja na vyanzo vya umma (Techempower R22, CLBG, uhamisho halisi tuliotuma).

Kigezo Rust Python Nenda C++ Java Node.js
Utendaji mbichi (p99, kiini kimoja) 10 3 7 10 7 5
Usalama wa kumbukumbu na mbio za data 10 9 8 2 8 7
Muda wa kuunda prototipu inayofanya kazi 5 10 7 3 6 8
Upana wa mfumoikolojia 8 10 7 9 10 9
Uendeshaji sambamba bila machozi 10 6 9 4 6 7
Gharama za uendeshaji kwa kila ombi 10 5 8 9 tano sita
Upatikanaji wa vipaji vya wazee 6 10 7 8 10 9
Uendelevu wa miaka 10 10 8 8 5 8 5
03 Kutoka → Kwenda

Nini hubadilika unapohama.

Chagua lugha ya kuanzia. Tazama athari za kuhamia Rust au Python. Nambari ni wasitani kutoka kwa miradi yetu 40 ya mwisho ya uhamishaji, si maneno ya uuzaji.

Kwa sasa kwenye

C / C++

Haraka, ndiyo. Lakini kila null pointer ni CVE inayoweza kutokea, kila thread ni data race inayoweza kutokea, na mfumo wako wa ujenzi ni kazi ya wakati wote ya mtu fulani.

Maumivu ya kawaida
  • CVE za usalama wa kumbukumbu
  • Tabia isiyoainishwa
  • Upanukaji wa mfumo wa ujenzi
Hamia

Rust

Uwezo wa kupitisha ×6.4
Matumizi ya kumbukumbu −78%
Mashinduko wakati wa utekelezaji −99%
Bili ya kompyuta ya kila mwezi −65%

Ni bora zaidi unapokabiliana na hitilafu za null-pointer, migogoro ya data, au kumbukumbu inayokua bila kikomo. Rust huhifadhi kasi na kuondoa hatari za kimakosa.

Hamia

Python

Kasi ya maendeleo ×3.1
Safu za msimbo −55%
Muda wa kutolewa −60%
Mzigo wa utekelezaji +40%

Bora zaidi wakati gharama halisi ni muda wa uhandisi, si CPU. Badilisha kasi ghafi kwa mzunguko mfupi wa mrejesho, maktaba zenye utajiri zaidi, na msimbo ambao watu wanaweza kusoma kweli.

Jinsi tunavyopima nambari hizi

Viwango vya kati kutoka kwa uhamisho 40 uliokamilika kati ya 2023 na 2026. Uwezo wa kupitisha umepimwa katika safu ya programu (p50 kutoka mwanzo hadi mwisho chini ya mzigo halisi, si vigezo vidogo). Kumbukumbu ni RSS katika hali ya utulivu. Gharama ni ya kompyuta ya kila mwezi inapohitajika kwenye AWS/GCP, huku mambo mengine yote yakiwa sawa. Matokeo ya mtu binafsi hutofautiana — tunachapisha pia yale ambayo hayakwenda kama ilivyopangwa, kwa ombi.

04 Nambari zisizo na alama ya nyota

Maombi kwa sekunde chini ya mzigo halisi.

Mzigo sawa wa kazi — kuthibitisha JSON → kuuliza Postgres → kuonyesha — ulipimwa kwenye kompyuta moja ya AMD Ryzen 7. Haya si vipimo vidogo vya utendaji. Chanzo na mbinu ↓

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

Soma hii kwa usahihi: Python iko karibu na chini ya chati hii, na hilo ni sawa. Hatutumii FastAPI kwenye njia yenye mzigo mzito. Tunaitumia pale ambapo 1,185 req/s tayari ni takriban mara 10 zaidi ya inavyohitajika na mzigo wa kazi, na saa za wahandisi zina thamani zaidi kuliko mizunguko ya CPU. Mbinu: AMD Ryzen 7, Linux, Docker, mfano mmoja, fremu moja maarufu kwa kila lugha. Nambari ni wastani kutoka kwa majaribio mengi.

05 Gharama halisi ya msimbo uliokatika

Gharama halisi unayolipia kwa kukatika kwa huduma.

"Five nines" si masoko. Hapo chini ni gharama ya saa moja ya muda wa kutofanya kazi usiopangwa, kulingana na sekta — pamoja na vyanzo. Tunatengeneza Rust ambapo nambari hizi ziko.

Gharama iliyokusanywa tangu ulipofungua sehemu hii
Fedha / huduma za afya $0 ~$83k/min · $5M/hr
Magari $0 ~$38k/min · $2.3M/hr
Shirika kubwa $0 $23,750/dakika · $1.4M/saa
Shirika la ukubwa wa kati $0 ~$5k/min · $300k/hr
Fedha na huduma za afya Zaidi ya $5M kwa saa

Sekta zenye hatari kubwa zaidi. Majukwaa ya biashara, mifumo ya malipo na mifumo ya kliniki zinaweza kuzidi dola milioni 5 kwa saa wakati wa kukatika kwa huduma kwa kiwango kikubwa — kabla ya gharama zoyote za udhibiti au kisheria kuhesabiwa.

Chanzo: Utafiti wa Gartner 2024 Fortune 500; Gharama ya Kila Saa ya Kukaa Chini ya ITIC 2024.
Utengenezaji wa magari $2.3M / saa

Mstari wa uzalishaji uliosimama unagharimu takriban $640 kwa sekunde. Hitilafu ya CrowdStrike ya Julai 2024 iliigharimu Delta Air Lines pekee $380M kwa siku tano.

Chanzo: Uchanganuzi wa sekta wa Erwood Group 2025; Uchambuzi wa baada ya tukio la CrowdStrike wa Antithesis.
Shirika kubwa (kwa wastani) $1.4M kwa saa

Takwimu ya BigPanda ya mwaka 2024 kwa makampuni makubwa: $23,750 kwa dakika. ITIC inaripoti kuwa 41% ya makampuni makubwa hupoteza kati ya $1M na $5M kwa saa ya kukatika kwa huduma.

Chanzo: Utafiti wa BigPanda 2024; ITIC Gharama ya Kila Saa ya Kutofanya Kazi ya 11 ya Mwaka.
Global 2000 (Oxford Economics) $400B / mwaka

Jumla ya gharama fiche za muda wa kutofanya kazi usiopangwa kwa kampuni 2,000 kubwa zaidi duniani, kulingana na utafiti wa Oxford Economics wa 2024 — kwa wastani wa athari ya dola milioni 200 kwa kila kampuni wakati mapato, tija na gharama za kurekebisha zinapojumlishwa.

Chanzo: Oxford Economics 2024, "Gharama Fichwa za Kukoma kwa Shughuli".
Kati na kubwa (saa ya kawaida) $300k+ / saa

Utafiti wa ITIC wa 2024: zaidi ya 90% ya biashara za ukubwa wa kati na kubwa sasa huweka saa moja tu ya muda wa kutofanya kazi usiopangwa juu ya kiwango hiki cha chini — bila kujumuisha adhabu za kisheria, za kiraia au za udhibiti.

Chanzo: Ripoti ya ITIC ya 2024 kuhusu Gharama ya Kila Saa ya Muda wa Kutofanya Kazi.
Ndogo na za kati (SMB) $25k–$150k / saa

Utafiti wa pamoja wa ITIC / Calyptix wa 2025 unagundua kuwa biashara ndogo na za kati nyingi hupoteza kiasi hiki kwa saa; Siemens inaripoti kuwa biashara ndogo na za kati zinazopata kukatika kwa huduma zinaweza kupoteza hadi $150,000 kwa saa. Katikati ya tukio la kukatika kwa huduma hudumu kwa dakika 87.

Chanzo: ITIC + Calyptix 2025; Siemens True Cost of Downtime 2024.
06 Kazi iliyochaguliwa

Miradi mitatu. Moto mitatu tofauti.

Imewekwa siri pale NDA inavyosema, na kwa undani pale matokeo yanavyoonyesha. Hizi ndizo shughuli ambazo tungemuelekeza mnunuzi wa kiufundi kwanza.

  1. Kesi 01 Python Hifadhidata Kryptografia GDPR

    Hifadhi ya data ya Fintech: ndogo mara 4, kasi mara 5.5, inakidhi viwango vya kimataifa.

    Mteja alikuwa na klasta ya Postgres ya TB 1.8 iliyovimba na safu za urithi, viashiria vilivyokufa, na BLOB zilizo fichwa ndani zilizo kukuwa kwa miaka saba. Crypto iliendeshwa kwenye maktaba iliyopitwa na wakati iliyotajwa katika ukaguzi tatu tofauti. Uwezekano wa adhabu za kisheria ulikuwa halisi; wakaguzi walikuwa wanakaribia.

    Tulichofanya

    • Ukaguzi kamili wa muundo na matumizi, ondoa safu na faharasa zisizotumika, tengeneza mgawanyo sahihi.
    • Hamisha mtiririko wa crypto kutoka maktaba ya zamani hadi mkusanyiko wa kisasa, uliokaguliwa wa AEAD wenye funguo zinazobadilika.
    • Badilisha usimbaji fiche wa BLOB-inline kuwa usimbaji fiche wa bahasha unaorejelea + KMS maalum.
    • Pangilia upya uhifadhi wa data na mtiririko wa ufikiaji wa mada ili ziendane na GDPR, CCPA na APPI.
    Matokeo

    Takwimu zilezile, robo ya bili ya uhifadhi, kasi ya upitishaji mara 5.5 zaidi, na ripoti safi ya afya kwa mdhibiti aliyefuata aliyekuja kupiga mlango.

  2. Kesi 02 Rust C++ → Rust Usalama Uhifadhi

    Huduma ya C++ imeandikwa upya kwa Rust: Hitilafu zaidi ya 100 za daraja la CVE zimeondolewa katika wiki 9.

    Huduma ya usindikaji faili inayowalenga watumiaji katika C++, inayoanguka kila baada ya siku 4–5 na kurekebishwa papo hapo kila mara. Ukaguzi wetu uligundua hitilafu halisi zaidi ya 100: njia za kukata huduma (denial-of-service), kuzidi kwa kumbukumbu (buffer overflows), na ushughulikiaji usio na kikomo wa maombi. Hitilafu za 503 wakati wa saa za kilele zilikuwa ni desturi ya kila wiki. Kwa upande wa uhifadhi, faili zilizopakiwa na watumiaji zilikuwa zimejikusanya na kuwa dimbwi la faili maradufu zilizokuwa zikila nafasi ya hifadhi.

    Tulichofanya

    • Uandishi upya kamili kwa Rust (axum + tokio) ukiwa na uthibitishaji mkali wa ingizo na mipaka ya rasilimali.
    • Majaribio yanayotegemea mali + cargo-fuzz juu ya kila parser na mpaka wa muundo wa uambatanisho.
    • Tabaka la uhifadhi lenye anwani za maudhui na upunguzaji wa marudio wakati wa kuandika.
    • Uzinduzi wa bluu-kijani nyuma ya dirisha la masaa 4 la muunganisho, bila muda wa kusimama.
    Matokeo

    Huduma ilibadilika kutoka "dhaifu na iliyokuwa ikirekebishwa kila wiki" hadi "tukaacha kuangalia peja". Gharama za uhifadhi zilishuka kwa kutumia dedupe, tiketi za usaidizi kuhusu makosa na 503s ziliisha, na urekebishaji ulijilipia wenyewe ndani ya robo mwaka.

  3. Kesi 03 Rust Python eBPF / XDP CRM · watumiaji 4k

    CRM ya shirika, imejengwa upya: seva 18 → 5, kupunguza matumizi kwa zaidi ya 60%.

    CRM ya ndani inawahudumia watumiaji zaidi ya 4,000 katika IAM, SOC, urekodiaji wa kati, gumzo, ushiriki wa faili, VoIP na data iliyosimbwa kwa usimbaji wa mwisho-kwa-mwisho. Seva kumi na nane, Cloudflare juu yake, na bili ya wingu iliyokuwa ikiendelea kuongezeka bila kujali idadi ya wafanyakazi. Tulijenga upya njia kuu kwa kutumia Rust, tukaweka Python kwenye safu ya ujumuishaji na utoaji ripoti, na kuweka kichujio cha eBPF/XDP moja kwa moja mbele ya ingizo.

    Tulichofanya

    • Huduma za Rust kwa uthibitishaji (IAM), ujumbe wa wakati halisi, ishara za VoIP, uhamishaji wa faili.
    • Python kwa nyuso za usimamizi, utoaji taarifa, uhusiano wa matukio ya SOC, muunganisho na API za wauzaji.
    • Kuchuja bot na matumizi mabaya kwa eBPF/XDP kwenye kernel — Cloudflare ilibadilishwa kwa kazi hii.
    • Mfereji wa uandikishaji uliopangiliwa umeandikwa upya kwa kutumia mpangilio wa nakala-sifuri.
    Matokeo

    Seva kumi na tatu pungufu, hakuna tena kipengee cha Cloudflare, timu ya SOC inaona ishara safi zaidi kupitia mfumo wa kurekodi matukio, na Afisa Mkuu wa Fedha (CFO) aliacha kuuliza maswali yasiyofaa kuhusu bajeti ya miundombinu.

07 Jinsi tunavyofanya kazi hasa

Geuza vigezo. Tazama mpango ukibadilika.

Kila mradi huweka usawa kati ya kasi, gharama na uaminifu. Makadirio ya hatua-tano hapa chini yamepimwa kulingana na wastani wa sekta (ugunduzi wiki 2–6, usanifu wiki 1–4, utekelezaji wiki 4–20, kuimarisha usalama wiki 2–8, makabidhiano wiki 1–2 — kwa ripoti za 2024–2026 kutoka NIX United, Agilie, SOLTECH, OTG Lab). Sogeza vidhibiti; mpango hubadilisha uzito papo hapo.

01

Uvumbuzi

Wiki 3

Soma msimbo wako, fanya mahojiano na wahudumu wako, orodhesha yasiyojulikana, chagua lugha kwa kila kipengele.

  • Mahojiano ya eneo na ukaguzi wa msimbo
  • Rejista ya hatari na malengo ya SLA
  • Uamuzi wa lugha kwa kila huduma
02

Muundo

Wiki 2

Mikataba kabla ya msimbo. OpenAPI / protobuf, mifano ya data, topolojia ya utumaji, mifupa ya runbook.

  • RFCs kwa kila mkataba wa umma
  • Mfano wa data + mpango wa uhamiaji
  • Msingi wa miundombinu kama msimbo
03

Utekelezaji

Wiki 8

PR ndogo, CI kijani tangu siku ya kwanza, inatuma matoleo kila inapounganishwa, hakikiwa na mtaalamu mwingine mwandamizi.

  • Rust: axum · tonic · sqlx
  • Python: FastAPI · Pydantic · SQLAlchemy
  • Maonyesho ya kila wiki + orodha ya mabadiliko
04

Uimarishaji

Wiki 3

Fuzzing, majaribio yanayotegemea mali, majaribio ya mzigo dhidi ya trafiki halisi, mtindo wa tishio.

  • cargo-fuzz · proptest · hypothesis
  • Majaribio ya mzigo ya k6 yaliyounganishwa na SLO
  • Mapitio ya usalama na ukaguzi wa utegemezi
05

Makabidhiano

Wiki 1

Vitabu vya utekelezaji, mzunguko wa zamu, ADR, na timu ambayo tayari imewahi kutoa hii mara moja.

  • Vitabu vya uendeshaji + jedwali la zamu
  • Kumbukumbu ya ADR na michoro ya usanifu
  • Msaada wa siku 30 baada ya uzinduzi
08 Tatizo lile lile, lugha mbili

Jinsi kiunganishi kile kile kinavyoonekana katika kila moja.

Pata mtumiaji, thibitisha ingizo, hifadhi kwenye Postgres, rudi JSON. Badilisha kati ya lugha — zote mbili ni msimbo halisi ambao tungetuma kweli.

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 tayari ipo") from exc
    if row is None:
        raise HTTPException(status_code=500, detail="kuingiza kumeshindikana")
    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)))
}
Mistari ya msimbo
16 22
Uwezo wa kupitisha
1,185 req/s 21,030 req/s
Ucheleweshaji wa p50
21.0 ms 1.6 ms
RAM ikiwa haitumiki
41.2 MB 8.5 MB
Tunajibu ndani ya siku 1 ya kazi. Si mzaha.

Umesoma ukurasa mzima.
Tujenge kitu hiki.

Tuambie kinachokwenda mrama kwenye mfumo wako, au unachotaka kujenga kuanzia mwanzo. Utapata maoni halisi ya kiuhandisi — si wasilisho la mauzo.

  • Hakuna wahandisi wapya. Hakuna uhamishaji kazi nje ya nchi.
  • Chaguo za bei maalum kwa kazi yenye wigo maalum.
  • NDA imesainiwa kabla hatujauliza chochote.