Hi. Welcome to the Foundations of Red Hat Cloud-native development. My name is Marek Czernek. I'm a Senior Curriculum Developer at Red Hat and I'm one of the developers of this course. This is the first course in our specialization about Cloud-native development. This course, like all of our courses, come with a very handy PDF and I'll definitely encourage you to grab that PDF. Take a look at the PDF and go through that PDF together with me. Let's take a look at that PDF, and let's take a look at what this course is all about. Within this course, what we want to do is to gain some theoretical understanding of containers and container technology. What do we want to do is we want to gain some understanding and insight into why we might want to use containers? What are containers? What are some of the benefits of using containers? Once we know that, we might want to ask the question of why is it that we might want to use container orchestration engines such as Kubernetes? What kind of advantages does it bring us to use something like Kubernetes? This is another topic of the introductory chapter. Then in our next week, what we want to do is take a look at what does it mean to essentially install or start running Kubernetes? Because we might discover there are multiple versions of Kubernetes, and we'll call that Kubernetes distributions. Then we will install Kubernetes on our local machine. You might install Kubernetes on your local machine, and you might also choose to use Kubernetes in the Cloud. That is up to you and we'll get to that. We'll take a look at Kubectl or Kube Cuddle, and we'll take a look at what it is and what we can do with the Kubectl. In the guided exercise, we'll take a look at how we can actually use Kubectl and how we can control our community's cluster. Once we have all of these pieces, essentially what we want to do is take our first application and execute it in Kubernetes. Move it to Kubernetes. We will take a look at some theoretical information, theoretical background and we'll move that application and execute the application in our Kubernetes cluster. This is the content of this course. This course is supposed to be the first part of a two-part course focusing on Kubernetes. The third part of this specialization that focuses on OpenShift. Within this part, we'll gain some theoretical knowledge. We'll set up our Kubernetes cluster and we'll execute our first application, ready to take our knowledge and develop it further with our next second part course. Before we get to our actual content, what I want to do is just take a look at some basic information about the course, so that nothing surprises us through the course. This course is a Bring Your Own Developer Workstation class. What this means is that, what we want to do is, we want you to bring your own developer workstation, we want you to bring your laptop. What this means for us, is that we support multiple operating systems. We support Linux, of course. Namely, we support RHEL, the Red Hat Enterprise Linux or Fedora, which is the upstream all round. We also support Ubuntu. We support Windows 10 and macOS,10.15 or later. We have some minimum system requirements that we would like to meet. This machine has to meet in order to run the software that we'll be using and of course, we are going to be installing some software on the machine. Make sure that you can install some software on your machine. This means that you should have the administrator privileges to install the software, should your operating system require admin privileges to install software. So, which software do we need? Well, we'll be needing or we'll be using Git. Git is not strictly necessary for this course, but it will make it a little bit easier to clone down essentially the repository. We'll be using the kubectl. Kubectl is definitely required for this course. We're going to have to install and minikube is a Kubernetes distribution that we can use to spawn a Kubernetes cluster and so this is optional because we can actually use a Kubernetes cluster in the Cloud. If you don't want to install a local Kubernetes cluster, that's perfectly fine as well. These are some of the programs that we have to install. We then have some of the support considerations. The only thing that I would like to point out here is that I would like to stop at the default shell and so, throughout this course we'll have a number of guided exercises. I'll definitely encourage you to go through the guided exercises on your own, be it before or after you have watched my videos and within these guided exercises, we provide step-by-step instructions on what to do. These instructions use prompts and so, what I mean by prompt is essentially a command-line prompt. So, what is that? Let me switch into my command-line and command-line terminal and a command-line prompt is exactly this. We see that in my command-line terminal program, I have a prompt, which means that I have a user, then I have some separator. In my case it's an @ symbol. Then I have my host name, I have a location. In my case, it is a home directory. This is all wrapped in braces. Then I have the indicator that I am not in the root shell, I am in a user shell, which means this is the dollar sign symbol. This is my current prompt and in general, this is the prompt that we use throughout the course. Because we support multiple operating systems, your prompt might look a little bit different. If you use something like Ubuntu, if you open up a terminal, your prompt might look something like this. You might be missing the braces that wrapped it. In macOS, the prompt might look something like this. In Microsoft Windows, the supported terminal application is PowerShell. You have to use PowerShell to execute commands, and the prompt will look entirely different. The prompt will look like this, for example. All that we want to say is, despite the prompt looking differently, unless told differently, you can simply executed the commands and they should work. If the commands will not work, then there will be different instruction. For example, on Windows, unless told differently, the instruction should work on Windows. Then if the instruction should not work, then there should be a different step, for example, that will say on Windows execute, and provide it a different instruction. Staying with Microsoft Windows within the scores sometimes we have very long commands. For readability purposes, we wrap long commands. We break them, and we break them by using this backslash character. We have a long command, and we break this long command by using this backslash character on multiple lines. This will work on operating systems that are based on Unix, such as Linux, and macOS. On Windows however, this will not work. On Windows, we have to use the backtick character. If you want to break long commands on Windows, you have to use the backtick character. Alternatively, you can simply not break long commands on any operating system. Typing out long commands on one line is perfectly fine. What do I mean by that? Let me switch into my terminal application again. In my terminal application, on the left-hand side, I have my bash environment, and for example, I can break my long command so we can type. Echo first argument, and the second argument, and it will execute. This is equivalent to typing out the command on one line, which is the same as typing it out to echo a, and b. The output is the same. On the right-hand side, I have a PowerShell environment, and we know that by the prompt which is different. If we were on the Windows operating system, we have to use the backtick character. Note that backtick is very different and let me make this one a little bit bigger, backtick is different from a single quote or double quote characters. This is a backtick character. If I want to break the echo command, I can do that by using the backtick character. Let me do that. I can do echo backtick, and then a backtick b, this executes. This is equivalent to typing it out in one line. The output is the same within the PowerShell environment, as well as within the bash environment. Keep that in mind as you are going through the guided exercises. If you see any backslashes, and you are using Microsoft Windows, do not copy the backslashes, either simply type out the command in one line or use the backtick character. That was it for the introduction to this course and I'll see you in the next video.