[MUSIC]
>> Hi, this is Steve Michelotti
of the Azure Government Engineering team.
I'm joined here today by Bingfeng Li of
the Cloud Shell Engineering team and she is here to talk
to us about CloudShell in Azure Government.
So why don't we start out with you just helping
us understand what is CloudShell.
>> Yeah, sure. So CloudShell is actually a shell in the Cloud.
It's an environment built on Azure for Azure.
So the shell like
you normally typically do on
your own file and your own local machine,
you have it all in the CloudShell.
No matter it's Bash or PowerShell,
and the tools the typically use
we've all pre-installed and pre-configured for you.
So it's handy and available for you in the CloudShell too,
and what's more awesome is that,
so CloudShell is browser based.
So you can virtually access it from anywhere, anytime,
and it's available on
different clients not on a portal but also a bunch of other.
>> Okay. So this is huge for
our Azure Government customers because
a lot of times in certain government customers,
the local machines are locked down such that they can't
just easily install command line tools,
development environments but in the case may be.
What I heard you say is a browser-based environment so I can just
log into the Azure Government portal with my browser,
and I've gotta Shell there regardless of
whether I heard you say PowerShell or bash,
and those tools are just pre-installed for me. Very cool.
>> You have ability to explore
more tools because you can store them in a shell and they are
persistent because we have Cloud Drive to save
all your home directory and your scripts in the file.
>> So not only are these tools built in but I can add files,
add tools and it persists so
that I come back the next day I haven't lost my work.
>> Exactly.
>> Why don't you tell us a little bit more.
>> Yeah, sure. As we said we have two shared experience,
bash if you're more familiar with Linux
and PowerShell folks with Windows background,
and we have it available on all clients.
It's also like VS Code extension,
Azure docs, and Azure mobile apps.
But unfortunately for government,
we only have the portal right now.
So hopefully others will come later.
>> It's going to be an Azure government
portal and it's there for me?
>> Yes.
>> Okay.
>> Yeah so the tools that we have embedded in
the Shell includes deployment tools like telephone,
like the troubleshooting tools,
like Kubernetes control and Docker,
and also, of course,
we have basically an AD PowerShell to manage every resources,
and we also have the development tools like Git,
Python, Node.js all tools that.
>> I don't have to use PowerShell,
I can use Azure CLI if that's my preferred tool.
In fact, I could use the PowerShell shell but use
the the CLI as actually executing my commands.
I have flexibility to do any of those columns.
>> Yes, you can mix and match.
>> Okay.
>> Yeah this is great.
So I definitely got interested here.
So why don't we look at a few demos?
>> Of course. Demo is my favorite part.
So I'm now connected to the Azure Government portal.
So if you click on the right upper corner of this terminal icon,
you'll be able to launch a CloudShell.
So what's happening now is you can
see how fast it's requesting the Cloud Shell.
That's because of we have done all performance improvement.
We do pulley, we do [inaudible].
So we'll find the Container closest to you and give it to you.
So once you get the Shell,
it will launch Node.JS app service for you
and done all of the magic Word in the background.
So once you get to the prompt here,
you will have the secured authenticated shell
all there waiting for you to use.
>> Okay.
>> Okay. So now we're in the Bash experience for here.
We can first look at what options we have here.
So you can switch to PowerShell anytime and bunch of
other options for you to restart it if you feel you need to,
and then to get help.
To change settings, you can also like depends on
your need to change the font size and the text size.
Here we will talk a little bit
more about this upload and download files.
So let's take a look at here first.
So this is my home directory.
I have only two files here.
Let's say I prepared little script,
like for today the demo.
It's on my local box right now,
and I want to upload it to the Cloud Shell.
One option for you as you can click this "Upload."
Then you can choose select from your local file system.
Another option is which is
my favorite is you can just do the drag-and-drop.
>> Okay.
>> Yeah. So I'm going to show you here.
Let me make this grid a little bit bigger.
So I can just easily drag and drop my fire here.
>> So you dragged and dropped it onto your Shell,
will it put the file in whatever location,
whatever directory you're in
or does it put it in a specific location?
>> By default, it goes to your home directory.
>> Okay. That makes sense.
>> Yeah that's that's basically your home,
and it's which you have the full permission.
If you look at your permission of the home directory,
then you will see you are the owner of your home directory.
So it's a safe place for you and it also protect
your secrets from other users.
>> Make sense from a security perspective,
and I saw in that last LS you
did the file you upload it is there now?
>> Yes. So the
PS file I uploaded here and I want to take a look at it.
Editor. So we have awesome editing experience here.
We have a Vim.
We also have a Nano if you use them very often.
But here I'm going to show you
our another editor is called Code. Have you used Code?
>> So VS code right in the browser. That's amazing.
>> Yeah. So this is not truly
the VS code is actually open source Monaco editor.
But it feels like Code.
I mean experience is similar to Code.
So now I'm going to do the code.
which is going to open my current directory with code.
So I can select the file I just uploaded here.
So here I noticed oh,
my location is not that right.
So it was for public Cloud.
I'm going to change it back to the US government.
When I type here,
you will notice it has IntelliSense activated.
Yeah so I can just simply a choose
the one that's fit what I wanted.
>> So not only do I get this great code editing experience
right from the Shell but even has IntelliSense built-in.
>> Yes.
>> It is intelligence and see you're an Azure Government
and let you autocomplete with US government.
>> Has intelligence or till what might be your choice.
So the Word select for you.
So now I've saved this vis.js one code.
If you want to save it,
right because you changed it,
then you can download it to your local.
This is a one way and you can also
simply just do this download VM.ps1.
But today, and here I want to show you another choice.
Let me close this editor for now.
So if you look at the file system here,
you will notice we have mounted
your Cloud Drive to Azure Storage account,
and also that it was another mounting is your whole home directory
actually maps to an image file in your storage account.
So I want to save this file to my CloudDrive so that
later I can access it from
home or from anywhere else not just this machine.
>> So as I think about Cloud Drive,
this is just like my persistent storage location?
>> Yes.
>> Okay.
>> So it is your Azure storage account which we mounted in
the Cloud Shell so
that you will have a persistent experience for Cloud.
>> When I come back tomorrow and login to CloudShell,
any changes I made they won't be gone.
They'll still be there for me?
>> Yes, exactly.
So there is a quick key to go into your Fileshare is here.
If I do manage,
it will load my Azure portal to the storage account.
>> Just by doing that the portal changed up above?
>> Yes. So you see here the VS.ps1 which
I just uploaded is already showing up here.
Yeah, so that's the part of
the persistent storage and some talk about upload and download.
>> So working with files super easy upload download.
I don't even have to download them.
I can just persist them right up in the Cloud,
and that's my workspace so to speak?
>> Yes.
>> Okay. Great.
>> How about do you want to see some PowerShell tools?
>> Yes. You mentioned some of the tools like
Azure CLI and PowerShell.
Why don't you give us a quick look at that.
>> Sure. So to do that,
I'm going to launch my script again.
So I'm just going to use code to show it.
So you can see here you run
the az command directly in these Bash shell.
>> So the Az CLI was just built there format,
didn't have to install it like I would
have to do on my local machine.
>> Yeah. Even better we update to the latest version for you.
We update every two weeks.
>> That's great. So I don't have to worry about updating.
>> Yes. So you can
see you have the power of all the az click commands.
You can manage all your az resources with those tools.
If you are more familiar with PowerShell,
you can switch to the PowerShell to do those management work two.
To switch PowerShell, we can just use
this dropdown here. Shall we do that?
>> Sure.
>> Okay. So Steve,
do you know what's happening behind when I do the switch?
>> Well, it looks like the messages are sometimes could
potentially be reusing the same container
and sending others to the background.
>> Yes. I mean we used to do when we
switch to the experience that we used
to disjoin current container,
give you another container which
is like we used to host these two on
different OS like Bash on Linux and then PowerShell on Windows.
But later on, after the PowerShell has the PowerShell 6.0 which
is cross-platform it also
supports Linux and Mac and all the other OS,
then we just get rid of the switching container,
we use the same container.
So we round PowerShell in Linux now.
>> So it must makes things a lot faster then.
>> Yes. It is.
>> We developers we're often inpatient,
we don't want to wait for things.
>> Yeah. Windows container
does take a little bit longer to launch.
So nowhere in PowerShell right now,
let's take a look at module we have.
Okay. So this is the other by default loaded modules for you,
of course you can see we do have
more for you to potentially you can load as your own demand.
So you can see we have Teams,
we have Exchange and Azure AD and thus the one,
the Azure PSDrive is interesting.
So if you notice,
we have the Azure Drive here instead of other prompt.
So what that does is it
maps your Azure resources into a file system hierarchy.
So when you do dir,
it will search for your Azure resources.
>> So we can just see the Azure resources like
a file system because of
that module that's already preloaded into the environment for us.
>> Yes. If you go to one of the resource group and then
all the Azure PowerShell commands will be scoped within
that resource group instead
of searching across all the subscription.
>> Very cool.
>> Yeah. So like this,
if I do Azure and resource group,
so then you can
see what are the resource groups that we have here.
>> That's nice because if I don't remember the CLI command
for what is that to list my resource groups, easy,
groups list, I don't remember,
I can just navigate doing CDs
and VARs and I don't have to memorize all the list commands.
>> Yes. Then on
the other way people may want to learn how can I
get access to my real file system.
You can still use the Linux command like
LS to switch back to your real file system.
Okay. So I'm going to demo
how we can manage our VMs in a Cloud Shell here.
So I have prepared two AzVM here.
So one for Linux and one for Windows.
Next, we are going to connect to those VMs
and do some work there and then come back.
>> Okay.
>> Now we're going to show
our next demo which is managing the VMs.
So I'm going to get my little demo scripts back here.
So as I've shown you here,
we already got these two VMs setup,
so I don't have to run the create commands again.
Okay. So here we'll do the Windows VM first.
So here you definitely need to enable your remoting for
us to be able to connect and then you can just use this enter.
Enter AzVM with my prepared credentials,
you can just enter into this VM.
>> Okay. So the Enter AzVM command is essentially letting
you go into this particular VM. Okay.
>> Yeah. This does has a requirement though,
it acquires that a VM has a public IP.
>> Got it. So now I see the prompt for this one is
the C colon users is
actually now on that VM that you just went into.
>> Yeah. >> Okay.
>> You can double-check the Host Name
and now you can do troubleshooting,
collect logs and you may
restart this VM if there's something weird going on.
Yeah. So this is for the Windows VM.
For Linux, normally we use SSH to connect to it.
So for here I'm just going to connect to it directly like this.
>> So not only do we have CloudShell to manage our entire Cloud,
but we can also manage
just a granular individual
VM regardless of whether it's Windows or Linux.
>> Yes. Yeah. It's very convenient as you see just one command,
you can then connect to it.
This is the Linux VM.
So you can imagine there are lots of
possibilities for you to do the things you
can do in CloudShell and
this is for deployment and the troubleshooting and management.
We also have the tools to do development.
>> Even with that, it's like I think about
the traditional cases of having a jump box,
this gives you that and so much more.
>> You mentioned also development tools?
>> For development tools,
we also have Git, we have .NET,
we have as I
said programming languages we have Python, and Node.js.
So I'm going to demo Node.js app.
So if I go back to my home directory here.
I have a main.js here.
It's very simple, you can use code to look at it.
So here it just create a server and then print.
>> It's like the traditional Node.js Hello World application where it just
prints something to return HTML?
>> Exactly. So now if I change
something or I want to give it a try,
I can just run it in the shell and give it a port number
8099 and then you can test it out like this.
So you need to configure this port number
8099 and then you can just give it a try.
>> So not only can I start node from there,
but it'll actually give me a temporary environment
where I can actually hit it from my browser.
>> Exactly.
>> So something for everyone.
We have for network administrators,
a command line tools for developers,
developer tools, it's really a full-fledged solution there.
>> Yeah. As we said,
this shell is is all yours,
you can install as your own demand.
>> So not only do I have the built-in tools,
but I can add my own tools and customize it however,
I want and it's persistent storage,
so they'll be there for me tomorrow.
Okay, great. This has been Steve Michelotti with
Bingfeng Li of the Cloud Shell Engineering team,
talking about Cloud shell on
Azure government. Thanks for watching.
[MUSIC]