Projektas DI ir SaaS

Mūsų transkribavimo SaaS per septynias dienas perkeltas iš Rails į Rust, nieko neatjungus

SoundScript.AI paverčia garsą tekstu 99 kalbomis. Jo Rails programa viename mažame serveryje laikė svetainę, fonines užduotis ir Redis ir jau artėjo prie savo ribų. Perrašėme ją su Rust, puslapis po puslapio palyginome su senąja programa ir perjungėme gamybinę aplinką per maždaug keturių minučių langą.

Klientas
Envixo
Platforma
Žiniatinklio programa ir mobilioji API
Sektorius
DI ir SaaS
Paleista
2026

Iššūkis

Rails 8.1 programa veikė, bet Puma, Sidekiq, Redis ir PostgreSQL dalijosi serveriu su 1.9 GB atminties. Esant apkrovai puslapiai atsakydavo per kelias sekundes, o 2026 m. liepą foninės užduotys užstrigo penkioms dienoms.

Prieš: Puma, Sidekiq, Redis ir PostgreSQL viename serveryje su 1.9 GB atminties
Po: Žiniatinklio ir darbinės paslaugos Kubernetes aplinkoje su valdoma PostgreSQL 18 ir be Redis: eilės, tiesioginiai atnaujinimai ir užklausų limitai veikia PostgreSQL
Prieš: Mediana 2.7 s viešuose puslapiuose esant 100 vienalaikių prisijungimų
Po: Mediana 11.7 ms tame pačiame teste
Prieš: PDF eksportai neperskaitomi arabų, hebrėjų, persų, urdu ir devanagari raštais
Po: PDF, surinkti su Typst ir Noto šriftais, su taisyklinga rašto forma ir tekstu iš dešinės į kairę
Prieš: Mokėjimų ir transkribavimo webhook, priimdavę nepasirašytus įvykius, kai nebuvo slaptojo rakto
Po: Kiekvieno webhook parašas patikrintas, visada
Prieš: 937 MB atminties piko metu
Po: 102 MB atminties piko metu

Ką sukūrėme

Visiškas produkto perrašymas, ne prototipas: svetainė 99 kalbomis, transkribavimo konvejeris, DI santraukos ir pokalbiai, eksportai, atsiskaitymai, mobilioji API ir administravimo konsolė.

Tie patys URL ir sąsajos

Kiekvienas lokalizuotas puslapis, webhook kelias, mobiliosios API galinis taškas ir saugyklos sritis liko tie patys, todėl nuorodos, programėlės ir integracijos toliau veikė.

Niekas neatjungtas

Rust programa skaito Rails sesijos slapuką ir esamas slaptažodžių maišas, todėl vartotojai per perjungimą liko prisijungę.

Duomenys patikrinti, o ne numanyti

Po galutinio kopijavimo paskyrų, transkripcijų, naudojimo ir prenumeratų įrašų skaičiai bei kontrolinės sumos buvo palygintos senojoje ir naujojoje duomenų bazėse: identiškos.

Lygiavertiškumo testų sistema

1,126 puslapių užklausos 11 vartotojų tipų ir keturiomis kalbomis, 39 formų pateikimai ir 343 administravimo užklausos buvo pakartotos abiem programoms ir palygintos.

Visas produktas

Transkribavimas su Whisper ir Azure, tiesioginė būsena, DI santrauka ir pokalbiai, TXT, SRT, DOCX ir PDF eksportai, Stripe ir Google Play atsiskaitymai bei administravimo konsolė.

Saugus kelias atgal

Senasis serveris dar dvi savaites po perjungimo liko nepaliestas, todėl atšaukimas buvo tik DNS pakeitimas.

Inžineriniai rezultatai

Išmatuota apkrovos teste prieš paleidimą, bendrai naudojamoje mašinoje: absoliutūs skaičiai orientaciniai, santykiai nesikeičia.

230x
Greitesnis medianinis atsakas esant apkrovai
9x
Mažiau atminties piko metu
880
Automatiniai testai, vykdomi su kiekvienu pakeitimu
7
Dienos nuo pirmojo įrašymo iki gamybinės aplinkos
  • Gamybinė aplinka perjungta per maždaug keturių minučių langą
  • Registracija, įkėlimas, tiesioginė būsena, atsisiuntimai, DI, API ir administravimas patikrinti gamyboje po perjungimo
  • Apkrovos testas rado prisijungimų telkinio klaidą, pataisytą prieš paleidimą
  • 99 kalbos, įskaitant PDF iš dešinės į kairę

Technologijos

  • Rust
  • axum
  • PostgreSQL
  • Typst
  • OpenAI Whisper
  • Azure Speech
  • Stripe
  • Kubernetes

Reikia programinės įrangos, sukurtos pagal jūsų verslą?

Integracijos, vidiniai įrankiai, programėlės ir platformos, kuriamos pagal užsakymą patyrusių inžinierių, vadovaujančių DI agentams. Papasakokite, ko jums reikia, ir parodysime, kaip tai sukurtume.