Rakenne kuvataan tiedoston docs/architecture/23-ops.md kohdassa 5. Vercel suorittaa vain verkkopalvelutason. Kaikki muu suoritetaan ylläpitämälläsi rinnakkaispalvelimella, joka on välttämätön.
Tämän julkaisun tila
Asetukset ovat valmiina (apps/web/vercel.json, Nitro-esiasetus vercel ja käynnistystarkistukset). Vercel edellyttää jaettua tiedostotallennusta (QUIRE_STORAGE_DRIVER=s3 tai azure), funktiokopioiden välillä toimivaa reaaliaikaisuusajuria (QUIRE_REALTIME_DRIVER=sse tai centrifugo) ja HTTP-sähköpostipalvelua. Jos jokin puuttuu, verkkopalvelutaso kieltäytyy käynnistymästä ja lokissa nimetään puuttuvat asetukset.
Osat
Osa
Suorituspaikka
web
Vercel Functions, Node-ympäristö: sivut, REST, MCP, LTI ja vastaanotetut webhookit
worker, scheduler, collab, content
Rinnakkaispalvelin: Fly, Railway, ECS tai oma Docker-isäntä tiedostolla docker/compose.yaml
Postgres
Ulkoinen, tapahtumapoolerin takana: Neon, Supabase tai RDS ja PgBouncer
Tiedostot
S3 tai R2. Pysyvää levyä ei ole.
Taustatyöt
Lisätään pg-boss-jonoon pyynnön kirjoitustapahtuman yhteydessä ja suoritetaan rinnakkaistyöntekijällä. Kun rinnakkaistyöntekijän QUIRE_QUEUE_DRIVER=vercel, kevyet työt (järjestämättömät ilmoitukset ja webhook-toimitukset) kulkevat Vercel Queuesin kautta (VERCEL_QUEUE_REGION, VERCEL_QUEUE_TOKEN), jolloin yhteysvälittäjän Postgres-tietokantaa ei haeta niiden vuoksi.
Toistuvat työt
Rinnakkaispalvelimen ajastin. Vercel Cron -reittiä ei ole, koska funktion sisällä tehtävä työ aikakatkaistaan.
Jäljitys
OpenTelemetry omalle kerääjälle, OTEL_EXPORTER_OTLP_ENDPOINT
Mitä tässä kohteessa ei voi tehdä
Verkkopalvelutaso tarkistaa nämä käynnistyessään ja kieltäytyy käynnistymästä. Näin se ilmoittaa puuttuvista asetuksista etukäteen eikä vasta silloin, kun sähköposti jää lähettämättä:
SMTP ei ole käytettävissä. Vercel estää lähtevän SMTP-liikenteen. Aseta QUIRE_EMAIL_PROVIDER_CONFIG HTTP-palveluntarjoajalle (Postmark, SES, Mailgun, SendGrid tai Resend). QUIRE_SMTP_URL hylätään.
Paikallinen levy ei ole käytettävissä.QUIRE_STORAGE_DRIVER=local hylätään.
Kutsut eivät jaa muistia.QUIRE_REALTIME_DRIVER=inprocess hylätään. Palvelimelta lähetettävien tapahtumien virta rajoittuu funktion aikakatkaisuaikaan. Asiakas yhdistää uudelleen kursorin avulla, joten tapahtumia ei katoa mutta läsnäolotietoja ei voi käyttää.
Kiinnitettyjen vuokraajatietokantojen määrä on rajoitettu noin kahdeksaan, koska kutakin kohti tarvitaan lisäyhteyspooli eikä ympäristö salli poolien jakamista.
Käyttöönotto
Luo Vercel-projekti arkistosta ja aseta Root Directory arvoon apps/web. apps/web/vercel.json määrittää asennus- ja koontikomennot (NITRO_PRESET=vercel) ja palvelee /sw.js-tiedostoa ilman välimuistia.
Määritä ympäristömuuttujat. Syötä vähintään docker/.env.example-tiedostosta: QUIRE_DEPLOY_TARGET=vercel, QUIRE_APP_ORIGIN, QUIRE_CONTENT_ORIGIN, QUIRE_PLATFORM_DOMAINS, QUIRE_SECRET_KEY, QUIRE_MASTER_KEY, DATABASE_URL (yhteysvälittäjän osoite), QUIRE_REPORT_DATABASE_URL, QUIRE_AUDIT_DATABASE_URL, QUIRE_DATABASE_ID, QUIRE_EMAIL_PROVIDER_CONFIG, QUIRE_MAIL_FROM, tallennusasetukset sekä rinnakkaispalvelimen collab-palveluun osoittavat QUIRE_COLLAB_URL ja QUIRE_COLLAB_SIGNING_KEY. QUIRE_REPORT_DATABASE_URL koskee fyysistä tietokantaa, johon DATABASE_URL osoittaa. Lisää jokaiselle rekisteröidylle lisätietokannalle oma quire_report-yhteysosoite verkkopalvelun ja työntekijän ympäristöihin. Rekisteröi sitten sen ympäristömuuttujan nimi alustan hallintapaneelissa muodossa env:NAME. Analytiikkapyyntö hylätään, jos kyseisen tietokannan raporttiyhteysosoite puuttuu.
Käynnistä rinnakkaispalvelimella tiedoston docker/compose.yaml palvelut ilman web-palvelua ja käytä samaa docker/.env-tiedostoa:
Migraatiot suoritetaan siellä ennen kunkin Vercel-julkaisun käyttöönottoa.
Julkaise. Jos asetukset hylätään, funktion loki alkaa tekstillä “The web tier did not start on vercel” ja luettelee muutettavat asetukset.
Päivittäminen
Suorita migraatiot ensin rinnakkaispalvelimella, ota sitten uusi Vercel-julkaisu käyttöön ja päivitä lopuksi palvelimen työntekijät päivitysoppaan järjestyksessä. Vercelin välitön palautus aiempaan versioon palauttaa koodin ja on aina turvallista saman julkaisun sisällä.