Episode 1: Building the DevOps Playground

DevOps လောကထဲကို ဝင်ရောက်ဖို့ ပထမဆုံး ခြေလှမ်း — လုံးဝအစကနေ စပြီး ကိုယ်ပိုင် Lab ကိုယ်တိုင်တည်ဆောက်ကြည့်မယ်။

Target Goals
နောက်လာမယ့် DevOps project တွေ (CI/CD, Kubernetes, IaC, monitoring စတာတွေ) အတွက် စမ်းသပ်စရာနေရာတစ်ခုအဖြစ် အသုံးပြုနိုင်မယ့် multi-VM home lab တစ်ခုကို တည်ဆောက်ဖို့ပါ။

လိုအပ်တဲ့ Tools တွေ

CategoryTools / VersionPurpose
Host OSWindows 11Your main workstation
HypervisorVMware Workstation ProVirtual machine management
Guest OSUbuntu 24.04 LTSLightweight, stable Linux base
UtilitiesGit, curl, vim/nano, net-toolsBasic administration
OptionalExcalidraw / Draw.ioDiagram ရေးဆွဲရန်

Step-by-Step Setup

1. Create the Virtual Machines

VM NameRoleCPURAMDiskOS
devops-controllerAnsible + Terraform control node2 vCPU4 GB40 GBUbuntu 24.04
ci-serverJenkins + Git runner2 vCPU4 GB40 GBUbuntu 24.04
k8s-labFuture Kubernetes cluster node4 vCPU6 GB60 GBUbuntu 24.04

2. Network Design

Use Host-only + NAT networks:

  • vmnet1 → internal (cluster traffic အတွက်)
  • vmnet8 → NAT (internet ချိတ်ဆက်ဖို့)
    Assign static IPs in 192.168.56.0/24 range.

Example /etc/netplan/00-installer-config.yaml:

network:
  ethernets:
    ens33:
      dhcp4: no
      addresses: [192.168.56.10/24]
      gateway4: 192.168.56.1
      nameservers:
        addresses: [8.8.8.8, 1.1.1.1]
  version: 2

3. Base System Setup
ဒီ command တွေကို VM အားလုံးမှာ run ပါ။

sudo apt update && sudo apt upgrade -y
sudo apt install git curl vim net-tools unzip htop -y

hostname ကို သတ်မှတ်ပါ။
sudo hostnamectl set-hostname devops-controller

4. Enable SSH & Key-Based Access

sudo apt install openssh-server -y
ssh-keygen -t ed25519
ssh-copy-id user@192.168.56.11

အခုဆိုရင် controller ကနေ တခြား VM တွေကို password မလိုပဲ ချိတ်ဆက်နိုင်ပါပြီ။

5. Create Git Repository for Documentation

mkdir ~/cloudobsession-lab && cd ~/cloudobsession-lab
git init
echo "# Cloud Obsession Tech - DevOps Lab" > README.md
git add . && git commit -m "Initial lab setup"

Diagram: Excalidraw သို့မဟုတ် Draw.io နဲ့ ဖန်တီးပါ

3 VMs connected via internal network
One outbound NAT link
Controller pushing configuration via SSH
Store it as /assets/lab-network.excalidraw.

Expected Output
3 Ubuntu VMs reachable via SSH
Static network confirmed via ping
Git repo initialized for documentation

What You Learned
VM provisioning basics
Static network and SSH configuration
Version-controlled documentation setup

အပိုင်း ၂: “CI/CD ကို အစကနေ စပြီး တည်ဆောက်မယ် – Jenkins + GitHub ကို ပေါင်းစပ်မယ်”
ပထမဆုံး build နဲ့ Docker push ကို automate လုပ်ကြည့်မယ်။

𝗖𝗹𝗼𝘂𝗱 နှင့် 𝗗𝗲𝘃𝗢𝗽𝘀 𝗘𝗻𝗴𝗶𝗻𝗲𝗲𝗿 များအတွက် လမ်းညွှန်ချက်များ

Cloud နှင့် DevOps လမ်းကြောင်းမှာ စတင်လျှောက်လှမ်းနေသူများအတွက်ရော၊ အတွေ့အကြုံရှိပြီးသူများအတွက်ပါ အသုံးဝင်မယ့် Practical Tips တွေကို မျှဝေပေးချင်ပါတယ်။

𝗖𝗹𝗼𝘂𝗱 𝗦𝗲𝗿𝘃𝗶𝗰𝗲𝘀 အားလုံးကို မှတ်သားရန် မလိုအပ်ပါ

AWS တွင် service ၂၅၀+၊ Azure နှင့် GCP တွင်လည်း များစွာရှိသော်လည်း Core Services (Compute, Storage, Network, Security, Database) ကိုသာ အရင်ဆုံး ကျကျနန လေ့လာပါ။

– AWS: EC2, S3, VPC, IAM, RDS, Lambda, CloudFormation

– Azure: Virtual Machines, Storage Accounts, Virtual Networks, Azure AD

– GCP: Compute Engine, Cloud Storage, VPC, Cloud IAM

Senior Cloud Architect များတောင် Documentation ကိုကြည့်ပြီး Information များရှာကြပါတယ်။ Memory Test မဟုတ်၊ Problem-Solving Skill ဖြစ်ပါတယ်။

𝗜𝗻𝗳𝗿𝗮𝘀𝘁𝗿𝘂𝗰𝘁𝘂𝗿𝗲-𝗮𝘀-𝗖𝗼𝗱𝗲 တွင် 𝗣𝗮𝘁𝘁𝗲𝗿𝗻-𝗕𝗮𝘀𝗲𝗱 𝗧𝗵𝗶𝗻𝗸𝗶𝗻𝗴 ကို အလေးထားပါ

Terraform, CloudFormation, ARM Template တို့၏ Syntax ထက် ပိုအရေးကြီးသော အချက်များ:

– Load Balancer ကို ဘာကြောင့်သုံးရသလဲ?

– Auto-Scaling ကို ဘယ်လို Conditions များဖြင့် Trigger လုပ်မလဲ?

– Security Group Rules များကို ဘယ်လို Design လုပ်မလဲ?

– Database Replication Strategy က ဘာလဲ?

𝗧𝗼𝗼𝗹𝘀 များ ပြောင်းနိုင်သော်လည်း 𝗔𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗲 𝗣𝗿𝗶𝗻𝗰𝗶𝗽𝗹𝗲𝘀 များက အမြဲ အသုံးဝင်ပါသည်။

𝗠𝗩𝗣 (𝗠𝗶𝗻𝗶𝗺𝘂𝗺 𝗩𝗶𝗮𝗯𝗹𝗲 𝗣𝗿𝗼𝗱𝘂𝗰𝘁) 𝗔𝗽𝗽𝗿𝗼𝗮𝗰𝗵 ဖြင့် စတင်ပါ

ပထမဆုံး Deployment တွင် Over-Engineering မလုပ်ပါနှင့်။ Progressive Approach ဖြင့်:

– Level 1: Single EC2 Instance + RDS

– Level 2: Load Balancer + Auto Scaling Group

– Level 3: Multi-AZ Deployment + CDN

– Level 4: Multi-Region + Advanced Monitoring

လိုအပ်ချက် တိုးလာမှ 𝗖𝗼𝗺𝗽𝗹𝗲𝘅𝗶𝘁𝘆 ထည့်ပါ။ အလုပ်ဖြစ်သော ရိုးရှင်းသည့် 𝗦𝘆𝘀𝘁𝗲𝗺 က 𝗗𝗲𝗯𝘂𝗴 မလုပ်နိုင်သော 𝗖𝗼𝗺𝗽𝗹𝗲𝘅 𝗦𝘆𝘀𝘁𝗲𝗺 ထက် ပိုကောင်းပါတယ်

𝗙𝗮𝗶𝗹𝘂𝗿𝗲 ကို 𝗗𝗲𝘀𝗶𝗴𝗻 𝗣𝗵𝗮𝘀𝗲 တွင် ထည့်သွင်းစဉ်းစားပါ

DevOps တွင် “When” ထက် “What” နှင့် “How” ကို အာရုံစိုက်ပါ:

– Services များ Fail ဖြစ်လျှင် → Circuit Breaker Pattern

– Network Issues ရှိလျှင် → Retry Mechanisms နှင့် Timeout Configurations

– Database Connection ပျက်လျှင် → Connection Pooling နှင့် Failover Setup

– Hardware Failures → Multi-AZ Deployments

Chaos Engineering ကိုလေ့လာပြီး Safe Environment တွင် System များကို Intentional Break လုပ်ကြည့်ပါ။ Netflix ၏ Chaos Monkey ကဲ့သို့ Tools များကို လေ့လာပါ။

𝗕𝘂𝘀𝗶𝗻𝗲𝘀𝘀 𝗩𝗮𝗹𝘂𝗲 ကို အဓိကထားပါ

Technical Excellence ထက် Business Impact ကို Priority လုပ်ပါ:

– Good: 99.9% Uptime

– Better: Smooth User Experience

– Best: Development Team Productivity တိုးတက်မှု

𝗖𝗼𝘀𝘁 𝗢𝗽𝘁𝗶𝗺𝗶𝘇𝗮𝘁𝗶𝗼𝗻 လည်း အရေးကြီးပါသည်။ 𝗥𝗲𝘀𝗲𝗿𝘃𝗲𝗱 𝗜𝗻𝘀𝘁𝗮𝗻𝗰𝗲𝘀, 𝗦𝗽𝗼𝘁 𝗜𝗻𝘀𝘁𝗮𝗻𝗰𝗲𝘀, 𝗥𝗶𝗴𝗵𝘁𝘀𝗶𝘇𝗶𝗻𝗴 𝗥𝗲𝘀𝗼𝘂𝗿𝗰𝗲𝘀 စသည်တို့ကို နားလည်ထားပါ။

𝗗𝗲𝘃𝗢𝗽𝘀 𝗧𝗼𝗼𝗹𝗰𝗵𝗮𝗶𝗻 ကို လေ့လာပါ

– Source Control: Git Fundamentals + Branching Strategies

– CI/CD: Jenkins, GitLab CI, GitHub Actions, Azure DevOps

– Infrastructure: Terraform, Ansible, Docker, Kubernetes

– Monitoring: Prometheus, Grafana, ELK Stack, CloudWatch

– Security: SAST/DAST Tools, Vulnerability Scanning

တစ်ခုချင်းစီကို 𝗜𝗻 𝗗𝗲𝗽𝘁𝗵 လေ့လာပြီး 𝗜𝗻𝘁𝗲𝗴𝗿𝗮𝘁𝗶𝗼𝗻 များကို နားလည်ထားပါ။

Automation Strategy

Manual Tasks များကို Identify လုပ်ပြီး Automation Roadmap ဆွဲပါ:

– Priority 1: Repetitive Daily Tasks

– Priority 2: Error-Prone Manual Processes

– Priority 3: Time-Consuming Operations

Script ရေးသောအခါ Error Handling, Logging တို့ကို ထည့်သွင်းပါ။

Observability ကို Layered Approach ဖြင့် ဆောင်ရွက်ပါ

– Metrics: System Resources, Application Performance

– Logs: Structured Logging, Centralized Log Management

– Traces: Distributed Tracing for Microservices

– Alerts: Actionable Alerts (Avoid Alert Fatigue)

“You can’t manage what you don’t measure” — Comprehensive Monitoring Strategy လိုအပ်ပါသည်။

Continuous Learning Mindset

Technology သည် အမြဲပြောင်းလဲနေသောကြောင့်:

– Weekly Tech Blogs ဖတ်ပါ (AWS Architecture Blog, HashiCorp Blog)

– Hands-on Labs လုပ်ပါ (AWS Workshops, Azure Learning Paths)

– Community Events တွင် ပါဝင်ပါ

– Certifications များကို Understanding ဖြင့် Pursue လုပ်ပါ (No to brain dump for cerrtifications)

Security by Design

Security ကို Afterthought အဖြစ် မထားဘဲ Integral Part အဖြစ် ထည့်သွင်းစဉ်းစားပါ:

– Least Privilege Principle

– Network Segmentation

– Encryption (At Rest & In Transit)

– Regular Security Audits

– Compliance Requirements (GDPR, SOC2)

Documentation & Knowledge Sharing

Architecture Decisions, Runbooks, Troubleshooting Guides များကို ရေးသားပါ။

DevOps သည် Technology သက်သက်မဟုတ်၊ Culture နှင့် Mindset ပါ။ Collaboration, Communication, Continuous Improvement တို့ကို အလေးပေးပါ။

Additional Tip: End-to-End Project တစ်ခုကို တည်ဆောက်ကြည့်ပါ။ Theory ထက် Hands-on Experience က အမြဲတန်ဖိုးရှိပါသည်။