GCP
A simple guide to quickly set up a minimal stack on GCP.
Last updated
Was this helpful?
A simple guide to quickly set up a minimal stack on GCP.
Last updated
Was this helpful?
This page aims to quickly set up a minimal production stack on GCP. With just a few simple steps you will set up a service account with specifically-scoped permissions that ZenML can use to authenticate with the relevant GCP resources.
While this guide focuses on Google Cloud, we are seeking contributors to create a similar guide for other cloud providers. If you are interested, please create a .
In the Google Cloud console, on the project selector page, select or . Make sure a billing account is attached to this project to allow the use of some APIs.
This is how you would do it from the CLI if this is preferred.
The will need to be enabled within your chosen GCP project.
Cloud Functions API # For the vertex orchestrator
Cloud Run Admin API # For the vertex orchestrator
Cloud Build API # For the container registry
Artifact Registry API # For the container registry
Cloud Logging API # Generally needed
The service account should have these following roles.
AI Platform Service Agent
Storage Object Admin
These roles give permissions for full CRUD on storage objects and full permissions for compute within VertexAI.
The service connector will allow ZenML and other ZenML components to authenticate themselves with GCP.
Before you run anything within the ZenML CLI, head on over to GCP and create a GCS bucket, in case you don't already have one that you can use. Once this is done, you can create the ZenML stack component as follows:
This guide will use Vertex AI as the orchestrator to run the pipelines. As a serverless service Vertex is a great choice for quick prototyping of your MLOps stack. The orchestrator can be switched out at any point in the future for a more use-case- and budget-appropriate solution.
Just like that, you now have a fully working GCP stack ready to go. Feel free to take it for a spin by running a pipeline on it.
If you do not want to use any of the created resources in the future, simply delete the project you created.
When working with a GCP stack in ZenML, consider the following best practices to optimize your workflow, enhance security, and improve cost-efficiency. These are all things you might want to do or amend in your own setup once you have tried running some pipelines on your GCP stack.
Always adhere to the principle of least privilege when setting up IAM roles. Only grant the minimum permissions necessary for your ZenML pipelines to function. Regularly review and audit your IAM roles to ensure they remain appropriate and secure.
Implement a consistent labeling strategy for your GCP resources. To label a GCS bucket, for example:
This command adds two labels to the bucket:
A label with key "project" and value "zenml"
A label with key "environment" and value "production"
You can add or update multiple labels in a single command by separating them with commas.
To remove a label, set its value to null:
These labels will help you with billing and cost allocation tracking and also with any cleanup efforts.
To view the labels on a bucket:
This will display all labels currently set on the specified bucket.
Navigate to the Google Cloud Console
Go to Billing > Budgets & Alerts
Click "Create Budget"
Set your budget amount, scope (project, product, etc.), and alert thresholds
You can also use the gcloud
CLI to create a budget:
Set up cost allocation labels to track expenses related to your ZenML projects in the Google Cloud Billing Console.
Regularly backup your critical data and configurations. For GCS, for example, enable versioning and consider using cross-region replication for disaster recovery.
To enable versioning on a GCS bucket:
To set up cross-region replication:
By following these best practices and implementing the provided examples, you can create a more secure, efficient, and cost-effective GCP stack for your ZenML projects. Remember to regularly review and update your practices as your projects evolve and as GCP introduces new features and services.
This will allow the service account to assume the identity of this service account. You will need the filepath of the downloaded file in the next step.
Head on over to our to learn more about artifact stores and how to configure them.
Head on over to our to learn more about orchestrators and how to configure them.
Head on over to our to learn more about container registries and how to configure them.
Use Google Cloud's to monitor and manage your spending. To set up a budget alert: