The Three Fundamentals of Learning Cloud Computing and DevOps Engineering
Tags: devops, cloud, cloudskills, linux
Published: 2022-05-19 17:43:43

Getting into cloud computing or the DevOps world is made easy by various cloud providers. For instance, Amazon Web Services provides access to AWS Educate to learn both the fundamentals of the cloud and AWS cloud services specifics, and Google provides access to Qwiklabs to learn all about the cloud and Google Cloud Platform cloud services specifics. Microsoft provides access to Microsoft Learn to do the same as others provided. The Linux Foundation has courses and training on cloud native paths and so on. There are other learning platforms outside the provider platforms. KodeCloud, ACloud, and others are also a place to leverage cloud technology knowledge.
Diving into all of the above-mentioned platforms may be very tedious and difficult without the knowledge of the basics. To find the cloud journey more interesting, one needs to have in their toolkits the basics to be discussed in this article. Don’t misunderstand this, jumping this will not hinder you from learning on those platforms. But it's worth knowing that all these platforms are like an ocean to learn on and an ocean that can easily drone beginners and starters without the full knowledge of basics and fundamentals. My exploration of those platforms made it a choice for me to support people like me to learn the right way and show them what it is necessary to have as a pre-requisite.
The following are the basics you need to have as a person planning to start a cloud engineering journey.

![DeVops](https://www.contrastsecurity.com/hs-fs/hubfs/images/DevOps%20Solutions/devops-old-way.gif?width=1983&name=devops-old-way.gif)

_**Linux Skills**_
According to the 2020 [StackOverflow survey](https://insights.stackoverflow.com/survey/2021#section-most-popular-technologies-operating-system), Linux is the most popular platform used by developers and for servers related jobs but overtook by Windows in the 2022 survey because of the ability of WSL (Windows Subsystem for Linux) introduced by Windows developers, just provide access to Linux capabilities on Windows 10 and later. According to a survey by [w3techs](http://w3techs.com/technologies/overview/operating_system/all), over 77% of online servers run Linux, 90% of public clouds run Linux, and practically all the best cloud hosts use it, 96.3% of the world’s top 1 million servers run on Linux. There are more reasons why Linux is used for servers and other related jobs, but that is not the focus of the article. 
When getting started, learning Linux commands will come in handy as you progress in your cloud journey. This article is not a tutorial on Linux commands but a heads-up on what needs to be learned before deep diving in. Learning the basics ls – list command, just to list the content of a folder, mkdir – make directory command, which is used to create folders, touch – command to create a file, chmod – change mode command, which changes the mode of a file. curl, ping, IP, rm, mv, cp, cat, and other simple commands are very important to know beforehand.
Another important thing to note is the environment provided by Linux Distros to run the aforementioned and other commands. This is called a "SHELL." There are four popular shells known to run various commands as listed below.
Bourne Shell (SH Shell)
C Shell (csh or tcsh)
Z Shell (zsh)
Bourne Again Shell (BASH)
All of these provide an environment to execute Linux commands with a little difference among them. Some did not support tab for autocomplete, backspace to delete the last character and many other variations. You can run ls $SHELL to know the particular shell that is available to you in your terminal.

**_Editors_**
Familiarity with one Linux based text editor is very important as it will always come in handy going forward in the journey. There are tons of these editors on the internet, e.g. ```Vim, GNU nano, Emacs, VI, geddit```, and others. Convenient in one is sufficient for the start but may require levelling up moving forward. These tools are used to edit file contents and also the content of a file. This requires a bit of knowledge to be more comfortable using them. VI, for instance, usually comes with almost all kinds of Linux distros. You can type vi <filename> commands into the terminal and you will be provided with the content of the file in command mode. To edit contents, one needs to enter the insert mode. Below are some of the commands that can be used in the command mode.
I – To enter insert mode
Esc – to enter commands mode
< ^ > - four arrow keys on the keyboard to move left, down, up and right, (HJLK) can also be used respectively.
:q - to quit the VI
:w – save the file
:wq – save and quit the VI
/<what-to-search> - to search for a letter or word
There are other commands, but I will advise you to stick with the basics for a start to have smooth learning ahead.

**_Labs Setup_**
Some of the above-mentioned courses may introduce the students to lab setup, but having the basic knowledge of these techniques will go a long way. Virtualization, or Hypervisor in Windows terms, is a very important thing to know as it will form a large part of learning DevOps. Familiarization with TYPE-2 virtualization is very important to have. The TYPE-2 is when using a virtual box like Oracle virtual box to create virtual machines and perform connectivity and other networking setups to establish communication between more than one device. Leom has a link to the right virtualbox for you [here](https://medium.com/@leomofthings/virtualbox-installing-virtual-box-for-linux-ae2ba5f03548).  
Finally, there is more to learn, but learning the above-mentioned concepts will be a plus for learning more advanced and difficult concepts. I am planning in-depth and simple tutorials for beginners in the three mentioned basics. You can let me know your thoughts on it.