Dizajn je opisan u odjeljku 5 dokumenta docs/architecture/23-ops.md.
Vercel pokreće samo web-sloj. Sve ostalo radi na pratećem poslužitelju kojim
vi upravljate; on nije neobavezan.
Stanje u ovom izdanju
Konfiguracija je spremna (apps/web/vercel.json, unaprijed postavljena
vrijednost Nitro vercel i provjere pri pokretanju). Vercelu je potrebna
zajednička pohrana datoteka (QUIRE_STORAGE_DRIVER=s3 ili azure), upravljački
program za stvarno vrijeme koji radi na više primjeraka funkcija
(QUIRE_REALTIME_DRIVER=sse ili centrifugo) i HTTP pružatelj e-pošte. Bez
tih postavki web-sloj odbija pokretanje, a zapis navodi svaku koja nedostaje.
Prateći poslužitelj: Fly, Railway, ECS ili vlastiti Docker poslužitelj s docker/compose.yaml
Postgres
Vanjska baza iza posrednika transakcija: Neon, Supabase ili RDS s PgBouncerom
Datoteke
S3 ili R2. Trajni disk nije dostupan
Pozadinski poslovi
Stavljaju se u red pg-boss unutar transakcije zahtjeva, a izvršava ih prateći radnik. Kad se na pratećem radniku postavi QUIRE_QUEUE_DRIVER=vercel, jednostavni poslovi (neporedana isporuka obavijesti i web-dojavnika) prolaze kroz Vercel Queues (VERCEL_QUEUE_REGION, VERCEL_QUEUE_TOKEN), pa se Postgres sa združenom vezom ne provjerava radi njih
Ponavljajući poslovi
Prateći planer. Nema Vercelove rute Cron jer bi cron koji izvršava posao u funkciji prekoračio vremensko ograničenje
Praćenje
OpenTelemetry prema vašem sakupljaču na OTEL_EXPORTER_OTLP_ENDPOINT
Što ovo odredište ne može
Web-sloj provjerava sljedeće pri pokretanju i odbija rad uz navođenje svakog
problema, umjesto da kasnije zakaže tek kad se prva poruka e-pošte ne pošalje:
Nema SMTP-a. Vercel blokira odlazni SMTP. Postavite
QUIRE_EMAIL_PROVIDER_CONFIG na HTTP pružatelja (Postmark, SES, Mailgun,
SendGrid ili Resend). QUIRE_SMTP_URL se odbija.
Nema lokalnog diska.QUIRE_STORAGE_DRIVER=local se odbija.
Nema zajedničke memorije između poziva.QUIRE_REALTIME_DRIVER=inprocess
se odbija. Broj događaja putem poslužiteljskih poslanih događaja ograničen
je vremenskim ograničenjem funkcije. Klijent se ponovno povezuje pomoću
pokazivača, pa se nijedan događaj ne gubi, ali prisutnost nije dostupna.
Broj baza podataka prikvačenih klijenata ograničen je na približno osam,
jer je svaka dodatni skup veza u okruženju koje ih ne može zajednički koristiti.
Uvođenje
Izradite projekt Vercel iz spremišta s vrijednošću Root Directoryapps/web. apps/web/vercel.json postavlja naredbe instalacije i izgradnje
(NITRO_PRESET=vercel) te poslužuje /sw.js bez predmemoriranja.
Postavite varijable okruženja. Iz datoteke docker/.env.example postavite
najmanje: QUIRE_DEPLOY_TARGET=vercel, QUIRE_APP_ORIGIN,
QUIRE_CONTENT_ORIGIN, QUIRE_PLATFORM_DOMAINS, QUIRE_SECRET_KEY,
QUIRE_MASTER_KEY, DATABASE_URL (adresa posrednika),
QUIRE_REPORT_DATABASE_URL, QUIRE_AUDIT_DATABASE_URL,
QUIRE_DATABASE_ID, QUIRE_EMAIL_PROVIDER_CONFIG, QUIRE_MAIL_FROM,
postavke pohrane te QUIRE_COLLAB_URL i QUIRE_COLLAB_SIGNING_KEY koji
pokazuju na uslugu collab pratećeg poslužitelja.
QUIRE_REPORT_DATABASE_URL pripada fizičkoj bazi navedenoj u
DATABASE_URL. Za svaku dodatnu registriranu bazu dodajte vlastiti URL
veze quire_report u okruženja web-sloja i radnika, a zatim u konzoli
platforme registrirajte naziv varijable kao env:NAME. Analitika se
isključuje uz pogrešku ako nedostaje URL izvješća te baze.
Na pratećem poslužitelju pokrenite docker/compose.yaml bez usluge web i
uz isti docker/.env:
Migracije se ondje pokreću prije aktivacije svakog uvođenja na Vercel.
Uvedite aplikaciju. Ako se konfiguracija odbije, zapis funkcije počinje
porukom „The web tier did not start on vercel” i navodi svaku postavku koju
treba promijeniti.
Nadogradnja
Najprije migrirajte s pratećeg poslužitelja, zatim aktivirajte novo uvođenje na
Vercelu, pa postupno uvedite radnike pratećeg poslužitelja: redoslijed je
opisan u upgrade.md. Trenutno vraćanje na prethodnu verziju u
Vercelu vraća samo kod i uvijek je sigurno unutar jednog izdanja.