In dit artikel wordt beschreven hoe u een website op Google Cloud kunt hosten. Google Cloud biedt een robuust, flexibel, betrouwbaar en schaalbaar platform voor het bedienen van websites. Google heeft Google Cloud gebouwd door dezelfde infrastructuur te gebruiken die Google gebruikt om inhoud van sites als Google.com, YouTube en Gmail weer te geven. U kunt de inhoud van uw website bedienen door het type en het ontwerp van de infrastructuur te gebruiken dat het beste bij uw behoeften past Misschien vindt u dit artikel nuttig als u: - Goed geïnformeerd over het maken van een website en eerder een webserverinfrastructuur hebben geïmplementeerd en uitgevoerd - Evalueren of en hoe uw site naar Google Cloud moet worden gemigreerd Als u een eenvoudige website wilt bouwen, overweeg dan om Google Sites te gebruiken, een gestructureerde tool voor het maken van wiki's en webpagina's. Ga voor meer informatie naar Hulp bij Sites ## Een optie kiezen Als Google Cloud nieuw voor u is, is het een redelijke benadering om te beginnen met het soort technologie waarmee u al bekend bent. Als u momenteel bijvoorbeeld hardwareservers of virtuele machines (VM's) gebruikt om uw site te hosten, misschien met een andere cloudprovider of op uw eigen hardware, biedt Compute Engine u een bekend paradigma. Als u al een platform-as-a-service (PaaS)-aanbod gebruikt, zoals Heroku of Engine Yard, is App Engine wellicht de beste plek om te beginnen. Als u de voorkeur geeft aan serverloos computergebruik, is Cloud Run waarschijnlijk een goede optie voor u Nadat u meer vertrouwd bent geraakt met Google Cloud, kunt u de rijkdom aan producten en services ontdekken die Google Cloud biedt. Als u bijvoorbeeld bent begonnen met Compute Engine, kunt u de mogelijkheden van uw site uitbreiden door Google Kubernetes Engine (GKE) te gebruiken of een deel of alle functionaliteit migreren naar App Engine en Cloud Run De volgende tabel geeft een overzicht van uw hostingopties op Google Cloud: |Optie||Product||Gegevensopslag||Loadbalancing||Schaalbaarheid||Logging en monitoring| |Statische website|| | Cloud opslag Firebase-hosting |Cloud Storage-bucket|| | HTTP(S) optioneel |Automatisch| |Virtuele machines||Compute Engine|| | Cloud SQL Admin API, Cloud Storage API, Datastore API en Cloud Bigtable API, of u kunt een andere externe opslagprovider gebruiken Persistente schijven op basis van harde schijven, genaamd | | HTTP(S) TCP-proxy SSL-proxy IPv6-beëindiging Netwerk Regiooverschrijdend Intern |Automatisch met beheerde instantiegroepen| |Containers||GKE||Vergelijkbaar met Compute Engine, maar heeft een andere interactie met persistente schijven||Netwerk | HTTP(S) |Cluster-autoscaler| |Beheerd platform|| | App-engine |Google Cloud-services zoals Cloud SQL, Firestore, Cloud Storage en toegankelijke databases van derden|| | HTTP(S) Beheerd door Google |Beheerd door Google| |Serverloos|| | Cloud-run |Google Cloud-services zoals Cloud SQL, Firestore, Cloud Storage en toegankelijke databases van derden|| | HTTP(S) Beheerd door Google |Beheerd door Google| Dit artikel kan u helpen inzicht te krijgen in de belangrijkste technologieën die u kunt gebruiken voor webservices op Google Cloud en u een idee geven van hoe de technologieën werken. Het artikel bevat koppelingen naar volledige documentatie, zelfstudies en oplossingenartikelen die u kunnen helpen een beter begrip op te bouwen, wanneer u er klaar voor bent ## Kosten begrijpen Omdat er zoveel variabelen zijn en elke implementatie anders is, valt het buiten het bestek van dit artikel om specifiek advies over kosten te geven. Zie de pagina met prijzen voor meer informatie over de principes van Google over hoe prijzen werken op Google Cloud. Zie het gedeelte met productprijzen voor meer informatie over prijzen voor afzonderlijke services. U kunt ook de prijscalculator gebruiken om in te schatten hoe uw Google Cloud-gebruik eruit zou kunnen zien. U kunt details geven over de services die u wilt gebruiken en vervolgens een prijsopgave bekijken ## Domeinnaamservices opzetten Meestal wilt u een domeinnaam voor uw site registreren. U kunt een openbare domeinnaamregistrar, zoals Google Domains, gebruiken om een ​​unieke naam voor uw site te registreren. Als u volledige controle wilt over uw eigen domeinnaamsysteem (DNS), kunt u Cloud DNS gebruiken als uw DNS-provider. De Cloud DNS-documentatie bevat een snelstartgids om u op weg te helpen Als u een bestaande DNS-provider heeft die u wilt gebruiken, moet u dat meestal doen maak een aantal records aan bij die provider. Voor een domeinnaam zoals example.com, je maakt een Een record bij uw DNS-provider. Voor de www.example.com subdomein, je maakt een CNAME-record voor www naar punt het aan de voorbeeld.com domein. De Een record koppelt een hostnaam aan een IP-adres De CNAME-record maakt een alias voor de Een opname Als uw domeinnaamregistrar ook uw DNS-provider is, is dat waarschijnlijk alles wat u hoeft te doen. Als u afzonderlijke providers gebruikt voor registratie en DNS, zorg er dan voor dat uw domeinnaamregistrar de juiste naamservers heeft die aan uw domein zijn gekoppeld Nadat u uw DNS-wijzigingen hebt aangebracht, kan het enige tijd duren voordat de recordupdates zijn doorgevoerd, afhankelijk van uw time-to-live (TTL)-waarden in uw zone. Als dit een nieuwe hostnaam is, worden de wijzigingen snel van kracht omdat de DNS-resolvers geen eerdere waarden in de cache hebben opgeslagen en contact kunnen opnemen met de DNS-provider om de benodigde informatie te krijgen om verzoeken te routeren ## Een statische website hosten De eenvoudigste manier om website-inhoud via HTTP(S) aan te bieden, is door te hosten *statische webpagina's*. Er worden statische webpagina's aangeboden ongewijzigd, zoals ze zijn geschreven, meestal met behulp van HTML. Een statische website gebruiken is een goede optie als de pagina's van uw site zelden veranderen nadat ze zijn gewijzigd gepubliceerd, zoals blogposts of pagina's die deel uitmaken van een klein bedrijf website. U kunt veel doen met statische webpagina's, maar als u uw site nodig heeft robuuste interacties met gebruikers hebben via server-side code, zou u moeten doen overweeg de andere opties die in dit artikel worden besproken Een statische website hosten met Cloud Storage Om een ​​statische site in Cloud Storage te hosten, moet u een Cloud Storage-emmer, upload de inhoud en test uw nieuwe site. Jij kan serveer uw gegevens rechtstreeks van opslag.googleapis.com, of je kan verifieer dat u de eigenaar bent van uw domein en gebruiken uw domeinnaam U kunt uw statische webpagina's maken zoals u wilt. Je zou bijvoorbeeld kunnen hand-auteurpagina's met behulp van HTML en CSS. U kunt een *statische site generator*, zoals jekyll, Spook, of Hugo, om de inhoud te creëren Met static-site generators maak je een statische website door schrijven in korting, en het verstrekken van sjablonen en tools. Sitegeneratoren in het algemeen zorg voor een lokale webserver die u kunt gebruiken om een ​​voorbeeld van uw inhoud te bekijken Nadat uw statische site werkt, kunt u de statische pagina's bijwerken met behulp van een proces dat je leuk vindt. Dat proces kan net zo eenvoudig zijn als het met de hand kopiëren van een bijgewerkte pagina naar de bucket. U kunt ervoor kiezen om een ​​meer geautomatiseerde aanpak te gebruiken, zoals het opslaan van uw inhoud op GitHub en vervolgens het gebruik van een webhook lopen van een script dat de bucket bijwerkt. Een nog geavanceerder systeem zou een tool voor continue integratie/continue levering (CI/CD), zoals Jenkins, om de inhoud in de te updaten emmer. Jenkins heeft een cloudopslag inpluggen dat levert een Google Cloud Storage Uploader post-build stap om build te publiceren artefacten naar Cloud Storage Als u een web-app heeft die statische inhoud of door gebruikers geüploade statische media moet aanbieden, kan het gebruik van Cloud Storage een kosteneffectieve en efficiënte manier zijn om deze inhoud te hosten en te leveren, terwijl het aantal dynamische verzoeken aan uw web-app wordt verminderd Bovendien kan Cloud Storage rechtstreeks door gebruikers ingezonden inhoud accepteren. Met deze functie kunnen gebruikers grote mediabestanden rechtstreeks en veilig uploaden zonder proxy via uw servers Zie Best practices voor Cloud Storage om de beste prestaties uit uw statische website te halen Zie voor meer informatie de volgende pagina's: - Hosting van een statische website - J is voor Jenkins (blogpost) - Band Aid 30 op Google Cloud (blogpost) - Cloud Storage-documentatie Een statische website hosten met Firebase Hosting Firebase Hosting biedt snelle en veilige statische hosting voor uw web-app. Met Firebase Hosting kunt u web-apps en statische inhoud implementeren in een wereldwijd content-delivery-netwerk (CDN) met één enkele opdracht Hier zijn enkele voordelen die u krijgt als u Firebase Hosting gebruikt: - SSL zonder configuratie is ingebouwd in Firebase Hosting. Beschikt gratis over SSL-certificaten op aangepaste domeinen - Al uw inhoud wordt aangeboden via HTTPS - Uw inhoud wordt aan uw gebruikers geleverd vanuit CDN-randen over de hele wereld - Met de Firebase CLI kunt u uw app binnen enkele seconden aan de praat krijgen. Gebruik opdrachtregelprogramma's om implementatiedoelen toe te voegen aan uw bouwproces - U krijgt functies voor releasebeheer, zoals atomaire implementatie van nieuwe middelen, volledig versiebeheer en terugdraaien met één klik - Hosting biedt een configuratie die handig is voor apps met één pagina en andere sites die meer app-achtig zijn - Hosting is gebouwd om naadloos te worden gebruikt met andere Firebase-functies Zie voor meer informatie de volgende pagina's: ## Virtuele machines gebruiken met Compute Engine Voor use-cases van Infrastructure as a Service (IaaS) biedt Google Cloud Compute Engine. Compute Engine biedt een robuuste computerinfrastructuur, maar u moet de platformcomponenten kiezen en configureren die u wilt gebruiken. Met Compute Engine is het uw verantwoordelijkheid om de systemen te configureren, beheren en bewaken. Google zorgt ervoor dat resources beschikbaar, betrouwbaar en gebruiksklaar zijn, maar het is aan jou om ze in te richten en te beheren. Het voordeel hierbij is dat u volledige controle heeft over de systemen en onbeperkte flexibiliteit Gebruik Compute Engine om bijna elk gewenst website-servingsysteem te ontwerpen en te implementeren. U kunt VM's, instanties genaamd, gebruiken om uw app te bouwen, net zoals u zou doen als u uw eigen hardware-infrastructuur zou hebben. Compute Engine biedt verschillende machinetypen om uw configuratie aan te passen aan uw behoeften en uw budget. U kunt kiezen aan welke besturingssystemen, ontwikkelstacks, talen, frameworks, services en andere softwaretechnologieën u de voorkeur geeft Automatisch instellen met Google Cloud Marketplace De eenvoudigste manier om een ​​complete webserving-stack te implementeren, is door Google Cloud Marketplace te gebruiken. Met slechts een paar klikken kunt u een van de meer dan 100 volledig gerealiseerde oplossingen implementeren met Google Click to Deploy of Bitnami U kunt bijvoorbeeld een LAMP-stack of WordPress opzetten met Cloud Marketplace. Het systeem implementeert een volledige, werkende softwarestack in slechts enkele minuten op een enkele instantie. Voordat u implementeert, toont Cloud Marketplace u kostenramingen voor het runnen van de site, geeft u duidelijke informatie over welke versies van de softwarecomponenten het voor u installeert, en laat u uw configuratie aanpassen door de namen van componentinstanties te wijzigen, het machinetype te kiezen en een schijfgrootte. Na implementatie heeft u volledige controle over de Compute Engine-instanties, hun configuraties en de software Handmatig instellen U kunt uw infrastructuur op Compute Engine ook handmatig maken door uw configuratie helemaal opnieuw op te bouwen of voort te bouwen op een Google Cloud Marketplace-implementatie. U wilt bijvoorbeeld een versie van een softwarecomponent gebruiken die niet door Cloud Marketplace wordt aangeboden, of misschien wilt u alles zelf installeren en configureren Het bieden van een compleet raamwerk en best practices voor het opzetten van een website valt buiten het bestek van dit artikel. Maar vanuit een algemeen perspectief vereist de technische kant van het opzetten van een webservice-infrastructuur op Compute Engine dat u: Begrijp de vereisten. Als u een nieuwe website bouwt, zorg er dan voor dat u de componenten begrijpt die u nodig hebt, zoals instances, opslagbehoeften en netwerkinfrastructuur.Als u uw app migreert vanuit een bestaande oplossing, begrijpt u deze vereisten waarschijnlijk al, maar u moet nadenken over hoe uw bestaande configuratie wordt toegewezen aan Google Cloud-services.Plan het ontwerp.Denk goed na over je architectuur en schrijf je ontwerp op.Wees zo expliciet mogelijk.Maak de componenten.De componenten die u gewoonlijk als fysieke bedrijfsmiddelen beschouwt, zoals computers en netwerkswitches, worden geleverd via services in Compute Engine.Als u bijvoorbeeld een computer wilt, moet u een Compute Engine-instantie maken.Als u een permanente harde schijf wilt, maakt u die ook.Cloud Deployment Manager of Terraform maakt dit een eenvoudig en herhaalbaar proces.Configureren en aanpassen. Nadat u de gewenste componenten hebt, moet u ze configureren, software installeren en configureren, en elke gewenste aanpassingscode schrijven en implementeren.U kunt de configuratie repliceren door shellscripts uit te voeren, wat toekomstige implementaties versnelt.Deployment Manager helpt hier ook door declaratieve, flexibele configuratiesjablonen te bieden voor automatische inzet van resources.U kunt ook profiteren van IT-automatiseringstools zoals Puppet en Chef.Implementeer de activa.Vermoedelijk heb je webpagina's en afbeeldingen.Test.Controleer of alles werkt zoals je verwacht.Implementeren naar productie.Open uw site zodat de wereld deze kan zien en gebruikenOm u op weg te helpen en te begrijpen hoe het is om Compute Engine-instanties handmatig in te stellen, probeert u een of meer van de volgende tutorials:Gegevens opslaan met Compute Engine De meeste websites hebben een soort opslag nodig. U heeft mogelijk om verschillende redenen opslagruimte nodig, zoals het opslaan van bestanden die uw gebruikers uploaden en natuurlijk de middelen die uw site gebruikt Google Cloud biedt verschillende beheerde opslagservices, waaronder: - Een SQL-database in Cloud SQL, die is gebaseerd op MySQL - Twee opties voor NoSQL-gegevensopslag: Firestore en Cloud Bigtable - Consistente, schaalbare objectopslag met grote capaciteit in Cloud opslag Cloudopslag is er in verschillende klassen: - Standaard zorgt voor maximale beschikbaarheid - Nearline biedt een voordelige keuze, ideaal voor gegevens die minder dan eens per maand worden geraadpleegd - Coldline biedt een voordelige keuze, ideaal voor gegevens die minder dan eenmaal per kwartaal worden geraadpleegd - Archief biedt de voordeligste keuze voor archivering, back-up en noodherstel - Permanente schijven op Compute Engine voor gebruik als primaire opslag voor uw instanties. Compute Engine-aanbiedingen beide op harde schijven gebaseerde persistente schijven, genaamd standaard persistente schijven en solid-state persistente schijven (SSD). U kunt er ook voor kiezen om de opslagtechnologie van uw voorkeur op Compute Engine in te stellen door permanente schijven te gebruiken. U kunt bijvoorbeeld PostgreSQL instellen als uw SQL-database of MongoDB als uw NoSQL-opslag. Zie Een opslagoptie kiezen voor meer informatie over het volledige aanbod en de voordelen van opslagservices op Google Cloud Loadbalancing met Compute Engine Voor elke website die op schaal werkt, is het vaak een vereiste om loadbalancing-technologieën te gebruiken om de werklast over servers te verdelen. U heeft verschillende opties bij het ontwerpen van uw load-balanced webservers op Compute Engine, waaronder: - HTTP(S)-taakverdeling Legt de grondbeginselen uit van het gebruik van Cloud Load Balancing - Op inhoud gebaseerde loadbalancing. Demonstreert hoe verkeer naar verschillende instanties kan worden gedistribueerd op basis van de inkomende URL - Loadbalancing tussen verschillende regio's. Demonstreert het configureren van VM-instanties in verschillende regio's en het gebruik van HTTP- of HTTPS-taakverdeling om verkeer over de regio's te verdelen - Loadbalancing van TCP-proxy. Demonstreert het instellen van wereldwijde TCP Proxy-taakverdeling voor een service die in meerdere regio's bestaat - SSL-proxy loadbalancing. Demonstreert het instellen van globale SSL Proxy-taakverdeling voor een service die in meerdere regio's bestaat - IPv6-beëindiging voor HTTP(S), SSL-proxy en TCP-proxy load balancing. Uitleg over IPv6-beëindiging en de opties voor het configureren van load balancers om IPv6-aanvragen af ​​te handelen - Netwerktaakverdeling. Toont een basisscenario dat een load balancing-configuratie van laag 3 opzet om HTTP-verkeer over gezonde instanties te verdelen - Loadbalancing tussen verschillende regio's met behulp van Microsoft IIS-backends. Laat zien hoe u de Compute Engine-loadbalancer gebruikt om verkeer te distribueren naar Microsoft Internet Information Services-servers (IIS). - Interne taakverdeling instellen U kunt een taakverdeling instellen die netwerkverkeer verdeelt over een particulier netwerk dat niet is blootgesteld aan internet. Interne taakverdeling is niet alleen handig voor intranet-apps waarbij al het verkeer op een particulier netwerk blijft, maar ook voor complexe web-apps waarbij een frontend-verzoeken naar backend-servers via een particulier netwerk De implementatie van load balancing is flexibel en u kunt Compute Engine gebruiken met uw bestaande oplossingen. HTTP(S)-loadbalancing met behulp van Nginx is bijvoorbeeld een mogelijke oplossing die u zou kunnen gebruiken in plaats van de Compute Engine-loadbalancer Contentdistributie met Compute Engine Omdat responstijd een fundamentele maatstaf is voor elke website, is het vaak een vereiste om een ​​CDN te gebruiken om de latentie te verlagen en de prestaties te verbeteren, vooral voor een site met wereldwijd webverkeer Cloud CDN gebruikt Google's wereldwijd gedistribueerde edge-aanwezigheidspunten om inhoud te leveren vanaf cachelocaties die zich het dichtst bij gebruikers bevinden. Cloud CDN werkt met HTTP(S)-loadbalancing. Schakel Cloud CDN in voor een HTTP(S)-loadbalancer om content uit Compute Engine, Cloud Storage of beide vanaf één IP-adres te leveren Automatisch schalen met Compute Engine U kunt uw architectuur instellen om servers toe te voegen en te verwijderen als de vraag varieert. Deze aanpak kan helpen ervoor te zorgen dat uw site goed presteert bij piekbelasting, terwijl de kosten onder controle blijven tijdens meer typische periodes van vraag. Compute Engine biedt een autoscaler die u hiervoor kunt gebruiken Automatisch schalen is een functie van beheerde instantiegroepen. Een beheerde instantiegroep is een pool van homogene instanties van virtuele machines, gemaakt op basis van een gemeenschappelijke instantiesjabloon. Een autoscaler voegt instanties toe aan of verwijdert deze uit een beheerde instantiegroep. Hoewel Compute Engine zowel beheerde als onbeheerde instantiegroepen heeft, kunt u alleen beheerde instantiegroepen gebruiken met een autoscaler. Zie automatisch schalen op Compute Engine voor meer informatie Voor een diepgaande blik op wat er nodig is om een ​​schaalbare en veerkrachtige web-app-oplossing te bouwen, zie Bouwen aan schaalbare en veerkrachtige web-apps Loggen en monitoren met Compute Engine Google Cloud bevat functies die u kunt gebruiken om bij te houden wat er met uw website gebeurt Cloud Logging verzamelt en bewaart logboeken van apps en services op Google Cloud. U kunt logboeken bekijken of exporteren en logboeken van derden integreren met behulp van een logboekregistratieagent Cloud Monitoring biedt dashboards en waarschuwingen voor uw site.U configureert Monitoring met de Google Cloud-console.U kunt prestatiestatistieken bekijken voor cloudservices, virtuele machines en algemene open source-servers zoals MongoDB, Apache, Nginx en Elasticsearch.U kunt de Cloud Monitoring API gebruiken om monitoringgegevens op te halen en aangepaste statistieken te makenCloud Monitoring biedt ook uptime-controles, die verzoeken naar uw websites sturen om te zien of ze reageren.U kunt de beschikbaarheid van een website bewaken door een waarschuwingsbeleid te implementeren dat een incident veroorzaakt als de uptimecontrole misluktDevOps beheren met Compute EngineVoor informatie over het beheren van DevOps met Compute Engine, zie de volgende artikelen:- Gedistribueerde belastingtests met Kubernetes- Spinnaker uitvoeren op Compute Engine- Implementaties beheren op Google Cloud met Spinnaker# # Containers gebruiken met GKEMogelijk gebruikt u al containers, zoals Docker-containers.Voor webserving bieden containers verschillende voordelen, waaronder:Componentisatie.U kunt containers gebruiken om de verschillende onderdelen van uw webapp van elkaar te scheiden.Stel dat uw site een webserver en een database draait.U kunt deze componenten in afzonderlijke containers uitvoeren, waarbij u de ene component wijzigt en bijwerkt zonder de andere te beïnvloeden.Naarmate het ontwerp van uw app complexer wordt, passen containers goed bij een servicegerichte architectuur, inclusief microservices.Dit soort ontwerp ondersteunt onder andere schaalbaarheid.Draagbaarheid.Een container heeft alles wat nodig is om uw app uit te voeren en de bijbehorende afhankelijkheden zijn gebundeld.U kunt uw containers op verschillende platformen laten draaien, zonder dat u zich zorgen hoeft te maken over de onderliggende systeemdetails.Snelle implementatie.Wanneer het tijd is om te implementeren, is uw systeem opgebouwd uit een set definities en afbeeldingen, zodat de onderdelen snel, betrouwbaar en automatisch kunnen worden geïmplementeerd.Containers zijn doorgaans klein en kunnen veel sneller worden geïmplementeerd in vergelijking met bijvoorbeeld virtuele machinesContainercomputing op Google Cloud biedt nog meer voordelen voor webserving, waaronder:Orkestratie.GKE is een beheerde service die is gebouwd op Kubernetes, het open source container-orkestratiesysteem dat is geïntroduceerd door Google.Met GKE wordt uw code uitgevoerd in containers die deel uitmaken van een cluster dat is samengesteld uit Compute Engine-instanties.In plaats van afzonderlijke containers te beheren of elke container handmatig te maken en af ​​te sluiten, kunt u het cluster automatisch beheren via GKE, dat de door u gedefinieerde configuratie gebruikt.Beeldregistratie.Container Registry of Artifact Registry biedt privéopslag voor Docker-images op Google Cloud.U hebt toegang tot het register via een HTTPS-eindpunt, zodat u afbeeldingen van elke computer kunt ophalen, of het nu een Compute Engine-instantie is of uw eigen hardware.De registerservice host uw aangepaste afbeeldingen in Cloud Storage onder uw Google Cloud-project.Deze aanpak zorgt er standaard voor dat uw aangepaste afbeeldingen alleen toegankelijk zijn voor opdrachtgevers die toegang hebben tot uw project.Mobiliteit.Dit betekent dat u de flexibiliteit heeft om workloads te verplaatsen en te combineren met andere cloudproviders, of cloud computing-workloads te mixen met on-premises implementaties om een ​​hybride oplossing te creërenGegevens opslaan met GKEOmdat GKE op Google Cloud draait en Compute Engine-instanties als knooppunten gebruikt, hebben uw opslagopties veel gemeen met opslag op Compute Engine.U hebt toegang tot Cloud SQL, Cloud Storage, Datastore en Bigtable via hun API's, of u kunt desgewenst een andere externe opslagprovider gebruiken.GKE communiceert echter op een andere manier met persistente Compute Engine-schijven dan een normale Compute Engine-instantieEen Compute Engine-instantie bevat een gekoppelde schijf.Als uCompute Engine gebruikt, blijft het schijfvolume bij de instantie zolang de instantie bestaat.U kunt de schijf zelfs loskoppelen en gebruiken met een andereinstantie.Maar in een container zijn bestanden op schijf vluchtig.Wanneer een containeropnieuw opstart, zoals na een crash, gaan de bestanden op schijf verloren.Kubernetes lostdit probleem op door eenvolumeabstractie te gebruiken, en één type volume isgcePersistentDiskDit betekent dat u persistente schijven van Compute Engine met containers kunt gebruiken omte voorkomen dat uw gegevensbestanden worden verwijderd wanneer u GKE gebruiktDe functies en voordelen van een volume begrijpen , moet u eerst iets over pods begrijpen.U kunt een pod zien als een app-specifieke logische host voor een of meer containers.Een pod draait op een knooppuntinstantie.Als containers lid zijn van een pod, kunnen ze verschillende bronnen delen, waaronder een set gedeelde opslagvolumes.Met deze volumes kunnen gegevens het opnieuw opstarten van containers overleven en kunnen ze worden gedeeld tussen de containers in de pod.Je kunt natuurlijk ook een enkele container en volume in een pod gebruiken, maar de pod is een vereiste abstractie om deze bronnen logisch met elkaar te verbindenBijvoorbeeld , zie de tutorial Persistente schijven gebruiken met WordPress en MySQLLoad balancing met GKEVeel grote webserving-architecturen hebben meerdere servers nodig die de verkeersvraag kunnen delen.Omdat u met GKE meerdere containers, knooppunten en pods kunt maken en beheren, past het perfect bij een load-balanced webserversysteemNetwerktaakverdeling gebruikenDe eenvoudigste manier om een ​​load balancer in GKE te maken, is door de netwerktaakverdeling van Compute Engine te gebruiken.Netwerktaakverdeling kan de belasting van uw systemen verdelen op basis van inkomende internetprotocolgegevens, zoals het adres, de poort en het protocoltype.Netwerktaakverdeling maakt gebruik van doorstuurregels.Deze regels verwijzen naar doelpools die aangeven welke instanties beschikbaar zijn voor gebruik voor taakverdeling Met netwerktaakverdeling kunt u extra op TCP/UDP gebaseerde protocollen, zoals SMTP-verkeer, verdelen en uw app kan de pakketten rechtstreeks inspecteren U kunt netwerktaakverdeling eenvoudig implementeren door de type: LoadBalancer veld toe aan uw serviceconfiguratiebestand HTTP(S) loadbalancing gebruiken Als u geavanceerdere loadbalancing-functies nodig heeft, zoals HTTPS-loadbalancing, contentgebaseerde loadbalancing of interregionale loadbalancing, kunt u uw GKE-service integreren met de HTTP/HTTPS-loadbalancingfunctie van Compute Engine. Kubernetes biedt de Ingress-resource die een verzameling regels omvat voor het routeren van extern verkeer naar Kubernetes-eindpunten. In GKE zorgt een Ingress-resource voor het inrichten en configureren van de Compute Engine HTTP/HTTPS-load balancer Zie HTTP-load balancing instellen met Ingress voor meer informatie over het gebruik van HTTP/HTTPS-taakverdeling in GKE Schalen met GKE Voor het automatisch aanpassen van de grootte van clusters kunt u de Cluster Autoscaler gebruiken. Deze functie controleert periodiek of er pods zijn die wachten op een knooppunt met vrije resources, maar die niet worden ingepland. Als dergelijke pods bestaan, past de autoscaler de grootte van de node-pool aan als het wijzigen van de grootte ervoor zorgt dat de wachtende pods kunnen worden gepland Cluster Autoscaler bewaakt ook het gebruik van alle knooppunten. Als een knooppunt gedurende langere tijd niet nodig is en alle pods elders kunnen worden gepland, wordt het knooppunt verwijderd Zie de Cluster Autoscaler-documentatie voor meer informatie over de Cluster Autoscaler, de beperkingen en best practices. Loggen en controleren met GKE Net als bij Compute Engine bieden Logging en Monitoring uw logboek- en monitoringservices. Logging verzamelt en bewaart logs van apps en services. U kunt logboeken bekijken of exporteren en logboeken van derden integreren met behulp van een logboekregistratieagent Monitoring biedt dashboards en waarschuwingen voor uw site. Monitoring configureer je met de Google Cloud console. U kunt prestatiestatistieken bekijken voor cloudservices, virtuele machines en algemene open source-servers zoals MongoDB, Apache, Nginx en Elasticsearch. U kunt de Monitoring API gebruiken om monitoringgegevens op te halen en aangepaste statistieken te maken DevOps beheren met GKE Als u GKE gebruikt, krijgt u al veel van de voordelen waar de meeste mensen aan denken als ze aan DevOps denken. Dit geldt met name als het gaat om het gemak van verpakking, implementatie en beheer. Voor uw CI/CD-workflowbehoeften kunt u profiteren van populaire tools zoals Jenkins. Zie de volgende artikelen: ## Voortbouwen op een beheerd platform met App Engine In Google Cloud wordt het beheerde platform als een service (PaaS) App Engine genoemd. Wanneer u uw website bouwt op App Engine, kunt u zich concentreren op het coderen van uw functies en laat Google zich zorgen maken over het beheer van de ondersteunende infrastructuur. App Engine biedt een breed scala aan functies die schaalbaarheid, taakverdeling, logboekregistratie, monitoring en beveiliging veel eenvoudiger maken dan wanneer u ze zelf zou moeten bouwen en beheren. Met App Engine kunt u coderen in verschillende programmeertalen en het kan verschillende andere Google Cloud-services gebruiken App Engine biedt de standaardomgeving, waarmee u apps kunt uitvoeren in een veilige sandbox-omgeving. De App Engine-standaardomgeving verdeelt verzoeken over meerdere servers en schaalt servers om aan de verkeersvraag te voldoen. Uw app draait in zijn eigen veilige, betrouwbare omgeving die onafhankelijk is van de hardware, het besturingssysteem of de fysieke locatie van de server Om u meer opties te geven, biedt App Engine de flexibele omgeving. Wanneer u de flexibele omgeving gebruikt, draait uw app op configureerbare Compute Engine-instanties, maar beheert App Engine de hostingomgeving voor u. Dit betekent dat u extra runtimes kunt gebruiken, inclusief aangepaste runtimes, voor meer programmeertaalkeuzes. U kunt ook profiteren van een deel van de flexibiliteit die Compute Engine biedt, zoals kiezen uit verschillende CPU- en geheugenopties Programmeertalen De App Engine-standaardomgeving biedt standaard runtimes en u schrijft broncode in specifieke versies van de ondersteunde programmeertalen Met de flexibele omgeving schrijf je broncode in een versie van een van de ondersteunde programmeertalen. U kunt deze runtimes aanpassen of uw eigen runtime voorzien van een aangepaste Docker-image of Dockerfile Als de programmeertaal die u gebruikt een eerste zorg is, moet u beslissen of de looptijden van de App Engine-standaardomgeving aan uw vereisten voldoen. Als dat niet het geval is, kunt u overwegen om de flexibele omgeving te gebruiken Zie Een App Engine-omgeving kiezen om te bepalen welke omgeving het beste aansluit bij de behoeften van uw app Aan de slag-tutorials per taal De volgende tutorials kunnen u op weg helpen met het gebruik van de App Engine-standaardomgeving: - Hallo wereld in Python - Hallo wereld op Java - Hallo wereld in PHP - Hallo wereld in Ruby - Hallo wereld in Go - Hallo wereld in Node.js De volgende zelfstudies kunnen u op weg helpen met het gebruik van de flexibele omgeving: - Aan de slag met Python - Aan de slag met Java - Aan de slag met PHP - Aan de slag met Go - Aan de slag met Node.js - Aan de slag met Ruby - Aan de slag met .NET Gegevens opslaan met App Engine App Engine biedt u opties voor het opslaan van uw gegevens: |Naam||Structuur||Consistentie| |Firestore||Schemaloos||Sterk consistent.| |Cloud SQL||Relationeel||Sterk consistent.| |Cloudopslag||Bestanden en de bijbehorende metadata||Zeer consistent, behalve bij het uitvoeren van lijstbewerkingen die een lijst met buckets of objecten ophalen.| U kunt met de standaardomgeving ook meerdere databases van derden gebruiken Zie Een opslagoptie kiezen voor meer informatie over opslag in App Engine en selecteer vervolgens de programmeertaal van uw voorkeur Wanneer u de flexibele omgeving gebruikt, kunt u dezelfde opslagopties gebruiken als in de standaardomgeving, en ook een breder scala aan databases van derden. Zie Databases van derden gebruiken voor meer informatie over databases van derden in de flexibele omgeving Loadbalancing en automatisch schalen met App Engine Standaard routeert App Engine inkomende verzoeken automatisch naar de juiste backend-instanties en zorgt voor taakverdeling voor u. Als u echter wilt profiteren van de volledig functionele HTTP(S)-loadbalancingmogelijkheden van Google Cloud, kunt u serverloze netwerkeindpuntgroepen gebruiken Voor schaalbaarheid kan App Engine automatisch instanties maken en uitschakelen als het verkeer fluctueert, of u kunt een aantal instanties specificeren om uit te voeren, ongeacht de hoeveelheid verkeer Loggen en monitoren met App Engine In App Engine worden verzoeken automatisch gelogd en kunt u deze bekijken logt in op de Google Cloud-console. App Engine werkt ook met standaard, taalspecifieke bibliotheken die logboekfunctionaliteit bieden en stuurt de logboekvermeldingen door naar de logboeken in de Google Cloud-console. Bijvoorbeeld, in Python u kunt de standaard Python-logmodule gebruiken en op Java u kunt de logback appender integreren of java.util.loggen met cloudregistratie. Deze benadering maakt alle functies van Cloud Logging mogelijk en vereist slechts een paar regels Google Cloud-specifieke code Cloud Monitoring biedt functies voor het monitoren van uw App Engine-apps. Via de Google Cloud-console kunt u incidenten, uptime-controles en andere details volgen ## Voortbouwen op een serverloos platform met Cloud Run Met het serverloze platform van Google Cloud kunt u code schrijven op uw eigen manier, zonder dat u zich zorgen hoeft te maken over de onderliggende infrastructuur. U kunt full-stack serverloze applicaties bouwen met de opslag, databases, machine learning en meer van Google Cloud Voor uw gecontaineriseerde websites kunt u deze naast GKE ook implementeren in Cloud Run. Cloud Run is een volledig beheerd serverloos platform waarmee u zeer schaalbare container-apps op Google Cloud kunt uitvoeren. Je betaalt alleen voor de tijd dat je code loopt Door containers met Cloud Run te gebruiken, kunt u profiteren van volwassen technologieën zoals Nginx, Express.js en Django om uw websites te bouwen, toegang te krijgen tot uw SQL-database op Cloud SQL en dynamische HTML-pagina's weer te geven De Cloud Run-documentatie bevat een snelstartgids om u op weg te helpen Gegevens opslaan met Cloud Run Cloud Run-containers zijn kortstondig en u moet hun quota en limieten voor uw use-cases begrijpen. Bestanden kunnen tijdelijk worden opgeslagen voor verwerking in een containerinstantie, maar deze opslag komt uit het beschikbare geheugen voor de service zoals beschreven in het runtime-contract Voor permanente opslag, vergelijkbaar met App Engine, kunt u de services van Google Cloud kiezen, zoals Cloud Storage, Firestore of Cloud SQL. Als alternatief kunt u ook een opslagoplossing van derden gebruiken Loadbalancing en automatische schaling met Cloud Run Wanneer u op Cloud Run bouwt, stuurt het standaard binnenkomende verzoeken automatisch naar de juiste back-endcontainers en voert het taakverdeling voor u uit. Als u echter wilt profiteren van de volledig functionele HTTP(S)-loadbalancingmogelijkheden van Google Cloud, kunt u serverloze netwerkeindpuntgroepen gebruiken Met HTTP(S)-loadbalancing kunt u Cloud CDN inschakelen of verkeer uit meerdere regio's bedienen. Daarnaast kunt u middleware zoals API Gateway gebruiken om uw service te verbeteren Voor Cloud Run beheert Google Cloud automatisch schalen van containerinstanties voor jou. Elke revisie wordt automatisch geschaald naar het aantal containerinstanties dat nodig is om te verwerken alle inkomende aanvragen. Wanneer een revisie standaard geen verkeer ontvangt het is geschaald naar nul containerinstanties. Desgewenst kan dat echter wel wijzig deze standaard om een ​​instantie op te geven die inactief moet worden gehouden of *warm* gebruiken de instelling voor het minimum aantal exemplaren Loggen en monitoren met Cloud Run Cloud Run heeft twee soorten logboeken, die automatisch naar Cloud Logging worden verzonden: - Verzoeklogboeken: logboeken van verzoeken die naar Cloud Run-services zijn verzonden. Deze logboeken worden automatisch aangemaakt - Containerlogboeken: logboeken die worden verzonden vanuit de containerinstanties, meestal vanuit uw eigen code, geschreven naar ondersteunde locaties zoals beschreven in Containerlogboeken schrijven U kunt logboeken voor uw service op een aantal manieren bekijken: - Gebruik de Cloud Run-pagina in de Google Cloud-console - Gebruik Cloud Logging Logs Explorer in de Google Cloud-console Beide weergavemethoden onderzoeken dezelfde logboeken die zijn opgeslagen in Cloud Logging, maar de Logs Explorer biedt meer details en meer filtermogelijkheden Cloud Monitoring biedt Cloud Run-prestatiemonitoring, statistieken en uptime-controles, samen met waarschuwingen om meldingen te verzenden wanneer bepaalde metrische drempels worden overschreden. De prijzen voor de Operations Suite van Google Cloud zijn van toepassing, wat betekent dat er geen kosten in rekening worden gebracht voor statistieken op de volledig beheerde versie van Cloud Run. Houd er rekening mee dat u ook aangepaste statistieken van Cloud Monitoring kunt gebruiken Cloud Run is geïntegreerd met Cloud Monitoring *zonder installatie of configuratie vereist*. Dit betekent dat de statistieken van uw Cloud Run-services worden automatisch vastgelegd wanneer ze actief zijn ## Contentmanagementsystemen bouwen Het aanbieden van een website betekent het beheren van uw websitemiddelen. Cloud Storage biedt een wereldwijde opslagplaats voor deze assets. Eén algemene architectuur implementeert statische inhoud naar Cloud Storage en synchroniseert vervolgens met Compute Engine om dynamische pagina's weer te geven. Cloud Storage werkt met veel contentmanagementsystemen van derden, zoals WordPress, Drupal en Joomla. Cloud Storage biedt ook een Amazon S3-compatibele API, zodat elk systeem dat met Amazon S3 werkt, met Cloud Storage kan werken Het onderstaande diagram is een voorbeeldarchitectuur voor een contentmanagementsysteem ## Wat is het volgende - Ontdek referentiearchitecturen, diagrammen, tutorials en best practices over Google Cloud. Neem eens een kijkje in ons Cloud Architectuur Centrum.