[TITLE MUSIC PLAYING]
ANKIT MEHTA: GCP is a set of solutions and products
that can help you solve your toughest business challenges.
We have external paying customers
that run businesses on our platforms and at massive scale.
These customers expect developer velocity and quality.
MTHRA RAJAH: We have thousands of engineers
at Google building this platform at all levels of the stack.
These engineers want a seamless developer workflow,
deterministic signals, insights, and velocity.
ANKIT MEHTA: It is GCP Engineering Productivity team's
role to balance these two dimensions, between developer
velocity and quality.
For example, we deploy GCP's console
twice a week to our users, and with high quality.
Our goal is to establish biweekly high-quality releases
across GCP.
MTHRA RAJAH: At Google, we have created
a set of guiding principles that let us have both developer
velocity and quality.
We want to share these principles and the tools that
are available to you so you can accelerate
at the pace your users expect.
ANKIT MEHTA: While we at Google initially
focused on test engineering, over a decade ago,
we started looking at engineering productivity
holistically.
This gave us the framework to achieve
the right balance between developer velocity and quality.
MTHRA RAJAH: This meant that, in addition
to doing complex qualification across systems,
we started focusing on tooling and infrastructure that enabled
developers themselves to quantify their code changes
before they commit them.
ANKIT MEHTA: This, in turn, allows us not only to catch
bugs, but prevent them, too.
This changed the way we built, qualified,
and deployed our applications.
And we started pushing the boundaries of both developer
velocity and quality.
MTHRA RAJAH: We balance developer velocity and quality
at Google and on GCP through Project Health pH.
We track key metrics across developer productivity,
release velocity, reliability, and most importantly, quality.
We automatically calculate a pH level,
and aim to achieve a pH level of 5 for all projects.
ANKIT MEHTA: Our guiding principles
are driving test health, avoiding performance
regressions, and high-quality, automated releases,
all of which are anchored in actionable metrics.
Let's zoom in on two of these, driving test health
and avoiding performance regressions.
For driving test health, we aim for hermetic integration
tests, fast [INAUDIBLE],, and elimination of test flakiness.
We have built a cloud integration testing framework
internally that helps us write test once, and run them
against any environment.
MTHRA RAJAH: We enable developers
to catch performance issues early in the development
process to avoid performance regressions.
We have a framework that enables developers
to create sustainable performance automation that
can gate releases on performance criteria.
And we aim to improve GCP's quality and deployment
by reducing manual toil, increasing automation,
eliminating cherry-picks, and improving
the fidelity of the test signal in our pre-production
environments.
ANKIT MEHTA: Let's dive deeper into what
we are doing for the external developer and user.
Google works closely with the external Kubernetes and Istio
developer communities to enable developer productivity
in open source.
Kubernetes is an open-source system
for automating deployment, scaling, and management
of containerized applications, while Istio
is an open-source service mesh that
provides traffic management, policy enforcement,
and telemetric collection.
We are active contributors to special interest group
SIG testing in Kubernetes.
MTHRA RAJAH: Some of the tooling we
helped build in the open source community includes Prow,
the continuous integration CI system used by Kubernetes
and a lot of other projects that use Kubernetes.
Prow is built on top of Kubernetes.
So our CI helps test Kubernetes on Kubernetes.
ANKIT MEHTA: Testgrid provides a grid of test results,
making it easy to see patterns over time,
provides fast access, and allows interactive sorting, filtering,
grouping, and more.
It is highly configurable, and integrated with Cloud Build.
MTHRA RAJAH: Recently, we helped build hermetic testing
using Kubernetes and Docker.
Kind brings up a confirmed Kubernetes cluster locally
without any external dependencies
for testing Kubernetes changes or integration-testing
Kubernetes applications.
Kubernetes was designed with portability
and interoperability in mind, and providers
want to enable application portability.
Google, alongside other cloud providers,
helps out with the Cloud Native Computing Foundation's
conformance program, which ensures certified Kubernetes
products deliver consistency and portability.
ANKIT MEHTA: The outside world now
uses VNs, Kubernetes containers, scalable storage, GitHub,
and so on.
Google's software is stored in a single shared repository.
The development landscape is rapidly changing,
and we are evolving our tooling and incorporating
external tooling to adapt to this changing landscape.
Summarizing, we believe that if you prioritize driving test
health, treat performance as a first-class citizen,
and have automated CI/CD that enables high-quality releases,
and measure everything--
MTHRA RAJAH: --you can have the same developer
velocity and quality as we do.
[TITLE MUSIC PLAYING]