[MUSIC PLAYING]
KATHERINE MILLER: Hi, Nikhil.
It's great to see you here at Google Cloud Next 2018.
Good event so far, for you?
NIKHIL KAUL: So far, so good.
And great to see you, Katie.
KATHERINE MILLER: It's great to see you, as well.
I'm actually really excited to be here
to learn more about CI/CD with GCP.
NIKHIL KAUL: Ah, great question, Katie.
So what we are doing over here is
we are using Google Cloud Platform's tools, specifically
developer tools, to create a continuous integration
and a continuous delivery pipeline.
KATHERINE MILLER: Excellent.
NIKHIL KAUL: So the tools which you are seeing over here
specifically target three specific areas, which
is storing your source code, creating a build
and testing it, and then, essentially, deploying it.
KATHERINE MILLER: So can you show me
what demo you've built to walk us through those three steps?
NIKHIL KAUL: Yeah, but before I go over there,
let me take a step back and tell you more about the demo.
KATHERINE MILLER: Sure thing.
Yeah.
NIKHIL KAUL: So in the demo, what we are doing over here
is, we're really creating a easy way for our attendees
to understand how you can set up a CI/CD pipeline,
in a really easy-to-do fashion.
So what you will see is, we will start
from writing code and storing it.
Now, we will obviously not be writing code.
To write code, we will be actually pressing
the red button to do it.
KATHERINE MILLER: Wouldn't it be nice, though,
if writing code was as simple as pushing a red button?
NIKHIL KAUL: Obviously, I would really like that.
So similarly, when the code has been written,
we will create a build and test it,
using our offering which we recently released at Next,
which is called Cloud Build.
Once it has been built, we will deploy it to,
depending upon which environment you want,
whether you want to deploy to on-prem whether you
wanted to deploy to Cloud.
We support both.
KATHERINE MILLER: OK.
Excellent.
NIKHIL KAUL: So let's walk you through the demo.
KATHERINE MILLER: Yeah, let's get started and see this demo.
NIKHIL KAUL: Let's start with the demo.
So the first and the foremost screen,
which you see on the screen, is, where
do you want to store your source code?
GitHub and Bitbucket, probably, you might be familiar with.
But Google itself comes with--
Google has an offering, which is called its Cloud Source
Repositories, which is a private Git repo.
We see our customers using Cloud Source Repositories
for two specific use cases.
One, it comes with built-in integrations
to GCP tools, and second, specifically with integrations
to Stackdriver.
It gives you really good debugging capabilities,
since Cloud Source Repositories has built-in integrations
with Stackdriver.
So for today's demo purposes, let's say
our source code is going to be stored in Cloud Source
Repositories.
KATHERINE MILLER: Excellent.
OK.
NIKHIL KAUL: As I said, what we'll
do is, we'll click the red button.
And then it goes into writing the code phase.
As you can see, we are really not writing the code over here,
manually.
What we are doing is clicking the red button
and playing the slot machine.
KATHERINE MILLER: OK.
NIKHIL KAUL: So as we do it four times, the code gets written.
The next step, obviously, is creating the build.
So we have something called as Cloud Build, which
is a CI/CD platform, which lets you create both containers as
well as non-container specific builds.
KATHERINE MILLER: OK
NIKHIL KAUL: The three differentiators
for Cloud Build, specifically, are scalability--
as you start ramping up your builds across different team
members and different projects, it still
gives you fast feedback in a CI environment.
The second is security.
As we will see in the next part of the demo,
it comes with built-in vulnerability scanner.
And the third part of this Cloud Build, which differentiates us,
is the flexibility piece.
So for the biggest part of flexibility is it
comes with a YAML file.
And it lets you define build steps specifically
for building the containers or even non-container artifact,
testing it, and deploying it.
How is the demo so far, Katie?
KATHERINE MILLER: So far-- oh.
Something failed.
NIKHIL KAUL: Something failed.
And probably, that's because I wrote some unit tests.
KATHERINE MILLER: All right.
NIKHIL KAUL: And they found some flaws in my build.
KATHERINE MILLER: OK
NIKHIL KAUL: So the next step, obviously,
is fixing those flaws.
And guess what?
How we are going to fix those flaws?
Again, by pressing the red button over here.
KATHERINE MILLER: Of course.
NIKHIL KAUL: Right.
KATHERINE MILLER: If only life was this easy, right?
NIKHIL KAUL: Absolutely.
So right now, you will see in the background,
Cloud Build [INAUDIBLE] the build.
The build will take 10 to 15 seconds to build.
And we can see, on the screen, the progress bar.
Once the build gets created, you can see the build results,
the build time, the build queue time, the worker startup time,
data transfer rate, and other things.
But at this point of time, you have stored your source code.
You have created a build.
There's one piece still missing, the security piece.
KATHERINE MILLER: Right.
NIKHIL KAUL: Right.
You still need to ensure the build which you just
created does not have any security vulnerabilities.
So Cloud Build comes with vulnerability scanner,
which lets you scan your builds and ensure that the builds
you have are really secure.
KATHERINE MILLER: Great.
NIKHIL KAUL: But for many organizations,
the process doesn't even stop there.
What they need is a way to have a policy set up as well.
For example, they want a policy to ensure
that none of the builds which have a security vulnerability
can ever be deployed to production.
And that's why many of the organizations
will use vulnerability scanner with another tool which
we released at Next, which is called Binary Authorization.
Using vulnerability scanner and [INAUDIBLE]
Binary Authorization, you can essentially
set up policies to decide what gets deployed,
what doesn't get deployed.
Right now, we are seeing only vulnerability scanner.
And as you can see, it has found a vulnerability.
So the next step, obviously, is to resolve the vulnerability.
So we resolve the vulnerability by, again,
clicking the red button.
The vulnerability gets resolved.
And you can see the scan being rerun over here.
So till this time in the demo, we have created a build.
We have scanned the vulnerability.
The next step, obviously, is deploying the image.
Now, for deployment piece over here, we are using Spinnaker.
You must be familiar with Spinnaker,
since you work at Google.
So Spinnaker is an open source tool,
which Google contributes to, which
Google is a core contributor to with Netflix.
Spinnaker makes the process of creating deployment pipelines
across Cloud, on-premise environments
really easy and simple.
So today, for the demo, we will be deploying to, let's say,
Cloud.
On the screen, what you see is actually
a blue-green deployment taking place.
You will see Spinnaker going through different stages
of the pipeline.
And as it goes through different stages of the pipeline,
you will see the color changing from blue to green.
For example, right now, it's in the deploy new version
to Kubernetes image.
Now, it's in the last image, where it's trying
to scale down previous parts.
And you will see the color changing to green
as soon as the deployment gets complete.
Right now, looks like our app is deployed.
You can see the app over here.
And finally, you get all the matrices
for building your app in a continuous integration
and continuous delivery manner.
Any other questions for me, Katie?
KATHERINE MILLER: Well, I know that this
was a very simple and efficient way to build an app.
But from what I understand, what makes this helpful and useful
is that it does allow teams to be much more
efficient and productive.
Is that correct?
NIKHIL KAUL: Absolutely.
One of the biggest things which you will see, as a developer,
I would rather focus on writing code rather than managing
infrastructure, especially continuous integration
and continuous delivery pipeline.
I want to get fast feedback on my code.
I want to ensure what I roll out to production
is of highest quality.
So all those things are being built into this pipeline.
Developers are able to focus on code.
Developers are able to get fast feedback on code changes
through continuous integration.
And through things like automated canary analysis,
which we have built into Spinnaker,
you ensure that what the code which
you're releasing to production is of the highest quality
possible.
KATHERINE MILLER: Excellent.
Well, thank you so much for sharing this demo with us
and what makes it helpful to our developers.
Enjoy the last few hours of Next.
NIKHIL KAUL: You too.
[MUSIC PLAYING]