Interactive Server & DevOps Roadmap
Zero မှ Production Cloud Engineer အထိ ပြီးပြည့်စုံသော လမ်းပြမြေပုံ
Web Developer များ၊ System Administrator များနှင့် DevOps လေ့လာသူများအတွက် မရှိမဖြစ် လိုအပ်သော Linux, DNS, Nginx, PM2, Docker, Cloudflare, CI/CD နှင့် SRE စနစ်များကို စနစ်တကျ သင်ယူနိုင်စေရန် အဆင့် ၅ ဆင့်ဖြင့် ရေးဆွဲထားပါသည်။ သင်ယူပြီးသည့် အကြောင်းအရာများကို အမှန်ခြစ်ပြီး မိမိ၏ တိုးတက်မှုကို အချိန်မရွေး စစ်ဆေးနိုင်ပါသည်။
🎯 ရည်မှန်းချက်အလိုက် လေ့လာနိုင်သော လမ်းကြောင်းများ
မိမိ၏ လက်ရှိ career goal အလိုက် ဦးစားပေး လေ့လာနိုင်သော stage များ
Fullstack Web Developer
ဝဘ်ဒစ်ဗလော့ပါ လမ်းကြောင်း
မိမိရေးသားထားသော Next.js, Express သို့မဟုတ် FastAPI အက်ပလီကေးရှင်းများကို Shared hosting မလိုဘဲ VPS ပေါ်တွင် Nginx, PM2, Systemd နှင့် PostgreSQL တို့ဖြင့် ကိုယ်တိုင် deploy ပြုလုပ်နိုင်သော အဆင့်။
Modern Cloud & Container Engineer
ကလောက်ဒ်နှင့် ကွန်တိန်နာ လမ်းကြောင်း
Docker Multi-stage build ဖြင့် image သေးငယ်အောင် ပြုလုပ်ခြင်း၊ Docker Compose ဖြင့် Multi-service စီမံခြင်းနှင့် Cloudflare Zero-Trust Tunnels ဖြင့် open port မလိုဘဲ ကမ္ဘာသို့ လွှင့်တင်နိုင်သော အဆင့်။
Production DevOps & SRE Master
ကျွမ်းကျင် DevOps & SRE လမ်းကြောင်း
GitHub Actions ဖြင့် Git Push လုပ်ရုံဖြင့် Auto Deploy စနစ်၊ Automated Database Backups & Offsite S3 Cloud Sync၊ Uptime Kuma Alerting နှင့် 502/504 Incident Response Runbook များကို နိုင်နင်းသော အဆင့်။
မိမိ၏ DevOps & Cloud တိုးတက်နှုန်း
လေ့လာပြီးသည့် အကြောင်းအရာများကို အမှန်ခြစ် (check) ပေးပါ။ Browser ထဲတွင် LocalStorage ဖြင့် အလိုအလျောက် သိမ်းဆည်းပေးထားပါသည်။
Linux Foundations & Server Hardening
အခြေခံအုတ်မြစ်နှင့် ဆာဗာလုံခြုံရေး
Domain, DNS, VPS ရွေးချယ်ခြင်း, SSH Key, Non-root User, UFW Firewall နှင့် Linux Swap Memory
Domain Name ကို Cloud VPS IP နှင့် ချိတ်ဆက်ခြင်းနှင့် dig / nslookup ဖြင့် စစ်ဆေးခြင်း
dig +short A yourdomain.comHetzner / DigitalOcean တွင် Ubuntu 24.04 / 22.04 LTS ရွေးချယ်ပြီး ဆာဗာ စတင်ဝယ်ယူခြင်း
lsb_release -a && uname -rRSA ထက် ပိုမိုလုံခြုံမြန်ဆန်သော Ed25519 key ထုတ်ယူခြင်းနှင့် Password-less SSH ချိတ်ဆက်ခြင်း
ssh-keygen -t ed25519 -C "admin@example.com"သီးသန့် sudo user ဖန်တီးခြင်းနှင့် /etc/ssh/sshd_config တွင် root password ဝင်ရောက်ခွင့် ပိတ်သိမ်းခြင်း
usermod -aG sudo deployer && passwd -l rootPort 22 (SSH limit), 80 (HTTP), 443 (HTTPS) သာ ဖွင့်ပြီး ကျန် port အားလုံးကို default deny ပြုလုပ်ခြင်း
ufw default deny incoming && ufw limit 22/tcp && ufw enableRAM 1GB/2GB VPS များတွင် OOM Killer ကြောင့် Process မရပ်တန့်စေရန် Swap 2GB ဖန်တီးပြီး swappiness=10 သတ်မှတ်ခြင်း
fallocate -l 2G /swapfile && chmod 600 /swapfile && mkswap /swapfileWeb Servers & Reverse Proxy Mastery
ဝဘ်ဆာဗာနှင့် Reverse Proxy စနစ်
Nginx Virtual Hosts, Reverse Proxy, Let's Encrypt SSL/TLS, TLS 1.3 နှင့် Performance Tuning
Nginx Master/Worker lifecycle နားလည်ခြင်းနှင့် sites-available / sites-enabled စီမံခန့်ခွဲခြင်း
nginx -t && systemctl reload nginxPublic Port 80/443 မှ Backend App များ (Port 3000, 8000) သို့ Host & IP Header များဖြင့် proxy_pass ပြုလုပ်ခြင်း
proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host;အခမဲ့ 90-day SSL certificate ထုတ်ယူခြင်းနှင့် auto-renewal systemd timer စစ်ဆေးခြင်း
certbot --nginx -d example.com -d www.example.comSSL Labs A+ ရရှိစေရန် HSTS, X-Frame-Options, X-Content-Type-Options စသည့် လုံခြုံရေး headers များ ထည့်သွင်းခြင်း
add_header Strict-Transport-Security "max-age=31536000" always;CSS, JS, JSON data များကို Gzip ဖြင့် compress ပြုလုပ်ပြီး Browser cache expiration (max-age=30d) သတ်မှတ်ခြင်း
gzip on; gzip_types text/plain text/css application/json application/javascript;VPS တစ်လုံးတည်းတွင် domain အများအပြား (ဥပမာ api.domain.com နှင့် blog.domain.com) ကို သီးခြားစီ host လုပ်ခြင်း
server_name api.example.com; # Separate server blockApplication Run-Time & Daemons
အက်ပလီကေးရှင်းများ လည်ပတ်ခြင်းနှင့် Daemons
Node.js (PM2), Python (Systemd Service), Relational Databases (Postgres/MySQL) နှင့် In-Memory Cache (Redis)
Cluster mode (-i max) ဖြင့် CPU cores အပြည့်သုံးစွဲခြင်း၊ crash ဖြစ်ပါက auto-restart နှင့် zero-downtime reload ပြုလုပ်ခြင်း
pm2 start ecosystem.config.js --env production && pm2 saveLinux native Systemd Service Unit ဖန်တီးခြင်း၊ virtual environment ချိတ်ဆက်ခြင်းနှင့် journalctl logging စီမံခြင်း
systemctl enable --now fastapi.service && journalctl -u fastapi -fPostgreSQL 16 / MySQL 8 တပ်ဆင်ခြင်း၊ dedicated app user သတ်မှတ်ခြင်းနှင့် remote access ပိတ်ပြီး local socket သာ ခွင့်ပြုခြင်း
sudo -u postgres psql -c 'CREATE DATABASE app_prod;'API response cache နှင့် user session အတွက် Redis တပ်ဆင်ခြင်း၊ strong password သတ်မှတ်ခြင်းနှင့် memory limit ချိန်ညှိခြင်း
redis-cli -a <password> ping # Should return PONGcrontab -e ဖြင့် periodic cleanup script များကို အလိုအလျောက် run စေခြင်းနှင့် log file ထဲသို့ output သိမ်းဆည်းခြင်း
0 3 * * * /usr/local/bin/cleanup.sh >> /var/log/cleanup.log 2>&1Production .env ဖိုင်များကို chmod 600 ဖြင့် ကာကွယ်ခြင်းနှင့် Git repository ထဲသို့ credentials မပါသွားစေရန် .gitignore စီမံခြင်း
chmod 600 /var/www/app/.env.productionContainerization & Cloud Edge
ကွန်တိန်နာစနစ်နှင့် Cloudflare Edge
Docker Engine, Multi-Stage Dockerfile, Docker Compose Stacks, Cloudflare Edge DNS နှင့် Zero-Trust Tunnels
Ubuntu ပေါ်တွင် Docker CE တပ်ဆင်ခြင်း၊ sudo မလိုဘဲ run နိုင်ရန် docker user group သတ်မှတ်ခြင်း
sudo usermod -aG docker $USER && newgrp dockerBuild dependencies နှင့် Production runtime ကို ခွဲထုတ်ပြီး container image size ကို 1GB မှ 80MB အထိ လျှော့ချခြင်း
FROM node:20-alpine AS builder ... FROM node:20-alpine AS runnerApp + Postgres + Redis ဝန်ဆောင်မှု ၃ ခုကို isolated bridge network နှင့် named volumes များဖြင့် တစ်ပြိုင်နက် run ခြင်း
docker compose up -d --buildrestart: unless-stopped သတ်မှတ်ခြင်းနှင့် database ready ဖြစ်မှ backend စတင်စေရန် depends_on healthcheck အသုံးပြုခြင်း
docker ps --filter health=healthyDNS ကို Cloudflare သို့ ပြောင်းလဲခြင်း၊ Proxy (Orange Cloud) ဖွင့်လှစ်ခြင်းနှင့် Full (Strict) SSL စနစ် သတ်မှတ်ခြင်း
SSL/TLS Mode: Full (Strict) with Edge CertificatesPublic IP နှင့် Open Port လုံးဝမလိုဘဲ cloudflared daemon ဖြင့် internal app များကို ကမ္ဘာသို့ လုံခြုံစွာ ထုတ်လွှင့်ခြင်း
cloudflared tunnel run <tunnel-name>CI/CD, Observability & Production SRE
အလိုအလျောက်စနစ်နှင့် စောင့်ကြည့်လေ့လာရေး
GitHub Actions CI/CD to VPS, Automated DB Backups, Offsite S3 Storage, Monitoring (Uptime Kuma) နှင့် 502/504 Runbook
git push main ပြုလုပ်ရုံဖြင့် VPS ပေါ်သို့ SSH key ဖြင့် ချိတ်ဆက်ကာ auto build & zero-downtime deploy ပြုလုပ်ခြင်း
appleboy/ssh-action@v1.0.3 with SSH_PRIVATE_KEYနေ့စဉ် pg_dump/mysqldump ထုတ်ပြီး gzip compress လုပ်ခြင်းနှင့် ၇ ရက်ထက်ကျော်သော backup အဟောင်းများကို auto ဖျက်ပစ်ခြင်း
find /var/backups -name "*.sql.gz" -mtime +7 -deleteVPS ပျက်စီးသွားပါက ဒေတာဆုံးရှုံးမှု မရှိစေရန် Rclone ဖြင့် backup ဖိုင်များကို ပြင်ပ Cloud Storage သို့ နေ့စဉ် sync လုပ်ခြင်း
rclone sync /var/backups/db remote:r2-bucket/db-backupsUptime Kuma သို့မဟုတ် Netdata ဖြင့် CPU, RAM, Disk, SSL သက်တမ်း စောင့်ကြည့်ပြီး Telegram/Discord သို့ အချက်ပေး alert ပို့ခြင်း
curl -s -X POST https://api.telegram.org/bot<TOKEN>/sendMessageဆာဗာ disk 100% ပြည့်ပြီး crash မဖြစ်စေရန် logrotate စနစ် ထည့်သွင်းခြင်းနှင့် journalctl --vacuum-time=7d သတ်မှတ်ခြင်း
journalctl --vacuum-size=200M && logrotate -f /etc/logrotate.confဆာဗာ error တက်ပါက System Logs, Nginx Error Logs, Port Conflicts နှင့် Memory OOM များကို ၆ ဆင့်ဖြင့် ချက်ချင်းဖြေရှင်းနည်း
tail -n 100 /var/log/nginx/error.log && ss -tulpn🏆 Capstone Project: High-Availability Multi-Service Production Stack
အဆင့် ၅ ဆင့်လုံးကို ပြီးမြောက်ပြီးပါက မိမိ၏ Portfolio တွင် ထည့်သွင်းပြသနိုင်မည့် တကယ့် Real-World Production Architecture ကို အစအဆုံး ကိုယ်တိုင် တည်ဆောက်စမ်းသပ်ပါ။
📋 Project Requirements (လိုအပ်ချက်များ)
- Cloud VPS: Ubuntu 24.04 LTS (RAM 2GB, 1 vCPU) တွင် Non-root sudo user, Ed25519 SSH, UFW, Swap 2GB ပြင်ဆင်ပါ။
- Container Stack: Next.js (Frontend) + FastAPI (Backend) + PostgreSQL 16 + Redis ကို Docker Compose ဖြင့် isolated network တွင် run ပါ။
- Networking: Nginx Reverse Proxy သို့မဟုတ် Cloudflare Tunnel ဖြင့် Open Port မလိုဘဲ HTTPS ဖြင့် ထုတ်လွှင့်ပါ။
- Automation CI/CD: GitHub Actions ဖြင့် Git Push ပြုလုပ်ရုံဖြင့် auto-test, auto-build, zero-downtime deploy ပြုလုပ်ပါ။
- Backups & Alerting: Database ကို နေ့စဉ် auto-dump ပြုလုပ်ပြီး ၇ ရက်ကျော်ပါက auto-purge လုပ်ကာ Telegram သို့ report ပို့ပါ။
💡 လက်တွေ့လေ့လာရာတွင် သိရှိထားသင့်သော အကြံပြုချက်များ
Senior Cloud Engineer များ၏ လက်တွေ့ဖြတ်သန်းမှုမှ ရရှိသော အကြံဉာဏ်များ
⚡ စရိတ်သက်သာသော Cloud VPS တစ်လုံး ဝယ်ယူပါ
Hetzner (CX22 ~€3.79/mo) သို့မဟုတ် DigitalOcean ($4-6/mo) တွင် RAM 2GB ပါဝင်သော VPS တစ်လုံး ဝယ်ယူပြီး လက်တွေ့ command များ ရိုက်နှိပ်စမ်းသပ်ပါ။ Local VM ထက် Cloud VPS တွင် စမ်းသပ်ခြင်းက Public IP နှင့် DNS routing ကို လက်တွေ့ကျကျ နားလည်စေပါသည်။
⚡ Test Domain တစ်ခု အသုံးပြုပါ
ဈေးသက်သာသော .xyz သို့မဟုတ် .top domain တစ်ခု ($1-2) ဝယ်ယူထားခြင်းဖြင့် Cloudflare DNS, A Record, CNAME, Subdomains နှင့် Let's Encrypt SSL/TLS အလုပ်လုပ်ပုံကို တကယ့် production ကဲ့သို့ စမ်းသပ်နိုင်ပါသည်။
⚡ ဆာဗာ ပျက်စီးသွားမည်ကို လုံးဝမကြောက်ပါနှင့်
လေ့လာသင်ယူနေချိန်တွင် configuration မှားယွင်းသွားပါက Cloud provider console မှ Rebuild / Reinstall OS ပြုလုပ်ရုံဖြင့် စက္ကန့် ၃၀ အတွင်း အသစ်ပြန်လည် စတင်နိုင်ပါသည်။ အမှားများမှတဆင့် သင်ယူခြင်းသည် အကောင်းဆုံး နည်းလမ်း ဖြစ်ပါသည်။
⚡ Backup ကို မဖြစ်မနေ Restore စမ်းသပ်ပါ
DevOps လောက၏ ရွှေစည်းမျဉ်းမှာ 'စမ်းသပ် restore မလုပ်ဖူးသော backup သည် backup အစစ်မဟုတ်ပါ' ဖြစ်ပါသည်။ Cron script ဖြင့် backup ထုတ်ပြီးပါက အသစ်စက်စက် database အလွတ်တစ်ခုထဲသို့ ပြန်လည် restore သွင်းကြည့်သည့် အလေ့အကျင့် ပြုလုပ်ပါ။