INDOORKA
IZCELTAIS PROJEKTS
001 // INDOORKA

Stabilizācija un orķestrēšana InDoorka ražošanas infrastruktūra

Rust / Actix-webNext.jsPostgreSQL 18DockerTraefikCloudflare tuneļiGitHub darbībasDragonflyDB
indoorka.co.uk
BIZNESA PROBLĒMA

InDoorka organizē pasākumus un pārdod biļetes tiešsaistē. Tā aizmugursistēma var avarēt, ja ievade ir slikta, attēli un pieteikšanās tika sabojāti aiz starpniekservera, un katrai laidienai bija nepieciešamas aptuveni 20 minūtes manuāla servera darba.

RISINĀJUMS

Es pastiprināju aizmugursistēmu, lai kļūdas tiktu apstrādātas, nevis avārijas, fiksēta multivide un sesiju apstrāde, un manuālās laidienus aizstāju ar automatizētu konveijeru.

REZULTĀTS

Izlaidumi aizņem apmēram 90 sekundes pēc viena koda nospiešanas, serveris neatklāj nevienu publisko ienākošo portu, un nepareizi veidoti pieprasījumi vairs nezaudē pakalpojumu.

TIEŠRAIDĒŠANAS UI // PĀRBAUDES ĒNOJUMS: AKTĪVS
indoorka.co.uk
INDOORKA vietnes sākuma ekrāns
┌─[KOPSAVILKUMS]───────────────────────

InDoorka ir augstākās kvalitātes pasākumu vadības un rezidentu talantu platforma, ko nodrošina augstas veiktspējas platforma Rust / Actix-web aizmugures API un redakcija Next.js / TypeScript frontend.

CMS aptver dīdžejus, pasākumus, biļetes, preces, norises vietas, atsauksmes un analīzi. Mans darbs bija vērsts uz ražošanas datu slāņa stabilizāciju, Actix verifikācijas dzinēju pārstrukturēšanu, sesijas sīkfailu nodrošināšanu aiz reversajiem starpniekserveriem un spēcīgas sistēmas ieviešanu. nulles porta CI/CD arhitektūra izmantojot Cloudflare tuneļus, Traefik, Docker un GitHub darbības.

└──────────────────────────────────────────┘
LOMAInfrastruktūras un aizmugures inženieris
GADS2024
ATZĪMESRust / Actix-web
PRIEKŠĒJĀNext.js / TypeScript
DATU BĀZEPostgreSQL 18 + DragonflyDB
IZLIETOTDocker + Traefik + CF tuneļi
//Galvenie rezultāti un metrika
~90s
Izvēršanas cikls
Mazāk no ~20 min manuālā
100%
Automatizēts CI/CD
Git-push aktivizētie laidieni
0
Publiskie ienākošie porti
Tikai izejošie Cloudflare tuneļi
Drošs
Rezultāts<T,E> Pavairošana
Likvidēta unwrap() panika
//Izaicinājumi
01
IZAICINĀJUMS 01

Nestabila aizmugursistēmas integritāte

Nepareizi veidota ievade var izraisīt Actix tīmekļa verifikācijas ceļu paniku, nevis atgriezt kontrolētas HTTP kļūdu atbildes, tādējādi pakļaujot pakalpojumu neparedzētām avārijām.

02
IZAICINĀJUMS 02

Salauzti klienta puses aktīvi

Multivides cauruļvadi atsaucās uz iekšējām Docker tīkla atrašanās vietām, nevis pareiziem publiskajiem ceļiem, izraisot līdzekļu piegādes kļūmes dažādās vidēs.

03
IZAICINĀJUMS 03

Sesiju zaudējumi aiz starpniekserveriem

Drošo sesiju sīkfailiem bija nepieciešama pareiza konfigurācija, kad pieprasījumi tika nosūtīti caur HTTPS reversā starpniekservera infrastruktūru, kā rezultātā tika pārtrauktas sesijas.

04
IZAICINĀJUMS 04

Manuāla VPS orķestrēšana

Izvietošana bija atkarīga no manuālām VPS darbībām, palielinot konfigurācijas novirzes risku un liekot publiski atklātu SSH/HTTP infrastruktūru.

//Sistēmas arhitektūra
[IZSTRĀDĀTĀJS]
ApņemtiesFunkciju filiāle
Git Push→ main
GitHub darbībasCI sprūda
↓
[CI / CD]
Plūksna + pārbaudeKvalitatīvi vārti
VeidotOptimizēta izvade
Cloudflare tunelisTikai izejošajiem
↓
[INFRASTRUKTŪRA]
VPS skrējējsPašapkalpošanās
Traefik starpniekserverisSSL + maršrutēšana
DockerKonteinera slānis
↓
[PIETEIKUMS]
Next.js priekšpuseTS / CMS / Nosēšanās
Rust / Actix APIPasākumi, dīdžeji, biļetes
PostgreSQL 18DragonflyDB + sēj.
//Inženiertehniskās darbības
01 /Rust API aizmugursistēmas nostiprināšana
Panikas likvidēšana

Pārveidotas autentifikācijas un verifikācijas plūsmas, aizstājot force-unwrap() modeļus ar drošu Result<T, E> izplatīšanu, tāpēc Actix-web atgriež kontrolētas HTTP statusa atbildes, nevis avārijas.

Datu bāzes un Enum sinhronizācija

Ieviesta precīza SQL migrācija un sinhronizēti lietojumprogrammu varianti ar stingriem PostgreSQL uzskaitījumiem, lai novērstu nederīgu ierakstu serializāciju vai saglabāšanu.

02 /Videi draudzīgi multivides cauruļvadi
Relatīvā ceļa izšķirtspēja

Standartizēta sabiedrisko mediju apstrāde, izmantojot dinamisku priekšgala utilītu solveMediaUrl, kas atdala publiski pieejamus maršrutus no iekšējā Docker tīkla.

Dinamiskā domēna izolācija

Pareizi atrisināti multivides ceļi izstrādes un ražošanas vidēs, novēršot iekšējo Docker tīkla adrešu noplūdi publiskajās atbildēs.

03 /Drošība un starpniekservera izlīdzināšana
Drošas sesijas

Konfigurētas Actix tīmekļa sesijas drošai sīkfailu darbībai aiz HTTPS reversajiem starpniekserveriem — tostarp cookie_secure(true) un atbilstoša SameSite apstrāde.

Akreditācijas datu bloķēšana

Sensitīva konfigurācija, sesijas noslēpumi, kešatmiņas akreditācijas dati un izvietošanas konfigurācija ir pārvietoti aizsargātos vides mainīgajos — nekad nav atklāti priekšgala slānī.

04 /Nulles porta CI/CD cauruļvads
Nulle ienākošo portu

Konfigurēts pašmitināts GitHub Actions palaidējs VPS, lai izvadītu izvietošanas darbus, izmantojot Cloudflare tuneli, noņemot nevajadzīgos publiski pieejamos SSH/HTTP portus.

Automatizētie izlaidumi

Izveidotas uz YAML balstītas izvietošanas darbplūsmas, kas aptver atkarības pārbaudes, iznīcināšanu, būvējumus, Next.js savrupo izvadi, Docker slāņa nomaiņu, DB migrāciju un ražošanas izvietošanu.

RAŽOŠANA // TIEŠRAIDĒ
Skatiet ražošanas platformu vietnē interiorka.co.uk
indoorka.co.uk
Saņemt cenas piedāvājumu

Ir ideja projektam?

Pastāstiet man, ko jūs mēģināt sasniegt. Jums nav jāzina, kura tehnoloģija jums ir nepieciešama: es palīdzēšu definēt tehnisko pieeju, darbības jomu, laika grafiku un izmaksas pirms izstrādes sākuma.

Tādējādi tiek atvērta jūsu e-pasta lietotne ar ievadīto informāciju. Nekas netiek nosūtīts, kamēr nenospiežat sūtīt.