What is a cloud shell, and how can a cloud shell enable rapid cloud resource management and
development from anywhere? I'm Nathan Heckman from IBM Cloud and I'm going to answer that today. So,
let's say you just finished developing an exciting new app
and you decide to go on a well-earned vacation. So, this is you
and you're sitting on a beach enjoying yourself when all of a sudden you get a call from your boss
and they're not happy because that application just went down in production.
So what do you do? You don't have your work computer with you on the beach. Enter cloud shell.
You log into one of the hotel computers, you open up a web browser, and with cloud shell
you're able to fix the app in no time at all. So that you can go back to enjoying your vacation
and your boss is happy. So let's compare some of the benefits of cloud shell
with working with your local machine. In a shell, so
with your local machine there's some limitations, right. So first of all, inherently you're going
to use more resources on your CPU and memory, it's just more resource intensive because it's
actually on your machine. You also need to worry about installing software and updating software
and tools. This can be annoying, right. Everyone's been there where you're constantly prompted for
updates and you need to keep things to the latest version in order to keep them working.
And finally if you're working with a cloud provider you're always getting logged out
so you have to manage your authentication, your tokens, etc. Well with cloud shell
it's a consistent environment.
What does this mean? So first of all, all of your cloud authentication is taken care of.
So you're securely authenticated to your cloud provider without doing anything.
Also, you don't need to worry about installing tools, everything is already
installed and ready to go. And finally, maybe most helpful, is there's no need to update.
So everything's on the latest version and you can get started and get right to work.
Another benefit of cloud shell is that you can manage your cloud.
So, what can you manage? Well your resources and infrastructure.
You can manage your applications and you can view logs. So, if you're sitting on a beach
open up a cloud shell you can check the status of your applications and get it back to working.
A final benefit of cloud shell is that it's a cloud based dev environment.
So what does this mean for you? Cloud shells include all the tools that you
need to be productive as a developer. So, tools like git for source control management.
Cloud shells typically include several languages as well.
So say you are a node developer, you can use node right within a cloud shell.
And finally, cloud shells typically include an editor. So everyone uses or knows of vim or nano.
So you can actually edit files and scripts and code right within your cloud shell environment.
Great. So now let's step back a bit and talk about what is a cloud shell,
what are some of the building blocks of a cloud shell.
So, first of all,
at the base of what runs cloud shell is a run time,
or VM. This is what powers cloud shell at the lowest level.
Next is storage. So, cloud shells may have either persisted or temporary storage.
Persisted meaning as you go from session to session, maybe you log out log back in,
you'll get your same environment and same storage. Temporary, obviously. It's temporary, so the
storage will be removed after some time. And finally you have the cloud shell image.
And this is what you interact with, right. So, this could be some bash based shell. It includes
your tools and languages. So, this is what you actually interact with on a cloud shell. Now of
course all of this you access from a web browser. So, it's super convenient and always available.
Something to note too about cloud shells is that they can either be
managed by you the user.
And that means that you actually will provide the runtime, storage, and image. So you can
configure that exactly how you want it, or a cloud shell can be managed by the cloud vendor.
So what that means is they set up everything for you, right. There's some benefits of both
with the cloud vendor managed cloud shell, everything's already ready to go
and cloud shell runtime, storage, image, they already curate the tools and languages that
are included and can be really convenient. User managed can also have some benefits too.
Maybe there's some security requirements from your enterprise
about where storage needs to be located, so you can actually configure that yourself.
You can also configure exactly which tools and languages you want to start up with cloud shell.
Great. So there's a few other features that cloud shells could include. First one is web preview.
What this is it essentially allows you to preview a port on cloud shell
similarly to how you do on your local machine. So maybe port 3000 or port
8080 when you're doing local development you get that same experience but on the cloud.
The next feature of a cloud shell is, that it may or may not have, is a GUI based editor.
Now pretty self-explanatory, this is rather than a text editor
like a Vim or Nano, it's actually a GUI where you can go in and edit files or scripts,
it may even have a debugger. It can be very useful when you're developing with cloud shell.
And finally, cloud shells could have
file upload or download. So, also pretty self-explanatory, it allows you to actually
upload files from your local computer to the cloud shell environment, so that if
you go to somewhere else some other computer or workstation you can see those same files there.
It is also for file download, you can take files or scripts from cloud shell
environment down to your local machine and continue development there if you so choose.
So that's what cloud shell is and those are some of the benefits. As you can see cloud shell is a
powerful consistent environment, it's your own personal workspace on the cloud. Thank you.
If you have questions please drop us a line below. If you want to see more videos like
this in the future, please like and subscribe. And don't forget, you can grow your skills and
earn a badge with IBM CloudLabs which are free browser-based, interactive Kubernetes labs.