9 min read
Day 03: Networking, SSH, SCP, curl, wget – নেটওয়ার্কিং ও রিমোট এক্সেস ফান্ডামেন্টাল

Networking and SSH

নেটওয়ার্কিং কি এবং কেন গুরুত্বপূর্ণ?

নেটওয়ার্কিং হলো সার্ভার, সার্ভিস এবং ইউজারদের মধ্যে যোগাযোগের মূল ভিত্তি। একজন DevOps ইঞ্জিনিয়ার হিসেবে আপনাকে প্রতিদিন রিমোট সার্ভারে কাজ করতে হবে, ফাইল ট্রান্সফার করতে হবে, এবং নেটওয়ার্ক সমস্যা সমাধান করতে হবে।

বাস্তব উদাহরণ: ধরুন আপনি AWS-এ একটি সার্ভার চালু করেছেন। এখন সেই সার্ভারে কোড ডেপ্লয় করতে হবে, লগ ফাইল দেখতে হবে, এবং অ্যাপ্লিকেশন চালু আছে কিনা চেক করতে হবে। এসব কাজের জন্য নেটওয়ার্কিং টুলস জানা অপরিহার্য।


মূল নেটওয়ার্কিং কনসেপ্ট

১. IP Address (আইপি অ্যাড্রেস)

IP Address হলো নেটওয়ার্কে প্রতিটি ডিভাইসের ইউনিক পরিচয়। ঠিক যেমন আপনার বাড়ির একটি ঠিকানা আছে, তেমনি প্রতিটি কম্পিউটার বা সার্ভারের একটি IP Address থাকে।

IPv4 ফরম্যাট: 192.168.1.10

  • চারটি সংখ্যা ডট (.) দিয়ে আলাদা
  • প্রতিটি সংখ্যা 0 থেকে 255 পর্যন্ত হতে পারে
  • মোট ৩২ বিট (৪ বাইট)

উদাহরণ:

# আপনার কম্পিউটারের IP দেখতে
ip addr show
# অথবা
ifconfig

২. DNS (Domain Name System)

DNS হলো ইন্টারনেটের ফোনবুক। এটি ডোমেইন নেম (যেমন: google.com) কে IP অ্যাড্রেসে রূপান্তর করে।

কেন প্রয়োজন? মানুষের পক্ষে 142.250.190.14 মনে রাখার চেয়ে google.com মনে রাখা সহজ।

উদাহরণ:

# DNS রেকর্ড চেক করা
nslookup google.com
dig google.com

# আউটপুট দেখাবে:
# google.com → 142.250.190.14

৩. Port (পোর্ট)

পোর্ট হলো একটি নাম্বার যা নির্দিষ্ট অ্যাপ্লিকেশন চিহ্নিত করে। একটি সার্ভারে অনেক অ্যাপ্লিকেশন চলতে পারে, পোর্ট দিয়ে বোঝা যায় কোন অ্যাপ্লিকেশনে যেতে হবে।

উদাহরণ:

  • 192.168.1.10:22 → SSH সার্ভিস
  • 192.168.1.10:80 → HTTP ওয়েব সার্ভার
  • 192.168.1.10:3306 → MySQL ডাটাবেস

কমন পোর্ট লিস্ট:

সার্ভিসপোর্টব্যবহার
SSH22রিমোট সার্ভার এক্সেস
HTTP80ওয়েবসাইট (আনএনক্রিপ্টেড)
HTTPS443ওয়েবসাইট (এনক্রিপ্টেড)
MySQL3306ডাটাবেস
PostgreSQL5432ডাটাবেস
MongoDB27017NoSQL ডাটাবেস
Jenkins8080CI/CD টুল
Grafana3000মনিটরিং ড্যাশবোর্ড

৪. Ping এবং Traceroute

Ping: নেটওয়ার্ক কানেক্টিভিটি টেস্ট করার টুল।

# গুগল সার্ভার রিচেবল কিনা চেক করা
ping google.com

# আউটপুট:
# PING google.com (142.250.190.14): 56 data bytes
# 64 bytes from 142.250.190.14: icmp_seq=0 ttl=117 time=10.2 ms

Traceroute: প্যাকেট কোন কোন রাউটার দিয়ে যাচ্ছে তা দেখা।

# ইনস্টল করা (যদি না থাকে)
sudo apt install traceroute

# ব্যবহার
traceroute google.com

SSH (Secure Shell) – রিমোট সার্ভার এক্সেস

SSH হলো সবচেয়ে গুরুত্বপূর্ণ টুল যা দিয়ে আপনি নিরাপদে রিমোট সার্ভারে লগইন করতে পারবেন এবং কমান্ড রান করতে পারবেন।

SSH কেন ব্যবহার করবেন?

  • সিকিউর: সব ডেটা এনক্রিপ্টেড থাকে
  • রিমোট এক্সেস: যেকোনো জায়গা থেকে সার্ভার কন্ট্রোল করা যায়
  • অটোমেশন: স্ক্রিপ্ট দিয়ে অটোমেটিক কাজ করা যায়

SSH Key তৈরি করা

Password দিয়ে লগইন করার চেয়ে SSH Key অনেক বেশি নিরাপদ।

# SSH Key তৈরি করা
ssh-keygen -t rsa -b 4096 -C "rokib@example.com"

# নির্দিষ্ট নাম দিয়ে তৈরি করা
ssh-keygen -t rsa -f ~/.ssh/rokib_key

কী ফাইলের লোকেশন:

  • Private Key: ~/.ssh/id_rsa (এটি কখনো কাউকে দেবেন না)
  • Public Key: ~/.ssh/id_rsa.pub (এটি সার্ভারে কপি করতে হবে)

পাবলিক কী সার্ভারে কপি করা

পদ্ধতি ১: অটোমেটিক (সহজ)

# সার্ভারে পাবলিক কী পাঠানো
ssh-copy-id rokib@192.168.1.100

# নির্দিষ্ট কী ফাইল দিয়ে
ssh-copy-id -i ~/.ssh/rokib_key.pub rokib@192.168.1.100

পদ্ধতি ২: ম্যানুয়াল

# ১. পাবলিক কী কপি করুন
cat ~/.ssh/id_rsa.pub

# ২. সার্ভারে লগইন করুন
ssh rokib@192.168.1.100

# ৩. authorized_keys ফাইলে পেস্ট করুন
echo "আপনার-পাবলিক-কী" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

SSH দিয়ে সার্ভারে কানেক্ট করা

# বেসিক লগইন
ssh rokib@192.168.1.100

# AWS EC2 ইনস্ট্যান্সে লগইন
ssh -i ~/.ssh/my-key.pem ubuntu@54.210.12.34

# নির্দিষ্ট পোর্ট দিয়ে লগইন
ssh -p 2222 rokib@192.168.1.100

# রিমোট কমান্ড রান করা (লগইন ছাড়াই)
ssh rokib@192.168.1.100 "ls -la /var/www"

প্রো টিপ: SSH Config ফাইল ব্যবহার করে শর্টকাট তৈরি করুন:

# ~/.ssh/config ফাইলে যোগ করুন
Host myserver
    HostName 192.168.1.100
    User rokib
    IdentityFile ~/.ssh/rokib_key
    Port 22

# এখন শুধু এটি লিখলেই হবে:
ssh myserver

SCP (Secure Copy Protocol) – ফাইল ট্রান্সফার

SCP দিয়ে আপনি SSH-এর মাধ্যমে নিরাপদে ফাইল কপি করতে পারবেন।

লোকাল থেকে রিমোট সার্ভারে ফাইল পাঠানো

# একটি ফাইল পাঠানো
scp myapp.zip rokib@192.168.1.100:/home/rokib/

# SSH কী দিয়ে ফাইল পাঠানো
scp -i ~/.ssh/my-key.pem app.tar.gz ubuntu@54.210.12.34:/home/ubuntu/

# পুরো ফোল্ডার পাঠানো (-r = recursive)
scp -r /local/project rokib@192.168.1.100:/home/rokib/projects/

রিমোট সার্ভার থেকে লোকালে ফাইল আনা

# একটি ফাইল ডাউনলোড করা
scp rokib@192.168.1.100:/var/log/app.log .

# পুরো ফোল্ডার ডাউনলোড করা
scp -r rokib@192.168.1.100:/home/rokib/backups ./local-backups/

# AWS থেকে ডাউনলোড
scp -i ~/.ssh/my-key.pem ubuntu@54.210.12.34:/home/ubuntu/data.sql .

বাস্তব উদাহরণ: ডেপ্লয়মেন্ট

# ১. লোকালে কোড বিল্ড করুন
npm run build
tar -czf dist.tar.gz dist/

# ২. সার্ভারে পাঠান
scp dist.tar.gz rokib@192.168.1.100:/var/www/

# ৩. সার্ভারে আনজিপ করুন
ssh rokib@192.168.1.100 "cd /var/www && tar -xzf dist.tar.gz"

curl – API টেস্টিং এবং HTTP রিকোয়েস্ট

curl হলো একটি শক্তিশালী টুল যা দিয়ে HTTP/HTTPS রিকোয়েস্ট পাঠানো যায়। API টেস্টিং এবং ডিবাগিং-এর জন্য অপরিহার্য।

GET রিকোয়েস্ট

# সিম্পল GET রিকোয়েস্ট
curl https://jsonplaceholder.typicode.com/posts/1

# শুধু HTTP হেডার দেখা
curl -I https://google.com

# রেসপন্স সুন্দরভাবে ফরম্যাট করা (jq দিয়ে)
curl https://api.github.com/users/rokib | jq

POST রিকোয়েস্ট

# JSON ডেটা পাঠানো
curl -X POST https://api.example.com/users \
  -H "Content-Type: application/json" \
  -d '{"name":"Rokib","email":"rokib@example.com"}'

# ফাইল আপলোড করা
curl -X POST -F "file=@document.pdf" \
  https://api.example.com/upload

Authentication সহ রিকোয়েস্ট

# Bearer Token দিয়ে
curl -H "Authorization: Bearer YOUR_TOKEN" \
  https://api.github.com/user

# Basic Auth দিয়ে
curl -u username:password https://api.example.com/data

বাস্তব উদাহরণ: API Health Check

# সার্ভার চালু আছে কিনা চেক করা
curl http://localhost:3000/health

# রেসপন্স টাইম মাপা
curl -w "@curl-format.txt" -o /dev/null -s http://api.example.com

# curl-format.txt ফাইলে লিখুন:
# time_total: %{time_total}s

wget – ফাইল ডাউনলোড টুল

wget দিয়ে ইন্টারনেট থেকে ফাইল ডাউনলোড করা যায়। বড় ফাইল বা পুরো ওয়েবসাইট ডাউনলোড করার জন্য উপযুক্ত।

বেসিক ডাউনলোড

# ফাইল ডাউনলোড করা
wget https://example.com/file.zip

# নির্দিষ্ট নাম দিয়ে সেভ করা
wget -O myfile.zip https://example.com/download.zip

# ব্যাকগ্রাউন্ডে ডাউনলোড করা
wget -b https://example.com/largefile.iso

ডাউনলোড রিজিউম করা

# ইন্টারাপ্টেড ডাউনলোড চালু রাখা
wget -c https://example.com/ubuntu-22.04.iso

বাস্তব উদাহরণ: সফটওয়্যার ইনস্টল

# Node.js ডাউনলোড করা
wget https://nodejs.org/dist/v18.16.0/node-v18.16.0-linux-x64.tar.xz

# আনজিপ করা
tar -xf node-v18.16.0-linux-x64.tar.xz

# Maven ডাউনলোড করা
wget https://dlcdn.apache.org/maven/maven-3/3.9.11/binaries/apache-maven-3.9.11-bin.tar.gz

সম্পূর্ণ DevOps ওয়ার্কফ্লো উদাহরণ

ধরুন আপনি একটি Node.js অ্যাপ্লিকেশন AWS EC2-তে ডেপ্লয় করবেন:

ধাপ ১: SSH Key সেটআপ

# লোকাল মেশিনে SSH Key তৈরি করুন
ssh-keygen -t rsa -f ~/.ssh/aws-rokib-key

# পাবলিক কী AWS-তে আপলোড করুন (EC2 Console থেকে)

ধাপ ২: EC2 ইনস্ট্যান্সে কানেক্ট

# SSH দিয়ে লগইন
ssh -i ~/.ssh/aws-rokib-key.pem ubuntu@54.210.12.34

# সার্ভার আপডেট করুন
sudo apt update && sudo apt upgrade -y

ধাপ ৩: Node.js ইনস্টল করুন

# wget দিয়ে Node.js ডাউনলোড
wget https://nodejs.org/dist/v18.16.0/node-v18.16.0-linux-x64.tar.xz

# আনজিপ এবং ইনস্টল
tar -xf node-v18.16.0-linux-x64.tar.xz
sudo mv node-v18.16.0-linux-x64 /usr/local/nodejs
echo 'export PATH=/usr/local/nodejs/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

ধাপ ৪: অ্যাপ্লিকেশন ডেপ্লয়

# লোকাল মেশিনে কোড বিল্ড করুন
npm run build
tar -czf app.tar.gz dist/ package.json

# SCP দিয়ে সার্ভারে পাঠান
scp -i ~/.ssh/aws-rokib-key.pem app.tar.gz ubuntu@54.210.12.34:/home/ubuntu/

# সার্ভারে আনজিপ এবং রান করুন
ssh -i ~/.ssh/aws-rokib-key.pem ubuntu@54.210.12.34 << 'EOF'
  cd /home/ubuntu
  tar -xzf app.tar.gz
  npm install --production
  pm2 start dist/server.js
EOF

ধাপ ৫: হেলথ চেক

# curl দিয়ে API টেস্ট করুন
curl http://54.210.12.34:3000/health

# রেসপন্স দেখাবে:
# {"status":"ok","uptime":1234}

ধাপ ৬: ট্রাবলশুটিং

# নেটওয়ার্ক কানেক্টিভিটি চেক
ping 54.210.12.34

# রুট ট্রেস করা
traceroute 54.210.12.34

# লগ দেখা
ssh -i ~/.ssh/aws-rokib-key.pem ubuntu@54.210.12.34 "tail -f /var/log/app.log"

নেটওয়ার্কিং অ্যাডভান্সড কনসেপ্ট

IP Address বিস্তারিত

IPv4 স্ট্রাকচার: একটি IPv4 অ্যাড্রেস ৩২ বিটের হয়, যা ৪টি অক্টেট (বাইট) এ ভাগ করা থাকে।

192.168.1.10
└─┬─┘ └─┬─┘ └┬┘ └┬┘
  │     │    │   │
  │     │    │   └─ 4th octet (0-255)
  │     │    └───── 3rd octet (0-255)
  │     └────────── 2nd octet (0-255)
  └──────────────── 1st octet (0-255)

কেন 0-255? কারণ ১ বাইট = ৮ বিট, এবং 2^8 = 256 (0 থেকে 255)

IP Address এর প্রকারভেদ:

  1. Private IP (প্রাইভেট আইপি):

    • 10.0.0.0 থেকে 10.255.255.255 (Class A)
    • 172.16.0.0 থেকে 172.31.255.255 (Class B)
    • 192.168.0.0 থেকে 192.168.255.255 (Class C)
    • ইন্টারনেটে রাউট হয় না, শুধু লোকাল নেটওয়ার্কে ব্যবহার হয়
  2. Public IP (পাবলিক আইপি):

    • ইন্টারনেটে ইউনিক অ্যাড্রেস
    • ISP থেকে পাওয়া যায়
    • উদাহরণ: 8.8.8.8 (Google DNS)

Subnet এবং Subnetting

Subnet কি? বড় নেটওয়ার্ককে ছোট ছোট অংশে ভাগ করাকে Subnetting বলে।

কেন Subnetting প্রয়োজন?

  1. সিকিউরিটি: বিভিন্ন বিভাগকে আলাদা রাখা

    Finance Dept: 192.168.1.0/24
    HR Dept:      192.168.2.0/24
    IT Dept:      192.168.3.0/24
  2. পারফরম্যান্স: ছোট নেটওয়ার্কে কম ট্রাফিক, দ্রুত স্পিড

  3. ম্যানেজমেন্ট: সহজে নেটওয়ার্ক পরিচালনা করা যায়

AWS VPC উদাহরণ:

VPC: 10.0.0.0/16 (65,536 IPs)
├── Public Subnet:  10.0.1.0/24 (256 IPs) - Web Servers
├── Private Subnet: 10.0.2.0/24 (256 IPs) - App Servers
└── DB Subnet:      10.0.3.0/24 (256 IPs) - Databases

CIDR নোটেশন বিস্তারিত

CIDR (Classless Inter-Domain Routing) হলো IP অ্যাড্রেস এবং সাবনেট মাস্ক লেখার আধুনিক পদ্ধতি।

ফর্মুলা: Total IPs = 2^(32 - CIDR)

কমন CIDR রেঞ্জ:

CIDRSubnet Maskমোট IPUsable IPsব্যবহার
/32255.255.255.25511সিঙ্গেল হোস্ট
/31255.255.255.25422Point-to-Point লিংক
/30255.255.255.25242রাউটার লিংক
/24255.255.255.0256254স্ট্যান্ডার্ড LAN
/20255.255.240.04,0964,094মিডিয়াম নেটওয়ার্ক
/16255.255.0.065,53665,534বড় নেটওয়ার্ক

ব্যবহারিক উদাহরণ:

# 192.168.1.0/24 মানে:
Network Address:   192.168.1.0
First Usable IP:   192.168.1.1
Last Usable IP:    192.168.1.254
Broadcast Address: 192.168.1.255
Total Hosts:       254

CIDR ক্যালকুলেশন:

/24 = 32 - 24 = 8 bits for hosts
2^8 = 256 total IPs
256 - 2 (network + broadcast) = 254 usable IPs

OSI Model বিস্তারিত

OSI (Open Systems Interconnection) মডেল ডেটা ট্রান্সমিশনের ৭টি লেয়ার বর্ণনা করে।

সম্পূর্ণ OSI Model:

লেয়ারনামফাংশনপ্রোটোকল/উদাহরণDevOps-এ ব্যবহার
7Applicationইউজার ইন্টারঅ্যাকশনHTTP, HTTPS, FTP, SSHAPI, Web Apps
6Presentationডেটা এনক্রিপশন/ফরম্যাটSSL/TLS, JPEG, ASCIIHTTPS, Certificates
5Sessionসেশন ম্যানেজমেন্টNetBIOS, RPCAuthentication
4TransportEnd-to-End ডেলিভারিTCP, UDPPort Numbers
3NetworkরাউটিংIP, ICMP, ARPIP Addressing
2Data Linkফিজিক্যাল অ্যাড্রেসিংEthernet, MACSwitch, NIC
1Physicalহার্ডওয়্যার ট্রান্সমিশনCables, SignalsNetwork Cables

ডেটা ফ্লো উদাহরণ:

যখন আপনি https://api.example.com এ রিকোয়েস্ট পাঠান:

সেন্ডার সাইড (আপনার কম্পিউটার):

Layer 7 (Application): HTTP GET /api/users

Layer 6 (Presentation): SSL/TLS এনক্রিপশন

Layer 5 (Session): সেশন তৈরি

Layer 4 (Transport): TCP Port 443 যোগ করা

Layer 3 (Network): IP Address যোগ করা

Layer 2 (Data Link): MAC Address যোগ করা

Layer 1 (Physical): ইলেকট্রিক সিগন্যাল

রিসিভার সাইড (সার্ভার):

Layer 1 (Physical): সিগন্যাল রিসিভ

Layer 2 (Data Link): MAC চেক করা

Layer 3 (Network): IP চেক করা

Layer 4 (Transport): Port 443 এ পাঠানো

Layer 5 (Session): সেশন ভেরিফাই

Layer 6 (Presentation): SSL/TLS ডিক্রিপ্ট

Layer 7 (Application): HTTP রিকোয়েস্ট প্রসেস

DNS Resolution প্রক্রিয়া

যখন আপনি ব্রাউজারে google.com লেখেন, তখন কি হয়?

ধাপ ১: লোকাল ক্যাশ চেক

# আপনার কম্পিউটার প্রথমে লোকাল DNS ক্যাশ চেক করে
# Linux/Mac:
cat /etc/hosts

# Windows:
C:\Windows\System32\drivers\etc\hosts

ধাপ ২: DNS Resolver Query

আপনার কম্পিউটার
    ↓ (Query: google.com?)
DNS Resolver (ISP)
    ↓ (Query: google.com?)
Root DNS Server
    ↓ (Answer: .com নেমসার্ভার এখানে)
TLD Server (.com)
    ↓ (Answer: google.com নেমসার্ভার এখানে)
Authoritative DNS Server
    ↓ (Answer: 142.250.190.14)
আপনার কম্পিউটার (IP পেয়ে গেছে!)

ব্যবহারিক উদাহরণ:

# DNS Resolution দেখা
dig +trace google.com

# DNS ক্যাশ ক্লিয়ার করা (Mac)
sudo dscacheutil -flushcache

# DNS ক্যাশ ক্লিয়ার করা (Linux)
sudo systemd-resolve --flush-caches

TCP 3-Way Handshake বিস্তারিত

TCP কানেকশন স্থাপনের প্রক্রিয়া:

ভিজুয়াল প্রেজেন্টেশন:

Client                          Server
  |                                |
  |  SYN (seq=100)                 |
  |─────────────────────────────>  |
  |                                |
  |  SYN-ACK (seq=200, ack=101)    |
  |  <─────────────────────────────|
  |                                |
  |  ACK (seq=101, ack=201)        |
  |─────────────────────────────>  |
  |                                |
  |  Connection Established!       |

বিস্তারিত ব্যাখ্যা:

  1. SYN (Synchronize):

    • ক্লায়েন্ট: “হ্যালো সার্ভার, আমি কানেক্ট করতে চাই। আমার sequence number হলো 100।”
    • Flags: SYN=1
  2. SYN-ACK (Synchronize-Acknowledge):

    • সার্ভার: “হ্যালো ক্লায়েন্ট, আমি রেডি। আমি তোমার 100 পেয়েছি, পরেরটা 101 পাঠাও। আমার sequence number হলো 200।”
    • Flags: SYN=1, ACK=1
  3. ACK (Acknowledge):

    • ক্লায়েন্ট: “পারফেক্ট! আমি তোমার 200 পেয়েছি, পরেরটা 201 আশা করছি। এখন ডেটা পাঠাচ্ছি।”
    • Flags: ACK=1

tcpdump দিয়ে দেখা:

# TCP Handshake ক্যাপচার করা
sudo tcpdump -i any port 80 -n

# আউটপুট:
# 10:30:01.123456 IP 192.168.1.10.54321 > 93.184.216.34.80: Flags [S], seq 100
# 10:30:01.234567 IP 93.184.216.34.80 > 192.168.1.10.54321: Flags [S.], seq 200, ack 101
# 10:30:01.345678 IP 192.168.1.10.54321 > 93.184.216.34.80: Flags [.], ack 201

কানেকশন বন্ধ করা (4-Way Handshake):

Client                          Server
  |  FIN (seq=500)                 |
  |─────────────────────────────>  |
  |  ACK (ack=501)                 |
  |  <─────────────────────────────|
  |  FIN (seq=600)                 |
  |  <─────────────────────────────|
  |  ACK (ack=601)                 |
  |─────────────────────────────>  |
  |  Connection Closed!            |

TCP vs UDP

বৈশিষ্ট্যTCPUDP
ConnectionConnection-orientedConnectionless
ReliabilityGuaranteed deliveryNo guarantee
Speedধীর (handshake এর জন্য)দ্রুত
Use CaseHTTP, SSH, FTPDNS, Video Streaming
Header Size20 bytes8 bytes

কখন কোনটি ব্যবহার করবেন?

TCP ব্যবহার করুন:

  • File transfer (SCP, FTP)
  • Web browsing (HTTP/HTTPS)
  • Email (SMTP, IMAP)
  • Database connections

UDP ব্যবহার করুন:

  • Video streaming (YouTube, Netflix)
  • Online gaming
  • DNS queries
  • VoIP calls

ব্যবহারিক উদাহরণ:

# TCP কানেকশন চেক করা
netstat -an | grep ESTABLISHED

# UDP পোর্ট চেক করা
netstat -anu

# নির্দিষ্ট পোর্টে TCP/UDP চেক
ss -tuln | grep :80

টুলস সামারি

টুলকাজউদাহরণ
pingকানেক্টিভিটি চেকping google.com
tracerouteরুট ট্রেসtraceroute google.com
nslookup/digDNS চেকdig google.com
sshরিমোট লগইনssh rokib@192.168.1.100
scpফাইল কপিscp file.txt rokib@server:/path/
curlAPI টেস্টcurl https://api.example.com
wgetফাইল ডাউনলোডwget https://example.com/file.zip

সারাংশ

এই টিউটোরিয়ালে আমরা শিখেছি:

  1. নেটওয়ার্কিং বেসিক্স: IP, DNS, Port, Ping, Traceroute
  2. SSH: সিকিউর রিমোট এক্সেস এবং কী-বেসড অথেন্টিকেশন
  3. SCP: নিরাপদ ফাইল ট্রান্সফার
  4. curl: API টেস্টিং এবং HTTP রিকোয়েস্ট
  5. wget: ফাইল ডাউনলোড
  6. রিয়েল-ওয়ার্ল্ড ওয়ার্কফ্লো: সম্পূর্ণ ডেপ্লয়মেন্ট প্রসেস

প্রো টিপ: এই টুলগুলো প্রতিদিন প্র্যাকটিস করুন। একটি ছোট প্রজেক্ট নিয়ে নিজে নিজে ডেপ্লয় করার চেষ্টা করুন। হাতে-কলমে শিখলে দ্রুত দক্ষ হবেন।