Arhitektuur on kirjeldatud dokumendi docs/architecture/23-ops.md jaotises 5.
Vercel käitab ainult veebikihti. Kõik muu töötab sinu hallatavas kaasserveris ja
see on kohustuslik.
Selle väljalaske olek
Seadistus on olemas (apps/web/vercel.json, vercel Nitro eelseade ja
käivituskontrollid). Vercel vajab jagatud failisalvestust
(QUIRE_STORAGE_DRIVER=s3 või azure), funktsioonieksemplaride vahel toimivat
reaalajasidet (QUIRE_REALTIME_DRIVER=sse või centrifugo) ning HTTP-põhist
e-posti pakkujat. Nendeta keeldub veebikiht käivitumast ning logis nimetatakse
puuduvad seaded.
Kaasserver: Fly, Railway, ECS või sinu enda Dockeri host failiga docker/compose.yaml
Postgres
Väline, tehingute ühendusepuhvri taga: Neon, Supabase või RDS koos PgBounceriga
Failid
S3 või R2. Püsivat ketast pole
Tausttööd
Lisatakse pg-bossi kaudu päringu tehingu sees ja käitab kaasserveri töötlusteenus. Kui kaasserveri töötlusteenuses on QUIRE_QUEUE_DRIVER=vercel, liiguvad kerged tööd (järjestamata teavitused ja veebikonksude edastused) Verceli järjekordadesse (VERCEL_QUEUE_REGION, VERCEL_QUEUE_TOKEN), nii et ühendusepuhvriga Postgresit nende jaoks ei küsitleta
Korduvad tööd
Kaasserveri ajastaja. Verceli Croni marsruuti pole, sest funktsioonis tööd tegev cron ületaks ajalimiidi
Jälitus
OpenTelemetry sinu kogujasse, OTEL_EXPORTER_OTLP_ENDPOINT
Mida see sihtkoht teha ei saa
Veebikiht kontrollib neid käivitumisel ja keeldub, nimetades kõik probleemid,
selle asemel et hiljem esimese saatmata e-kirja juures läbi kukkuda:
SMTP puudub. Vercel blokeerib väljamineva SMTP. Määra
QUIRE_EMAIL_PROVIDER_CONFIG väärtuseks HTTP-pakkuja (Postmark, SES, Mailgun,
SendGrid või Resend). QUIRE_SMTP_URL lükatakse tagasi.
Kohalik ketas puudub.QUIRE_STORAGE_DRIVER=local lükatakse tagasi.
Käivitusjuhtumitel puudub jagatud mälu.QUIRE_REALTIME_DRIVER=inprocess
lükatakse tagasi. Serveri saadetud sündmusi piirab funktsiooni ajalimiit;
klient loob kursoriga ühenduse uuesti, nii et sündmusi ei lähe kaotsi, kuid
kohalolekuinfo pole saadaval.
Seotud rentnike andmebaase saab olla umbes kaheksa, sest igaüks lisab uue
ühendusepuhvri keskkonda, kus puhvreid jagada ei saa.
Juurutamine
Loo hoidlast Verceli projekt ja määra Root Directory väärtuseks
apps/web. apps/web/vercel.json määrab paigaldus- ja ehituskäsud
(NITRO_PRESET=vercel) ning serveerib /sw.js vahemällu salvestamata.
Määra keskkonnamuutujad. Failist docker/.env.example vähemalt:
QUIRE_DEPLOY_TARGET=vercel, QUIRE_APP_ORIGIN, QUIRE_CONTENT_ORIGIN,
QUIRE_PLATFORM_DOMAINS, QUIRE_SECRET_KEY, QUIRE_MASTER_KEY,
DATABASE_URL (ühendusepuhvri aadress), QUIRE_REPORT_DATABASE_URL,
QUIRE_AUDIT_DATABASE_URL, QUIRE_DATABASE_ID,
QUIRE_EMAIL_PROVIDER_CONFIG, QUIRE_MAIL_FROM, salvestusseaded ning
kaasserveri collab-teenusele osutavad QUIRE_COLLAB_URL ja
QUIRE_COLLAB_SIGNING_KEY.
QUIRE_REPORT_DATABASE_URL peab viitama DATABASE_URL-is nimetatud
füüsilisele andmebaasile. Iga lisaregistreeritud andmebaasi jaoks lisa selle
quire_report ühenduse URL nii veebirakenduse kui ka töötlusteenuse keskkonda
ning registreeri platvormi konsoolis keskkonnamuutuja nimi kujul env:NAME.
Kui selle andmebaasi aruande-URL puudub, analüütika ei tööta.
Käivita kaasserveris docker/compose.yaml ilma web-teenuseta, kasutades
sama faili docker/.env:
Migratsioonid käivitatakse seal enne iga Verceli juurutuse avaldamist.
Juuruta. Tagasilükatud seadistuse korral algab funktsiooni logi tekstiga
“The web tier did not start on vercel” ja loetleb muudetavad seaded.
Uuendamine
Käivita migratsioon kaasserveris, seejärel avalda uus Verceli juurutus ja siis
uuenda kaasserveri töötlejaid: järjekord on kirjeldatud dokumendis
upgrade.md. Verceli kohene tagasipööre taastab koodi ning on ühe
väljalaske piires alati ohutu.