<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Aisalkyn Aidarova</title>
    <description>The latest articles on DEV Community by Aisalkyn Aidarova (@jumptotech).</description>
    <link>https://dev.to/jumptotech</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3549986%2F7a403ca9-0459-412a-b618-71699480d58d.png</url>
      <title>DEV Community: Aisalkyn Aidarova</title>
      <link>https://dev.to/jumptotech</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jumptotech"/>
    <language>en</language>
    <item>
      <title>Docker Lab 3 – Docker Volumes (The Real Power of Docker)</title>
      <dc:creator>Aisalkyn Aidarova</dc:creator>
      <pubDate>Thu, 09 Jul 2026 02:46:50 +0000</pubDate>
      <link>https://dev.to/jumptotech/docker-lab-3-docker-volumes-the-real-power-of-docker-1n3g</link>
      <guid>https://dev.to/jumptotech/docker-lab-3-docker-volumes-the-real-power-of-docker-1n3g</guid>
      <description>&lt;p&gt;&lt;strong&gt;Duration:&lt;/strong&gt; 45–60 minutes&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level:&lt;/strong&gt; Beginner&lt;/p&gt;




&lt;h1&gt;
  
  
  Learning Objectives
&lt;/h1&gt;

&lt;p&gt;After this lab students will understand:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What a Docker Volume (Bind Mount) is&lt;/li&gt;
&lt;li&gt;Why DevOps engineers use volumes&lt;/li&gt;
&lt;li&gt;Difference between copying files and mounting files&lt;/li&gt;
&lt;li&gt;Why developers love Docker volumes&lt;/li&gt;
&lt;li&gt;Live code changes without rebuilding Docker images&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Real DevOps Scenario
&lt;/h1&gt;

&lt;p&gt;Imagine a frontend developer is building a website.&lt;/p&gt;

&lt;p&gt;Without Docker:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Edit HTML
↓

Upload to server

↓

Restart Nginx

↓

Refresh Browser
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is slow.&lt;/p&gt;

&lt;p&gt;With Docker Volume:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Edit HTML

↓

Save

↓

Refresh Browser

↓

Changes appear instantly
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is exactly how many developers work locally.&lt;/p&gt;




&lt;h1&gt;
  
  
  Today's Goal
&lt;/h1&gt;

&lt;p&gt;Instead of copying the website &lt;strong&gt;inside&lt;/strong&gt; the Docker image,&lt;/p&gt;

&lt;p&gt;we will let Docker use our local folder.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Mac Folder

↓

Docker Volume

↓

Container

↓

Browser
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Step 1 Create Project
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir &lt;/span&gt;docker-volume-lab

&lt;span class="nb"&gt;cd &lt;/span&gt;docker-volume-lab
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Step 2 Create Website
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;touch &lt;/span&gt;index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Open&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nano index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Paste&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Docker Volume Lab&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Docker Volume Lab&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;Hello Students!&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;This file comes directly from my laptop.&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Save&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight batchfile"&gt;&lt;code&gt;&lt;span class="kd"&gt;CTRL&lt;/span&gt;&lt;span class="na"&gt;+O

&lt;/span&gt;&lt;span class="kd"&gt;ENTER&lt;/span&gt;

&lt;span class="kd"&gt;CTRL&lt;/span&gt;&lt;span class="na"&gt;+X
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Step 3 Pull Nginx Image
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker pull nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Explain&lt;/p&gt;

&lt;p&gt;We only download Nginx.&lt;/p&gt;

&lt;p&gt;We do NOT create our own image today.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 4 Run Container Using Volume
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker run &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="nt"&gt;-p&lt;/span&gt; 8080:80 &lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="nt"&gt;-v&lt;/span&gt; &lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;pwd&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;:/usr/share/nginx/html &lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="nt"&gt;--name&lt;/span&gt; volume-lab &lt;span class="se"&gt;\&lt;/span&gt;
nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Explain Every Option
&lt;/h1&gt;

&lt;h2&gt;
  
  
  docker run
&lt;/h2&gt;

&lt;p&gt;Create container&lt;/p&gt;




&lt;h2&gt;
  
  
  -d
&lt;/h2&gt;

&lt;p&gt;Detached mode&lt;/p&gt;

&lt;p&gt;Run in background&lt;/p&gt;




&lt;h2&gt;
  
  
  -p 8080:80
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Laptop

8080

↓

Container

80
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Browser connects to&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;localhost:8080
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nginx listens on&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;80
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  -v
&lt;/h2&gt;

&lt;p&gt;Most important option today.&lt;/p&gt;

&lt;p&gt;Volume&lt;/p&gt;

&lt;p&gt;or&lt;/p&gt;

&lt;p&gt;Bind Mount&lt;/p&gt;




&lt;h2&gt;
  
  
  $(pwd)
&lt;/h2&gt;

&lt;p&gt;Means&lt;/p&gt;

&lt;p&gt;Current Folder&lt;/p&gt;

&lt;p&gt;Example&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/Users/john/docker-volume-lab
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  :
&lt;/h2&gt;

&lt;p&gt;Means&lt;/p&gt;

&lt;p&gt;Connect&lt;/p&gt;

&lt;p&gt;this folder&lt;/p&gt;

&lt;p&gt;to&lt;/p&gt;

&lt;p&gt;that folder&lt;/p&gt;




&lt;h2&gt;
  
  
  /usr/share/nginx/html
&lt;/h2&gt;

&lt;p&gt;Nginx serves websites from this folder.&lt;/p&gt;

&lt;p&gt;Instead of copying files,&lt;/p&gt;

&lt;p&gt;Docker reads directly from your laptop.&lt;/p&gt;




&lt;h1&gt;
  
  
  Architecture
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Mac

index.html

↓

Docker Volume

↓

Container

↓

Nginx

↓

Browser
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Step 5 Check Running Container
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker ps
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Expected&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;volume-lab

Up
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Step 6 Open Browser
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://localhost:8080
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Expected&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Docker Volume Lab

Hello Students!

This file comes directly from my laptop.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Step 7 Change Website
&lt;/h1&gt;

&lt;p&gt;Open&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nano index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Change&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;Hello Students!&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;to&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;Hello DevOps Engineers!&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Save.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 8 Refresh Browser
&lt;/h1&gt;

&lt;p&gt;No Docker commands.&lt;/p&gt;

&lt;p&gt;No rebuild.&lt;/p&gt;

&lt;p&gt;No restart.&lt;/p&gt;

&lt;p&gt;Just refresh.&lt;/p&gt;

&lt;p&gt;Expected&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Hello DevOps Engineers!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Explain Why
&lt;/h1&gt;

&lt;p&gt;Docker is NOT storing the website.&lt;/p&gt;

&lt;p&gt;Docker is reading directly from&lt;/p&gt;

&lt;p&gt;your laptop.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Laptop File

↓

Docker

↓

Browser
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Step 9 Verify Inside Container
&lt;/h1&gt;

&lt;p&gt;Enter container&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker &lt;span class="nb"&gt;exec&lt;/span&gt; &lt;span class="nt"&gt;-it&lt;/span&gt; volume-lab bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Go to&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /usr/share/nginx/html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;ls&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;See&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Open&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cat &lt;/span&gt;index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Students will see&lt;/p&gt;

&lt;p&gt;the updated file.&lt;/p&gt;

&lt;p&gt;Explain&lt;/p&gt;

&lt;p&gt;This file is NOT inside Docker.&lt;/p&gt;

&lt;p&gt;Docker is reading it from the laptop.&lt;/p&gt;

&lt;p&gt;Exit&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;exit&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Step 10 Delete Website
&lt;/h1&gt;

&lt;p&gt;Back on Mac&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;rm &lt;/span&gt;index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Refresh Browser.&lt;/p&gt;

&lt;p&gt;Expected&lt;/p&gt;

&lt;p&gt;404 Not Found&lt;/p&gt;




&lt;h1&gt;
  
  
  Why?
&lt;/h1&gt;

&lt;p&gt;Because Docker is reading&lt;/p&gt;

&lt;p&gt;the laptop folder.&lt;/p&gt;

&lt;p&gt;If the laptop file disappears,&lt;/p&gt;

&lt;p&gt;the website disappears.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 11 Stop Container
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker stop volume-lab
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Step 12 Remove Container
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker &lt;span class="nb"&gt;rm &lt;/span&gt;volume-lab
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Verify
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker ps &lt;span class="nt"&gt;-a&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Container is gone.&lt;/p&gt;




&lt;h1&gt;
  
  
  Key Difference
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Lab 1
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Dockerfile

↓

COPY

↓

Image

↓

Container
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Website lives&lt;/p&gt;

&lt;p&gt;inside&lt;/p&gt;

&lt;p&gt;the image.&lt;/p&gt;




&lt;h2&gt;
  
  
  Lab 3
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Laptop

↓

Volume

↓

Container
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Website stays&lt;/p&gt;

&lt;p&gt;on the laptop.&lt;/p&gt;

&lt;p&gt;Docker simply reads it.&lt;/p&gt;




&lt;h1&gt;
  
  
  Why DevOps Engineers Use Volumes
&lt;/h1&gt;

&lt;p&gt;Volumes are commonly used for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Local development (edit code without rebuilding images)&lt;/li&gt;
&lt;li&gt;Sharing files between the host and containers&lt;/li&gt;
&lt;li&gt;Persisting database data (e.g., MySQL, PostgreSQL)&lt;/li&gt;
&lt;li&gt;Keeping logs outside containers&lt;/li&gt;
&lt;li&gt;Storing uploaded files&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Challenge Exercise
&lt;/h1&gt;

&lt;p&gt;Ask students to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Add their name to the page:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;h3&amp;gt;&lt;/span&gt;Created by Samara&lt;span class="nt"&gt;&amp;lt;/h3&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Add today's date.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Change the background color:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;body&lt;/span&gt; &lt;span class="na"&gt;style=&lt;/span&gt;&lt;span class="s"&gt;"background-color: lightblue;"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Refresh the browser.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;No rebuild.&lt;/p&gt;

&lt;p&gt;No restart.&lt;/p&gt;

&lt;p&gt;If the changes appear immediately, they have successfully used a Docker volume.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Docker Lab 2: Build and Run a Python Web Application in Docker</title>
      <dc:creator>Aisalkyn Aidarova</dc:creator>
      <pubDate>Thu, 09 Jul 2026 02:24:15 +0000</pubDate>
      <link>https://dev.to/jumptotech/docker-lab-2-build-and-run-a-python-web-application-in-docker-21k7</link>
      <guid>https://dev.to/jumptotech/docker-lab-2-build-and-run-a-python-web-application-in-docker-21k7</guid>
      <description>&lt;h2&gt;
  
  
  Goal
&lt;/h2&gt;

&lt;p&gt;In this lab, students will learn how to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Build a Docker image from a Python application.&lt;/li&gt;
&lt;li&gt;Understand why developers use base images.&lt;/li&gt;
&lt;li&gt;Install application dependencies.&lt;/li&gt;
&lt;li&gt;Run a Python web server inside a container.&lt;/li&gt;
&lt;li&gt;Access the application from a browser.&lt;/li&gt;
&lt;li&gt;See how DevOps engineers package backend applications.&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Real DevOps Scenario
&lt;/h1&gt;

&lt;p&gt;Imagine a Python developer finishes building a REST API.&lt;/p&gt;

&lt;p&gt;Without Docker, every server must have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Python installed&lt;/li&gt;
&lt;li&gt;pip installed&lt;/li&gt;
&lt;li&gt;Required libraries installed&lt;/li&gt;
&lt;li&gt;Correct Python version&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This often causes problems.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Developer Laptop
Python 3.12
Flask 3.0

↓

Production Server

Python 3.9
Flask missing

↓

Application fails
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Docker solves this problem by packaging everything together.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 1: Create the Project Folder
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir &lt;/span&gt;docker-python-lab
&lt;span class="nb"&gt;cd &lt;/span&gt;docker-python-lab
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Step 2: Create the Application
&lt;/h1&gt;

&lt;p&gt;Create &lt;code&gt;app.py&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;touch &lt;/span&gt;app.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Open it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nano app.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Paste:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;flask&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Flask&lt;/span&gt;

&lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Flask&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;__name__&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nd"&gt;@app.route&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;/&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;home&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;&amp;lt;h1&amp;gt;Hello from Python inside Docker!&amp;lt;/h1&amp;gt;&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="nd"&gt;@app.route&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;/about&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;about&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;&amp;lt;h2&amp;gt;This application is running inside a Docker container.&amp;lt;/h2&amp;gt;&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;__main__&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;host&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;0.0.0.0&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;port&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;5000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Save.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 3: Create Requirements File
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;touch &lt;/span&gt;requirements.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Open:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nano requirements.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Flask==3.0.3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Save.&lt;/p&gt;




&lt;h1&gt;
  
  
  Why do we need &lt;code&gt;requirements.txt&lt;/code&gt;?
&lt;/h1&gt;

&lt;p&gt;Developers use this file to list all Python packages required by the application.&lt;/p&gt;

&lt;p&gt;Instead of manually installing software, Docker reads this file and installs everything automatically.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 4: Create Dockerfile
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;touch &lt;/span&gt;Dockerfile
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Paste:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight docker"&gt;&lt;code&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="s"&gt; python:3.12-slim&lt;/span&gt;

&lt;span class="k"&gt;WORKDIR&lt;/span&gt;&lt;span class="s"&gt; /app&lt;/span&gt;

&lt;span class="k"&gt;COPY&lt;/span&gt;&lt;span class="s"&gt; requirements.txt .&lt;/span&gt;

&lt;span class="k"&gt;RUN &lt;/span&gt;pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--no-cache-dir&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt

&lt;span class="k"&gt;COPY&lt;/span&gt;&lt;span class="s"&gt; . .&lt;/span&gt;

&lt;span class="k"&gt;EXPOSE&lt;/span&gt;&lt;span class="s"&gt; 5000&lt;/span&gt;

&lt;span class="k"&gt;CMD&lt;/span&gt;&lt;span class="s"&gt; ["python", "app.py"]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Explain Every Line
&lt;/h1&gt;

&lt;h2&gt;
  
  
  FROM
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight docker"&gt;&lt;code&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="s"&gt; python:3.12-slim&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Downloads a lightweight Python image.&lt;/p&gt;

&lt;p&gt;Instead of installing Python ourselves, Docker already has it prepared.&lt;/p&gt;




&lt;h2&gt;
  
  
  WORKDIR
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight docker"&gt;&lt;code&gt;&lt;span class="k"&gt;WORKDIR&lt;/span&gt;&lt;span class="s"&gt; /app&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Creates and switches into the &lt;code&gt;/app&lt;/code&gt; directory inside the container.&lt;/p&gt;

&lt;p&gt;Every command after this runs from there.&lt;/p&gt;




&lt;h2&gt;
  
  
  COPY
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight docker"&gt;&lt;code&gt;&lt;span class="k"&gt;COPY&lt;/span&gt;&lt;span class="s"&gt; requirements.txt .&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Copies only the requirements file first.&lt;/p&gt;

&lt;p&gt;This improves Docker caching because dependencies usually change less often than the application code.&lt;/p&gt;




&lt;h2&gt;
  
  
  RUN
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight docker"&gt;&lt;code&gt;&lt;span class="k"&gt;RUN &lt;/span&gt;pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--no-cache-dir&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Installs Flask inside the image.&lt;/p&gt;




&lt;h2&gt;
  
  
  COPY
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight docker"&gt;&lt;code&gt;&lt;span class="k"&gt;COPY&lt;/span&gt;&lt;span class="s"&gt; . .&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Copies the rest of the application files.&lt;/p&gt;




&lt;h2&gt;
  
  
  EXPOSE
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight docker"&gt;&lt;code&gt;&lt;span class="k"&gt;EXPOSE&lt;/span&gt;&lt;span class="s"&gt; 5000&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The Flask application listens on port 5000.&lt;/p&gt;




&lt;h2&gt;
  
  
  CMD
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight docker"&gt;&lt;code&gt;&lt;span class="k"&gt;CMD&lt;/span&gt;&lt;span class="s"&gt; ["python","app.py"]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Runs the application when the container starts.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 5: Build Image
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker build &lt;span class="nt"&gt;-t&lt;/span&gt; python-app:v1 &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Step 6: Check Images
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker images
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Expected:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python-app
python
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Step 7: Run Container
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker run &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; 5000:5000 &lt;span class="nt"&gt;--name&lt;/span&gt; python-container python-app:v1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Step 8: Open Browser
&lt;/h1&gt;

&lt;p&gt;Visit:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://localhost:5000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You should see:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Hello from Python inside Docker!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Try:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://localhost:5000/about
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Step 9: View Logs
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker logs python-container
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Step 10: Enter the Container
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker &lt;span class="nb"&gt;exec&lt;/span&gt; &lt;span class="nt"&gt;-it&lt;/span&gt; python-container bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Inside the container:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;pwd
ls
&lt;/span&gt;python &lt;span class="nt"&gt;--version&lt;/span&gt;
pip list
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Exit:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;exit&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Step 11: Stop and Remove
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker stop python-container
docker &lt;span class="nb"&gt;rm &lt;/span&gt;python-container
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  What Students Learned
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;How Docker packages Python applications.&lt;/li&gt;
&lt;li&gt;Why &lt;code&gt;requirements.txt&lt;/code&gt; is important.&lt;/li&gt;
&lt;li&gt;What &lt;code&gt;WORKDIR&lt;/code&gt;, &lt;code&gt;COPY&lt;/code&gt;, &lt;code&gt;RUN&lt;/code&gt;, and &lt;code&gt;CMD&lt;/code&gt; do.&lt;/li&gt;
&lt;li&gt;How backend applications are containerized.&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Docker Lab 3: Multi-Container Application with Docker Compose
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Goal
&lt;/h2&gt;

&lt;p&gt;Students will learn:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Why applications often have multiple services.&lt;/li&gt;
&lt;li&gt;What Docker Compose is.&lt;/li&gt;
&lt;li&gt;How containers communicate.&lt;/li&gt;
&lt;li&gt;How DevOps engineers run full environments locally.&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Real DevOps Scenario
&lt;/h1&gt;

&lt;p&gt;A real application rarely consists of one container.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Browser
   │
   ▼
Frontend (React)
   │
   ▼
Backend API (Python)
   │
   ▼
Database (PostgreSQL)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Managing each container separately becomes difficult.&lt;/p&gt;

&lt;p&gt;Docker Compose lets us define the entire environment in one file.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 1: Create the Project
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir &lt;/span&gt;docker-compose-lab
&lt;span class="nb"&gt;cd &lt;/span&gt;docker-compose-lab
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Step 2: Create &lt;code&gt;index.html&lt;/code&gt;
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Docker Compose Lab&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Docker Compose is Working!&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Step 3: Create Dockerfile
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight docker"&gt;&lt;code&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="s"&gt; nginx:latest&lt;/span&gt;

&lt;span class="k"&gt;COPY&lt;/span&gt;&lt;span class="s"&gt; index.html /usr/share/nginx/html/&lt;/span&gt;

&lt;span class="k"&gt;EXPOSE&lt;/span&gt;&lt;span class="s"&gt; 80&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Step 4: Create &lt;code&gt;docker-compose.yml&lt;/code&gt;
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;3.9"&lt;/span&gt;

&lt;span class="na"&gt;services&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;

  &lt;span class="na"&gt;website&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;build&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;.&lt;/span&gt;
    &lt;span class="na"&gt;container_name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;mywebsite&lt;/span&gt;

    &lt;span class="na"&gt;ports&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;8080:80"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Explain the Compose File
&lt;/h1&gt;

&lt;h2&gt;
  
  
  version
&lt;/h2&gt;

&lt;p&gt;Defines the Compose file format.&lt;/p&gt;




&lt;h2&gt;
  
  
  services
&lt;/h2&gt;

&lt;p&gt;Lists all containers in the application.&lt;/p&gt;

&lt;p&gt;Right now we only have one.&lt;/p&gt;

&lt;p&gt;Later you can add:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;frontend&lt;/li&gt;
&lt;li&gt;backend&lt;/li&gt;
&lt;li&gt;database&lt;/li&gt;
&lt;li&gt;redis&lt;/li&gt;
&lt;li&gt;rabbitmq&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  build
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;build&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Build the image from the current directory.&lt;/p&gt;




&lt;h2&gt;
  
  
  container_name
&lt;/h2&gt;

&lt;p&gt;Names the container.&lt;/p&gt;




&lt;h2&gt;
  
  
  ports
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="s"&gt;8080:80&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Maps your laptop's port 8080 to port 80 inside the container.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 5: Start Everything
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker compose up &lt;span class="nt"&gt;-d&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Compose will:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Build the image.&lt;/li&gt;
&lt;li&gt;Create the container.&lt;/li&gt;
&lt;li&gt;Start the container.&lt;/li&gt;
&lt;/ol&gt;




&lt;h1&gt;
  
  
  Step 6: Check Running Containers
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker ps
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Step 7: Open Browser
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://localhost:8080
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You should see:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Docker Compose is Working!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Step 8: View Logs
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker compose logs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Step 9: Stop Everything
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker compose down
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This removes the container created by Docker Compose.&lt;/p&gt;




&lt;h1&gt;
  
  
  What Students Learned
&lt;/h1&gt;

&lt;p&gt;Students now understand that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Docker&lt;/strong&gt; manages individual containers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Docker Compose&lt;/strong&gt; manages multiple containers together using a single configuration file.&lt;/li&gt;
&lt;li&gt;In real DevOps environments, Compose is commonly used by developers for local testing, while orchestration platforms such as Kubernetes are used in production.&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Docker Lab: Run a Simple Website in a Container</title>
      <dc:creator>Aisalkyn Aidarova</dc:creator>
      <pubDate>Thu, 09 Jul 2026 01:57:09 +0000</pubDate>
      <link>https://dev.to/jumptotech/docker-lab-run-a-simple-website-in-a-container-3lh4</link>
      <guid>https://dev.to/jumptotech/docker-lab-run-a-simple-website-in-a-container-3lh4</guid>
      <description>&lt;h2&gt;
  
  
  Goal
&lt;/h2&gt;

&lt;p&gt;By the end, students will understand:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What a Dockerfile is&lt;/li&gt;
&lt;li&gt;What a Docker image is&lt;/li&gt;
&lt;li&gt;What a Docker container is&lt;/li&gt;
&lt;li&gt;How DevOps engineers package and run applications&lt;/li&gt;
&lt;li&gt;How to expose an application to a browser&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Real DevOps Scenario
&lt;/h1&gt;

&lt;p&gt;A developer created a small website.&lt;/p&gt;

&lt;p&gt;As a DevOps engineer, your job is to package this website into a Docker image so it can run the same way on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;your laptop&lt;/li&gt;
&lt;li&gt;another developer’s laptop&lt;/li&gt;
&lt;li&gt;a test server&lt;/li&gt;
&lt;li&gt;production server&lt;/li&gt;
&lt;li&gt;Kubernetes later&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This solves the common problem:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;It works on my machine, but not on the server.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Docker helps us make the environment consistent.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 1: Create Project Folder
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir &lt;/span&gt;docker-website-lab
&lt;span class="nb"&gt;cd &lt;/span&gt;docker-website-lab
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Why?
&lt;/h2&gt;

&lt;p&gt;We create one folder for our application files.&lt;/p&gt;

&lt;p&gt;This folder will contain:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker-website-lab
├── index.html
└── Dockerfile
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Step 2: Create a Simple Website File
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;touch &lt;/span&gt;index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Open the file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nano index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Paste this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Docker Lab&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Hello from Docker!&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;This website is running inside a container.&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Created by a DevOps student.&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Save:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CTRL + O
ENTER
CTRL + X
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Why?
&lt;/h2&gt;

&lt;p&gt;This is our simple application.&lt;/p&gt;

&lt;p&gt;In real companies, this could be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;React frontend&lt;/li&gt;
&lt;li&gt;Node.js backend&lt;/li&gt;
&lt;li&gt;Python API&lt;/li&gt;
&lt;li&gt;Java application&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For beginners, we start with HTML because it is easy to see in the browser.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 3: Create a Dockerfile
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;touch &lt;/span&gt;Dockerfile
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Open it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nano Dockerfile
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Paste this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight docker"&gt;&lt;code&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="s"&gt; nginx:latest&lt;/span&gt;

&lt;span class="k"&gt;COPY&lt;/span&gt;&lt;span class="s"&gt; index.html /usr/share/nginx/html/index.html&lt;/span&gt;

&lt;span class="k"&gt;EXPOSE&lt;/span&gt;&lt;span class="s"&gt; 80&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Save:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CTRL + O
ENTER
CTRL + X
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Step 4: Understand the Dockerfile
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Line 1
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight docker"&gt;&lt;code&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="s"&gt; nginx:latest&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Meaning
&lt;/h2&gt;

&lt;p&gt;We are using an existing Nginx image.&lt;/p&gt;

&lt;p&gt;Nginx is a web server.&lt;/p&gt;

&lt;p&gt;A web server is responsible for showing websites in the browser.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why DevOps engineers use this
&lt;/h2&gt;

&lt;p&gt;Instead of installing Nginx manually on every server, we use a ready-made Docker image.&lt;/p&gt;

&lt;p&gt;Without Docker:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Install Linux
Install Nginx
Configure Nginx
Copy website files
Start Nginx
Fix errors
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With Docker:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Use nginx image
Copy website
Run container
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Line 2
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight docker"&gt;&lt;code&gt;&lt;span class="k"&gt;COPY&lt;/span&gt;&lt;span class="s"&gt; index.html /usr/share/nginx/html/index.html&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Meaning
&lt;/h2&gt;

&lt;p&gt;Docker copies our website file into the Nginx web folder.&lt;/p&gt;

&lt;p&gt;Nginx serves files from:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/usr/share/nginx/html/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Why DevOps engineers do this
&lt;/h2&gt;

&lt;p&gt;The application must be inside the image.&lt;/p&gt;

&lt;p&gt;When we move the image to another machine, the website goes with it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Line 3
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight docker"&gt;&lt;code&gt;&lt;span class="k"&gt;EXPOSE&lt;/span&gt;&lt;span class="s"&gt; 80&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Meaning
&lt;/h2&gt;

&lt;p&gt;The container will listen on port 80.&lt;/p&gt;

&lt;p&gt;Port 80 is the default HTTP web port.&lt;/p&gt;

&lt;h2&gt;
  
  
  Important
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;EXPOSE 80&lt;/code&gt; does not publish the port to your laptop automatically.&lt;/p&gt;

&lt;p&gt;It only documents that the application inside the container uses port 80.&lt;/p&gt;

&lt;p&gt;We still need &lt;code&gt;-p&lt;/code&gt; when running the container.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 5: Check Files
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;ls&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Expected result:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Dockerfile  index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Why?
&lt;/h2&gt;

&lt;p&gt;Before building the image, we must make sure Dockerfile and application files are in the same folder.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 6: Build Docker Image
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker build &lt;span class="nt"&gt;-t&lt;/span&gt; student-website:v1 &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Meaning
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker build
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Build a Docker image.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-t student-website:v1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Give the image a name and version.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use the current folder as the build context.&lt;/p&gt;

&lt;p&gt;Docker will look for the Dockerfile in this folder.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why DevOps engineers do this
&lt;/h2&gt;

&lt;p&gt;In real DevOps work, we build Docker images after developers push code to GitHub.&lt;/p&gt;

&lt;p&gt;Example CI/CD pipeline:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Developer pushes code
↓
GitHub Actions/Jenkins starts
↓
Docker image is built
↓
Image is tested
↓
Image is pushed to ECR/Docker Hub
↓
Application is deployed
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Expected Result
&lt;/h2&gt;

&lt;p&gt;You should see something like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Successfully built ...
Successfully tagged student-website:v1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Step 7: Check Docker Images
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker images
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Expected result:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;REPOSITORY          TAG
student-website    v1
nginx              latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  What happened?
&lt;/h2&gt;

&lt;p&gt;Docker created an image named:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;student-website:v1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The image contains:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Nginx&lt;/li&gt;
&lt;li&gt;Your &lt;code&gt;index.html&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Configuration needed to run the website&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Step 8: Run Container
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker run &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; 8080:80 &lt;span class="nt"&gt;--name&lt;/span&gt; my-website student-website:v1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Explain the command
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Create and start a container.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-d
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Detached mode. Run in the background.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-p 8080:80
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Port mapping.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;8080
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Port on your laptop.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;80
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Port inside the container.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;--name my-website
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Name the container.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;student-website:v1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Image used to create the container.&lt;/p&gt;




&lt;h1&gt;
  
  
  Very Important Port Explanation
&lt;/h1&gt;

&lt;p&gt;Container has its own private network.&lt;/p&gt;

&lt;p&gt;Nginx runs inside the container on port 80.&lt;/p&gt;

&lt;p&gt;Your laptop browser cannot directly access container port 80 unless we publish it.&lt;/p&gt;

&lt;p&gt;That is why we use:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-p 8080:80
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Meaning:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Browser on laptop
http://localhost:8080
        ↓
Docker forwards traffic
        ↓
Container port 80
        ↓
Nginx
        ↓
index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Step 9: Check Running Container
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker ps
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Expected result:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CONTAINER ID   IMAGE                PORTS
abc123         student-website:v1   0.0.0.0:8080-&amp;gt;80/tcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Meaning
&lt;/h2&gt;

&lt;p&gt;The container is running.&lt;/p&gt;

&lt;p&gt;Port 8080 on your computer is connected to port 80 inside the container.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 10: Open Website
&lt;/h1&gt;

&lt;p&gt;Open browser:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://localhost:8080
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Expected result:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Hello from Docker!
This website is running inside a container.
Created by a DevOps student.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  What did we achieve?
&lt;/h2&gt;

&lt;p&gt;We packaged and ran a website inside Docker.&lt;/p&gt;

&lt;p&gt;The website is not running directly on your laptop.&lt;/p&gt;

&lt;p&gt;It is running inside a container.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 11: View Container Logs
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker logs my-website
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Why?
&lt;/h2&gt;

&lt;p&gt;DevOps engineers check logs to troubleshoot applications.&lt;/p&gt;

&lt;p&gt;When something is not working, logs help answer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Did the app start?&lt;/li&gt;
&lt;li&gt;Did users send requests?&lt;/li&gt;
&lt;li&gt;Are there errors?&lt;/li&gt;
&lt;li&gt;Is the app crashing?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When you refresh the browser, logs should show HTTP requests.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 12: Enter the Container
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker &lt;span class="nb"&gt;exec&lt;/span&gt; &lt;span class="nt"&gt;-it&lt;/span&gt; my-website bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now you are inside the container.&lt;/p&gt;

&lt;p&gt;Run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;pwd&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;ls&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /usr/share/nginx/html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;ls&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cat &lt;/span&gt;index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Exit:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;exit&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Why?
&lt;/h2&gt;

&lt;p&gt;DevOps engineers sometimes enter containers to troubleshoot.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;check files&lt;/li&gt;
&lt;li&gt;check environment variables&lt;/li&gt;
&lt;li&gt;check running processes&lt;/li&gt;
&lt;li&gt;check configuration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But in production, we avoid changing things manually inside containers.&lt;/p&gt;

&lt;p&gt;Containers should be recreated from images.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 13: Stop Container
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker stop my-website
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker ps
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Expected result:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;No running container named my-website
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But if you run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker ps &lt;span class="nt"&gt;-a&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You will still see it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Meaning
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;docker stop&lt;/code&gt; stops the container, but does not delete it.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 14: Start Container Again
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker start my-website
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker ps
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Open again:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://localhost:8080
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Meaning
&lt;/h2&gt;

&lt;p&gt;The same stopped container can be started again.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 15: Remove Container
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker &lt;span class="nb"&gt;rm&lt;/span&gt; &lt;span class="nt"&gt;-f&lt;/span&gt; my-website
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Meaning
&lt;/h2&gt;

&lt;p&gt;This deletes the container.&lt;/p&gt;

&lt;p&gt;The image still exists.&lt;/p&gt;

&lt;p&gt;Check:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker images
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You should still see:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;student-website   v1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Step 16: Run Again from Same Image
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker run &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; 8080:80 &lt;span class="nt"&gt;--name&lt;/span&gt; my-website student-website:v1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Important Lesson
&lt;/h2&gt;

&lt;p&gt;Even after deleting the container, we can create a new container from the same image.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Image = template
Container = running instance
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;One image
↓
Many containers
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Step 17: Make a Change to Website
&lt;/h1&gt;

&lt;p&gt;Open &lt;code&gt;index.html&lt;/code&gt; again:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nano index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Change this line:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Hello from Docker!&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Hello from Docker Version 2!&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Save.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 18: Rebuild Image as Version 2
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker build &lt;span class="nt"&gt;-t&lt;/span&gt; student-website:v2 &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check images:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker images
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Expected:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;student-website   v1
student-website   v2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Why?
&lt;/h2&gt;

&lt;p&gt;In real DevOps, every code change should create a new image version.&lt;/p&gt;

&lt;p&gt;Examples:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;payment-service:v1
payment-service:v2
payment-service:v3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This helps with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;deployments&lt;/li&gt;
&lt;li&gt;rollbacks&lt;/li&gt;
&lt;li&gt;release tracking&lt;/li&gt;
&lt;li&gt;troubleshooting&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Step 19: Replace Running Container with New Version
&lt;/h1&gt;

&lt;p&gt;Stop and remove old container:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker &lt;span class="nb"&gt;rm&lt;/span&gt; &lt;span class="nt"&gt;-f&lt;/span&gt; my-website
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run version 2:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker run &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; 8080:80 &lt;span class="nt"&gt;--name&lt;/span&gt; my-website student-website:v2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Open:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://localhost:8080
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Expected result:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Hello from Docker Version 2!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Step 20: Clean Up
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker &lt;span class="nb"&gt;rm&lt;/span&gt; &lt;span class="nt"&gt;-f&lt;/span&gt; my-website
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker rmi student-website:v1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker rmi student-website:v2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Optional:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker rmi nginx:latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Final Explanation for Students
&lt;/h1&gt;

&lt;p&gt;Today you acted like a DevOps engineer.&lt;/p&gt;

&lt;p&gt;You did this workflow:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Created application file
↓
Created Dockerfile
↓
Built Docker image
↓
Ran container
↓
Opened application in browser
↓
Checked logs
↓
Entered container
↓
Stopped and started container
↓
Created new version
↓
Redeployed new version
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Key Concepts
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Dockerfile
&lt;/h2&gt;

&lt;p&gt;A recipe that tells Docker how to build an image.&lt;/p&gt;

&lt;h2&gt;
  
  
  Image
&lt;/h2&gt;

&lt;p&gt;A packaged application with everything needed to run.&lt;/p&gt;

&lt;h2&gt;
  
  
  Container
&lt;/h2&gt;

&lt;p&gt;A running instance of an image.&lt;/p&gt;

&lt;h2&gt;
  
  
  Port Mapping
&lt;/h2&gt;

&lt;p&gt;Connects your computer port to the container port.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;localhost:8080 → container:80
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  DevOps Purpose
&lt;/h2&gt;

&lt;p&gt;DevOps engineers use Docker to make applications:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;portable&lt;/li&gt;
&lt;li&gt;repeatable&lt;/li&gt;
&lt;li&gt;consistent&lt;/li&gt;
&lt;li&gt;easy to deploy&lt;/li&gt;
&lt;li&gt;easy to scale&lt;/li&gt;
&lt;li&gt;easier to run in Kubernetes later&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Lab 1 Personal Portfolio Repository ⭐</title>
      <dc:creator>Aisalkyn Aidarova</dc:creator>
      <pubDate>Tue, 07 Jul 2026 00:25:06 +0000</pubDate>
      <link>https://dev.to/jumptotech/lab-1-personal-portfolio-repository-4dck</link>
      <guid>https://dev.to/jumptotech/lab-1-personal-portfolio-repository-4dck</guid>
      <description>&lt;p&gt;&lt;strong&gt;Goal:&lt;/strong&gt; Learn the complete Git workflow.&lt;/p&gt;

&lt;h3&gt;
  
  
  Task
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Create a GitHub account (if  don't have one).&lt;/li&gt;
&lt;li&gt;Create a new repository called:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   my-first-repository
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Clone it to their computer.&lt;/li&gt;
&lt;li&gt;Inside it create:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;my-first-repository/
│
├── README.md
├── about.txt
└── hobbies.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;README.md&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# My First GitHub Repository&lt;/span&gt;

Name:
Country:
Career Goal:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;about.txt&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;I am learning DevOps.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;hobbies.txt&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Reading
Traveling
Sports
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then execute:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone
&lt;span class="nb"&gt;cd &lt;/span&gt;my-first-repository

git status

git add &lt;span class="nb"&gt;.&lt;/span&gt;

git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Initial commit"&lt;/span&gt;

git push origin main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Lab 2: Git Status
&lt;/h2&gt;

&lt;p&gt;Give students these tasks.&lt;/p&gt;

&lt;p&gt;Create&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;project/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Inside:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;notes.txt
commands.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Run &lt;code&gt;git status&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Which files are untracked?&lt;/li&gt;
&lt;li&gt;Stage only &lt;code&gt;notes.txt&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Check status again.&lt;/li&gt;
&lt;li&gt;Commit only that file.&lt;/li&gt;
&lt;li&gt;What happens to &lt;code&gt;commands.txt&lt;/code&gt;?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They learn&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Untracked&lt;/li&gt;
&lt;li&gt;Staged&lt;/li&gt;
&lt;li&gt;Committed&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Lab 3: Git History
&lt;/h2&gt;

&lt;p&gt;Students make 5 commits.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Commit 1
Create README

Commit 2
Add Linux commands

Commit 3
Add Git commands

Commit 4
Fix typo

Commit 5
Add contact info
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then run&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Questions&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How many commits?&lt;/li&gt;
&lt;li&gt;Which commit is newest?&lt;/li&gt;
&lt;li&gt;Which command shows commit history?&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Lab 4: Practice Repository
&lt;/h2&gt;

&lt;p&gt;Students create&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;devops-lab
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Structure&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;devops-lab/

README.md

linux.txt

aws.txt

terraform.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each file contains&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Linux commands

AWS services

Terraform definition
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Push everything to GitHub.&lt;/p&gt;




&lt;h2&gt;
  
  
  Lab 5: Clone Someone Else's Repository
&lt;/h2&gt;

&lt;p&gt;Partner activity.&lt;/p&gt;

&lt;p&gt;Student A&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Creates repository&lt;/li&gt;
&lt;li&gt;Pushes files&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Student B&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Verify files exist.&lt;/p&gt;

&lt;p&gt;This teaches GitHub collaboration.&lt;/p&gt;




&lt;h1&gt;
  
  
  Lab 6: Intentional Mistakes
&lt;/h1&gt;

&lt;p&gt;Give them commands out of order.&lt;/p&gt;

&lt;p&gt;Example&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"first"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;What happens?&lt;/p&gt;

&lt;p&gt;Expected:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nothing to commit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then ask&lt;/p&gt;

&lt;p&gt;"What command did you forget?"&lt;/p&gt;

&lt;p&gt;Answer&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git add &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Lab 7: Fill in the Missing Commands
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1. Create repository on GitHub.

2. _________
(download repository)

3. _________
(check current status)

4. _________
(stage all files)

5. _________
(save changes locally)

6. _________
(upload changes to GitHub)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Answers&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone
git status
git add &lt;span class="nb"&gt;.&lt;/span&gt;
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;""&lt;/span&gt;
git push origin main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Lab 8: Final Practical Exam (30 minutes)
&lt;/h1&gt;

&lt;p&gt;Students must create&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;student-project/

README.md
linux.txt
git.txt
aws.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Requirements&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Initialize Git.&lt;/li&gt;
&lt;li&gt;Connect to GitHub.&lt;/li&gt;
&lt;li&gt;Stage all files.&lt;/li&gt;
&lt;li&gt;Commit with:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  Initial project
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Push to GitHub.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Commands they should use:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git init
git remote add origin
git status
git add &lt;span class="nb"&gt;.&lt;/span&gt;
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Initial project"&lt;/span&gt;
git push &lt;span class="nt"&gt;-u&lt;/span&gt; origin main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Bonus Challenge
&lt;/h2&gt;

&lt;p&gt;Ask students to modify &lt;code&gt;README.md&lt;/code&gt; by adding:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Their favorite Linux command&lt;/li&gt;
&lt;li&gt;Why they want to learn DevOps&lt;/li&gt;
&lt;li&gt;The date they completed the lab&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then they should:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git add README.md
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Update README"&lt;/span&gt;
git push
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This gives them experience making multiple commits to the same repository.&lt;/p&gt;

&lt;p&gt;These labs cover the essential Git workflow:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Creating a repository&lt;/li&gt;
&lt;li&gt;✅ Cloning&lt;/li&gt;
&lt;li&gt;✅ Checking status&lt;/li&gt;
&lt;li&gt;✅ Staging files&lt;/li&gt;
&lt;li&gt;✅ Committing changes&lt;/li&gt;
&lt;li&gt;✅ Viewing history&lt;/li&gt;
&lt;li&gt;✅ Pushing to GitHub&lt;/li&gt;
&lt;li&gt;✅ Making additional commits&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is an appropriate foundation before introducing branching, merging, pull requests, and resolving merge conflicts.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Lab: Build a Simple AWS Infrastructure</title>
      <dc:creator>Aisalkyn Aidarova</dc:creator>
      <pubDate>Wed, 01 Jul 2026 00:06:01 +0000</pubDate>
      <link>https://dev.to/jumptotech/lab-build-a-simple-aws-infrastructure-5a4p</link>
      <guid>https://dev.to/jumptotech/lab-build-a-simple-aws-infrastructure-5a4p</guid>
      <description>&lt;h3&gt;
  
  
  Objective
&lt;/h3&gt;

&lt;p&gt;Deploy a Linux server, connect it to a MySQL database, create storage, and upload files to S3.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Services covered:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;EC2&lt;/li&gt;
&lt;li&gt;Linux&lt;/li&gt;
&lt;li&gt;RDS MySQL&lt;/li&gt;
&lt;li&gt;EBS&lt;/li&gt;
&lt;li&gt;EFS&lt;/li&gt;
&lt;li&gt;S3&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Part 1 – EC2 (20%)
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Task 1
&lt;/h3&gt;

&lt;p&gt;Create an Ubuntu EC2 instance.&lt;/p&gt;

&lt;p&gt;Requirements:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Name: &lt;code&gt;student-ec2&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Instance type: t2.micro&lt;/li&gt;
&lt;li&gt;Create a new Security Group&lt;/li&gt;
&lt;li&gt;Allow SSH (22)&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Task 2
&lt;/h3&gt;

&lt;p&gt;Connect using SSH.&lt;/p&gt;

&lt;p&gt;Run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;hostname
whoami
pwd
df&lt;/span&gt; &lt;span class="nt"&gt;-h&lt;/span&gt;
free &lt;span class="nt"&gt;-h&lt;/span&gt;
lsblk
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Explain what each command shows.&lt;/p&gt;




&lt;h1&gt;
  
  
  Part 2 – EBS (20%)
&lt;/h1&gt;

&lt;p&gt;Create a new EBS volume.&lt;/p&gt;

&lt;p&gt;Requirements:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;5 GB&lt;/li&gt;
&lt;li&gt;Same Availability Zone as EC2&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Attach it.&lt;/p&gt;

&lt;p&gt;On Ubuntu:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;lsblk
&lt;span class="nb"&gt;sudo &lt;/span&gt;mkfs.ext4 /dev/nvme1n1
&lt;span class="nb"&gt;sudo mkdir&lt;/span&gt; /data
&lt;span class="nb"&gt;sudo &lt;/span&gt;mount /dev/nvme1n1 /data
&lt;span class="nb"&gt;df&lt;/span&gt; &lt;span class="nt"&gt;-h&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Create:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"JumpToTech"&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; /data/test.txt
&lt;span class="nb"&gt;cat&lt;/span&gt; /data/test.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Part 3 – EFS (15%)
&lt;/h1&gt;

&lt;p&gt;Create:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;EFS&lt;/li&gt;
&lt;li&gt;Mount Target&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mount it on EC2.&lt;/p&gt;

&lt;p&gt;Create:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo mkdir&lt;/span&gt; /efs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Mount.&lt;/p&gt;

&lt;p&gt;Create:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Hello EFS"&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; /efs/file1.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Verify.&lt;/p&gt;




&lt;h1&gt;
  
  
  Part 4 – S3 (15%)
&lt;/h1&gt;

&lt;p&gt;Create bucket:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;student-firstname-lastname
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Upload&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;resume.pdf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;OR&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;hello.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Create another file on EC2.&lt;/p&gt;

&lt;p&gt;Upload using AWS CLI.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;aws s3 &lt;span class="nb"&gt;cp &lt;/span&gt;hello.txt s3://bucket-name/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;List objects.&lt;/p&gt;




&lt;h1&gt;
  
  
  Part 5 – RDS MySQL (20%)
&lt;/h1&gt;

&lt;p&gt;Create:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MySQL&lt;/li&gt;
&lt;li&gt;admin user&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Connect EC2 to RDS.&lt;/p&gt;

&lt;p&gt;Install MySQL Client.&lt;/p&gt;

&lt;p&gt;Connect.&lt;/p&gt;

&lt;p&gt;Run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SHOW&lt;/span&gt; &lt;span class="n"&gt;DATABASES&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Create:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="k"&gt;DATABASE&lt;/span&gt; &lt;span class="n"&gt;school&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="n"&gt;USE&lt;/span&gt; &lt;span class="n"&gt;school&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Create table:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="k"&gt;TABLE&lt;/span&gt; &lt;span class="n"&gt;students&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="n"&gt;id&lt;/span&gt; &lt;span class="nb"&gt;INT&lt;/span&gt; &lt;span class="n"&gt;AUTO_INCREMENT&lt;/span&gt; &lt;span class="k"&gt;PRIMARY&lt;/span&gt; &lt;span class="k"&gt;KEY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="nb"&gt;VARCHAR&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;span class="n"&gt;course&lt;/span&gt; &lt;span class="nb"&gt;VARCHAR&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Insert:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;INSERT&lt;/span&gt; &lt;span class="k"&gt;INTO&lt;/span&gt; &lt;span class="n"&gt;students&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;course&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;VALUES&lt;/span&gt;
&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'John'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'DevOps'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'Emma'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'AWS'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Verify:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;students&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Part 6 – Linux (10%)
&lt;/h1&gt;

&lt;p&gt;Create user:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;adduser devops
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Create group:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;groupadd engineers
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add user:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;usermod &lt;span class="nt"&gt;-aG&lt;/span&gt; engineers devops
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Create:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir &lt;/span&gt;project
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Create:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;touch &lt;/span&gt;project/app.log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Change owner:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo chown &lt;/span&gt;devops:engineers project
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Verify.&lt;/p&gt;




&lt;h1&gt;
  
  
  Deliverables
&lt;/h1&gt;

&lt;p&gt;Students should submit screenshots of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;EC2 Running&lt;/li&gt;
&lt;li&gt;SSH Connected&lt;/li&gt;
&lt;li&gt;&lt;code&gt;df -h&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;lsblk&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Mounted EBS&lt;/li&gt;
&lt;li&gt;Mounted EFS&lt;/li&gt;
&lt;li&gt;S3 Bucket&lt;/li&gt;
&lt;li&gt;Uploaded Object&lt;/li&gt;
&lt;li&gt;RDS Available&lt;/li&gt;
&lt;li&gt;MySQL Connection&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SHOW DATABASES;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SELECT * FROM students;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Bonus Questions (Interview Style)
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;What is the difference between EBS and EFS?&lt;/li&gt;
&lt;li&gt;Why can't we SSH into RDS?&lt;/li&gt;
&lt;li&gt;Why did we install MySQL Client on EC2?&lt;/li&gt;
&lt;li&gt;Why is port 3306 used?&lt;/li&gt;
&lt;li&gt;What is the purpose of a Security Group?&lt;/li&gt;
&lt;li&gt;Why is RDS a managed service?&lt;/li&gt;
&lt;li&gt;What is the difference between S3 and EBS?&lt;/li&gt;
&lt;li&gt;Why must the EBS volume be in the same Availability Zone as the EC2 instance?&lt;/li&gt;
&lt;li&gt;Can two EC2 instances use the same EBS volume simultaneously?&lt;/li&gt;
&lt;li&gt;When would you choose EFS instead of EBS?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This lab is realistic, reinforces all the services they've learned, and introduces the way a DevOps engineer connects compute, storage, networking, and databases in a simple production-like environment.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Build Your First Website with AI Using Jules and GitHub</title>
      <dc:creator>Aisalkyn Aidarova</dc:creator>
      <pubDate>Sat, 27 Jun 2026 13:34:32 +0000</pubDate>
      <link>https://dev.to/jumptotech/build-your-first-website-with-ai-using-jules-and-github-54lg</link>
      <guid>https://dev.to/jumptotech/build-your-first-website-with-ai-using-jules-and-github-54lg</guid>
      <description>&lt;h2&gt;
  
  
  What are we going to build?
&lt;/h2&gt;

&lt;p&gt;Today we are going to create a real business website without writing code.&lt;/p&gt;

&lt;p&gt;Imagine you own:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A trucking company&lt;/li&gt;
&lt;li&gt;A beauty salon&lt;/li&gt;
&lt;li&gt;A restaurant&lt;/li&gt;
&lt;li&gt;A dental office&lt;/li&gt;
&lt;li&gt;A law firm&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Normally, you would hire a web developer.&lt;/p&gt;

&lt;p&gt;Today, instead of hiring a developer, we will hire an &lt;strong&gt;AI Software Engineer&lt;/strong&gt; called &lt;strong&gt;Jules&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 1 – Create a GitHub Account
&lt;/h1&gt;

&lt;p&gt;Go to:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com" rel="noopener noreferrer"&gt;https://github.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click &lt;strong&gt;Sign Up&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Why?&lt;/p&gt;

&lt;p&gt;Think of GitHub as Google Drive for programmers.&lt;/p&gt;

&lt;p&gt;Instead of storing Word documents, GitHub stores software projects.&lt;/p&gt;

&lt;p&gt;Your AI developer (Jules) needs a place to save your website.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 2 – Create a New Repository
&lt;/h1&gt;

&lt;p&gt;After logging into GitHub:&lt;/p&gt;

&lt;p&gt;Click&lt;/p&gt;

&lt;p&gt;New Repository&lt;/p&gt;

&lt;p&gt;Repository Name:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;my-first-website
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;or&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;beauty-salon
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;or&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;trucking-company
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Choose&lt;/p&gt;

&lt;p&gt;✅ Public&lt;/p&gt;

&lt;p&gt;Click&lt;/p&gt;

&lt;p&gt;Create Repository&lt;/p&gt;

&lt;p&gt;Congratulations!&lt;/p&gt;

&lt;p&gt;You just created an empty project.&lt;/p&gt;

&lt;p&gt;Think of it as an empty folder waiting for files.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 3 – Open Jules
&lt;/h1&gt;

&lt;p&gt;Go to&lt;/p&gt;

&lt;p&gt;&lt;a href="https://jules.google.com" rel="noopener noreferrer"&gt;https://jules.google.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sign in using the same Google account.&lt;/p&gt;

&lt;p&gt;The first time you use Jules it will ask permission to connect to GitHub.&lt;/p&gt;

&lt;p&gt;Click&lt;/p&gt;

&lt;p&gt;Authorize GitHub&lt;/p&gt;

&lt;p&gt;Now Jules can work inside your GitHub repositories.&lt;/p&gt;

&lt;p&gt;Think of Jules as your software engineer.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 4 – Select Your Repository
&lt;/h1&gt;

&lt;p&gt;Inside Jules choose&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;my-first-website
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now Jules knows exactly where to create your website.&lt;/p&gt;

&lt;p&gt;This is just like telling a real employee&lt;/p&gt;

&lt;p&gt;"Please save everything inside this folder."&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 5 – Tell Jules What You Want
&lt;/h1&gt;

&lt;p&gt;Example prompt&lt;/p&gt;

&lt;p&gt;Create a professional website for my trucking company.&lt;/p&gt;

&lt;p&gt;Company Name:&lt;br&gt;
Freedom Trucking LLC&lt;/p&gt;

&lt;p&gt;The website should include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Home&lt;/li&gt;
&lt;li&gt;About&lt;/li&gt;
&lt;li&gt;Services&lt;/li&gt;
&lt;li&gt;Fleet&lt;/li&gt;
&lt;li&gt;Testimonials&lt;/li&gt;
&lt;li&gt;Contact&lt;/li&gt;
&lt;li&gt;Quote Request Form&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Use HTML, CSS and JavaScript.&lt;/p&gt;

&lt;p&gt;Create a professional project structure.&lt;/p&gt;

&lt;p&gt;Commit all files to my GitHub repository.&lt;/p&gt;

&lt;p&gt;Then click&lt;/p&gt;

&lt;p&gt;Start&lt;/p&gt;


&lt;h1&gt;
  
  
  Step 6 – Jules Starts Working
&lt;/h1&gt;

&lt;p&gt;Now Jules behaves exactly like a software engineer.&lt;/p&gt;

&lt;p&gt;It creates files such as&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;style.css
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;script.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It organizes everything.&lt;/p&gt;

&lt;p&gt;Then Jules automatically saves everything into your GitHub repository.&lt;/p&gt;

&lt;p&gt;This is called a &lt;strong&gt;commit&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Think of a commit as pressing Save.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 7 – Review the Changes
&lt;/h1&gt;

&lt;p&gt;Jules will often create something called a Pull Request.&lt;/p&gt;

&lt;p&gt;What is a Pull Request?&lt;/p&gt;

&lt;p&gt;Imagine an employee says&lt;/p&gt;

&lt;p&gt;"I finished my work.&lt;/p&gt;

&lt;p&gt;Would you like to review it before adding it to the project?"&lt;/p&gt;

&lt;p&gt;That review request is called a Pull Request.&lt;/p&gt;

&lt;p&gt;If everything looks good&lt;/p&gt;

&lt;p&gt;Click&lt;/p&gt;

&lt;p&gt;Merge Pull Request&lt;/p&gt;

&lt;p&gt;Now your website officially becomes part of your project.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 8 – Open Your Repository
&lt;/h1&gt;

&lt;p&gt;Go back to GitHub.&lt;/p&gt;

&lt;p&gt;Now you should see&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;css
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Your website is now safely stored in GitHub.&lt;/p&gt;

&lt;p&gt;But...&lt;/p&gt;

&lt;p&gt;Can people visit your website?&lt;/p&gt;

&lt;p&gt;NO.&lt;/p&gt;

&lt;p&gt;GitHub stores your files.&lt;/p&gt;

&lt;p&gt;It is not yet showing your website to the world.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 9 – Publish Your Website
&lt;/h1&gt;

&lt;p&gt;Click&lt;/p&gt;

&lt;p&gt;Settings&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;Pages&lt;/p&gt;

&lt;p&gt;You will see&lt;/p&gt;

&lt;p&gt;Source&lt;/p&gt;

&lt;p&gt;Choose&lt;/p&gt;

&lt;p&gt;Deploy from Branch&lt;/p&gt;

&lt;p&gt;Choose&lt;/p&gt;

&lt;p&gt;Branch&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Folder&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/(root)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Click&lt;/p&gt;

&lt;p&gt;Save&lt;/p&gt;

&lt;p&gt;Wait about one minute.&lt;/p&gt;

&lt;p&gt;GitHub now copies your files onto its web servers.&lt;/p&gt;

&lt;p&gt;This is called &lt;strong&gt;hosting&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Hosting simply means:&lt;/p&gt;

&lt;p&gt;Your website files are now stored on computers that are connected to the Internet 24 hours a day.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 10 – Your Website Gets a Public Address
&lt;/h1&gt;

&lt;p&gt;After about one minute GitHub displays something similar to&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://yourusername.github.io/my-first-website
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is your public website.&lt;/p&gt;

&lt;p&gt;Now anyone in the world can visit it.&lt;/p&gt;

&lt;p&gt;Congratulations!&lt;/p&gt;

&lt;p&gt;You are now the owner of a real website.&lt;/p&gt;




&lt;h1&gt;
  
  
  What is Hosting?
&lt;/h1&gt;

&lt;p&gt;Before publishing&lt;/p&gt;

&lt;p&gt;Your files looked like this&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;My Laptop

index.html
style.css
script.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Only YOU could open them.&lt;/p&gt;

&lt;p&gt;After enabling GitHub Pages&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GitHub Servers

index.html
style.css
script.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now everyone can visit.&lt;/p&gt;

&lt;p&gt;Hosting simply means&lt;/p&gt;

&lt;p&gt;"Putting your website onto computers connected to the Internet."&lt;/p&gt;




&lt;h1&gt;
  
  
  Why Do We Need a Domain Name?
&lt;/h1&gt;

&lt;p&gt;GitHub gave us&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://yourusername.github.io/my-first-website
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This works perfectly.&lt;/p&gt;

&lt;p&gt;But it doesn't look very professional.&lt;/p&gt;

&lt;p&gt;Instead you may want&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;www.freedomtrucking.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;or&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;www.annassalon.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;or&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;www.bestrestaurant.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Step 11 – Buy a Domain Name
&lt;/h1&gt;

&lt;p&gt;You can purchase a domain from companies like&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GoDaddy&lt;/li&gt;
&lt;li&gt;Namecheap&lt;/li&gt;
&lt;li&gt;Cloudflare Registrar&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Buying a domain does NOT create a website.&lt;/p&gt;

&lt;p&gt;It simply reserves the name.&lt;/p&gt;

&lt;p&gt;Think of it as buying the street address for your business.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 12 – Connect the Domain
&lt;/h1&gt;

&lt;p&gt;After buying your domain&lt;/p&gt;

&lt;p&gt;Open your domain provider.&lt;/p&gt;

&lt;p&gt;Find&lt;/p&gt;

&lt;p&gt;DNS Management&lt;/p&gt;

&lt;p&gt;GitHub Pages will tell you exactly which DNS records to add.&lt;/p&gt;

&lt;p&gt;Usually you will add:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A records&lt;/li&gt;
&lt;li&gt;or CNAME records&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;www.freedomtrucking.com
        │
        ▼
GitHub Pages
        │
        ▼
Your Website
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Visitors type&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;www.freedomtrucking.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;GitHub automatically shows your website.&lt;/p&gt;

&lt;p&gt;You no longer need the long GitHub URL.&lt;/p&gt;




&lt;h1&gt;
  
  
  Understanding the Entire Process
&lt;/h1&gt;

&lt;p&gt;Business Owner&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;"I need a website."&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;Jules (AI Software Engineer)&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;Creates Website Files&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;GitHub&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;Stores Project&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;GitHub Pages&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;Publishes Website&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;Public URL&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;Optional Custom Domain&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;Customers Visit Your Website&lt;/p&gt;




&lt;h1&gt;
  
  
  Simple Definitions
&lt;/h1&gt;

&lt;p&gt;GitHub&lt;/p&gt;

&lt;p&gt;Stores your project.&lt;/p&gt;

&lt;p&gt;Jules&lt;/p&gt;

&lt;p&gt;Creates your website.&lt;/p&gt;

&lt;p&gt;Commit&lt;/p&gt;

&lt;p&gt;Saving changes.&lt;/p&gt;

&lt;p&gt;Pull Request&lt;/p&gt;

&lt;p&gt;Asking for approval before saving work.&lt;/p&gt;

&lt;p&gt;Merge&lt;/p&gt;

&lt;p&gt;Accepting the changes.&lt;/p&gt;

&lt;p&gt;GitHub Pages&lt;/p&gt;

&lt;p&gt;Makes your website available on the Internet.&lt;/p&gt;

&lt;p&gt;Hosting&lt;/p&gt;

&lt;p&gt;A computer connected to the Internet that stores and serves your website.&lt;/p&gt;

&lt;p&gt;Domain Name&lt;/p&gt;

&lt;p&gt;A friendly website address like&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;www.mybusiness.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;DNS&lt;/p&gt;

&lt;p&gt;The system that connects your domain name to where your website is hosted.&lt;/p&gt;




&lt;h1&gt;
  
  
  Final Thought
&lt;/h1&gt;

&lt;p&gt;Today, you did not learn programming.&lt;/p&gt;

&lt;p&gt;You learned how modern businesses create websites using Artificial Intelligence.&lt;/p&gt;

&lt;p&gt;You described your business.&lt;/p&gt;

&lt;p&gt;AI wrote the code.&lt;/p&gt;

&lt;p&gt;GitHub stored it.&lt;/p&gt;

&lt;p&gt;GitHub Pages published it.&lt;/p&gt;

&lt;p&gt;With one more step—a custom domain—your website becomes your professional online presence.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Linux Lab 1 – Build Your Own Linux Server</title>
      <dc:creator>Aisalkyn Aidarova</dc:creator>
      <pubDate>Fri, 26 Jun 2026 23:54:17 +0000</pubDate>
      <link>https://dev.to/jumptotech/linux-lab-1-build-your-own-linux-server-35j5</link>
      <guid>https://dev.to/jumptotech/linux-lab-1-build-your-own-linux-server-35j5</guid>
      <description>&lt;h2&gt;
  
  
  Objective
&lt;/h2&gt;

&lt;p&gt;Become comfortable managing a Linux server without looking up commands.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tasks
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Connect to the server using SSH.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Check:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   &lt;span class="nb"&gt;whoami
   hostname
   pwd
   uname&lt;/span&gt; &lt;span class="nt"&gt;-a&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Create the following structure:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   /company
       /dev
       /qa
       /prod
       /backup
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Create users:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;developer&lt;/li&gt;
&lt;li&gt;tester&lt;/li&gt;
&lt;li&gt;devops&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Create groups:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;developers&lt;/li&gt;
&lt;li&gt;testers&lt;/li&gt;
&lt;li&gt;admins&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Add each user to the proper group.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Verify everything.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;What they learn&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Linux hierarchy&lt;/li&gt;
&lt;li&gt;Users&lt;/li&gt;
&lt;li&gt;Groups&lt;/li&gt;
&lt;li&gt;Ownership&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Linux Lab 2 – Permissions Challenge
&lt;/h1&gt;

&lt;p&gt;Students receive this situation:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The developer cannot deploy because Permission denied appears."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;They must solve it.&lt;/p&gt;

&lt;p&gt;Tasks&lt;/p&gt;

&lt;p&gt;Create&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir&lt;/span&gt; /application
&lt;span class="nb"&gt;touch &lt;/span&gt;app.log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Give wrong permissions.&lt;/p&gt;

&lt;p&gt;Students must investigate.&lt;/p&gt;

&lt;p&gt;Commands allowed&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;ls&lt;/span&gt; &lt;span class="nt"&gt;-l&lt;/span&gt;
&lt;span class="nb"&gt;chmod
chown
chgrp
id
groups&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Questions&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Why did Permission denied happen?&lt;/li&gt;
&lt;li&gt;Which permission is missing?&lt;/li&gt;
&lt;li&gt;Difference between owner, group, others?&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Linux Lab 3 – File System Investigation
&lt;/h1&gt;

&lt;p&gt;Students must answer&lt;/p&gt;

&lt;p&gt;Where are these stored?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Users&lt;/li&gt;
&lt;li&gt;Passwords&lt;/li&gt;
&lt;li&gt;Groups&lt;/li&gt;
&lt;li&gt;Services&lt;/li&gt;
&lt;li&gt;Logs&lt;/li&gt;
&lt;li&gt;Nginx config&lt;/li&gt;
&lt;li&gt;SSH config&lt;/li&gt;
&lt;li&gt;DNS configuration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Commands&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cat&lt;/span&gt; /etc/passwd
&lt;span class="nb"&gt;cat&lt;/span&gt; /etc/group
&lt;span class="nb"&gt;cat&lt;/span&gt; /etc/hosts
&lt;span class="nb"&gt;cat&lt;/span&gt; /etc/resolv.conf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Find&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/etc

/var

/home

/usr

/opt

/tmp

/proc

/dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Goal&lt;/p&gt;

&lt;p&gt;Understand the Linux directory structure.&lt;/p&gt;




&lt;h1&gt;
  
  
  Linux Lab 4 – Searching Like a DevOps Engineer
&lt;/h1&gt;

&lt;p&gt;Find&lt;/p&gt;

&lt;p&gt;A file named&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;production.log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Find all&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;*.conf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Find all files larger than 100 MB.&lt;/p&gt;

&lt;p&gt;Find all files modified today.&lt;/p&gt;

&lt;p&gt;Find every occurrence of&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;database
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Commands&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;find
locate
&lt;span class="nb"&gt;grep
&lt;/span&gt;which
whereis
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Linux Lab 5 – Package Management
&lt;/h1&gt;

&lt;p&gt;Install&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nginx
git
tree
curl
wget
htop
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Verify installation.&lt;/p&gt;

&lt;p&gt;Remove one package.&lt;/p&gt;

&lt;p&gt;Reinstall it.&lt;/p&gt;

&lt;p&gt;Questions&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What is apt?&lt;/li&gt;
&lt;li&gt;What is a repository?&lt;/li&gt;
&lt;li&gt;Why update before installing?&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Linux Lab 6 – Processes
&lt;/h1&gt;

&lt;p&gt;Run&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sleep &lt;/span&gt;500
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Open another terminal.&lt;/p&gt;

&lt;p&gt;Find it.&lt;/p&gt;

&lt;p&gt;Kill it.&lt;/p&gt;

&lt;p&gt;Start nginx.&lt;/p&gt;

&lt;p&gt;Stop nginx.&lt;/p&gt;

&lt;p&gt;Restart nginx.&lt;/p&gt;

&lt;p&gt;Check status.&lt;/p&gt;

&lt;p&gt;Commands&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ps
top
htop
&lt;span class="nb"&gt;kill
&lt;/span&gt;killall
systemctl
journalctl
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Questions&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Difference between process and service?&lt;/li&gt;
&lt;li&gt;Why doesn't killing a process always stop a service permanently?&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Linux Lab 7 – Storage
&lt;/h1&gt;

&lt;p&gt;Students investigate&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;df&lt;/span&gt; &lt;span class="nt"&gt;-h&lt;/span&gt;
&lt;span class="nb"&gt;du&lt;/span&gt; &lt;span class="nt"&gt;-sh&lt;/span&gt; /&lt;span class="k"&gt;*&lt;/span&gt;
lsblk
mount
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Questions&lt;/p&gt;

&lt;p&gt;Which disk is mounted?&lt;/p&gt;

&lt;p&gt;How much free space remains?&lt;/p&gt;

&lt;p&gt;Which folder consumes the most space?&lt;/p&gt;




&lt;h1&gt;
  
  
  Linux Lab 8 – Logs
&lt;/h1&gt;

&lt;p&gt;Students must investigate&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Someone attempted to log in but failed.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Find&lt;/p&gt;

&lt;p&gt;SSH logs&lt;/p&gt;

&lt;p&gt;System logs&lt;/p&gt;

&lt;p&gt;Kernel logs&lt;/p&gt;

&lt;p&gt;Nginx logs&lt;/p&gt;

&lt;p&gt;Commands&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;journalctl

&lt;span class="nb"&gt;tail

&lt;/span&gt;less

&lt;span class="nb"&gt;grep&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Questions&lt;/p&gt;

&lt;p&gt;Why are logs critical in DevOps?&lt;/p&gt;




&lt;h1&gt;
  
  
  Linux Lab 9 – CPU &amp;amp; Memory
&lt;/h1&gt;

&lt;p&gt;Run&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;yes&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; /dev/null
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Investigate&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;top
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Kill it.&lt;/p&gt;

&lt;p&gt;Run memory test&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;stress-ng &lt;span class="nt"&gt;--vm&lt;/span&gt; 2 &lt;span class="nt"&gt;--vm-bytes&lt;/span&gt; 512M
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Investigate&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;free &lt;span class="nt"&gt;-h&lt;/span&gt;

vmstat
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Questions&lt;/p&gt;

&lt;p&gt;What happens when CPU reaches 100%?&lt;/p&gt;

&lt;p&gt;What happens when RAM is exhausted?&lt;/p&gt;




&lt;h1&gt;
  
  
  Linux Lab 10 – Services
&lt;/h1&gt;

&lt;p&gt;Students manage&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;nginx&lt;/li&gt;
&lt;li&gt;ssh&lt;/li&gt;
&lt;li&gt;cron&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Commands&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;systemctl start

systemctl stop

systemctl restart

systemctl reload

systemctl &lt;span class="nb"&gt;enable

&lt;/span&gt;systemctl disable

systemctl status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Questions&lt;/p&gt;

&lt;p&gt;Difference between&lt;/p&gt;

&lt;p&gt;Start&lt;/p&gt;

&lt;p&gt;Restart&lt;/p&gt;

&lt;p&gt;Reload&lt;/p&gt;

&lt;p&gt;Enable&lt;/p&gt;

&lt;p&gt;Disable&lt;/p&gt;




&lt;h1&gt;
  
  
  Linux Lab 11 – Bash
&lt;/h1&gt;

&lt;p&gt;Write scripts&lt;/p&gt;

&lt;p&gt;Example&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;

&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Today's date:"&lt;/span&gt;
&lt;span class="nb"&gt;date

echo&lt;/span&gt; &lt;span class="s2"&gt;"Current user:"&lt;/span&gt;
&lt;span class="nb"&gt;whoami

echo&lt;/span&gt; &lt;span class="s2"&gt;"Current directory:"&lt;/span&gt;
&lt;span class="nb"&gt;pwd&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Second script&lt;/p&gt;

&lt;p&gt;Backup&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cp&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; /company /backup
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Third&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir &lt;/span&gt;project&lt;span class="o"&gt;{&lt;/span&gt;1..10&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Linux Lab 12 – Troubleshooting Challenge (Best One)
&lt;/h1&gt;

&lt;p&gt;Do &lt;strong&gt;not&lt;/strong&gt; tell students what is wrong.&lt;/p&gt;

&lt;p&gt;Break the server before class:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stop nginx.&lt;/li&gt;
&lt;li&gt;Delete the website.&lt;/li&gt;
&lt;li&gt;Fill the disk to 95%.&lt;/li&gt;
&lt;li&gt;Change permissions.&lt;/li&gt;
&lt;li&gt;Stop SSH.&lt;/li&gt;
&lt;li&gt;Remove a user from the sudo group.&lt;/li&gt;
&lt;li&gt;Kill a process.&lt;/li&gt;
&lt;li&gt;Rename a configuration file.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then give them only this ticket:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Incident #1045&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Users report that the website is unavailable. The developer cannot deploy new code. The server is running slowly. Investigate and restore the server.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;They can use any Linux commands they've learned, but they must document:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What symptoms they observed.&lt;/li&gt;
&lt;li&gt;Which commands they used.&lt;/li&gt;
&lt;li&gt;The root cause.&lt;/li&gt;
&lt;li&gt;The fix they applied.&lt;/li&gt;
&lt;li&gt;How they verified the issue was resolved.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This mirrors real DevOps work much better than following a list of commands. In production, engineers are rarely told &lt;em&gt;what&lt;/em&gt; is broken—they have to investigate, identify the root cause, and restore the service. This kind of lab builds both Linux confidence and troubleshooting skills, which are exactly what employers look for in junior DevOps engineers.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>linux lab</title>
      <dc:creator>Aisalkyn Aidarova</dc:creator>
      <pubDate>Fri, 26 Jun 2026 00:01:46 +0000</pubDate>
      <link>https://dev.to/jumptotech/linux-lab-2oa9</link>
      <guid>https://dev.to/jumptotech/linux-lab-2oa9</guid>
      <description>&lt;h1&gt;
  
  
  Lab 1 – Linux Navigation &amp;amp; Files (20 points)
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Task 1
&lt;/h3&gt;

&lt;p&gt;Create the following structure.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/home/student/
├── project
│   ├── logs
│   ├── scripts
│   └── backup
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Requirements&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;create all directories&lt;/li&gt;
&lt;li&gt;create
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;app.log
error.log
install.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;inside correct folders.&lt;/p&gt;




&lt;h3&gt;
  
  
  Task 2
&lt;/h3&gt;

&lt;p&gt;Move&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;app.log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;into&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;backup
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Task 3
&lt;/h3&gt;

&lt;p&gt;Delete&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;error.log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Task 4
&lt;/h3&gt;

&lt;p&gt;Find&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;install.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;using only one command.&lt;/p&gt;




&lt;h1&gt;
  
  
  Lab 2 – Permissions (20 points)
&lt;/h1&gt;

&lt;p&gt;Create&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;secret.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Requirements&lt;/p&gt;

&lt;p&gt;Owner&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;read/write&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Group&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;read&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Others&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;no access&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Verify permissions.&lt;/p&gt;




&lt;p&gt;Create a new user&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;developer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Switch to that user.&lt;/p&gt;

&lt;p&gt;Can the user read&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;secret.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Explain why.&lt;/p&gt;




&lt;h1&gt;
  
  
  Lab 3 – Processes (20 points)
&lt;/h1&gt;

&lt;p&gt;Start a process&lt;/p&gt;

&lt;p&gt;Example&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sleep &lt;/span&gt;500
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Questions&lt;/p&gt;

&lt;p&gt;Find&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PID&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Kill the process&lt;/p&gt;

&lt;p&gt;Verify it stopped.&lt;/p&gt;




&lt;p&gt;Bonus&lt;/p&gt;

&lt;p&gt;Find the top five processes using the most memory.&lt;/p&gt;




&lt;h1&gt;
  
  
  Lab 4 – Disk Space (20 points)
&lt;/h1&gt;

&lt;p&gt;Create a directory&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;practice
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Generate a file about 100 MB.&lt;/p&gt;

&lt;p&gt;Questions&lt;/p&gt;

&lt;p&gt;How much disk space is used?&lt;/p&gt;

&lt;p&gt;How much free disk space remains?&lt;/p&gt;

&lt;p&gt;Which command shows directory size?&lt;/p&gt;




&lt;h1&gt;
  
  
  Lab 5 – Networking (30 points)
&lt;/h1&gt;

&lt;p&gt;Find&lt;/p&gt;

&lt;p&gt;Your&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;hostname&lt;/li&gt;
&lt;li&gt;private IP&lt;/li&gt;
&lt;li&gt;default gateway&lt;/li&gt;
&lt;li&gt;DNS server&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Ping&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;8.8.8.8
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Questions&lt;/p&gt;

&lt;p&gt;Did it work?&lt;/p&gt;




&lt;p&gt;Ping&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;google.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If this fails but&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;8.8.8.8
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;works,&lt;/p&gt;

&lt;p&gt;what is the problem?&lt;/p&gt;




&lt;p&gt;Display&lt;/p&gt;

&lt;p&gt;All listening ports.&lt;/p&gt;




&lt;p&gt;What service is listening on port 22?&lt;/p&gt;




&lt;h1&gt;
  
  
  Lab 6 – Troubleshooting (40 points)
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Scenario 1
&lt;/h2&gt;

&lt;p&gt;A user says&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Internet is not working."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Show the commands you would run.&lt;/p&gt;

&lt;p&gt;Expected ideas&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ip addr
ping 8.8.8.8
ping google.com
ip route
&lt;span class="nb"&gt;cat&lt;/span&gt; /etc/resolv.conf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Explain each step.&lt;/p&gt;




&lt;h2&gt;
  
  
  Scenario 2
&lt;/h2&gt;

&lt;p&gt;A website is down.&lt;/p&gt;

&lt;p&gt;Questions&lt;/p&gt;

&lt;p&gt;How do you verify&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;server is running?&lt;/li&gt;
&lt;li&gt;nginx is running?&lt;/li&gt;
&lt;li&gt;port 80 is listening?&lt;/li&gt;
&lt;li&gt;firewall issue?&lt;/li&gt;
&lt;li&gt;logs?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Commands should include&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;systemctl status nginx

journalctl &lt;span class="nt"&gt;-u&lt;/span&gt; nginx

ss &lt;span class="nt"&gt;-tuln&lt;/span&gt;

curl localhost

systemctl restart nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Scenario 3
&lt;/h2&gt;

&lt;p&gt;SSH stopped working.&lt;/p&gt;

&lt;p&gt;How would you troubleshoot?&lt;/p&gt;

&lt;p&gt;Expected&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ping server

ssh localhost

systemctl status ssh

ss &lt;span class="nt"&gt;-tulpn&lt;/span&gt;

journalctl &lt;span class="nt"&gt;-xe&lt;/span&gt;

systemctl restart ssh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Lab 7 – Mixed Practical (Best Assessment)
&lt;/h1&gt;

&lt;p&gt;Tell students:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You are the new Junior DevOps Engineer.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The manager asks you to prepare a server.&lt;/p&gt;

&lt;p&gt;Complete all tasks.&lt;/p&gt;




&lt;h3&gt;
  
  
  Task 1
&lt;/h3&gt;

&lt;p&gt;Create user&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;developer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Task 2
&lt;/h3&gt;

&lt;p&gt;Create&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/opt/application
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Task 3
&lt;/h3&gt;

&lt;p&gt;Create&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;run.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Make it executable.&lt;/p&gt;




&lt;h3&gt;
  
  
  Task 4
&lt;/h3&gt;

&lt;p&gt;Create a file&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;server.log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;containing&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Application started
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Task 5
&lt;/h3&gt;

&lt;p&gt;Find your IP address.&lt;/p&gt;




&lt;h3&gt;
  
  
  Task 6
&lt;/h3&gt;

&lt;p&gt;Show free disk space.&lt;/p&gt;




&lt;h3&gt;
  
  
  Task 7
&lt;/h3&gt;

&lt;p&gt;Start&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sleep &lt;/span&gt;300
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Find its PID.&lt;/p&gt;

&lt;p&gt;Terminate it.&lt;/p&gt;




&lt;h3&gt;
  
  
  Task 8
&lt;/h3&gt;

&lt;p&gt;Find every&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight conf"&gt;&lt;code&gt;*.&lt;span class="n"&gt;log&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;file under&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/opt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Task 9
&lt;/h3&gt;

&lt;p&gt;Display the routing table.&lt;/p&gt;




&lt;h3&gt;
  
  
  Task 10
&lt;/h3&gt;

&lt;p&gt;Explain the difference between&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ping 8.8.8.8
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ping google.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Oral Questions (Ask During the Lab)
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;What is the difference between a process and a service?&lt;/li&gt;
&lt;li&gt;Why do we need DNS?&lt;/li&gt;
&lt;li&gt;What is the difference between a private IP and a public IP?&lt;/li&gt;
&lt;li&gt;What happens when you type &lt;code&gt;google.com&lt;/code&gt; into a browser?&lt;/li&gt;
&lt;li&gt;What is the purpose of the default gateway?&lt;/li&gt;
&lt;li&gt;What does &lt;code&gt;chmod 755&lt;/code&gt; mean?&lt;/li&gt;
&lt;li&gt;What is the difference between &lt;code&gt;find&lt;/code&gt; and &lt;code&gt;locate&lt;/code&gt;?&lt;/li&gt;
&lt;li&gt;What does &lt;code&gt;sudo&lt;/code&gt; actually do?&lt;/li&gt;
&lt;li&gt;Why do Linux servers typically not have a graphical interface?&lt;/li&gt;
&lt;li&gt;If a website is down, what would you check first and why?&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>beginners</category>
      <category>cli</category>
      <category>linux</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>This is a very strong DevOps / Cloud Engineer interview preparation list.</title>
      <dc:creator>Aisalkyn Aidarova</dc:creator>
      <pubDate>Wed, 24 Jun 2026 00:12:32 +0000</pubDate>
      <link>https://dev.to/jumptotech/this-is-a-very-strong-devops-cloud-engineer-interview-preparation-list-13n2</link>
      <guid>https://dev.to/jumptotech/this-is-a-very-strong-devops-cloud-engineer-interview-preparation-list-13n2</guid>
      <description>&lt;h1&gt;
  
  
  1. What is Hardware?
&lt;/h1&gt;

&lt;p&gt;Hardware is any physical component of a computer system.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CPU&lt;/li&gt;
&lt;li&gt;RAM&lt;/li&gt;
&lt;li&gt;SSD/HDD&lt;/li&gt;
&lt;li&gt;Motherboard&lt;/li&gt;
&lt;li&gt;Network Card&lt;/li&gt;
&lt;li&gt;Power Supply&lt;/li&gt;
&lt;li&gt;Keyboard&lt;/li&gt;
&lt;li&gt;Monitor&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Think of hardware as everything you can physically touch.&lt;/p&gt;




&lt;h1&gt;
  
  
  2. What is Software?
&lt;/h1&gt;

&lt;p&gt;Software is a set of instructions that tell hardware what to do.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;h3&gt;
  
  
  Operating Systems
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Linux&lt;/li&gt;
&lt;li&gt;Windows&lt;/li&gt;
&lt;li&gt;macOS&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Applications
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Browser&lt;/li&gt;
&lt;li&gt;Microsoft Word&lt;/li&gt;
&lt;li&gt;Zoom&lt;/li&gt;
&lt;li&gt;Slack&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Programming Languages
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;Java&lt;/li&gt;
&lt;li&gt;JavaScript&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  3. What is CPU?
&lt;/h1&gt;

&lt;p&gt;CPU = Central Processing Unit&lt;/p&gt;

&lt;p&gt;CPU is the brain of the computer.&lt;/p&gt;

&lt;p&gt;Responsibilities:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Execute instructions&lt;/li&gt;
&lt;li&gt;Perform calculations&lt;/li&gt;
&lt;li&gt;Process requests&lt;/li&gt;
&lt;li&gt;Run applications&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;p&gt;When opening Chrome:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;CPU receives command&lt;/li&gt;
&lt;li&gt;CPU processes instruction&lt;/li&gt;
&lt;li&gt;RAM stores temporary data&lt;/li&gt;
&lt;li&gt;Chrome appears on screen&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Interview Question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What happens if CPU reaches 100% utilization?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Answer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;System becomes slow&lt;/li&gt;
&lt;li&gt;Applications freeze&lt;/li&gt;
&lt;li&gt;Response time increases&lt;/li&gt;
&lt;li&gt;Requests queue up&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Troubleshooting:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;top
htop
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check CPU-consuming processes.&lt;/p&gt;




&lt;h1&gt;
  
  
  4. What is RAM?
&lt;/h1&gt;

&lt;p&gt;RAM = Random Access Memory&lt;/p&gt;

&lt;p&gt;Temporary memory.&lt;/p&gt;

&lt;p&gt;Stores:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Running applications&lt;/li&gt;
&lt;li&gt;Active processes&lt;/li&gt;
&lt;li&gt;Temporary data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;p&gt;When opening:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Chrome&lt;/li&gt;
&lt;li&gt;VS Code&lt;/li&gt;
&lt;li&gt;Slack&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All are loaded into RAM.&lt;/p&gt;

&lt;p&gt;Important:&lt;/p&gt;

&lt;p&gt;RAM is volatile.&lt;/p&gt;

&lt;p&gt;If power is lost:&lt;/p&gt;

&lt;p&gt;RAM data disappears.&lt;/p&gt;

&lt;p&gt;Interview Question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difference between RAM and SSD?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;RAM:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Faster&lt;/li&gt;
&lt;li&gt;Temporary&lt;/li&gt;
&lt;li&gt;Volatile&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;SSD:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Slower than RAM&lt;/li&gt;
&lt;li&gt;Permanent&lt;/li&gt;
&lt;li&gt;Persistent&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  5. What is SSD?
&lt;/h1&gt;

&lt;p&gt;SSD = Solid State Drive&lt;/p&gt;

&lt;p&gt;Permanent storage.&lt;/p&gt;

&lt;p&gt;Stores:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OS&lt;/li&gt;
&lt;li&gt;Applications&lt;/li&gt;
&lt;li&gt;Documents&lt;/li&gt;
&lt;li&gt;Databases&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Advantages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Faster than HDD&lt;/li&gt;
&lt;li&gt;No moving parts&lt;/li&gt;
&lt;li&gt;Better performance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Commands:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;df&lt;/span&gt; &lt;span class="nt"&gt;-h&lt;/span&gt;
lsblk
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  6. What is a Server?
&lt;/h1&gt;

&lt;p&gt;A server is a computer that provides services to other computers.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Web Server&lt;/li&gt;
&lt;li&gt;Database Server&lt;/li&gt;
&lt;li&gt;Mail Server&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;p&gt;User requests:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;www.amazon.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Request reaches server.&lt;/p&gt;

&lt;p&gt;Server returns webpage.&lt;/p&gt;




&lt;h1&gt;
  
  
  7. What is a Virtual Machine?
&lt;/h1&gt;

&lt;p&gt;VM = Virtual Machine&lt;/p&gt;

&lt;p&gt;A software-based computer.&lt;/p&gt;

&lt;p&gt;Runs on physical hardware.&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;p&gt;One physical server:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;64 CPU
256 GB RAM
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Can host:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;VM1
VM2
VM3
VM4
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Isolation&lt;/li&gt;
&lt;li&gt;Cost savings&lt;/li&gt;
&lt;li&gt;Scalability&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;VMware&lt;/li&gt;
&lt;li&gt;VirtualBox&lt;/li&gt;
&lt;li&gt;Hyper-V&lt;/li&gt;
&lt;li&gt;EC2&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  8. What is Linux?
&lt;/h1&gt;

&lt;p&gt;Linux is an operating system.&lt;/p&gt;

&lt;p&gt;Responsibilities:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Process management&lt;/li&gt;
&lt;li&gt;Memory management&lt;/li&gt;
&lt;li&gt;User management&lt;/li&gt;
&lt;li&gt;File system management&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Common Commands:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;pwd
ls
cd
mkdir
rm
cp
mv&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Process Commands:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ps &lt;span class="nt"&gt;-ef&lt;/span&gt;
top
htop
&lt;span class="nb"&gt;kill&lt;/span&gt; &lt;span class="nt"&gt;-9&lt;/span&gt; PID
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Disk Commands:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;df&lt;/span&gt; &lt;span class="nt"&gt;-h&lt;/span&gt;
&lt;span class="nb"&gt;du&lt;/span&gt; &lt;span class="nt"&gt;-sh&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Memory:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;free &lt;span class="nt"&gt;-m&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  9. Linux Troubleshooting
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Server Slow
&lt;/h3&gt;

&lt;p&gt;Check:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;top
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CPU high?&lt;/li&gt;
&lt;li&gt;Memory high?&lt;/li&gt;
&lt;li&gt;Disk full?&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Disk Full
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;df&lt;/span&gt; &lt;span class="nt"&gt;-h&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Find large files:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;du&lt;/span&gt; &lt;span class="nt"&gt;-sh&lt;/span&gt; /&lt;span class="k"&gt;*&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Application Down
&lt;/h3&gt;

&lt;p&gt;Check:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;systemctl status nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Logs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;journalctl &lt;span class="nt"&gt;-xe&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  10. What is Networking?
&lt;/h1&gt;

&lt;p&gt;Networking allows devices to communicate.&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;p&gt;Laptop → Router → Internet → Server&lt;/p&gt;




&lt;h1&gt;
  
  
  11. What is IP Address?
&lt;/h1&gt;

&lt;p&gt;Unique address assigned to device.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;192.168.1.10
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Like a home address.&lt;/p&gt;




&lt;h1&gt;
  
  
  12. What is Router?
&lt;/h1&gt;

&lt;p&gt;Router connects different networks.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Home Network
     |
 Router
     |
Internet
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Functions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Route traffic&lt;/li&gt;
&lt;li&gt;NAT&lt;/li&gt;
&lt;li&gt;Internet connectivity&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  13. What is Switch?
&lt;/h1&gt;

&lt;p&gt;Switch connects devices within same network.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;PC1
PC2
Printer
Server
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;All connected to switch.&lt;/p&gt;

&lt;p&gt;Switch uses MAC addresses.&lt;/p&gt;

&lt;p&gt;Router uses IP addresses.&lt;/p&gt;

&lt;p&gt;Interview Question:&lt;/p&gt;

&lt;p&gt;Router vs Switch?&lt;/p&gt;

&lt;p&gt;Switch:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Same network&lt;/li&gt;
&lt;li&gt;MAC address&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Router:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Different networks&lt;/li&gt;
&lt;li&gt;IP address&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  14. What is Load Balancer?
&lt;/h1&gt;

&lt;p&gt;Distributes traffic across servers.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Users
  |
Load Balancer
 |
 |---- Server1
 |---- Server2
 |---- Server3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;High Availability&lt;/li&gt;
&lt;li&gt;Scalability&lt;/li&gt;
&lt;li&gt;Fault Tolerance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AWS Types:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ALB&lt;/li&gt;
&lt;li&gt;NLB&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  15. What is EC2?
&lt;/h1&gt;

&lt;p&gt;EC2 = Elastic Compute Cloud&lt;/p&gt;

&lt;p&gt;AWS virtual machine service.&lt;/p&gt;

&lt;p&gt;Features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CPU&lt;/li&gt;
&lt;li&gt;RAM&lt;/li&gt;
&lt;li&gt;Storage&lt;/li&gt;
&lt;li&gt;Networking&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Use cases:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Web servers&lt;/li&gt;
&lt;li&gt;Applications&lt;/li&gt;
&lt;li&gt;Databases&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Entity: Amazon Web Services EC2 is one of the core compute services.&lt;/p&gt;




&lt;h1&gt;
  
  
  16. What is EBS?
&lt;/h1&gt;

&lt;p&gt;EBS = Elastic Block Store&lt;/p&gt;

&lt;p&gt;Storage attached to EC2.&lt;/p&gt;

&lt;p&gt;Think:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;EC2 = Computer
EBS = Hard Drive
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Characteristics:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Block storage&lt;/li&gt;
&lt;li&gt;Persistent&lt;/li&gt;
&lt;li&gt;Snapshot support&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Types:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;gp3&lt;/li&gt;
&lt;li&gt;io2&lt;/li&gt;
&lt;li&gt;st1&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Interview:&lt;/p&gt;

&lt;p&gt;Can EBS exist without EC2?&lt;/p&gt;

&lt;p&gt;Yes.&lt;/p&gt;

&lt;p&gt;Volume remains after instance termination if configured.&lt;/p&gt;




&lt;h1&gt;
  
  
  17. What is EFS?
&lt;/h1&gt;

&lt;p&gt;EFS = Elastic File System&lt;/p&gt;

&lt;p&gt;Shared storage.&lt;/p&gt;

&lt;p&gt;Many EC2s can mount same filesystem.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;EC2-1
EC2-2
EC2-3
   |
   EFS
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Shared files&lt;/li&gt;
&lt;li&gt;Web content&lt;/li&gt;
&lt;li&gt;Kubernetes shared storage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Difference:&lt;/p&gt;

&lt;p&gt;EBS:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Single instance typically&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;EFS:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multiple instances&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  18. What is S3?
&lt;/h1&gt;

&lt;p&gt;S3 = Simple Storage Service&lt;/p&gt;

&lt;p&gt;Object storage.&lt;/p&gt;

&lt;p&gt;Stores:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Images&lt;/li&gt;
&lt;li&gt;Videos&lt;/li&gt;
&lt;li&gt;Logs&lt;/li&gt;
&lt;li&gt;Backups&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Highly durable&lt;/li&gt;
&lt;li&gt;Scalable&lt;/li&gt;
&lt;li&gt;Versioning&lt;/li&gt;
&lt;li&gt;Lifecycle Policies&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;p&gt;Store:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;photo.jpg
backup.zip
logs.tar
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;inside bucket.&lt;/p&gt;




&lt;h1&gt;
  
  
  19. What is IAM?
&lt;/h1&gt;

&lt;p&gt;IAM = Identity and Access Management&lt;/p&gt;

&lt;p&gt;Controls permissions.&lt;/p&gt;

&lt;p&gt;Components:&lt;/p&gt;

&lt;h3&gt;
  
  
  IAM User
&lt;/h3&gt;

&lt;p&gt;Permanent identity.&lt;/p&gt;

&lt;h3&gt;
  
  
  IAM Group
&lt;/h3&gt;

&lt;p&gt;Collection of users.&lt;/p&gt;

&lt;h3&gt;
  
  
  IAM Policy
&lt;/h3&gt;

&lt;p&gt;Permissions document.&lt;/p&gt;

&lt;h3&gt;
  
  
  IAM Role
&lt;/h3&gt;

&lt;p&gt;Temporary permissions.&lt;/p&gt;

&lt;p&gt;Interview:&lt;/p&gt;

&lt;p&gt;User vs Role?&lt;/p&gt;

&lt;p&gt;User:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Permanent&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Role:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Temporary&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  20. What is SAML?
&lt;/h1&gt;

&lt;p&gt;SAML = Security Assertion Markup Language&lt;/p&gt;

&lt;p&gt;Used for Single Sign-On (SSO).&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;p&gt;Employee logs into:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Company Portal&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Automatically accesses:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AWS&lt;/li&gt;
&lt;li&gt;Salesforce&lt;/li&gt;
&lt;li&gt;Workday&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;without re-entering password.&lt;/p&gt;

&lt;p&gt;Flow:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User
 |
Identity Provider
 |
AWS
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Okta&lt;/li&gt;
&lt;li&gt;Microsoft Entra ID&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  21. What is OpenID Connect (OIDC)?
&lt;/h1&gt;

&lt;p&gt;Modern authentication protocol.&lt;/p&gt;

&lt;p&gt;Built on OAuth 2.0.&lt;/p&gt;

&lt;p&gt;Used by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Google Login&lt;/li&gt;
&lt;li&gt;GitHub Login&lt;/li&gt;
&lt;li&gt;Microsoft Login&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Login with Google
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Website trusts Google.&lt;/p&gt;

&lt;p&gt;Google verifies identity.&lt;/p&gt;

&lt;p&gt;Website receives token.&lt;/p&gt;

&lt;p&gt;Difference:&lt;/p&gt;

&lt;p&gt;SAML:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;XML&lt;/li&gt;
&lt;li&gt;Enterprise&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;OIDC:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;JSON/JWT&lt;/li&gt;
&lt;li&gt;Modern Cloud Apps&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  22. What is API Gateway?
&lt;/h1&gt;

&lt;p&gt;API Gateway receives API requests.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User
 |
API Gateway
 |
Lambda
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Responsibilities:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Authentication&lt;/li&gt;
&lt;li&gt;Authorization&lt;/li&gt;
&lt;li&gt;Rate limiting&lt;/li&gt;
&lt;li&gt;Routing&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  23. What is Lambda?
&lt;/h1&gt;

&lt;p&gt;Lambda is serverless compute.&lt;/p&gt;

&lt;p&gt;You upload code.&lt;/p&gt;

&lt;p&gt;AWS manages servers.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User Uploads File
      |
      S3
      |
   Lambda
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Lambda executes automatically.&lt;/p&gt;

&lt;p&gt;Benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No server management&lt;/li&gt;
&lt;li&gt;Pay only when used&lt;/li&gt;
&lt;li&gt;Auto scaling&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  24. What is Auto Scaling Group (ASG)?
&lt;/h1&gt;

&lt;p&gt;Automatically adjusts EC2 count.&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;p&gt;Traffic increases:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;2 EC2
→
6 EC2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Traffic decreases:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;6 EC2
→
2 EC2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cost savings&lt;/li&gt;
&lt;li&gt;High availability&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  25. Most Common Troubleshooting Questions
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Website Not Loading
&lt;/h3&gt;

&lt;p&gt;Check:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ping
nslookup
curl
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DNS working?&lt;/li&gt;
&lt;li&gt;Server up?&lt;/li&gt;
&lt;li&gt;Application running?&lt;/li&gt;
&lt;li&gt;Security Group open?&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  EC2 Reachable but Website Not Working
&lt;/h3&gt;

&lt;p&gt;Check:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;systemctl status nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;netstat &lt;span class="nt"&gt;-tulpn&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;or&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ss &lt;span class="nt"&gt;-tulpn&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Verify service listening on port 80.&lt;/p&gt;




&lt;h3&gt;
  
  
  High CPU
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;top
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Find process.&lt;/p&gt;

&lt;p&gt;Possible causes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Infinite loop&lt;/li&gt;
&lt;li&gt;Memory leak&lt;/li&gt;
&lt;li&gt;Too many requests&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  High Memory
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;free &lt;span class="nt"&gt;-m&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ps aux &lt;span class="nt"&gt;--sort&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;-%mem
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Cannot SSH to Server
&lt;/h3&gt;

&lt;p&gt;Verify:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Instance running&lt;/li&gt;
&lt;li&gt;Security Group allows port 22&lt;/li&gt;
&lt;li&gt;Correct key pair&lt;/li&gt;
&lt;li&gt;NACL allows traffic&lt;/li&gt;
&lt;li&gt;Route table correct&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  Internet Not Working
&lt;/h3&gt;

&lt;p&gt;Check:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ping 8.8.8.8
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If works:&lt;/p&gt;

&lt;p&gt;DNS issue.&lt;/p&gt;

&lt;p&gt;Check:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nslookup google.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Most Important Interview Question
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Explain how a user opens a website from browser.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Answer:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;User types URL.&lt;/li&gt;
&lt;li&gt;DNS resolves domain to IP.&lt;/li&gt;
&lt;li&gt;Browser sends request.&lt;/li&gt;
&lt;li&gt;Router forwards traffic.&lt;/li&gt;
&lt;li&gt;Internet routes packet.&lt;/li&gt;
&lt;li&gt;Load Balancer receives request.&lt;/li&gt;
&lt;li&gt;Load Balancer sends request to EC2.&lt;/li&gt;
&lt;li&gt;Application processes request.&lt;/li&gt;
&lt;li&gt;Database returns data.&lt;/li&gt;
&lt;li&gt;EC2 sends response back.&lt;/li&gt;
&lt;li&gt;Browser displays webpage.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This question tests networking, DNS, servers, load balancers, applications, and cloud knowledge all at once.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>This is a strong interview-preparation guide for a DevOps/SRE/Cloud Engineer role.</title>
      <dc:creator>Aisalkyn Aidarova</dc:creator>
      <pubDate>Tue, 23 Jun 2026 00:05:39 +0000</pubDate>
      <link>https://dev.to/jumptotech/this-is-a-strong-interview-preparation-guide-for-a-devopssrecloud-engineer-role-4ho5</link>
      <guid>https://dev.to/jumptotech/this-is-a-strong-interview-preparation-guide-for-a-devopssrecloud-engineer-role-4ho5</guid>
      <description>&lt;h1&gt;
  
  
  1. What is an Operating System (OS)?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Interview Question
&lt;/h3&gt;

&lt;p&gt;What is an Operating System?&lt;/p&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;An Operating System (OS) is software that acts as an interface between users/applications and computer hardware.&lt;/p&gt;

&lt;p&gt;Responsibilities:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Process management&lt;/li&gt;
&lt;li&gt;Memory management&lt;/li&gt;
&lt;li&gt;File system management&lt;/li&gt;
&lt;li&gt;Device management&lt;/li&gt;
&lt;li&gt;Security and permissions&lt;/li&gt;
&lt;li&gt;Networking&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Linux&lt;/li&gt;
&lt;li&gt;Windows&lt;/li&gt;
&lt;li&gt;macOS&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Real Life Example
&lt;/h3&gt;

&lt;p&gt;When you open Chrome:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Chrome requests CPU resources.&lt;/li&gt;
&lt;li&gt;OS allocates RAM.&lt;/li&gt;
&lt;li&gt;OS schedules CPU time.&lt;/li&gt;
&lt;li&gt;OS accesses files from disk.&lt;/li&gt;
&lt;li&gt;OS displays output on screen.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Without an OS, hardware cannot be efficiently utilized.&lt;/p&gt;




&lt;h1&gt;
  
  
  2. What Happens When You Type a Command in Linux?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Example
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;ls&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;User enters command in Shell.&lt;/li&gt;
&lt;li&gt;Shell sends request to Kernel.&lt;/li&gt;
&lt;li&gt;Kernel schedules process.&lt;/li&gt;
&lt;li&gt;CPU executes instructions.&lt;/li&gt;
&lt;li&gt;Output returned to Shell.&lt;/li&gt;
&lt;li&gt;Shell displays result.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Flow:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User
 ↓
Shell
 ↓
Kernel
 ↓
CPU/RAM
 ↓
Output
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  3. What is Linux?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;Linux is an open-source operating system kernel.&lt;/p&gt;

&lt;p&gt;Common distributions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ubuntu&lt;/li&gt;
&lt;li&gt;CentOS&lt;/li&gt;
&lt;li&gt;Red Hat&lt;/li&gt;
&lt;li&gt;Amazon Linux&lt;/li&gt;
&lt;li&gt;Debian&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Why Linux?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Secure&lt;/li&gt;
&lt;li&gt;Stable&lt;/li&gt;
&lt;li&gt;Free&lt;/li&gt;
&lt;li&gt;Highly customizable&lt;/li&gt;
&lt;li&gt;Most cloud servers use Linux&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  4. What is a Kernel?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;Kernel is the core of the operating system.&lt;/p&gt;

&lt;p&gt;Responsibilities:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Process management&lt;/li&gt;
&lt;li&gt;Memory management&lt;/li&gt;
&lt;li&gt;Hardware communication&lt;/li&gt;
&lt;li&gt;Device drivers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;p&gt;Chrome requests memory.&lt;/p&gt;

&lt;p&gt;Kernel decides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How much RAM&lt;/li&gt;
&lt;li&gt;Which CPU core&lt;/li&gt;
&lt;li&gt;What permissions&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  5. What is a Process?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;A process is a running instance of a program.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;firefox
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When Firefox starts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Process ID assigned&lt;/li&gt;
&lt;li&gt;Memory allocated&lt;/li&gt;
&lt;li&gt;CPU assigned&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check processes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ps &lt;span class="nt"&gt;-ef&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;or&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;top
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  6. What is PID?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;PID = Process ID&lt;/p&gt;

&lt;p&gt;Every running process gets a unique number.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ps &lt;span class="nt"&gt;-ef&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;root 1234 nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;1234 is PID.&lt;/p&gt;




&lt;h1&gt;
  
  
  7. What is RAM?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;RAM (Random Access Memory) is temporary memory used by running applications.&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;p&gt;Application running:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stored in RAM&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Server reboot:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;RAM contents disappear&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  8. Difference Between RAM and Disk
&lt;/h1&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;RAM&lt;/th&gt;
&lt;th&gt;Disk&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Temporary&lt;/td&gt;
&lt;td&gt;Permanent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fast&lt;/td&gt;
&lt;td&gt;Slower&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lost after reboot&lt;/td&gt;
&lt;td&gt;Survives reboot&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Running programs&lt;/td&gt;
&lt;td&gt;File storage&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h1&gt;
  
  
  9. What is a File System?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;File System organizes files and directories on storage.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ext4&lt;/li&gt;
&lt;li&gt;xfs&lt;/li&gt;
&lt;li&gt;NTFS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Linux stores everything as files.&lt;/p&gt;




&lt;h1&gt;
  
  
  10. Linux Directory Structure
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Question
&lt;/h3&gt;

&lt;p&gt;Explain Linux file system hierarchy.&lt;/p&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/
├── bin
├── etc
├── home
├── var
├── tmp
├── opt
├── usr
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Important Directories
&lt;/h3&gt;

&lt;h3&gt;
  
  
  /etc
&lt;/h3&gt;

&lt;p&gt;Configuration files&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;/etc/nginx/nginx.conf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  /var
&lt;/h3&gt;

&lt;p&gt;Logs&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;/var/log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  /home
&lt;/h3&gt;

&lt;p&gt;User files&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;/home/ec2-user
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  /tmp
&lt;/h3&gt;

&lt;p&gt;Temporary files&lt;/p&gt;




&lt;h3&gt;
  
  
  /bin
&lt;/h3&gt;

&lt;p&gt;System commands&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;ls
cp
mv&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  11. What is Troubleshooting?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;Troubleshooting is a systematic process of finding and fixing issues.&lt;/p&gt;

&lt;h3&gt;
  
  
  Steps
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Identify problem&lt;/li&gt;
&lt;li&gt;Collect logs&lt;/li&gt;
&lt;li&gt;Verify symptoms&lt;/li&gt;
&lt;li&gt;Find root cause&lt;/li&gt;
&lt;li&gt;Fix issue&lt;/li&gt;
&lt;li&gt;Verify fix&lt;/li&gt;
&lt;/ol&gt;




&lt;h1&gt;
  
  
  12. Website Not Working. How Do You Troubleshoot?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;Step 1&lt;/p&gt;

&lt;p&gt;Check DNS&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nslookup google.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Step 2&lt;/p&gt;

&lt;p&gt;Check connectivity&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ping
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Step 3&lt;/p&gt;

&lt;p&gt;Check port&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;telnet &lt;span class="nb"&gt;hostname &lt;/span&gt;80
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Step 4&lt;/p&gt;

&lt;p&gt;Check service&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;systemctl status nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Step 5&lt;/p&gt;

&lt;p&gt;Check logs&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;journalctl
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;or&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cat&lt;/span&gt; /var/log/nginx/error.log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  13. What is Hardware?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;Physical components of a computer.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CPU&lt;/li&gt;
&lt;li&gt;RAM&lt;/li&gt;
&lt;li&gt;SSD&lt;/li&gt;
&lt;li&gt;Motherboard&lt;/li&gt;
&lt;li&gt;NIC&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  14. What is Software?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;Programs that run on hardware.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Linux&lt;/li&gt;
&lt;li&gt;Windows&lt;/li&gt;
&lt;li&gt;Chrome&lt;/li&gt;
&lt;li&gt;Docker&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  15. CPU vs RAM
&lt;/h1&gt;

&lt;h3&gt;
  
  
  CPU
&lt;/h3&gt;

&lt;p&gt;Brain of computer.&lt;/p&gt;

&lt;p&gt;Executes instructions.&lt;/p&gt;

&lt;h3&gt;
  
  
  RAM
&lt;/h3&gt;

&lt;p&gt;Working memory.&lt;/p&gt;

&lt;p&gt;Stores active data.&lt;/p&gt;




&lt;h1&gt;
  
  
  16. What is a Server?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;A server is a computer that provides services to other computers.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Web Server&lt;/li&gt;
&lt;li&gt;Database Server&lt;/li&gt;
&lt;li&gt;DNS Server&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  17. What is AWS?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Interview Question
&lt;/h3&gt;

&lt;p&gt;What is AWS?&lt;/p&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;AWS stands for Amazon Web Services.&lt;/p&gt;

&lt;p&gt;Cloud platform providing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Compute&lt;/li&gt;
&lt;li&gt;Storage&lt;/li&gt;
&lt;li&gt;Networking&lt;/li&gt;
&lt;li&gt;Databases&lt;/li&gt;
&lt;li&gt;Security&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pay as you go&lt;/li&gt;
&lt;li&gt;Highly available&lt;/li&gt;
&lt;li&gt;Scalable&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  18. What is a Region?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;A Region is a geographical area containing multiple Availability Zones.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;us-east-1&lt;/li&gt;
&lt;li&gt;us-east-2&lt;/li&gt;
&lt;li&gt;eu-west-1&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  19. What is an Availability Zone?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;Availability Zone (AZ) is one or more data centers inside a region.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;us-east-1
├── us-east-1a
├── us-east-1b
├── us-east-1c
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Applications are deployed across multiple AZs for high availability.&lt;/p&gt;




&lt;h1&gt;
  
  
  20. What is EC2?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;EC2 = Elastic Compute Cloud&lt;/p&gt;

&lt;p&gt;Virtual server in AWS.&lt;/p&gt;

&lt;p&gt;Used to run:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Applications&lt;/li&gt;
&lt;li&gt;Databases&lt;/li&gt;
&lt;li&gt;Websites&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;p&gt;Launch Linux EC2.&lt;/p&gt;

&lt;p&gt;SSH into it.&lt;/p&gt;

&lt;p&gt;Install nginx.&lt;/p&gt;

&lt;p&gt;Host website.&lt;/p&gt;




&lt;h1&gt;
  
  
  21. What is EBS?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;EBS = Elastic Block Store&lt;/p&gt;

&lt;p&gt;Persistent storage attached to EC2.&lt;/p&gt;

&lt;p&gt;Like a virtual hard drive.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;EC2
  ↓
EBS Volume
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If EC2 stops:&lt;/p&gt;

&lt;p&gt;Data remains on EBS.&lt;/p&gt;




&lt;h1&gt;
  
  
  22. What is S3?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;S3 = Simple Storage Service&lt;/p&gt;

&lt;p&gt;Object storage.&lt;/p&gt;

&lt;p&gt;Stores:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Images&lt;/li&gt;
&lt;li&gt;Videos&lt;/li&gt;
&lt;li&gt;Backups&lt;/li&gt;
&lt;li&gt;Logs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bucket
 ├─ image.jpg
 ├─ video.mp4
 └─ logs.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Durable&lt;/li&gt;
&lt;li&gt;Scalable&lt;/li&gt;
&lt;li&gt;Cheap&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  23. What is ECS?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;ECS = Elastic Container Service&lt;/p&gt;

&lt;p&gt;AWS container orchestration service.&lt;/p&gt;

&lt;p&gt;Runs Docker containers.&lt;/p&gt;

&lt;h3&gt;
  
  
  Components
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Cluster&lt;/li&gt;
&lt;li&gt;Task Definition&lt;/li&gt;
&lt;li&gt;Service&lt;/li&gt;
&lt;li&gt;Task&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Flow:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Docker Image
     ↓
ECR
     ↓
ECS Task
     ↓
ECS Service
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  24. What is Lambda?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;AWS Lambda is serverless compute.&lt;/p&gt;

&lt;p&gt;You upload code.&lt;/p&gt;

&lt;p&gt;AWS runs it.&lt;/p&gt;

&lt;p&gt;No server management required.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;API Gateway
      ↓
Lambda
      ↓
S3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  25. What is API Gateway?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;API Gateway exposes APIs to users.&lt;/p&gt;

&lt;p&gt;Acts as front door for backend services.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User
 ↓
API Gateway
 ↓
Lambda
 ↓
Database
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Authentication&lt;/li&gt;
&lt;li&gt;Throttling&lt;/li&gt;
&lt;li&gt;Monitoring&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  26. How Do Two Computers Communicate?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;p&gt;Laptop → Google Server&lt;/p&gt;

&lt;p&gt;Step 1&lt;/p&gt;

&lt;p&gt;Laptop gets IP address.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;192.168.1.10
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Step 2&lt;/p&gt;

&lt;p&gt;DNS resolves domain.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;google.com
↓
142.x.x.x
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Step 3&lt;/p&gt;

&lt;p&gt;TCP connection established.&lt;/p&gt;

&lt;p&gt;3-Way Handshake:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SYN
SYN-ACK
ACK
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Step 4&lt;/p&gt;

&lt;p&gt;Data exchanged.&lt;/p&gt;

&lt;p&gt;Step 5&lt;/p&gt;

&lt;p&gt;Response returned.&lt;/p&gt;




&lt;h1&gt;
  
  
  27. Explain OSI Model
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;OSI has 7 layers.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;7 Application
6 Presentation
5 Session
4 Transport
3 Network
2 Data Link
1 Physical
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Layer 7 Application
&lt;/h3&gt;

&lt;p&gt;User applications.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Chrome&lt;/li&gt;
&lt;li&gt;Firefox&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Protocols:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HTTP&lt;/li&gt;
&lt;li&gt;HTTPS&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Layer 6 Presentation
&lt;/h3&gt;

&lt;p&gt;Encryption.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SSL&lt;/li&gt;
&lt;li&gt;TLS&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Layer 5 Session
&lt;/h3&gt;

&lt;p&gt;Maintains communication sessions.&lt;/p&gt;




&lt;h3&gt;
  
  
  Layer 4 Transport
&lt;/h3&gt;

&lt;p&gt;Reliable communication.&lt;/p&gt;

&lt;p&gt;Protocols:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;TCP&lt;/li&gt;
&lt;li&gt;UDP&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Layer 3 Network
&lt;/h3&gt;

&lt;p&gt;Routing.&lt;/p&gt;

&lt;p&gt;Device:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Router&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Protocol:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;IP&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Layer 2 Data Link
&lt;/h3&gt;

&lt;p&gt;MAC addresses.&lt;/p&gt;

&lt;p&gt;Device:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Switch&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Layer 1 Physical
&lt;/h3&gt;

&lt;p&gt;Cables and signals.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fiber&lt;/li&gt;
&lt;li&gt;Ethernet&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  28. Explain TCP 3-Way Handshake
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;Connection establishment:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Client → SYN
Server → SYN-ACK
Client → ACK
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After this, data transfer begins.&lt;/p&gt;




&lt;h1&gt;
  
  
  29. What is DNS?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;DNS converts domain names into IP addresses.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;google.com
↓
142.250.x.x
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nslookup google.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  30. Common Linux Commands Every DevOps Engineer Must Know
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;pwd
ls&lt;/span&gt; &lt;span class="nt"&gt;-la&lt;/span&gt;
&lt;span class="nb"&gt;cd
cp
mv
rm
mkdir
&lt;/span&gt;find
&lt;span class="nb"&gt;grep
cat
&lt;/span&gt;less
&lt;span class="nb"&gt;tail
head
chmod
chown
&lt;/span&gt;ps
top
&lt;span class="nb"&gt;df&lt;/span&gt; &lt;span class="nt"&gt;-h&lt;/span&gt;
&lt;span class="nb"&gt;du&lt;/span&gt; &lt;span class="nt"&gt;-sh&lt;/span&gt;
free &lt;span class="nt"&gt;-m&lt;/span&gt;
netstat
ss
curl
wget
systemctl
journalctl
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These are the foundational interview questions for DevOps, Linux, Cloud, SRE, and AWS roles. A 6-year DevOps interview will often build on these basics and then move into Docker, Kubernetes, Terraform, CI/CD, VPCs, Load Balancers, Auto Scaling, IAM, monitoring, logging, and troubleshooting scenarios.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>interview questions and answers</title>
      <dc:creator>Aisalkyn Aidarova</dc:creator>
      <pubDate>Sat, 20 Jun 2026 00:03:32 +0000</pubDate>
      <link>https://dev.to/jumptotech/interview-questions-and-answers-io3</link>
      <guid>https://dev.to/jumptotech/interview-questions-and-answers-io3</guid>
      <description>&lt;p&gt;If you're interviewing for a Senior DevOps Engineer (5–7 years), you should not only know definitions. You should understand &lt;strong&gt;why the technology exists, what problem it solves, how it works internally, and when to use it.&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  1. What is AWS?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Interview Question
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What is AWS?&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;AWS (Amazon Web Services) is a cloud computing platform provided by &lt;a href="https://aws.amazon.com?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;Amazon Web Services&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Instead of buying physical servers, networking equipment, and storage, companies rent resources from AWS on demand.&lt;/p&gt;

&lt;p&gt;AWS provides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Compute (EC2, Lambda, ECS, EKS)&lt;/li&gt;
&lt;li&gt;Storage (S3, EBS, EFS)&lt;/li&gt;
&lt;li&gt;Networking (VPC, Route53, ELB)&lt;/li&gt;
&lt;li&gt;Databases (RDS, DynamoDB)&lt;/li&gt;
&lt;li&gt;Security (IAM, KMS, Secrets Manager)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Why Companies Use AWS
&lt;/h3&gt;

&lt;p&gt;Traditional Infrastructure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Buy Server
Install OS
Configure Network
Manage Hardware
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;AWS:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Create EC2
Deploy Application
Done
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No hardware management&lt;/li&gt;
&lt;li&gt;High availability&lt;/li&gt;
&lt;li&gt;Pay as you go&lt;/li&gt;
&lt;li&gt;Auto scaling&lt;/li&gt;
&lt;li&gt;Global presence&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  2. What is an Operating System?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Interview Question
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What is an Operating System?&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;An Operating System (OS) is software that sits between hardware and applications.&lt;/p&gt;

&lt;p&gt;Without an OS:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Application
    ↓
Hardware
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Application would need to control:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CPU&lt;/li&gt;
&lt;li&gt;Memory&lt;/li&gt;
&lt;li&gt;Disk&lt;/li&gt;
&lt;li&gt;Network Card&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;directly.&lt;/p&gt;

&lt;p&gt;With OS:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Application
      ↓
Operating System
      ↓
Hardware
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Linux&lt;/li&gt;
&lt;li&gt;Windows&lt;/li&gt;
&lt;li&gt;macOS&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  3. Linux Architecture
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Interview Question
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Explain Linux Architecture.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User
 ↓
Shell
 ↓
Kernel
 ↓
Hardware
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Shell
&lt;/h3&gt;

&lt;p&gt;Interface where users type commands.&lt;/p&gt;

&lt;p&gt;Examples:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;ls
pwd
cd&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Popular shells:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bash&lt;/li&gt;
&lt;li&gt;Zsh&lt;/li&gt;
&lt;li&gt;Sh&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Kernel
&lt;/h3&gt;

&lt;p&gt;Brain of Linux.&lt;/p&gt;

&lt;p&gt;Responsibilities:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CPU scheduling&lt;/li&gt;
&lt;li&gt;Memory management&lt;/li&gt;
&lt;li&gt;Process management&lt;/li&gt;
&lt;li&gt;Device communication&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Hardware
&lt;/h3&gt;

&lt;p&gt;Physical components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CPU&lt;/li&gt;
&lt;li&gt;RAM&lt;/li&gt;
&lt;li&gt;SSD&lt;/li&gt;
&lt;li&gt;Network Card&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  4. Hardware Components
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Interview Question
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Explain major hardware components.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  CPU
&lt;/h3&gt;

&lt;p&gt;Brain of computer.&lt;/p&gt;

&lt;p&gt;Responsible for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Executing instructions&lt;/li&gt;
&lt;li&gt;Running applications&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check CPU:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;lscpu
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  RAM
&lt;/h3&gt;

&lt;p&gt;Temporary memory.&lt;/p&gt;

&lt;p&gt;Stores:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Running processes&lt;/li&gt;
&lt;li&gt;Application data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check RAM:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;free &lt;span class="nt"&gt;-h&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  SSD
&lt;/h3&gt;

&lt;p&gt;Permanent storage.&lt;/p&gt;

&lt;p&gt;Stores:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OS&lt;/li&gt;
&lt;li&gt;Files&lt;/li&gt;
&lt;li&gt;Applications&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check disk:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;df&lt;/span&gt; &lt;span class="nt"&gt;-h&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Network Interface Card (NIC)
&lt;/h3&gt;

&lt;p&gt;Responsible for network communication.&lt;/p&gt;

&lt;p&gt;Check:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ip addr
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  5. Linux Process Management
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Interview Question
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What is a Process?&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;A process is a running program.&lt;/p&gt;

&lt;p&gt;Examples:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nginx
java
python
docker
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;View processes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ps &lt;span class="nt"&gt;-ef&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;or&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;top
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  6. Systemd
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Interview Question
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What is systemd?&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;Systemd is Linux's service manager.&lt;/p&gt;

&lt;p&gt;Used to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Start services&lt;/li&gt;
&lt;li&gt;Stop services&lt;/li&gt;
&lt;li&gt;Restart services&lt;/li&gt;
&lt;li&gt;Manage boot process&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Examples:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;systemctl start nginx
systemctl stop nginx
systemctl restart nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check status:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;systemctl status nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  7. Journalctl
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Interview Question
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;How do you check service logs?&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;journalctl &lt;span class="nt"&gt;-u&lt;/span&gt; nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Last 100 lines:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;journalctl &lt;span class="nt"&gt;-u&lt;/span&gt; nginx &lt;span class="nt"&gt;-n&lt;/span&gt; 100
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Live logs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;journalctl &lt;span class="nt"&gt;-f&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  8. Network Troubleshooting
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Interview Question
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;User cannot access website. How do you troubleshoot?&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: Verify DNS
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nslookup google.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;or&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dig google.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Step 2: Verify Network
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ping google.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Step 3: Verify Route
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;traceroute google.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Step 4: Verify Port
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;telnet website.com 443
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;or&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nc &lt;span class="nt"&gt;-zv&lt;/span&gt; website.com 443
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Step 5: Verify Listening Port
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ss &lt;span class="nt"&gt;-tulnp&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;or&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;netstat &lt;span class="nt"&gt;-tulnp&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Step 6: Check Firewall
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;iptables &lt;span class="nt"&gt;-L&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;or&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ufw status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  9. EC2
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Interview Question
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What is EC2?&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;Amazon EC2 is a virtual machine running inside AWS.&lt;/p&gt;

&lt;p&gt;You choose:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CPU&lt;/li&gt;
&lt;li&gt;RAM&lt;/li&gt;
&lt;li&gt;Disk&lt;/li&gt;
&lt;li&gt;OS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AWS creates server for you.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Ubuntu
4 vCPU
16GB RAM
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  10. EBS
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Interview Question
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What is EBS?&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;Amazon EBS is block storage attached to EC2.&lt;/p&gt;

&lt;p&gt;Think:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;EC2 = Computer
EBS = Hard Drive
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Characteristics:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Persistent&lt;/li&gt;
&lt;li&gt;Attached to one instance&lt;/li&gt;
&lt;li&gt;Fast&lt;/li&gt;
&lt;li&gt;Supports snapshots&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;EC2
 └── EBS Volume (100GB)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  11. EFS
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Interview Question
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What is EFS?&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;Amazon EFS is a shared file system.&lt;/p&gt;

&lt;p&gt;Multiple EC2 servers can mount same storage.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;EC2-1
EC2-2
EC2-3
   ↓
EFS
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Uses NFS protocol on:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Port 2049
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  EBS vs EFS
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;EBS&lt;/th&gt;
&lt;th&gt;EFS&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Shared&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multiple Servers&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Protocol&lt;/td&gt;
&lt;td&gt;Block&lt;/td&gt;
&lt;td&gt;NFS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Use Case&lt;/td&gt;
&lt;td&gt;Database&lt;/td&gt;
&lt;td&gt;Shared Files&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h1&gt;
  
  
  12. S3
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Interview Question
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What is S3?&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;Amazon S3 is object storage.&lt;/p&gt;

&lt;p&gt;Stores:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Images&lt;/li&gt;
&lt;li&gt;Videos&lt;/li&gt;
&lt;li&gt;Backups&lt;/li&gt;
&lt;li&gt;Logs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Structure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Bucket
 ├── image.png
 ├── file.pdf
 └── backup.zip
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Characteristics:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Unlimited storage&lt;/li&gt;
&lt;li&gt;11 nines durability&lt;/li&gt;
&lt;li&gt;Cheap&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Common Use Cases
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Log storage&lt;/li&gt;
&lt;li&gt;Static websites&lt;/li&gt;
&lt;li&gt;Backup storage&lt;/li&gt;
&lt;li&gt;Data lake&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  13. Lambda
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Interview Question
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What is Lambda?&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;AWS Lambda runs code without managing servers.&lt;/p&gt;

&lt;p&gt;Traditional:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;EC2
Install OS
Patch Server
Run Code
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Lambda:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Upload Code
Execute Function
Done
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Triggers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;API Gateway&lt;/li&gt;
&lt;li&gt;S3 Upload&lt;/li&gt;
&lt;li&gt;EventBridge&lt;/li&gt;
&lt;li&gt;SNS&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Example
&lt;/h3&gt;

&lt;p&gt;User uploads file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;S3 Upload
   ↓
Lambda Trigger
   ↓
Resize Image
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  14. API Gateway
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Interview Question
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What is API Gateway?&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;Amazon API Gateway is a front door for APIs.&lt;/p&gt;

&lt;p&gt;Flow:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User
 ↓
API Gateway
 ↓
Lambda
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Responsibilities:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Authentication&lt;/li&gt;
&lt;li&gt;Authorization&lt;/li&gt;
&lt;li&gt;Rate limiting&lt;/li&gt;
&lt;li&gt;Routing&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Example
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;GET /students
POST /students
DELETE /students
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;API Gateway routes requests.&lt;/p&gt;




&lt;h1&gt;
  
  
  15. Application Load Balancer (ALB)
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Interview Question
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What is ALB?&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;Application Load Balancer distributes traffic across multiple servers.&lt;/p&gt;

&lt;p&gt;Without ALB:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;10000 users
      ↓
Single Server
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Server crashes.&lt;/p&gt;




&lt;p&gt;With ALB:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;10000 users
      ↓
ALB
   ↓    ↓
EC2-1 EC2-2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Traffic distributed.&lt;/p&gt;




&lt;h3&gt;
  
  
  Layer
&lt;/h3&gt;

&lt;p&gt;Works at:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;OSI Layer 7
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;HTTP/HTTPS.&lt;/p&gt;




&lt;h3&gt;
  
  
  Supports
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Path routing&lt;/li&gt;
&lt;li&gt;Host routing&lt;/li&gt;
&lt;li&gt;SSL termination&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/api → Backend
/images → Frontend
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  16. Auto Scaling Group (ASG)
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Interview Question
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What is ASG?&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;Amazon EC2 Auto Scaling automatically adds or removes EC2 instances.&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;p&gt;Normal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;2 EC2
CPU 30%
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Traffic spike:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CPU 90%
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ASG launches:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;4 EC2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Traffic drops:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Back to 2 EC2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  ASG + ALB Together
&lt;/h3&gt;

&lt;p&gt;Production architecture:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Users
   ↓
ALB
   ↓
Target Group
   ↓
Auto Scaling Group
   ↓
EC2 Instances
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ALB distributes traffic.&lt;/p&gt;

&lt;p&gt;ASG maintains healthy servers.&lt;/p&gt;




&lt;h1&gt;
  
  
  17. Senior DevOps Scenario Question
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Interview Question
&lt;/h3&gt;

&lt;p&gt;A website is down. How do you troubleshoot?&lt;/p&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Check DNS
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nslookup website.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Check connectivity
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ping website.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Check load balancer health&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;ALB Target Group&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Check EC2
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;systemctl status nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Check logs
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;journalctl &lt;span class="nt"&gt;-u&lt;/span&gt; nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Check disk
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;df&lt;/span&gt; &lt;span class="nt"&gt;-h&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Check memory
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;free &lt;span class="nt"&gt;-h&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Check CPU
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;top
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Check listening ports
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ss &lt;span class="nt"&gt;-tulnp&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Check security groups and NACLs.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This step-by-step troubleshooting approach is what interviewers expect from a DevOps engineer with several years of experience.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>interview questions</title>
      <dc:creator>Aisalkyn Aidarova</dc:creator>
      <pubDate>Fri, 19 Jun 2026 00:03:18 +0000</pubDate>
      <link>https://dev.to/jumptotech/interview-questions-171</link>
      <guid>https://dev.to/jumptotech/interview-questions-171</guid>
      <description>&lt;p&gt;This is a very large topic. For a DevOps/SRE interview, these are the most common questions with answers and explanations.&lt;/p&gt;

&lt;h1&gt;
  
  
  1. What is an Operating System (OS)?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;An Operating System is software that manages hardware resources and provides services for applications.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Linux&lt;/li&gt;
&lt;li&gt;Windows&lt;/li&gt;
&lt;li&gt;macOS&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Responsibilities
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Process management&lt;/li&gt;
&lt;li&gt;Memory management&lt;/li&gt;
&lt;li&gt;File management&lt;/li&gt;
&lt;li&gt;User management&lt;/li&gt;
&lt;li&gt;Network management&lt;/li&gt;
&lt;li&gt;Device management&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Real Example
&lt;/h3&gt;

&lt;p&gt;When you open Chrome:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;OS allocates RAM.&lt;/li&gt;
&lt;li&gt;OS schedules CPU.&lt;/li&gt;
&lt;li&gt;OS accesses files from disk.&lt;/li&gt;
&lt;li&gt;OS handles network traffic.&lt;/li&gt;
&lt;/ol&gt;




&lt;h1&gt;
  
  
  2. What are the main Linux Components?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;Linux consists of:&lt;/p&gt;

&lt;h3&gt;
  
  
  Kernel
&lt;/h3&gt;

&lt;p&gt;Core of Linux.&lt;/p&gt;

&lt;p&gt;Responsible for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CPU scheduling&lt;/li&gt;
&lt;li&gt;Memory management&lt;/li&gt;
&lt;li&gt;Device drivers&lt;/li&gt;
&lt;li&gt;Networking&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Shell
&lt;/h3&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bash&lt;/li&gt;
&lt;li&gt;Zsh&lt;/li&gt;
&lt;li&gt;Sh&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Responsible for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Executing commands&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  File System
&lt;/h3&gt;

&lt;p&gt;Stores:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Files&lt;/li&gt;
&lt;li&gt;Directories&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  System Libraries
&lt;/h3&gt;

&lt;p&gt;Allow applications to communicate with the kernel.&lt;/p&gt;

&lt;h3&gt;
  
  
  User Space Applications
&lt;/h3&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;nginx&lt;/li&gt;
&lt;li&gt;docker&lt;/li&gt;
&lt;li&gt;kubectl&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  3. Explain Linux Boot Process
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;BIOS/UEFI starts&lt;/li&gt;
&lt;li&gt;GRUB bootloader loads&lt;/li&gt;
&lt;li&gt;Linux kernel loads&lt;/li&gt;
&lt;li&gt;systemd starts&lt;/li&gt;
&lt;li&gt;Services start&lt;/li&gt;
&lt;li&gt;Login prompt appears&lt;/li&gt;
&lt;/ol&gt;




&lt;h1&gt;
  
  
  4. What is CPU?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;CPU = Central Processing Unit&lt;/p&gt;

&lt;p&gt;It executes instructions.&lt;/p&gt;

&lt;p&gt;Think of CPU as the brain of the computer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Responsibilities
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Calculations&lt;/li&gt;
&lt;li&gt;Running applications&lt;/li&gt;
&lt;li&gt;Scheduling processes&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Check CPU
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;lscpu
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;top
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;htop
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  5. What is RAM?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;RAM = Random Access Memory&lt;/p&gt;

&lt;p&gt;Temporary storage used by running applications.&lt;/p&gt;

&lt;h3&gt;
  
  
  Example
&lt;/h3&gt;

&lt;p&gt;Application running:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CPU processes data&lt;/li&gt;
&lt;li&gt;RAM stores active data&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Check RAM
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;free &lt;span class="nt"&gt;-h&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;top
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;vmstat
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  6. Difference Between RAM and Disk
&lt;/h1&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;RAM&lt;/th&gt;
&lt;th&gt;Disk&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Temporary&lt;/td&gt;
&lt;td&gt;Permanent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Faster&lt;/td&gt;
&lt;td&gt;Slower&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lost after reboot&lt;/td&gt;
&lt;td&gt;Saved after reboot&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h1&gt;
  
  
  7. What is a Process?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;A process is a running program.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ps &lt;span class="nt"&gt;-ef&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Show all processes.&lt;/p&gt;




&lt;h1&gt;
  
  
  8. What is a Thread?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;A thread is a lightweight execution unit inside a process.&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;p&gt;Google Chrome:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One process&lt;/li&gt;
&lt;li&gt;Many threads&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  9. Linux Directory Structure
&lt;/h1&gt;

&lt;h3&gt;
  
  
  What is / ?
&lt;/h3&gt;

&lt;p&gt;Root directory.&lt;/p&gt;

&lt;h3&gt;
  
  
  Important Directories
&lt;/h3&gt;

&lt;h3&gt;
  
  
  /etc
&lt;/h3&gt;

&lt;p&gt;Configuration files&lt;/p&gt;

&lt;p&gt;Examples:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;/etc/passwd
/etc/hosts
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  /var
&lt;/h3&gt;

&lt;p&gt;Logs&lt;/p&gt;

&lt;p&gt;Examples:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;/var/log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  /home
&lt;/h3&gt;

&lt;p&gt;User files&lt;/p&gt;




&lt;h3&gt;
  
  
  /tmp
&lt;/h3&gt;

&lt;p&gt;Temporary files&lt;/p&gt;




&lt;h3&gt;
  
  
  /bin
&lt;/h3&gt;

&lt;p&gt;Basic commands&lt;/p&gt;




&lt;h3&gt;
  
  
  /usr
&lt;/h3&gt;

&lt;p&gt;Installed applications&lt;/p&gt;




&lt;h3&gt;
  
  
  /opt
&lt;/h3&gt;

&lt;p&gt;Third-party applications&lt;/p&gt;




&lt;h3&gt;
  
  
  /dev
&lt;/h3&gt;

&lt;p&gt;Devices&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;/dev/sda
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  /proc
&lt;/h3&gt;

&lt;p&gt;Kernel information&lt;/p&gt;




&lt;h1&gt;
  
  
  10. What is a File?
&lt;/h1&gt;

&lt;p&gt;Everything in Linux is treated as a file.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Regular file&lt;/li&gt;
&lt;li&gt;Directory&lt;/li&gt;
&lt;li&gt;Device&lt;/li&gt;
&lt;li&gt;Socket&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;ls&lt;/span&gt; &lt;span class="nt"&gt;-l&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  11. File Permissions
&lt;/h1&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nt"&gt;-rwxr-xr-x&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Meaning
&lt;/h3&gt;

&lt;p&gt;Owner:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;rwx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Group:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;r-x
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Others:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;r-x
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Change permissions
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;chmod &lt;/span&gt;755 file
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  12. Network Troubleshooting Questions
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Check IP
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ip a
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Check Routing
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ip route
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Check DNS
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nslookup google.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;or&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dig google.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Check Connectivity
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ping google.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Check Port
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nc &lt;span class="nt"&gt;-zv&lt;/span&gt; host 443
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Check Open Connections
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ss &lt;span class="nt"&gt;-tulpn&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Trace Network Path
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;traceroute google.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  13. What is DNS?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;DNS converts:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;google.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;to&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;142.250.x.x
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Without DNS you would need to remember IP addresses.&lt;/p&gt;




&lt;h1&gt;
  
  
  14. TCP vs UDP
&lt;/h1&gt;

&lt;h3&gt;
  
  
  TCP
&lt;/h3&gt;

&lt;p&gt;Reliable&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HTTPS&lt;/li&gt;
&lt;li&gt;SSH&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  UDP
&lt;/h3&gt;

&lt;p&gt;Faster&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DNS&lt;/li&gt;
&lt;li&gt;Video streaming&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  15. What is AWS?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;Amazon Web Services is a cloud platform that provides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Compute&lt;/li&gt;
&lt;li&gt;Storage&lt;/li&gt;
&lt;li&gt;Networking&lt;/li&gt;
&lt;li&gt;Security&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pay only for what you use.&lt;/p&gt;




&lt;h1&gt;
  
  
  16. What is EC2?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;Amazon EC2 is a virtual machine in AWS.&lt;/p&gt;

&lt;p&gt;Used for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Applications&lt;/li&gt;
&lt;li&gt;Databases&lt;/li&gt;
&lt;li&gt;Containers&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  17. What is Elastic IP?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;Static public IP address.&lt;/p&gt;

&lt;p&gt;Used when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Public IP must not change.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bastion host&lt;/li&gt;
&lt;li&gt;Web server&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  18. What is EBS?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;Amazon EBS = Block Storage&lt;/p&gt;

&lt;p&gt;Think:&lt;/p&gt;

&lt;p&gt;Virtual hard drive attached to EC2.&lt;/p&gt;

&lt;h3&gt;
  
  
  Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Persistent&lt;/li&gt;
&lt;li&gt;Fast&lt;/li&gt;
&lt;li&gt;Single AZ&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  19. What is EFS?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;Amazon EFS = Shared File System&lt;/p&gt;

&lt;p&gt;Many EC2 instances can mount the same storage.&lt;/p&gt;

&lt;h3&gt;
  
  
  Uses
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Shared application files&lt;/li&gt;
&lt;li&gt;Kubernetes persistent storage&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  20. EBS vs EFS
&lt;/h1&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;EBS&lt;/th&gt;
&lt;th&gt;EFS&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Block Storage&lt;/td&gt;
&lt;td&gt;File Storage&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;One EC2&lt;/td&gt;
&lt;td&gt;Many EC2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Single AZ&lt;/td&gt;
&lt;td&gt;Multi-AZ&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Faster&lt;/td&gt;
&lt;td&gt;Shared&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h1&gt;
  
  
  21. What is S3?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;Amazon S3&lt;/p&gt;

&lt;p&gt;Stores:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Images&lt;/li&gt;
&lt;li&gt;Videos&lt;/li&gt;
&lt;li&gt;Backups&lt;/li&gt;
&lt;li&gt;Logs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Unlimited scale.&lt;/p&gt;




&lt;h1&gt;
  
  
  22. What is CloudFront?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;Amazon CloudFront&lt;/p&gt;

&lt;p&gt;CDN service.&lt;/p&gt;

&lt;p&gt;Caches content close to users.&lt;/p&gt;

&lt;h3&gt;
  
  
  Benefits
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Faster websites&lt;/li&gt;
&lt;li&gt;Lower latency&lt;/li&gt;
&lt;li&gt;DDoS protection&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  23. What is Load Balancer?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;Distributes traffic among servers.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1000 users
      |
     ALB
   /     \
EC2     EC2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  24. What is ALB?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;Application Load Balancer&lt;/p&gt;

&lt;p&gt;Works at:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HTTP&lt;/li&gt;
&lt;li&gt;HTTPS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Can route:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/app
/api
/images
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;to different targets.&lt;/p&gt;




&lt;h1&gt;
  
  
  25. What is NLB?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;Network Load Balancer&lt;/p&gt;

&lt;p&gt;Works at:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;TCP&lt;/li&gt;
&lt;li&gt;UDP&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Used for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;High performance&lt;/li&gt;
&lt;li&gt;Millions of requests&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  26. ALB vs NLB
&lt;/h1&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;ALB&lt;/th&gt;
&lt;th&gt;NLB&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Layer 7&lt;/td&gt;
&lt;td&gt;Layer 4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HTTP/HTTPS&lt;/td&gt;
&lt;td&gt;TCP/UDP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Path Routing&lt;/td&gt;
&lt;td&gt;No Path Routing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Web Apps&lt;/td&gt;
&lt;td&gt;High-performance apps&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h1&gt;
  
  
  27. What is Auto Scaling Group?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;Automatically adds or removes EC2 instances.&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;p&gt;CPU &amp;gt; 70%&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;2 EC2 → 4 EC2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Traffic decreases:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;4 EC2 → 2 EC2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  28. What is Reserved Instance?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;Commit for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1 year&lt;/li&gt;
&lt;li&gt;3 years&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Receive large discount.&lt;/p&gt;

&lt;p&gt;Used for predictable workloads.&lt;/p&gt;




&lt;h1&gt;
  
  
  29. What is Spot Instance?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;Unused AWS capacity.&lt;/p&gt;

&lt;p&gt;Up to 90% cheaper.&lt;/p&gt;

&lt;p&gt;Can be terminated anytime.&lt;/p&gt;

&lt;p&gt;Best for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Batch jobs&lt;/li&gt;
&lt;li&gt;CI/CD&lt;/li&gt;
&lt;li&gt;Testing&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  30. What is Dedicated Host?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;Physical server dedicated only to one customer.&lt;/p&gt;

&lt;p&gt;No other AWS customers share that hardware.&lt;/p&gt;

&lt;p&gt;Used for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Compliance&lt;/li&gt;
&lt;li&gt;Licensing requirements&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  31. What is Security Group?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;Virtual firewall for EC2.&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;p&gt;Allow:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;22 SSH
80 HTTP
443 HTTPS
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Deny everything else.&lt;/p&gt;




&lt;h1&gt;
  
  
  32. What is VPC?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;Virtual network in AWS.&lt;/p&gt;

&lt;p&gt;Contains:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Subnets&lt;/li&gt;
&lt;li&gt;Route tables&lt;/li&gt;
&lt;li&gt;Security groups&lt;/li&gt;
&lt;li&gt;EC2&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  33. What is NAT Gateway?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;Allows private instances to access internet.&lt;/p&gt;

&lt;p&gt;Internet cannot initiate connections to them.&lt;/p&gt;




&lt;h1&gt;
  
  
  34. What is Route Table?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;Network map telling traffic where to go.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;0.0.0.0/0
→ Internet Gateway
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  35. What is Internet Gateway?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;Allows public subnet resources to access internet.&lt;/p&gt;




&lt;h1&gt;
  
  
  36. Production Troubleshooting Question
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Interviewer:
&lt;/h3&gt;

&lt;p&gt;Application is down. What do you check?&lt;/p&gt;

&lt;h3&gt;
  
  
  Answer
&lt;/h3&gt;

&lt;p&gt;Step 1&lt;/p&gt;

&lt;p&gt;Check DNS&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nslookup app.company.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Step 2&lt;/p&gt;

&lt;p&gt;Check Load Balancer&lt;/p&gt;

&lt;p&gt;Target healthy?&lt;/p&gt;

&lt;p&gt;Step 3&lt;/p&gt;

&lt;p&gt;Check EC2&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;systemctl status nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Step 4&lt;/p&gt;

&lt;p&gt;Check Ports&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ss &lt;span class="nt"&gt;-tulpn&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Step 5&lt;/p&gt;

&lt;p&gt;Check Logs&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;journalctl &lt;span class="nt"&gt;-xe&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;tail&lt;/span&gt; &lt;span class="nt"&gt;-f&lt;/span&gt; /var/log/nginx/error.log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Step 6&lt;/p&gt;

&lt;p&gt;Check Resources&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;top
free &lt;span class="nt"&gt;-h&lt;/span&gt;
&lt;span class="nb"&gt;df&lt;/span&gt; &lt;span class="nt"&gt;-h&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Step 7&lt;/p&gt;

&lt;p&gt;Check Network&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ping
curl
traceroute
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  37. Top Linux Commands Every DevOps Engineer Must Know
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;pwd
ls
cd
mkdir
rm
cp
mv
cat
&lt;/span&gt;less
&lt;span class="nb"&gt;head
tail
grep
&lt;/span&gt;find
&lt;span class="nb"&gt;chmod
chown
&lt;/span&gt;ps
top
htop
&lt;span class="nb"&gt;kill
df&lt;/span&gt; &lt;span class="nt"&gt;-h&lt;/span&gt;
&lt;span class="nb"&gt;du&lt;/span&gt; &lt;span class="nt"&gt;-sh&lt;/span&gt;
free &lt;span class="nt"&gt;-h&lt;/span&gt;
ip a
ip route
ping
curl
wget
dig
nslookup
systemctl
journalctl
ssh
scp
&lt;span class="nb"&gt;tar
gzip
&lt;/span&gt;unzip
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These cover roughly 80–90% of the Linux, AWS, networking, and troubleshooting questions commonly asked in DevOps, SRE, Platform Engineer, and Cloud Engineer interviews.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
