Cloud Run is Google Cloud’s volledig beheerde serverless-platform waarmee je applicaties kunt deployen zonder je zorgen te maken over infrastructuurbeheer. Het is superflexibel en een uitstekende keuze voor allerlei projecten, van hobby tot enterprise.
In dit artikel leg ik uit wat Cloud Run is, hoe het werkt, welke use-cases het oplost en hoe het zich verhoudt tot andere serverless-oplossingen. Ook laat ik je stap voor stap zien hoe je je eerste Cloud Run-applicatie deployt!
En voordat je begint: ben je helemaal nieuw met cloud computing, dan raad ik je onze cursus Introduction to Cloud Computing aan. Deze cursus behandelt de basis van de cloud, legt sleuteltermen uit zoals schaalbaarheid en latentie en gaat in op de voordelen van cloudtools van aanbieders zoals GCP.
Wat is Cloud Run?
Cloud Run is een serverless platform voor het uitvoeren van containers, waarmee je applicaties kunt deployen zonder je zorgen te maken over infrastructuurbeheer.
Bij traditionele servergebaseerde deployments moet je doorgaans virtuele machines inrichten en onderhouden. Cloud Run werkt net even anders en abstraheert dat allemaal weg om een volledig beheerde omgeving te bieden.
Het is gebouwd op Knative (een open-source, op Kubernetes gebaseerd platform dat serverless workloads mogelijk maakt), wat betekent dat je applicatie automatisch schaalt op basis van de vraag. Neemt het verkeer toe, dan start Cloud Run meer instances op om dit op te vangen. Daalt het verkeer, dan schaalt het terug. Het kan zelfs helemaal naar nul, zodat je niets betaalt wanneer je app niet actief draait.
Cloud Run is kostenefficiënt, maar ook superflexibel. Je kunt applicaties deployen in elke taal en met elk framework of elke binary, zolang het maar in een container draait. Je kunt werken met gangbare technologieën zoals Node.js, Python, Go, Java, of juist met meer obscure opties. In de praktijk betekent dit dat Cloud Run back-endservices, API’s, AI-workloads, webapps en zelfs geplande batchjobs kan draaien.
Dat was alvast een voorproefje. Laten we iets dieper ingaan op de belangrijkste features van Cloud Run.
Belangrijkste features van Cloud Run
We noemden er net een paar, maar hier is een volledig overzicht van de hoofdfeatures van Cloud Run.
Taal- en frameworkagnostisch
Een van de grootste voordelen van Cloud Run is dat je niet vastzit aan een specifieke taal of framework. Zolang je applicatie in een container draait, kun je die deployen. Werk je in een team met een diverse techstack, dan kun je Cloud Run voor al je services gebruiken. Eén tool om ze allemaal te bedienen!
Automatisch schalen
Cloud Run schaalt horizontaal en dynamisch op basis van verkeer. Krijgt je applicatie meer requests, dan start Cloud Run automatisch meer instances. Daalt de vraag, dan schaalt het terug, indien nodig zelfs helemaal naar nul.
Ingebouwde beveiliging en compliance
Cloud Run biedt automatisch HTTPS voor alle gedeployde services, door Google beheerde service-identiteit voor veilige authenticatie, VPC-connectiviteit voor private networking en ingebouwde compliancecertificeringen zoals SOC 2, ISO 27001 en HIPAA (voor zorgapplicaties). Kortom: je zit goed.
Integratie met Google Cloud-services
Omdat Cloud Run onderdeel is van het Google Cloud-ecosysteem, werkt het naadloos samen met andere GCP-services. Je kunt het eenvoudig koppelen aan Cloud SQL voor databases, data streamen met Pub/Sub, bestanden opslaan in Cloud Storage of het gebruiken met BigQuery, Firebase en AI/ML-services.
On-demand GPU-ondersteuning
Voor AI-workloads biedt Cloud Run nu on-demand GPU-ondersteuning. Dit is een grote verbetering voor machine learning-inferencing, videobewerking en wetenschappelijke computing, omdat je elke GPU-versnelde workload kunt draaien zonder het onderliggende hardwarebeheer.
Cloud Run Functions: een Function-as-a-Service-model (FaaS)
Als je geen volledige containers wilt beheren, biedt Cloud Run Functions een vereenvoudigde, eventgedreven manier om kleine, single-purpose functies te draaien. Het lijkt op AWS Lambda of Google Cloud Functions, maar draait op de infrastructuur van Cloud Run.
Hoe Cloud Run werkt: stap voor stap
In deze sectie laat ik zien hoe je een eenvoudige applicatie naar Cloud Run deployt. Ik begeleid je door het proces van het containerizen van je app, het deployen naar Cloud Run en het automatisch schalen op basis van de vraag.
We gebruiken Docker om onze applicatie te containerizen, maar dat hoeft niet per se. Daarover aan het eind meer.
Stap 1: Stel je omgeving in
Voordat je iets deployt, moet je de volgende tools geïnstalleerd hebben:
Google Cloud SDK: Dit is een command-line interface (CLI) waarmee je kunt communiceren met Google Cloud-services, waaronder Cloud Run. Je kunt het hier installeren.
Docker: Als je app nog niet is gecontaineriseerd, heb je Docker nodig om je app te verpakken. Installeer Docker hier.
Google Cloud-project: Zorg dat je een Google Cloud-project hebt ingesteld. Je kunt er een maken via de Google Cloud Console.
Stap 2: Schrijf je applicatiecode
Laten we nu een eenvoudige “Hello World”-applicatie in Node.js schrijven.
Maak een index.js-bestand in de map met de volgende inhoud:
const http = require('http');
const requestListener = (req, res) => {
res.writeHead(200);
res.end('Hello, Cloud Run!');
};
const server = http.createServer(requestListener);
server.listen(8080, () => {
console.log('Server is running on port 8080');
});Mogelijk gemaakt door
Maak een package.json om de dependencies van je app te definiëren:
{
"name": "hello-world-app",
"version": "1.0.0",
"main": "index.js",
"dependencies": {}
}Mogelijk gemaakt door
Nu de applicatie klaar is, gaan we deze containerizen.
Stap 3: Containerize de applicatie
Maak een Dockerfile om het containerimage te definiëren
Maak in je projectmap een bestand met de naam “Dockerfile” met de volgende inhoud:
# Use the official Node.js image as a base
FROM node:16-alpine
# Set the working directory inside the container
WORKDIR /usr/src/app
# Copy package.json and install dependencies (if any)
COPY package*.json ./
# Copy the rest of the application code
COPY . .
# Expose port 8080 for Cloud Run
EXPOSE 8080
# Start the app
CMD ["node", "index.js"]Mogelijk gemaakt door
Bouw het Dockerimage
Voer de volgende opdracht uit om je Dockerimage te bouwen:
Weet je nog dat ik zei dat je je app niet altijd handmatig hoeft te containerizen?
Cloud Run ondersteunt nu source deployments, wat betekent dat het met Cloud Build het containerimage voor je kan bouwen op basis van je broncode.
Je kunt de opdracht gebruiken:
gcloud run deploy hello-world-app \
--source . \
--region us-central1 \
--allow-unauthenticatedMogelijk gemaakt door
Cloud Build detecteert automatisch de taal van je applicatie (Node.js, Python, Go, Java, etc.), bouwt een containerimage voor je en slaat dit op in Artifact Registry. Cloud Run deployt vervolgens het gebouwde image alsof je handmatig een container had gemaakt. Ik raad dit zeker aan voor eenvoudige applicaties met ondersteunde talen (Node.js, Python, Go, Java, etc.), maar niet als je volledige controle over de container nodig hebt (bijv. custom dependencies, OS-level tweaks, multi-step builds).
Tips om Cloud Run efficiënt te gebruiken
Een app naar Cloud Run deployen is vrij eenvoudig, maar hem efficiënt laten draaien vergt wat fine-tuning. Ik heb zelf een fase van trial-and-error doorlopen toen ik ermee begon, en dit is wat ik heb geleerd:
1. Cold starts zijn echt
Zeker als je met een groot containerimage werkt. Hoe kleiner je image, hoe sneller je service opstart. Een minimale base image zoals distroless kan veel verschil maken. Als je Python-apps bouwt, probeer dan slim-versies van officiële images. Of als kosten je minder interesseren, zet je minimumaantal instances op 1.
2. De beste variabele om mee te spelen is de request-concurrency
Cloud Run laat elke instance meerdere requests tegelijk afhandelen, maar de standaard (80 requests per container) is vaak niet optimaal. Voor CPU-intensieve taken heb ik gemerkt dat het verlagen van concurrency naar 1 of 2 de boel veel soepeler maakt. Aan de andere kant kunnen API’s doorgaans een hoger aantal aan. Hoe hoger het aantal, hoe meer je het aantal benodigde instances kunt terugbrengen en dus hoe minder je betaalt. Het is zeker de moeite waard om met verschillende waarden te experimenteren om de sweet spot voor je app te vinden.
3. Stel je instancelimieten in!
Superhandig wanneer iemand (ik) besluit om loadtests te doen en een belachelijk aantal requests start. Die les heb ik geleerd zodat jij dat niet hoeft te doen. Stel alsjeblieft je maximale aantal instances in.
4. Zorg dat de juiste mensen toegang hebben tot je instance
Standaard kunnen Cloud Run-services worden benaderd door iedereen met de URL. Handig voor snelle demo’s, maar minder voor productie. Als je app niet publiek bedoeld is, scherm hem dan af met IAM-rechten.
5. Cloud Logging en Cloud Trace worden je beste vrienden
Als je, net als ik, geneigd bent om problemen te debuggen door via SSH op virtuele machines in te loggen, kom je bedrogen uit. Cloud Run-logboeken worden rechtstreeks naar het Google Cloud-dashboard gestreamd, zodat je daar alles ziet. Zorg dat je gestructureerde logging aan je applicatie toevoegt; dat maakt troubleshooten veel eenvoudiger.
Use-cases voor Cloud Run
We noemden al een paar use-cases voor Cloud Run, zoals webapps, API’s of cronjobs draaien, maar er zijn er natuurlijk nog veel meer.
Video- en afbeeldingsanalyse
Je kunt een model voor beeldherkenning deployen om geüploade afbeeldingen realtime te verwerken voor een socialmediaplatform, of videotran-coding uitvoeren wanneer een video wordt geüpload. Cloud Run kan pieken in de vraag (zoals virale content) aan met geautomatiseerde schaalvergroting, terwijl het bij lage vraag kosten-efficiënt blijft.
Stel dat je een systeem bouwt dat gebruikersgedrag op een online marktplaats monitort. Door eventstreams te verwerken vanuit Pub/Sub of BigQuery kun je direct acties triggeren op basis van gebruikersactiviteit, zoals pushmeldingen sturen of trends realtime analyseren. Cloud Run schaalt automatisch op om binnenkomende events tijdens piekperiodes aan te kunnen en schaalt terug wanneer het volume aan streams afneemt.
Een use-case kan zijn: realtime analyse van logbestanden voor een grote onderneming. Telkens wanneer een logbestand wordt geüpload naar Cloud Storage, kan Cloud Run een container triggeren om het bestand te parsen, analyses uit te voeren en de resultaten op te slaan, terwijl het dynamisch schaalt op basis van de bestandsgrootte en de complexiteit van de verwerkingstaak.
Cloud Run is ideaal voor het afhandelen van backendservices voor IoT-applicaties. In een IoT-oplossing die omgevingsdata van duizenden sensoren bijhoudt, kan Cloud Run bijvoorbeeld de binnenkomende data van elk apparaat realtime verwerken.
Cloud Run werkt met een pay-as-you-go-model: je betaalt alleen voor de compute-resources die worden gebruikt terwijl je applicatie actief draait. Wanneer je app geen requests afhandelt, kan deze terugscha-len naar nul, waardoor je geen onnodige kosten maakt.
Kostenoverzicht
Vanaf maart 2025 rekent Cloud Run kosten op basis van twee hoofdcomponenten:
Resource
Kosten
Gratis tier
CPU
$0.000018 per vCPU-seconde
240.000 vCPU-seconden/maand
Geheugen
$0.000002 per GiB-seconde
450.000 GiB-seconden/maand
Dit prijsmodel geldt voor instance-based billing, maar voor request-based billing werkt het anders. De prijs en gratis tier hierboven verschillen ook licht per regio, dus check de officiële Google Cloud-pagina voor de exacte cijfers. Ze hebben een prijs-calculator om je te helpen de kosten in te schatten, en bieden ook kortingen voor committed use.
Kleine tip: verkeer met andere Google Cloud-services in dezelfde regio is gratis, dus probeer Cloud Storage, Cloud SQL of Pub/Sub te gebruiken in plaats van externe services voor data-uitwisseling.
Cloud Run vs. Cloud Run Functions
Google biedt twee serverless compute-opties: Cloud Run en Cloud Run Functions (voorheen Cloud Functions). Beide laten je code draaien zonder infrastructuur te beheren, maar ze verschillen net even.
✅ Je hebt volledige controle nodig over runtime en dependencies.
✅ Je draait een webservice, API of microservice die persistente requests afhandelt.
✅ Je wilt een bestaande gecontaineriseerde applicatie met minimale aanpassingen deployen.
✅ Je hebt achtergrondverwerking of langlopende taken nodig (zoals AI-inferencing, batchjobs).
Wanneer gebruik je Cloud Run Functions
✅ Je wilt eenvoudige, eventgedreven functies die triggeren op events zoals Pub/Sub-berichten of Cloud Storage-uploads.
✅ Je handelt kortdurende operaties af, zoals notificaties versturen, kleine jobs verwerken of data transformeren.
✅ Je wilt geen containers beheren en geeft de voorkeur aan voorgebouwde runtimes voor JavaScript, Python, Go, etc.
Je hoeft overigens niet te kiezen: je kunt ze ook samen gebruiken! Je Cloud Run-backend kan bijvoorbeeld Cloud Run Functions triggeren voor specifieke taken, zoals e-mails versturen of afbeeldingen asynchroon verwerken.
Vergelijking met andere Google Cloud-services
We hebben Cloud Run en Cloud Run Functions uitgebreid vergeleken, maar er zijn nog twee Google Cloud-services die het vermelden waard zijn: GKE en App Engine.
Er is natuurlijk meer nuance, maar kort samengevat: heb je een volledig beheerde, containergebaseerde oplossing met automatisch schalen en flexibiliteit nodig, kies dan voor Cloud Run. Bouw je een webapp met minimale configuratie, kies dan App Engine. En wil je volledige controle over je Kubernetes-clusters voor grootschalige, complexe applicaties, kies dan GKE.
Hoe ga ik om met databaseconnecties in Cloud Run?⌄
Je kunt de Cloud SQL Auth Proxy gebruiken, connection pooling inschakelen (bijv. PgBouncer voor PostgreSQL) of serverless databases zoals Firestore gebruiken om connectielimieten te vermijden.
Kan ik een eigen domein gebruiken met Cloud Run?⌄
Ja. Stel het in de Cloud Run-console onder Beheer aangepaste domeinen, verifieer eigendom en werk de DNS-records bij. SSL wordt automatisch geleverd.
Ondersteunt Cloud Run WebSockets en langdurige connecties?⌄
Ja, maar instances kunnen worden uitgeschakeld als ze idle zijn. Stel minimuminstances in of gebruik Pub/Sub voor eventgedreven communicatie om connecties te behouden.
Kan Cloud Run achtergrondjobs afhandelen?⌄
Niet direct, omdat het request-based is. Gebruik Cloud Tasks, Pub/Sub of Workflows om achtergrondverwerking te triggeren en beheren.
Kan ik stateful applicaties draaien op Cloud Run?⌄
Niet aan te raden, omdat instances stateless zijn. Gebruik Cloud Storage, Firestore of een externe database om state te bewaren.
Auteur
Marie Fayard
Ik ben een productgerichte tech lead die gespecialiseerd is in het laten groeien van startups in een vroeg stadium, van het eerste prototype tot product‑market fit en verder. Ik ben eindeloos nieuwsgierig naar hoe mensen technologie gebruiken, en ik werk graag nauw samen met oprichters en multidisciplinaire teams om gedurfde ideeën tot leven te brengen. Als ik geen producten bouw, zoek ik inspiratie in nieuwe uithoeken van de wereld of ontspan ik me in de yogastudio.
Cloud Run is Google Cloud’s volledig beheerde serverless-platform waarmee je applicaties kunt deployen zonder je zorgen te maken over infrastructuurbeheer. Het is superflexibel en een uitstekende keuze voor allerlei projecten, van hobby tot enterprise.
In dit artikel leg ik uit wat Cloud Run is, hoe het werkt, welke use-cases het oplost en hoe het zich verhoudt tot andere serverless-oplossingen. Ook laat ik je stap voor stap zien hoe je je eerste Cloud Run-applicatie deployt!
En voordat je begint: ben je helemaal nieuw met cloud computing, dan raad ik je onze cursus Introduction to Cloud Computing aan. Deze cursus behandelt de basis van de cloud, legt sleuteltermen uit zoals schaalbaarheid en latentie en gaat in op de voordelen van cloudtools van aanbieders zoals GCP.
Wat is Cloud Run?
Cloud Run is een serverless platform voor het uitvoeren van containers, waarmee je applicaties kunt deployen zonder je zorgen te maken over infrastructuurbeheer.
Bij traditionele servergebaseerde deployments moet je doorgaans virtuele machines inrichten en onderhouden. Cloud Run werkt net even anders en abstraheert dat allemaal weg om een volledig beheerde omgeving te bieden.
Het is gebouwd op Knative (een open-source, op Kubernetes gebaseerd platform dat serverless workloads mogelijk maakt), wat betekent dat je applicatie automatisch schaalt op basis van de vraag. Neemt het verkeer toe, dan start Cloud Run meer instances op om dit op te vangen. Daalt het verkeer, dan schaalt het terug. Het kan zelfs helemaal naar nul, zodat je niets betaalt wanneer je app niet actief draait.
Cloud Run is kostenefficiënt, maar ook superflexibel. Je kunt applicaties deployen in elke taal en met elk framework of elke binary, zolang het maar in een container draait. Je kunt werken met gangbare technologieën zoals Node.js, Python, Go, Java, of juist met meer obscure opties. In de praktijk betekent dit dat Cloud Run back-endservices, API’s, AI-workloads, webapps en zelfs geplande batchjobs kan draaien.
Dat was alvast een voorproefje. Laten we iets dieper ingaan op de belangrijkste features van Cloud Run.
Belangrijkste features van Cloud Run
We noemden er net een paar, maar hier is een volledig overzicht van de hoofdfeatures van Cloud Run.
Taal- en frameworkagnostisch
Een van de grootste voordelen van Cloud Run is dat je niet vastzit aan een specifieke taal of framework. Zolang je applicatie in een container draait, kun je die deployen. Werk je in een team met een diverse techstack, dan kun je Cloud Run voor al je services gebruiken. Eén tool om ze allemaal te bedienen!
Automatisch schalen
Cloud Run schaalt horizontaal en dynamisch op basis van verkeer. Krijgt je applicatie meer requests, dan start Cloud Run automatisch meer instances. Daalt de vraag, dan schaalt het terug, indien nodig zelfs helemaal naar nul.
Ingebouwde beveiliging en compliance
Cloud Run biedt automatisch HTTPS voor alle gedeployde services, door Google beheerde service-identiteit voor veilige authenticatie, VPC-connectiviteit voor private networking en ingebouwde compliancecertificeringen zoals SOC 2, ISO 27001 en HIPAA (voor zorgapplicaties). Kortom: je zit goed.
Integratie met Google Cloud-services
Omdat Cloud Run onderdeel is van het Google Cloud-ecosysteem, werkt het naadloos samen met andere GCP-services. Je kunt het eenvoudig koppelen aan Cloud SQL voor databases, data streamen met Pub/Sub, bestanden opslaan in Cloud Storage of het gebruiken met BigQuery, Firebase en AI/ML-services.
On-demand GPU-ondersteuning
Voor AI-workloads biedt Cloud Run nu on-demand GPU-ondersteuning. Dit is een grote verbetering voor machine learning-inferencing, videobewerking en wetenschappelijke computing, omdat je elke GPU-versnelde workload kunt draaien zonder het onderliggende hardwarebeheer.
Cloud Run Functions: een Function-as-a-Service-model (FaaS)
Als je geen volledige containers wilt beheren, biedt Cloud Run Functions een vereenvoudigde, eventgedreven manier om kleine, single-purpose functies te draaien. Het lijkt op AWS Lambda of Google Cloud Functions, maar draait op de infrastructuur van Cloud Run.
Hoe Cloud Run werkt: stap voor stap
In deze sectie laat ik zien hoe je een eenvoudige applicatie naar Cloud Run deployt. Ik begeleid je door het proces van het containerizen van je app, het deployen naar Cloud Run en het automatisch schalen op basis van de vraag.
We gebruiken Docker om onze applicatie te containerizen, maar dat hoeft niet per se. Daarover aan het eind meer.
Stap 1: Stel je omgeving in
Voordat je iets deployt, moet je de volgende tools geïnstalleerd hebben:
Stap 2: Schrijf je applicatiecode
Laten we nu een eenvoudige “Hello World”-applicatie in Node.js schrijven.
Maak een map voor je app:
Maak een index.js-bestand in de map met de volgende inhoud:
Maak een package.json om de dependencies van je app te definiëren:
Nu de applicatie klaar is, gaan we deze containerizen.
Stap 3: Containerize de applicatie
Maak een Dockerfile om het containerimage te definiëren
Maak in je projectmap een bestand met de naam “Dockerfile” met de volgende inhoud:
Bouw het Dockerimage
Voer de volgende opdracht uit om je Dockerimage te bouwen:
Let op: vervang your-project-id door je Google Cloud-project-ID.
Test het image lokaal
Je kunt je Dockercontainer lokaal testen met:
Bezoek http://localhost:8080 in je browser om te controleren of de app draait.
Stap 4: Push het image naar Google Artifact Registry
Schakel Artifact Registry in voor je project
Als je Artifact Registry nog niet hebt ingeschakeld, voer dan de volgende opdracht uit
Let op: je moet facturering inschakelen om deze stap te voltooien!
Maak een repository in Artifact Registry
Maak een nieuwe Dockerrepository in Artifact Registry:
Authenticeer Docker bij Artifact Registry
Configureer Docker om te authenticeren met Artifact Registry:
Tag het Dockerimage voor Artifact Registry
Tag je Dockerimage met de Artifact Registry-repository-URL:
Push het image naar Artifact Registry
Push het getagde Dockerimage naar je Artifact Registry-repository:
Stap 5: Deploy naar Cloud Run
Zodra je image is gepusht naar Artifact Registry, kun je het naar Cloud Run deployen, rechtstreeks vanuit Artifact Registry.
Deploy je image naar Cloud Run met de volgende opdracht:
Na het uitvoeren van deze opdracht deployt Cloud Run je gecontaineriseerde applicatie en krijg je een URL om deze te openen.
En dat was het! Kijk even in de GCP-console: daar zou je je nieuwe instance moeten zien.
Stap 6: Opruimen
Om doorlopende kosten te voorkomen, verwijder je service zodra je klaar bent met testen.
1. Verwijder de Cloud Run-service
Voer de volgende opdracht uit om je gedeployde Cloud Run-service te verwijderen:
Dit verwijdert de Cloud Run-instance, maar niet het containerimage.
2. Verwijder het Artifact Registry-image
Om het image uit Artifact Registry te verwijderen, lijst je eerst de images op:
Verwijder daarna het image met:
Nu is je Artifact Registry ook opgeruimd.
3. Verwijder de Artifact Registry-repository (als die niet meer nodig is)
Wil je de Artifact Registry-repository volledig verwijderen, voer dan uit:
Deze stap is alleen nodig als je helemaal klaar bent met de repository; anders kun je hem hergebruiken voor toekomstige deployments.
4. (Optioneel) Verwijder het Google Cloud-project
Als dit een testproject was en je het niet meer nodig hebt, kun je het hele project verwijderen om alle bijbehorende resources te verwijderen:
Source deployments
Weet je nog dat ik zei dat je je app niet altijd handmatig hoeft te containerizen?
Cloud Run ondersteunt nu source deployments, wat betekent dat het met Cloud Build het containerimage voor je kan bouwen op basis van je broncode.
Je kunt de opdracht gebruiken:
Cloud Build detecteert automatisch de taal van je applicatie (Node.js, Python, Go, Java, etc.), bouwt een containerimage voor je en slaat dit op in Artifact Registry. Cloud Run deployt vervolgens het gebouwde image alsof je handmatig een container had gemaakt. Ik raad dit zeker aan voor eenvoudige applicaties met ondersteunde talen (Node.js, Python, Go, Java, etc.), maar niet als je volledige controle over de container nodig hebt (bijv. custom dependencies, OS-level tweaks, multi-step builds).
Tips om Cloud Run efficiënt te gebruiken
Een app naar Cloud Run deployen is vrij eenvoudig, maar hem efficiënt laten draaien vergt wat fine-tuning. Ik heb zelf een fase van trial-and-error doorlopen toen ik ermee begon, en dit is wat ik heb geleerd:
1. Cold starts zijn echt
Zeker als je met een groot containerimage werkt. Hoe kleiner je image, hoe sneller je service opstart. Een minimale base image zoals distroless kan veel verschil maken. Als je Python-apps bouwt, probeer dan slim-versies van officiële images. Of als kosten je minder interesseren, zet je minimumaantal instances op 1.
2. De beste variabele om mee te spelen is de request-concurrency
Cloud Run laat elke instance meerdere requests tegelijk afhandelen, maar de standaard (80 requests per container) is vaak niet optimaal. Voor CPU-intensieve taken heb ik gemerkt dat het verlagen van concurrency naar 1 of 2 de boel veel soepeler maakt. Aan de andere kant kunnen API’s doorgaans een hoger aantal aan. Hoe hoger het aantal, hoe meer je het aantal benodigde instances kunt terugbrengen en dus hoe minder je betaalt. Het is zeker de moeite waard om met verschillende waarden te experimenteren om de sweet spot voor je app te vinden.
3. Stel je instancelimieten in!
Superhandig wanneer iemand (ik) besluit om loadtests te doen en een belachelijk aantal requests start. Die les heb ik geleerd zodat jij dat niet hoeft te doen. Stel alsjeblieft je maximale aantal instances in.
4. Zorg dat de juiste mensen toegang hebben tot je instance
Standaard kunnen Cloud Run-services worden benaderd door iedereen met de URL. Handig voor snelle demo’s, maar minder voor productie. Als je app niet publiek bedoeld is, scherm hem dan af met IAM-rechten.
5. Cloud Logging en Cloud Trace worden je beste vrienden
Als je, net als ik, geneigd bent om problemen te debuggen door via SSH op virtuele machines in te loggen, kom je bedrogen uit. Cloud Run-logboeken worden rechtstreeks naar het Google Cloud-dashboard gestreamd, zodat je daar alles ziet. Zorg dat je gestructureerde logging aan je applicatie toevoegt; dat maakt troubleshooten veel eenvoudiger.
Use-cases voor Cloud Run
We noemden al een paar use-cases voor Cloud Run, zoals webapps, API’s of cronjobs draaien, maar er zijn er natuurlijk nog veel meer.
Video- en afbeeldingsanalyse
Je kunt een model voor beeldherkenning deployen om geüploade afbeeldingen realtime te verwerken voor een socialmediaplatform, of videotran-coding uitvoeren wanneer een video wordt geüpload. Cloud Run kan pieken in de vraag (zoals virale content) aan met geautomatiseerde schaalvergroting, terwijl het bij lage vraag kosten-efficiënt blijft.
Bron: Google Cloud
Realtime streamverwerking
Stel dat je een systeem bouwt dat gebruikersgedrag op een online marktplaats monitort. Door eventstreams te verwerken vanuit Pub/Sub of BigQuery kun je direct acties triggeren op basis van gebruikersactiviteit, zoals pushmeldingen sturen of trends realtime analyseren. Cloud Run schaalt automatisch op om binnenkomende events tijdens piekperiodes aan te kunnen en schaalt terug wanneer het volume aan streams afneemt.
Bron: Google Cloud
Realtime bestandsverwerking
Een use-case kan zijn: realtime analyse van logbestanden voor een grote onderneming. Telkens wanneer een logbestand wordt geüpload naar Cloud Storage, kan Cloud Run een container triggeren om het bestand te parsen, analyses uit te voeren en de resultaten op te slaan, terwijl het dynamisch schaalt op basis van de bestandsgrootte en de complexiteit van de verwerkingstaak.
Bron: Google Cloud
Serverless IoT-backends
Cloud Run is ideaal voor het afhandelen van backendservices voor IoT-applicaties. In een IoT-oplossing die omgevingsdata van duizenden sensoren bijhoudt, kan Cloud Run bijvoorbeeld de binnenkomende data van elk apparaat realtime verwerken.
Bron: Google Cloud
Google Cloud Run-prijzen
Cloud Run werkt met een pay-as-you-go-model: je betaalt alleen voor de compute-resources die worden gebruikt terwijl je applicatie actief draait. Wanneer je app geen requests afhandelt, kan deze terugscha-len naar nul, waardoor je geen onnodige kosten maakt.
Kostenoverzicht
Vanaf maart 2025 rekent Cloud Run kosten op basis van twee hoofdcomponenten:
Dit prijsmodel geldt voor instance-based billing, maar voor request-based billing werkt het anders. De prijs en gratis tier hierboven verschillen ook licht per regio, dus check de officiële Google Cloud-pagina voor de exacte cijfers. Ze hebben een prijs-calculator om je te helpen de kosten in te schatten, en bieden ook kortingen voor committed use.
Kleine tip: verkeer met andere Google Cloud-services in dezelfde regio is gratis, dus probeer Cloud Storage, Cloud SQL of Pub/Sub te gebruiken in plaats van externe services voor data-uitwisseling.
Cloud Run vs. Cloud Run Functions
Google biedt twee serverless compute-opties: Cloud Run en Cloud Run Functions (voorheen Cloud Functions). Beide laten je code draaien zonder infrastructuur te beheren, maar ze verschillen net even.
Wanneer gebruik je Cloud Run
Wanneer gebruik je Cloud Run Functions
Je hoeft overigens niet te kiezen: je kunt ze ook samen gebruiken! Je Cloud Run-backend kan bijvoorbeeld Cloud Run Functions triggeren voor specifieke taken, zoals e-mails versturen of afbeeldingen asynchroon verwerken.
Vergelijking met andere Google Cloud-services
We hebben Cloud Run en Cloud Run Functions uitgebreid vergeleken, maar er zijn nog twee Google Cloud-services die het vermelden waard zijn: GKE en App Engine.
Er is natuurlijk meer nuance, maar kort samengevat: heb je een volledig beheerde, containergebaseerde oplossing met automatisch schalen en flexibiliteit nodig, kies dan voor Cloud Run. Bouw je een webapp met minimale configuratie, kies dan App Engine. En wil je volledige controle over je Kubernetes-clusters voor grootschalige, complexe applicaties, kies dan GKE.
Conclusie
Nu je alles weet over Cloud Run, kun je je eerste instance starten of andere Google Cloud-services verkennen om het juiste niveau van controle en automatisering voor jou te vinden!