 Hey there, I'm Cedric Clyburn, a developer advocate at Red Hat, and in the next few minutes I'm going to teach you how to go from your local code to a Kubernetes cluster using the Odo CLI. Now, let's say that you got some code that you're working on locally, but you want to quickly build and deploy your work to your Kubernetes cluster. Could be to test your work or maybe debug an error. Now, you could write a Docker file, some Kubernetes manifest, and do a full image build for every small code change, or you could save time and resources and use Odo, the open source tool made for application development on Kubernetes clusters. This way, you're abstracting away the complexities of Kubernetes and you're spending less time maintaining your deployment and more time actually coding. So in essence, less time fighting DevOps and more time making cool stuff. So we know Odo can deploy our favorite framework fast and often to our Kubernetes or OpenShift cluster, but how does that actually work? Well, we don't even have to have really any knowledge of Kube CTL or OC. We only need to use Odo to deploy our application onto our cluster. Now, let's go ahead and install the CLI to our local machine. I'm using a Mac here, but you can find downloads for Windows and Linux at Odo.dev. Head to the docs and head to the installation page. Now, being on a Mac, I can simply use Homebrew to install the Odo CLI. As you'll notice, I've already got Odo installed on my machine, so I'll wait for the installation to confirm that. And then we're good to get started. Awesome. So Homebrew confirmed that we already have Odo installed and up to date. So let's use an example of a Node.js project with the Express framework as our example application. So let's go ahead and download Express with NPM install Express. And we'll save that. And then let's go ahead and create an example project that we're going to be working with Odo today with NPM Express Generator. This is going to download the kind of bootstrap that we need for an example application to use with Odo. So it's created all of these template files that we'll use as a skeleton project. And in this folder, we're going to only use three steps to deploy this application to Kubernetes using Odo. All right. So firstly, let's connect to our cluster and create a new namespace. Now, if we're connected to our Kubernetes cluster, like I am here on my terminal, we can go ahead and do Odo create namespace and then use whatever namespace we want. So we could do Odo dev, for example. And so this is going to create a new namespace and it's going to switch us to it. Now say that we'd like to use OpenShift, for example, we can go ahead and head to the developers.redhat.OpenShift sandbox. And so this sandbox is a 30 day free trial of your own shared OpenShift cluster. And we can do it for completely free. All we have to do is sign in with our Red Hat credentials. So I'm going to go ahead and sign in with my Red Hat credentials and we should see our own OpenShift dedicated cluster that we'll be able to use with Odo. So what we can do is head to our copy login command page and we'll go and copy that into our terminal and use Odo to create a new namespace with that. So we'll go ahead and copy the token, go back into a new terminal page and we'll log in with our token. Now that the terminal is confirmed that we've logged back in, we can do the same thing. Odo create namespace Odo.dev. Now the only limitation with the OpenShift developer sandbox is that we only have one project that we can use. So if we were to do the same thing with an Odo, we would do Odo create namespace, but then use the specific project that we already have assigned to us. So I'm not going to do this as we're already using Kubernetes, but this is the same way that we do this on OpenShift and the commands are the same for the rest of the example. The next step in deploying our application to Kubernetes is by creating a dev file to be deployed. A dev file is a portable file which describes our development environment and all of its components. If I run Odo init, it'll automatically detect our source code and it's going to download the appropriate dev file to our local directory, which is going to contain a lot of metadata, which we'll go over here in a little bit. The component name is correct and it's downloaded if we do an LS to our local directory. So we'll check this out later, but finally, let's run an Odo dev to go ahead and start development on our node application. This is going to allow us to edit using our IDE and we'll be able to watch as Odo rebuilds. So Odo is creating and deploying a pod with a container and that's going to contain our node application, which we just created, and a way to access it all in one command. So now that we can see that our application has been deployed to our cluster, let's go ahead and hop into our IDE and take a look at a few things. So we can see the dev file.yaml has been downloaded to our local directory. I won't cover everything in here, but we can see some associated metadata or using the JavaScript language with the node project we've got expressed right here. If we were to make a change in our project, say that we're changing the index page, we would see that Odo is going to automatically refresh and redeploy our changes to the cluster. So let's head out of our IDE and let's head out of our terminal. We can see that Odo is syncing and rebuilding our application. So if we were to wait a second and hop back into our express application, if we refresh the page and wait a second, we can see that this change has been redeployed to our cluster. And now we've just seen how Odo can help you rapidly iterate your cloud data applications without having any advanced Kubernetes knowledge. You can use all of your familiar tools while staying in the inner loop of development. And Odo can do so much more. So head over to Odo.dev to install Odo on your machine as well as learn more about cloud native development. Have a great day.