[MUSIC PLAYING]
MARCOS GRAPPEGGIA: Welcome to our Cloud Next session
on how to increase you developer productivity with our recently
announced product, Cloud Workstations.
First, let's do a quick round of introductions.
Hi, I'm Marcus Grappeggia, Product Manager
for Google Cloud focus on Cloud Workstations and Cloud Shell.
ANTOINE CASTEX: Hi, I'm Antoine Castex, a Cloud Architect
working for L'Oreal.
MATT ELLIS: And hi, everyone.
I'm Matt Ellis, a developer advocate
working with remote development at JetBrains.
MARCOS GRAPPEGGIA: All right, so today we're
giving you an overview of what's new in IDEs
and related tooling in Google Cloud.
So we start by recapping our existing solutions
followed by a deep dive on our new offering, Cloud
Workstations.
Next, Antoine from L'Oreal will talk
about how they enable teams across the world to share
the same ways of working.
And finally, Matt from JetBrains will
talk about our partnership to support JetBrains
IDEs with JetBrains gateway.
So let's start then.
First, I wanted to give you a quick overview of the IDE
and related tooling Google Cloud has available today.
First, Cloud Shell provides a terminal and Code Editor
available directly from your browser,
as you can see here on the screen.
It comes preconfigured with tools such as G-Cloud
and Docker so you can more quickly
get started at Google Cloud.
Next, we have Cloud Code, a set of IDE extensions
you can install on the most popular IDEs,
such as IntelliJ or VSCode, that makes it easy
for you to create and deploy applications in the Cloud.
And two years ago, we announced a major update
to Cloud Shell Editor, introducing rich language
support, source controls, cloud configuration,
and integrated debugger to make it easier for you to prototype
with the Google Cloud APIs and code samples.
And today, we're introducing Cloud Workstations,
the next step on this journey providing
fully-managed and customizable development environments.
All right, so Cloud Workstations is a new product
built to support the day-to-day development
needs of large and small development teams.
It provides a customizable development environment
available in seconds anywhere from a browser,
as you can see here in the screenshot.
And all of this is done in a reproducible way, which
means you can address the works on my machine problems
by using it.
It also allows you to run code against real services,
preventative [INAUDIBLE] associated
with emulation of services.
And finally, it has a series of built-in security mechanisms
to help you strengthen your security posture.
So before you start our deep dive,
let me talk about the main challenges
we heard from our customers that guided the design of Cloud
Workstations.
First, getting developers started on a new project
takes too long, especially getting the development
environment set up.
And this got more complex with increase in remote work
we saw recently.
Next, multiple developer inner loop friction points,
such as accessing private resources or slow builds,
are simplified once you move your dev environment
to the Cloud.
And finally, securing local devices and the source code
and then restarting it is challenging.
Let me now show you how Cloud Workstations
address these challenges.
First, first environment setup.
This video shows an example of how
you can get a dev environment up and running in a few minutes.
We are here to create an environment
for your workstation configuration.
As you can see here, in a few seconds,
you can define multiple configurations for, let's say,
Node.js, Java, or a Python environment.
Once you create the configuration,
this can be used as a template for Cloud Workstations used
by other developers.
Once the developer clicks on Start Workstation, what
is happening behind the scenes is
you are creating EVM dedicated for that developer, which
can start fast because it can keep a pool of warmed
up VMs preconfigured.
Once they click on Launch, as expected,
you get a Code Editor running on EVM.
But this goes way beyond just a Code Editor.
Developers and team leads can also
pre-load the code repo, library, dependencies, ID extensions,
and even customize the specific ID and Code Editor being used.
In this case, we have seen here a series of Java code samples.
We could, for example, customize that to have the code
samples which help your developers get
on-boarded with your tuning and your internal frameworks.
Another thing you can see here is
how the tools, such as the Java ID extensions or the JDK,
are preinstalled here.
So you can just get to into reading and writing code
as soon as possible.
Next, as I mentioned before, for consistency purposes,
all workstations belong to workstation configuration
which can be defined by a team lead or admin.
You can see a screenshot of what it looks like on the left where
essentially you can define parameters such as the VM, disk
specifications, and environment definitions via your container
images.
You can either use our base images, which
comes with some basic tools pre-installed,
or even create your own container image,
customizing our base image with how many tools you
want for day to day, as you can see on the right-hand side.
So you could, for example, have a Java
plus a springboard configuration for your backend team,
[INAUDIBLE] types pre-configuration
for your front end team so they get the tool they
need to get their job done.
And let's now switch into developer productivity.
So developers frequently achieve their maximum productivity
on a specific ID where they build ideal set up.
Knowing this, we build Cloud Workstations from the ground
up to have multi IDE support.
So if you use either an IntelliJ, GoLand, a pycharm,
or VS code, or any other IDEs, you
can benefit from remote development
without changing your workflow or tuning.
We're also partnering with JetBrains
to provide the IDEs outlined over here.
And next, beyond browser-based IDEs,
Cloud Workstations are support other interfaces
which are typical of development workflows.
On the left-hand side, you can see here you
can have your local JetBrains IDEs connect your workstation
with JetBrains gateway.
And on the right-hand side, if you use local VS code,
you can also access workstation for remote development via SSH.
You can also set up these SSH and even
TCP tunnels to workstation from a local machine
for more advanced workflows.
Cloud Workstations also comes with the Cloud Code ID
extensions preinstalled.
These extensions make it easy for you to create and deploy
applications to multiple Cloud Services,
such as GKE, Cloud Run, or the other services
you can see here.
It also enables very fast code build and test cycle
with hot reload which is possible via [INAUDIBLE]
integrations with Minikube and Scaffold.
Finally, I want to talk about the security
and enterprise-focused elements of Cloud Workstations which
ensure organizations can provide security guardrails they need.
So our Cloud Workstations, as you can see in this diagram,
can be created inside of our VPC network,
and you can access your private environments,
with VPC Service Controls integrations possible
for added security.
So this means that you can enforce the same policies used
for your production services to your developer workstations,
such as automatic disk backups or limit access
to sensitive resources.
All access to workstations is also controlled via IM,
and you can also enforce a fully private ingress and egress
so that only users inside your private network
can access your workstations.
And as always, workstations configurations
make it easy for you to manage environment configurations.
As you can see here is admins can have a consolidated view
of all the conflicts used by their teams
so you can quickly manage and update the configurations they
are using.
So you can, for example, seamlessly update environments.
Let's say, if you patch one of those environments today,
but tomorrow all workstations will be automatically updated.
And one last thing, DevOps training support.
You may have a variety of tried and tested tools
you use, such as Cloud Build or even third-party tools,
like GitLab or TeamCity.
Cloud Workstations, since they can live inside a VPC,
also support accessing tools that can be self-hosted,
on-prem, and even running in other clouds.
And finally, and this for the overview of Cloud
Workstations, but if you're interested in learning more
about secure software supply chain,
I invite you to attend a session on software delivery shared.
With that said, I now want to hand over the presentation
to Antoine which will talk more about how L'Oreal increase
the developer productivity and security with Cloud
Workstations.
ANTOINE CASTEX: Thank you, Marcos, for the invitation.
Really appreciate it.
Before speaking with you deeper about Cloud Workstation,
let me give you a few words about L'Oreal.
I'm sure you already know who L'Oreal is,
but L'Oreal is the main and the most
biggest cosmetic company in the world.
And we sell millions and millions of product every years
through e-commerce website or physical workshop.
We are present in more than 50 country and more than 90,000
employees working together.
We choose Google Cloud as a partner
for all the data and analytics use case that we have.
And for this use case, there is hundreds of developers.
And that's exactly why we are here
today to speak about the experience of this developer.
This developer can come from different country,
different place, working for different project,
but at the end, they can also work together
in the same project.
That means there is a lot of different example
where we have to say we need some tools to be more efficient
and work better together.
The challenge we were having before workstation
were simple but very important.
The cost management of the different solution
that were used because there were
a lot difference about the licensing and the way it
was used.
The security of this solution were a nightmare
because we have to manage the fact they are not
at the same levels of security and features.
Probably the biggest one, the single point of failure
were presented by the laptop himself,
because remember the fact that a developer before pushing
his code is initially developing locally on his laptop.
So it was a big problem because everything
is located on the laptop if there is a problem.
And at the end, the fact that the code was not
rationalized because everybody is working at different speed,
at different maturity, so it was at the end
a lot of time consuming to ensure everybody
is doing the same thing.
So in that case, workstation comes.
And the omission we have, and it's now possible,
is to let developer works from anywhere
with any devices at any times.
That's great.
And what helps that ambition to be possible?
The fact that now it's possibly to deploy very easily
environment for a newcomer going into a ticket solution,
requesting for a new environment,
calling an API to Google Cloud, and in less than a minute,
magic happen.
Suddenly, I'm sure that now everyone
is working in the same way.
That's a very, very game changer because now it's
possible to compare and monitor that problematic.
The cost efficient, which is at the end,
still a problem with all the problematic you
can have in a company like L'Oreal,
but also in your company, you can now control.
You only pay when you use the solution,
so it's very efficient.
The fact also that it is very powerful
because you can choose the different performance
of the workstation you want to provide to your developer.
And also the fact that it's low carbon
because you can also choose and select
where exactly you want to deploy this workstation.
And at the end, the fact that the security is now more mature
and can be better because in one single panes of glass
we have an overview of what's going on following the zero
trust principle provided by Google
in many, many other product like single sign on, the fact
that workstation doesn't needs to have any external IP,
and plus all the different features
that Google Cloud is providing.
So to conclude, I use this code coming from my engineering
team.
Yes, they are very happy to use workstation,
but not only because it's powerful,
because it's great, because it's integrated with Google Cloud,
but more because it's now very mature,
it's possible to work together in a much more efficient way
to provide more better solution for the business.
And now I will let the floor to Matt from JetBrain.
MATT ELLIS: Thanks, Antoine.
I'd like to take the opportunity to describe
a little bit about how JetBrain's IDEs traditionally
desktop applications work in a remote development scenario
and also to introduce JetBrain's gateway.
When we run a JetBrains IDE on a remote machine,
we install the IDE on the remote machine,
and it lives there with your project, your source
code, your dependencies, your toolchain, everything
you need to run the application, to run your project,
and to develop it and go through the whole lifecycle,
apart from the user interface.
The user interface runs locally.
And this is where JetBrains Gateway comes in.
Gateway is a small application that
is responsible for talking to the remote machine
and for starting up the JetBrains client providing
the user interface.
Gateway is everything you need to get started,
and you just need to install this on a fresh laptop,
for example.
And it can connect can to the remote machine,
and it will start up the client.
And it's everything you need then to get started.
The client itself provides the user interface
and provides a local editor for working
with your remote source.
This editor is all running locally
and it will edit your files and it
feels like a local application.
However, your files are still secure and remote
on the remote machine.
Getting started is very straightforward.
You just need to download the Gateway application.
And once you've started there, there's
a button to install the Cloud Workstations plug-in.
And then you can immediately sign in, start a workstation,
select your project, and get going with your coding.
It's important to point out that this isn't remote desktop.
We're not showing you the user interface of the application
running on the remote machine.
We're running a local client here.
It's a thin client.
It's a very rich client, which is providing
a local experience, but all of the functionality
is coming from the remote machine.
It's got a local editor, but all the syntax highlighting
and ID intelligence is coming from the remote machine.
So Gateway is designed to make it feel
like you're working locally.
Licensing is also local as well.
So you just need to turn up, start the JetBrains client
through Gateway.
And that will then work.
As long as you've got a license, that
will work then with your remote machine on Cloud Workstations.
So what is the user experience like?
Well, if you've used a JetBrains IDE before,
you'll be very familiar.
The client is based on the same IntelliJ platform.
You get a project view, and you also
get a very powerful search everywhere,
so you can quickly find your classes, your files,
your symbols, and navigate around your projects
and open source files.
The editor is very rich as well.
And although it's working locally--
so you get editing files locally,
you get a local experience-- all of the syntax highlighting
and code completion is coming from the remote machine.
We also provide smart IDE features as well.
So we're running inspections and trying to find problems
with your code, such as unused methods
or potential exceptions, and so on.
And we can provide quick fixes to update your code and work
with these.
We can also provide refactoring such as renaming symbols.
Much more accurate than a find and replace.
And you can run your application too as well.
So the IDE will monitor for what ports
you're using on the remote machine,
and it will suggest to forward the ports and even forward
the port and open the browser.
So you can locally test your application.
You can work with it and navigate around your code.
You can debug your code as well.
So just hit a breakpoint and hit Start Debugging.
That'll run the application.
And you can step in, step out.
You can examine data.
You can look at the state of your application
and work with it as you would do in a local application.
However, everything is still running on the remote machine.
All of this information is being sent to the client.
And the client running as a local application
is working as a debugger.
To round out the whole lifecycle,
we've got version control as well.
So you can see the whole history of your project.
You can look at diffs, and you can also
see what files need to be committed locally as well.
And finally, we can customize the experience.
So you can install plugins on the remote machine
to provide extra functionality to the language features,
or you can customize the client too.
And you can have different themes, different key maps,
and you can also update the functionality of the editor
with something like IdeaVim to give you VIM key bindings.
And so that's a very quick introduction
to JetBrains Gateway and the JetBrains IDEs.
The whole idea is to try and give you a local experience
while you're running remotely, and all of your source
and all of your project is running remotely.
And I'd like to just hand back to Marcos.
MARCOS GRAPPEGGIA: All right.
Thank you very much, Matt and Antoine,
for joining our session.
And as you folks saw, Cloud Workstations
gives you the tunings, the tools, and the building blocks
for each increase of developer productivity and security
with Cloud-based development environments.
If you're interested in trying it out or learning more about
it, you can now go to Console.cloud.go
ogle.com/workstations to try out the live product as well
as read through our documentation.
Thank you very much.
[MUSIC PLAYING]