Siirry sisältöön

Verkon palvelutaso Vercelissä

Suorita Quiren verkkopalvelutaso Vercelissä rinnakkaistyöntekijäpalvelimen kanssa.

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

  1. 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.
  2. 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.
  3. Käynnistä rinnakkaispalvelimella tiedoston docker/compose.yaml palvelut ilman web-palvelua ja käytä samaa docker/.env-tiedostoa:
    docker compose -f docker/compose.yaml up -d migrate init worker scheduler collab content
    Migraatiot suoritetaan siellä ennen kunkin Vercel-julkaisun käyttöönottoa.
  4. 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ä.

Navigaatio

Kirjoita hakeaksesi…

↑↓ siirry↵ valitseEsc sulje