แผนการเรียนรู้
/

Agentic Cloud Ops & Deployment

ช่วงที่ 3: นำ SolarCorp สู่โลกคลาวด์ด้วยพลังของ Browser Subagent

13:00 - 14:30 | ภาคปฏิบัติการวางระบบบน Render.com

ภารกิจหลักหลังมื้อเที่ยง

✅ เปลี่ยนจาก SQLite เป็น PostgreSQL สำหรับฐานข้อมูลจริง

✅ ใช้ AI Agent ท่องเว็บเพื่อ Config ระบบบน Render.com

✅ จัดการความลับ (Secrets) และ Environment Variables อย่างมืออาชีพ

✅ เชื่อมต่อ CI/CD ให้ระบบอัปเดตอัตโนมัติเมื่อมีการแก้ไขโค้ด

ทำไมเราถึงเลือก Render.com?

แพลตฟอร์มคลาวด์ที่ออกแบบมาเพื่อนักพัฒนาในยุคใหม่

Native Support:

รองรับ Django, React, และ PostgreSQL ได้อย่างสมบูรณ์

Zero Downtime:

ระบบ Deploy แบบไม่หยุดพัก พร้อมฟีเจอร์ Rollback เมื่อเกิดความผิดพลาด

สถาปัตยกรรมการวางระบบ SolarCorp

React Site (Static)

Frontend

↔️
Django Web Service

Backend

↔️
PostgreSQL DB

Database

"ทุกส่วนเชื่อมต่อกันผ่าน Internal Network ของ Render เพื่อความเร็วและความปลอดภัย"

ยกระดับฐานข้อมูลเพื่อการใช้งานจริง

เราจะเปลี่ยนจาก SQLite (ไฟล์เครื่อง) สู่ PostgreSQL (คลาวด์)

SQLite: เหมาสำหรับพัฒนาคนเดียว (Local)
PostgreSQL: รองรับลูกค้านับแสน (Production)

Internal vs. External DB URL

Internal URL:

ใช้สำหรับ Django ที่รันอยู่บน Render คุยกับฐานข้อมูล (ฟรีและเร็ว)

External URL:

ใช้สำหรับเราต่อจากเครื่องคอมพิวเตอร์ไปแอบดูข้อมูลหลังบ้าน

จัดการความลับให้อยู่หมัด

"ห้ามทิ้ง API Key หรือรหัสผ่านฐานข้อมูลไว้ในโค้ด"

DATABASE_URL=postgres://user:pass@host/db
DJANGO_SECRET_KEY=yoursecretkey
DEBUG=False

ตั้งค่า Django เพื่อออนไลน์

❌ อย่าลืม!

ตั้ง DEBUG = False เพื่อไม่ให้แฮกเกอร์เห็นจุดพังของระบบ

✅ ต้องทำ!

กำหนด ALLOWED_HOSTS ให้มี URL ของ Render ที่เราได้

เสิร์ฟไฟล์ Static ด้วย WhiteNoise

ปกติ Django จะไม่เสิร์ฟไฟล์ภาพ/CSS บน Production เอง

เราจะใช้ WhiteNoise เพื่อให้ Django สามารถจัดการไฟล์สถาปัตยกรรมภาพโซลาร์เซลล์ได้โดยตรงบนคลาวด์

Browser Subagent คืออะไร?

ขีดความสามารถพิเศษของ Antigravity ที่สั่งให้ AI "ท่องเว็บ" แทนคุณได้

"คุณไม่ต้องคลิกเมนู Render เอง... แค่สั่ง AI ให้ไปเปิดฐานข้อมูลและตั้งค่า Environment ให้"

🌐

วงจรการ Deploy แบบอัจฉริยะ

1. /deploy

เรียก Agent มาวางแผน

➡️

2. Browser Access

AI เปิดเว็บ Render แทนเรา

➡️

3. Live Sync

ยืนยันความสำเร็จผ่าน Artifact

การสั่งงาน DevOps Agent

ตัวอย่าง Prompt:

"ช่วยเปิดเว็บไซต์ Render.com ค้นหา Repository SolarCorp และตั้งค่า Web Service สำหรับ Django โดยใช้ฐานข้อมูล PostgreSQL ที่เพิ่งสร้างใหม่"

ขั้นตอนการสร้าง Web Service

  • 🔹 **Connect Repo:** เชื่อมกับ GitHub
  • 🔹 **Language:** เลือก Python
  • 🔹 **Root Directory:** ชี้ไปที่โฟลเดอร์ backend/
  • 🔹 **Runtime:** ใช้ uv ในการติดตั้งระบบ (NFR-2)

หัวใจของการรันระบบ

เราต้องระบุคำสั่งให้ระบบรู้วิธี "สร้าง" และ "เริ่ม"

Build Command:

./build.sh

Start Command:

gunicorn core.wsgi:application

ขั้นตอนการสร้าง Static Site

"หน้าเว็บ React จะทำงานแยกออกจาก Django Backend"

🎯 **Build Command:** npm run build

🎯 **Publish Directory:** dist

"Render จะส่งไฟล์ในโฟลเดอร์ dist ไปยัง Global CDN ทั่วโลก"

การเชื่อมสะพานคลาวด์

"React ต้องรู้ว่า Django อยู่ที่ไหนบนโลก"

ในหน้าจอ Environment ของ React:

VITE_API_URL=https://solar-api.onrender.com/

"AI Agent จะนำ URL ของ Backend มาใส่ตรงนี้ให้อัตโนมัติ"

ด่านสกัดกั้น CORS

"หากไม่ตั้งค่านี้ หน้าเว็บลูกค้าจะส่งข้อมูลลงทะเบียนไม่ได้"

กฎใน Django Settings:

CORS_ALLOWED_ORIGINS = ["https://solarcorp.onrender.com"]

ความปลอดภัยระดับ CSRF

ยกระดับความปลอดภัยให้แอปพลิเคชัน (NFR-3)

เราต้องเพิ่ม URL ของหน้าเว็บลงใน CSRF_TRUSTED_ORIGINS เพื่อให้ฟอร์มลงทะเบียน SolarCorp ปลอดภัยจากการถูกสวมรอย

CI/CD: แก้ปุ๊บ ออนไลน์ปั๊บ!

"ทันทีที่คุณ Commit และ Push โค้ดที่ผ่านการทดสอบ (/verify) แล้ว Render จะเริ่มขั้นตอน Build ใหม่อัตโนมัติ"

🚀

แผนการพัฒนาระบบคลาวด์ (DevOps Plan)

Step-by-Step
  • 1️⃣ สั่ง Agent สร้างฐานข้อมูล PostgreSQL
  • 2️⃣ ย้าย Secret Settings ใน Django เข้าสู่ Env
  • 3️⃣ ให้ Browser Subagent จัดการ Config บนหน้าเว็บ Render
  • 4️⃣ ตรวจสอบ Walkthrough Artifact ยืนยันความสำเร็จ

กิจกรรม: นำ Backend ขึ้นฟ้า

1. เปิด Antigravity Chat และใช้คำสั่ง /deploy

2. ให้ Agent เปิดหน้า Render และกรอกข้อมูล Web Service ตาม Plan

3. ตรวจสอบ Log การสร้างฐานข้อมูล PostgreSQL ว่าสำเร็จหรือไม่

กิจกรรม: นำ Frontend ออนไลน์

งานของ AI:

เปิดเมนู Static Site บน Render และใส่ค่า npm run build

งานของ Orchestrator:

ตรวจสอบว่า VITE_API_URL ใส่ URL ของ Backend ถูกต้องแล้ว

การตรวจสอบความสำเร็จแบบอัตโนมัติ

หลังจากออนไลน์แล้ว Agent จะทำ **Walkthrough Artifact**

🎥 AI จะบันทึกวิดีโอหน้าจอขณะมันเข้าไปทดลองกรอกชื่อลูกค้าใน SolarCorp ที่รันอยู่บน URL จริง เพื่อยืนยันว่าข้อมูลไหลลง Database ได้สำเร็จ

คุณคือผู้ตรวจสอบด่านสุดท้าย!

Checklist หน้างานจริง:

  • 🛸 **HTTPS:** แม่กุญแจสีเขียวขึ้นที่ URL หรือไม่?
  • 🛸 **Registration:** ลองลงทะเบียนด้วยตัวเอง 1 เคส
  • 🛸 **Admin Panel:** ข้อมูลเข้าสู่หน้า Dashboard หรือไม่?

ระวัง! บั๊กยอดฮิตบนคลาวด์

Error 500:

มักเกิดจากลืมทำ python manage.py migrate ในฐานข้อมูลใหม่

Styles Missing:

ลืมสั่ง collectstatic หรือลืมตั้งค่า WhiteNoise

แก้ปัญหาด้วยคำสั่ง /debug

"หากการ Build ล้มเหลว ให้ Copy Log จาก Render ส่งให้ AI พร้อมสั่ง:"

"ช่วยวิเคราะห์หาสาเหตุที่ระบบรันไม่ขึ้น และเสนอแผนแก้ไขทันที"

ความสำเร็จที่จับต้องได้!

ยินดีด้วย! เว็บไซต์ SolarCorp ของคุณ
**เปิดให้บริการทั่วโลกแล้วตอนนี้!**

🌐 ON AIR NOW!

สรุปการเรียนรู้ช่วงบ่าย

ใช้ Browser Agent เป็น
เข้าใจกลไกคลาวด์
ปิดจุดเสี่ยงความปลอดภัย

"คุณได้ย้ายงานจาก Local มาเป็น Global เรียบร้อย!"

ช่วงถาม-ตอบ (Q&A)

"ใครมีปัญหาเรื่องการต่อ PostgreSQL หรือการตั้งค่า CORS ไหมครับ?"

☁️❓

พักเบรกบ่าย

"พักผ่อนสักนิด ก่อนกลับมาสรุปบทเรียน
และเตรียมตัวสู่ Hackathon 18 ชม."

พบกันอีกครั้งเวลา 14:45 น. | ก้าวสุดท้ายของวันที่ 3 ครับ
🥤