สวัสดีค่าา EP.4 มาแล้วววว
EP นี้จะพูดถึงสองเรื่องที่เกี่ยวกันคือ Networking กับ Cloud ฟังดูน่ากลัวนะ แต่จริงๆพื้นฐานไม่ได้ยากขนาดนั้น มันแค่ต้องมี mental model ที่ถูกต้องก่อนแล้วทุกอย่างจะ click เอง
ขอเปรียบเทียบแบบนี้นะ networking ก็เหมือนระบบเส้นทางในงาน HYROX ที่ต้องวิ่งจาก station ไป station แต่ละ station มี protocol ของตัวเอง มีกฎว่าต้องทำอะไรก่อนหลัง แล้วถ้าใครไม่รู้จักเส้นทาง ก็วิ่งหลง เสียเวลา และพังในที่สุด 5555
Networking พื้นฐานที่ DevOps ต้องรู้
IP Address คืออะไร
IP Address คือที่อยู่ของ device บน network เหมือนเลขที่บ้าน ทุก device ที่เชื่อมต่อ internet ต้องมี IP
- IPv4 เช่น
192.168.1.100รูปแบบตัวเลข 4 ชุด - IPv6 เช่น
2001:0db8:85a3::8a2e:0370:7334รูปแบบใหม่ที่รองรับ address ได้มากกว่า - Public IP เห็นได้จากภายนอก internet
- Private IP ใช้ภายใน network ส่วนตัวเช่น
192.168.x.xหรือ10.x.x.x
DNS คือระบบ "สมุดโทรศัพท์" ของ internet
เราพิมพ์ chawanee.com แต่คอมพิวเตอร์จริงๆมันคุยกันด้วย IP ไม่ใช่ชื่อ DNS เลยทำหน้าที่แปลงชื่อเป็น IP ให้
Port คือ "ประตูบ้าน"
IP address บอกว่าจะไปบ้านไหน แต่ port บอกว่าจะเข้าประตูไหน server เดียวกันรันหลาย service ได้โดยใช้ port ต่างกัน
| Port | ใช้กับอะไร |
|---|---|
80 | HTTP (เว็บปกติ) |
443 | HTTPS (เว็บแบบ encrypted) |
22 | SSH |
3306 | MySQL |
5432 | PostgreSQL |
6379 | Redis |
HTTP vs HTTPS
HTTP คือ protocol ที่ browser ใช้คุยกับ server ส่วน HTTPS คือเวอร์ชันที่ encrypt ข้อมูลระหว่างทางด้วย TLS ทุกเว็บในปัจจุบันควรใช้ HTTPS เสมอ
# ดู response header ของเว็บ
curl -I https://chawanee.com
# ทดสอบ endpoint
curl https://api.example.com/users
curl -X POST -H "Content-Type: application/json" \
-d '{"name":"chao"}' https://api.example.com/users
Load Balancer
เมื่อ traffic มาก server เครื่องเดียวรับไม่ไหว Load Balancer จะกระจาย traffic ไปหลาย server
ถ้า Server A พัง Load Balancer จะส่ง traffic ไป B และ C แทน ผู้ใช้ไม่รู้เลยว่ามีอะไรพังอยู่ข้างหลัง
Cloud Computing คืออะไร
แทนที่จะซื้อ server มาตั้งที่บ้านหรือออฟฟิศ Cloud คือการ "เช่า" computing resources จากบริษัทใหญ่ที่มี data center อยู่ทั่วโลก จ่ายแค่ที่ใช้จริง
เปรียบเหมือนการเช่า gym แทนที่จะซื้อ equipment ทั้งหมดมาไว้บ้าน ใครจะซื้อ squat rack, cable machine, sled มาไว้บ้านทั้งหมด 5555 เช่าใช้ดีกว่า ยืดหยุ่นกว่า และมีคนดูแล maintain ให้ด้วย
Big Three Cloud Providers
| Provider | ย่อว่า | market share | เด่นที่ |
|---|---|---|---|
| Amazon Web Services | AWS | ~32% | บริการเยอะที่สุด ecosystem ใหญ่ที่สุด |
| Microsoft Azure | Azure | ~22% | integrate กับ Microsoft ได้ดี enterprise นิยม |
| Google Cloud Platform | GCP | ~12% | ML/AI tools และ data analytics แข็งแกร่ง |
แนะนำให้เริ่มที่ AWS ก่อนค่ะ เพราะ market share ใหญ่ที่สุด job ส่วนใหญ่ก็ถามเรื่อง AWS documentation เยอะมาก
Service Models: IaaS, PaaS, SaaS
Cloud มี 3 รูปแบบหลัก เปรียบกับยิมก็ได้
| Model | Cloud ให้อะไร | เราจัดการอะไร | ตัวอย่าง |
|---|---|---|---|
| IaaS Infrastructure as a Service | VM, network, storage | OS, runtime, app ทั้งหมด | AWS EC2, GCP Compute Engine |
| PaaS Platform as a Service | OS, runtime, middleware ด้วย | แค่ app และ data | Heroku, AWS Elastic Beanstalk |
| SaaS Software as a Service | ทุกอย่าง | แค่ใช้งาน | Gmail, Slack, Figma |
AWS Concepts พื้นฐาน
Region และ Availability Zone
AWS มี data center อยู่ทั่วโลก แบ่งออกเป็น Region (เช่น ap-southeast-1 คือ Singapore) แต่ละ Region มีหลาย Availability Zone (AZ) ซึ่งเป็น data center แยกกันทางกายภาพ
การกระจาย app ให้รันใน หลาย AZ คือ basic ของ high availability ถ้า AZ นึงพัง AZ อื่นยังรันอยู่
EC2 (Elastic Compute Cloud)
คือ virtual machine บน AWS เหมือนเช่าคอมพิวเตอร์ที่ run Linux อยู่บน cloud
# หลังจาก launch EC2 แล้ว connect ผ่าน SSH
ssh -i "my-key.pem" ubuntu@ec2-xx-xx-xx-xx.ap-southeast-1.compute.amazonaws.com
S3 (Simple Storage Service)
Storage สำหรับเก็บไฟล์ทุกอย่าง รูปภาพ, video, backup, static files ราคาถูกมาก เก็บได้แบบ unlimited
VPC (Virtual Private Cloud)
Network ส่วนตัวของเราบน AWS กำหนดได้ว่า resource ไหนเปิดให้ internet เข้าได้ ไหนซ่อนไว้ข้างใน
Security Group
เหมือน firewall ระดับ instance กำหนดได้ว่า IP ไหน port ไหนเข้าออกได้บ้าง
# ตัวอย่าง Security Group rules
Inbound:
Port 22 (SSH) - จาก IP ของเราเท่านั้น
Port 80 (HTTP) - จากทุกที่ (0.0.0.0/0)
Port 443 (HTTPS) - จากทุกที่ (0.0.0.0/0)
Outbound:
ทุก port - ออกได้หมด
Serverless ทางเลือกที่ไม่ต้องดูแล server
Serverless ไม่ได้แปลว่าไม่มี server จริงๆ แต่หมายความว่าเราไม่ต้องดูแล server เองค่ะ เขียนแค่ function แล้ว cloud จะจัดการ scale และ infrastructure ให้เอง
- AWS Lambda รัน function เมื่อมี event เกิดขึ้น จ่ายตามจำนวนครั้งที่รัน
- Google Cloud Functions เหมือนกันฝั่ง GCP
- Vercel / Netlify สำหรับ frontend และ serverless functions ง่ายมากเหมาะกับ web dev
💡 สำหรับมือใหม่ แนะนำให้เริ่มสมัคร AWS Free Tier แล้วลอง launch EC2 instance ฟรีให้ได้ก่อน จะได้คุ้นกับ console และ concept พื้นฐาน ก่อนไปเรียนอย่างอื่นต่อค่ะ
สรุป EP.4
- IP address คือที่อยู่ของ device บน network, DNS แปลงชื่อเป็น IP
- Port คือประตูที่ service รันอยู่ ต้องรู้ port สำคัญอย่าง 22, 80, 443
- Cloud คือการเช่า computing resources จ่ายตามใช้จริง
- IaaS (EC2) จัดการ VM เอง, PaaS จัดการแค่ app, SaaS ใช้งานอย่างเดียว
- VPC, Security Group, Region, AZ คือพื้นฐาน AWS ที่ต้องรู้
ซีรี่ส์ DevOps พังแล้วพังอีกพังต่อ