Table of Contents
Setting the Stage for Linux βοΈ
Learning process π
Challenges faced π₯·
Interesting Discoveries β¨
Examples from my experience π©π½βπ»
The impact Linux had on me π
Advice π
Setting the Stage for Linux βοΈ
I've always been amazed by open-source projects. These projects help people solve various problems and allow communities to contribute and come together for a great cause.
I was motivated to learn Linux because I understand its benefits. Most cloud infrastructure, servers, and containers run on Linux. It supports powerful shell scripting languages like Bash, which are essential for automating routine tasks such as system monitoring, deployment pipelines, and server management.
For DevOps, managing permissions, user roles, and secure environments is essential, and Linux makes this much easier with its permission and user management system.
As I shared in my previous post (check out the π¨π¨π¨UPDATE:π¨π¨π¨ section), I had already downloaded virtualization software and installed Ubuntu on it, so I was ready to start.
Why did I choose Ubuntu?
Because itβs user-friendly, has a large community support, offers regular Long-Term Support (LTS) versions, many applications are available and easy to install and is known for its stability and efficiency in handling high loads.
Learning process π
I began learning Linux in Sepβ 2023 by completing the Introduction to Linux course, earning a certification from The Linux Foundation.
But my journey did not end there. As part of the DevOps Bootcamp By Roxs, I continue to learn and practice Linux.
After learning about the different distributions and deciding which one to use, I began refreshing my memory on basic commands, the curl command, and bash scripting.
The Bootcamp includes a series of examples and challenges to solve.
You can find the solutions to the examples and my solutions to the challenges here:
Even though I am following the course structure and find the content amazing, if you want to explore further, I highly recommend the Introduction to Linux course from The Linux Foundation.
Challenges Faced π₯·
At first, I found it a bit challenging to remember all the commands. To overcome this, I practiced and solved every example and challenge in the Bootcamp section. I also found it very helpful to use this Linux Cheat Sheet that Roxs put together.
I also asked for feedback from senior DevOps engineers, read opinions from others on the same journey as me on forums, Reddit, Quora, and blog posts.
Interesting Discoveries β¨
Among all the things about Linux, what I liked most was learning how to manage and monitor processes. I enjoyed seeing real-time information about resource usage and using the Crontab command. Being able to schedule tasks with cron is an amazing benefit.
Examples from my experience π©π½βπ»
I wanted to talk about some real-world examples, I managed to solve the 3 challenges from the Bootcamp in the Linux section.
The first challenge involved deploying a Flask application called "Book Library" using Nginx as a reverse proxy and Gunicorn as the WSGI server.
Nginx as a reverse proxy means that Nginx is acting as an intermediary server that forwards client requests to one or more backend servers and Gunicorn (Green Unicorn) as the WSGI (Web Server Gateway Interface) server means that Gunicorn acts as a bridge between my Flask web app and the web server (Nginx).
I was able to solve this challenge by practicing with the examples before tackling the actual challenges, which definitely helped me gain the necessary skills.
In the repository, I added a DEBUGGING section to describe a problem I encountered during the challenge and how I debugged it to successfully solve the issue.
For the second challenge I had to deploy both the frontend and several backend services using PM2 to manage the processes. PM2 is a daemon process manager that will help manage and keep my application online 24/7.
After researching and reviewing the documentation, I realized I needed to create a configuration file to manage multiple applications with PM2. In this section of the repository, I explain how I generated the configuration file to accomplish this.
And finally, the third challenge was more like exercises related to Linux commands. I really enjoyed this one!
It's important to mention that whenever I faced challenges or something didn't work as expected, I documented it in the repository.
The impact Linux had on me π
I feel very optimistic and enthusiastic about learning Linux. I see it as an important milestone that will help me build a foundation for more knowledge and everything that comes next.
Advice π
I strongly recommend the DevOps Bootcamp By Roxs. The bootcamp is well-structured and very comprehensive.
The section begins with an introduction to Linux, covering topics like "What is Linux?", its architecture, history, and distributions. After that, there is a thorough analysis of different Linux distributions and reviews for each. Finally, it focuses on the Linux command line interface (CLI).
I also encourage you to watch the lesson about Linux.
And finally, as a personal note: DON'T let impostor syndrome take over. Learning new things isn't easy, so being patient with yourself is crucial. Every day is a win if you learn something new.