När du hostar din applikation eller databas hos Kinsta så körs dina projekt på Google Cloud Platform’s förstklassiga infrastruktur. I den här guiden så kommer vi att djupdyka i detaljerna för vår infrastruktur när det gäller applikationshosting och databashosting.

Ett diagram över Kinsta's infrastruktur för applikationshosting och databashosting
Ett diagram över Kinsta’s infrastruktur för applikationshosting och databashosting

Distribuering

Git-kodförråd

Din applikations kod lagras i ett Git-kodförråd. Du kan välja mellan något (eller alla) av följande:

MyKinsta Lägg till/delegera applikation

När du lägger till en applikation i MyKinsta så ansluter den till Git-arkivet för att hämta applikationen.

MyKinsta Bot

Om du gör en ändring eller sammanfogning till ditt arkiv och har aktiverat Automatisk distribuering vid utförande i din applikations inställningar, upptäcker MyKinsta-boten detta. Den hämtar sedan applikationen från din Git-tjänsteleverantör och distribuerar den uppdaterade versionen av applikationen.

Google Cloud Build

MyKinsta skickar applikationen till Google Cloud Build för att bygga en avbildning av applikationen från koden. Den vet vilka applikationer eller moduler som ska installeras för applikationen via informationen i buildpacks eller Dockerfilen. Resultatet är en avbildning som kan omvandlas till en container.

Google’s artefakt-register

Här lagras de container’avbildningar som är redo att distribueras. Varje applikation har en enda avbildning som kan användas närhelst som den behöver distribueras.

Kubernetes-kluster

Bilden från artefakt-registret skjuts till klustret, detta är en virtuell maskin (VM) där flera containers kan köras. Klustren är inställda för att se till att begäranden från artefakt-registret hittar rätt container, att containrarna körs och att de har rätt resurser. Om det uppstår problem med en container så omplaceras applikationen till en annan container. Vi använder cri-o v1.23.x på vår infrastruktur; denna version är dock inte statisk och kan uppgraderas när vi uppgraderar olika komponenter i stacken.

Vår Kubernetes-infrastruktur stöder en multiapplikations-inställning, där varje applikation körs i sin egen container-miljö. Nätverks-isolering och virtualisering i flera lager säkerställer säkerheten och förhindrar obehörig åtkomst mellan applikationer. Denna design ger dig en pålitlig och säker hosting-plattform. Detta gör att du kan fokusera på din kärnverksamhet medan vi hanterar den underliggande infrastrukturen. Vi distribuerar minst ett kluster per region, med potential för ytterligare kluster baserat på antalet applikationer i varje region. Detta system säkerställer optimal resursallokering och skalbarhet för att möta de växande behoven hos våra kunder.

Förfrågningar

Cloudflare

När en besökare går in på webbplatsen för en applikation så går den först in på Cloudflare, som vet vilket kluster som hostar webbplatsen. Den skickar sedan en åtkomstbegäran till rätt kluster.

För närvarande så inkluderar Cloudflare för applikationshosting och databashosting standardbrandväggsregler, standard-DDoS-skydd och andra standardinställningar.

Belastningsutjämning i molnet

Varje kluster har en belastningsutjämning som tar emot åtkomstbegäranden från Cloudflare och som slumpmässigt skickar en VM-bearbetarnod.

Ingress

VM-bearbetarnoden tar emot begärandet i Ingress-systemet, som vet vilken container som är ansvarig för det begärda hostnamnet. Ingress-systemet skickar begärandet till rätt container, och om containern har en databas kopplad till sig så kommunicerar den med databasen och skickar ett svar på samma väg.

Virtuella maskiner (VM)

En virtuell maskin (VM) kan inkludera flera containers och flera databaser.

Container

Varje container eller applikation kan ha flera kopior på den virtuella maskinen. I det här fallet så vet Ingress-systemet detta och skickar slumpmässigt genom en av kopiorna av samma container.