Self-service capability for requesting BigQuery dataset creation — part1

In my previous blog posts, I have explained the scale of the data platform my team owns and manages on GCP. We manage almost all GCP data services and make them available for Data, Analytics, and Machine Learning Engineers. We also provide best practice recommendations for data engineering practices.

At the scale (100+ GCP projects with many data services and various IAM permissions granted in different environments) we operate, resource creation becomes a bottleneck for our customers. We started building self-service capabilities to alleviate this problem and make the data platform more user-friendly.

Our company uses Backstage for Internal Developer Platform (IDP) development. In the last 3 months, I designed and developed self-service templates for requesting services like these (and there are a few more to go). The templates are developed for the most frequently requested services by our customers.

  1. Creation of BigQuery datasets
  2. Creation of GCS buckets
  3. Granting “BigQuery Data Viewer” role on BigQuery datasets to AD groups and GCP Service Accounts
  4. Granting the “BigQuery Job User” role at the project level to GCP Service Accounts
  5. Granting the “BigQuery Read Session User” role at the project level to GCP Service Accounts

In this blog post, I will provide the details about the self-service template I developed for creating BigQuery datasets.

These are fields provided in the template.

  1. Domain name: This is the LoB present on our Cloud Data Platform.
  2. Zone name: Each domain has 3 zones (Landing, Processing, Curated).
  3. Purpose: Reason for creation of new BigQuery datasets.
  4. BigQuery dataset names: Names of the BigQuery datasets that must be created.

Once the details are entered, a PR will be submitted to the “IDP” repo with the terraform code that reads the input file and creates the BigQuery datasets accordingly.

These are the plan and apply GitHub Actions workflows that run for all 3 environments to create the resources.

Disclaimer: The posts here represent my personal views and not those of my employer or any specific vendor. Any technical advice or instructions are based on my own personal knowledge and experience.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Bharath నునేపల్లి
Bharath నునేపల్లి

Written by Bharath నునేపల్లి

Cloud & platform architect turned AI engineer. Passionate about data, scalable solutions, and leveraging AI/ML to solve real-world problems.

No responses yet

Write a response