Helppo skaalata

Rakennettu kasvua varten alusta alkaen skaalautuvalla arkkitehtuurilla ja globaalilla ulottuvuudella

Modulaarinen ja irrotettu arkkitehtuuri

Tiedämme, että tiiviisti sidotut järjestelmät ovat haavoittuvia. Mikro-moduuleja tai palvelupohjaista rakennetta käytetään, vaikka kyseessä olisi monoliitti. Ryhmittely tapahtuu ominaisuuksien/alueiden mukaan, ei teknisten kerrosten (Domain-Driven Design lite) mukaan. Frontend/backend on irrotettu API-sopimusten (OpenAPI, GraphQL) kautta. Hyödyt: Helppo eristää, skaalata tai korvata moduuleja rikkomatta koko järjestelmää.

Skaalautuva teknologiapino (Oikeat työkalut oikeaan työhön)

Valitsemme skaalautuvia yleisesti käytettäviä ajonaikaisia ympäristöjä (pääasiassa Node.js) backendille. PostgreSQL, pilvi PostgreSQL yhteensopivat tietokannat, Supabase, Firebase käytetään tarpeen mukaan. Redis integroidaan raskasta lukuliikennettä tai välimuistia varten. Pilviperustainen infrastruktuuri ja dockeria käytetään: AWS / GCP / — automaattisen skaalaustuen kanssa. Hämärät työkalut, jotka eivät voi skaalautua vaaka-suunnassa tai joilla ei ole yhteisön tukea, vältetään.

Asynkroniset + Jonopohjaiset työnkulut ei-kriittisille tehtäville

Tiedämme, että kaiken ei tarvitse tapahtua reaaliajassa. Pitkäkestoiset tai taustatehtävät (sähköpostit, kuvankäsittely, laskutus) siirretään jonoihin jne. Esimerkki: Kun käyttäjä rekisteröityy, laskutus/sähköposti käsitellään taustalla, ei inline. Tämä auttaa paremmassa suorituskyvyssä ja skaalautuvuudessa.

Tietomalli ja API-suunnittelu rakennettu kehittymään

Tiedämme, että huono skeema = tuleva uudelleen työskentely. Versioituja API:ita (/api/v1/...) käytetään asiakkaiden rikkomisen estämiseksi. UUID:t ovat suosittuja inkrementaalisten ID:iden (esim. tietojen yhdistämiseen alueiden välillä) sijaan. Monikäyttöisyyttä on suunniteltu (erityisesti SaaS:ssä): Rivi-tason vs skeema-tason erottelu, lisää tenant_id aikaisin.

Seuranta, havaittavuus ja hälytykset alusta alkaen

Tiedämme, että et voi skaalata sitä, mitä et näe. Työkaluja kuten Sentry käytetään frontend-virheiden seurantaan; Prometheus backend/infrastruktuurin havaittavuuteen; PostHog, Google Analytics tuotteen analytiikkaan; jatkuvat tarkistukset käyttökatkojen seurantaan. Hälytykset (Slack/sähköposti) on asetettu kaatumisille, jonotuksille, tietokannan piikeille jne.

Vaaka-skaalautuvuus ja tilattomat palvelut

Tiedämme, että monoliitit voivat skaalata, mutta tilattomat palvelut skaalaavat paremmin. Käyttäjäistuntojen tallentamista paikalliseen muistiin vältetään — Redis/istuntovarastot käytetään. Palvelimet tehdään tilattomiksi, jotta ne voidaan helposti kloonata. Konttiteknologiaa käytetään: Docker + orkestroijat (pilvipalveluntarjoajat). Tämä mahdollistaa automaattisen skaalaamisen ilman pysyviä istuntoja tai jaetun muistin pullonkauloja.

Turvallisuus ja pääsynhallinta suuressa mittakaavassa

Tiedämme, että enemmän käyttäjiä = suurempi hyökkäys pinta-ala. RBAC/ABAC-malleja (rooliin perustuva pääsynhallinta) on asetettu. Nopeusrajoitus, syötteen validointi ja turvallisuuspäätteen käytetään. Salaisuudet säilytetään holveissa ja niitä vaihdetaan.

Skaalautuvuuden parhaat käytännöt kerroksittain

API-kerros: Nopeusrajoitus, sivutuksen toteutus, GraphQL-federointi (tarvittaessa) on toteutettu. Frontend: Laiska lataus, CDN-isännöinti, koodin jakaminen käytetään. Automaattista skaalaamista käytetään. Tietokanta: Indeksejä uudelleenindeksoidaan, shardaus on suunniteltu tarvittaessa, ja niin edelleen.

Valmis aloittamaan?

Rakennetaan jotain upeaa yhdessä

Aloita