วางแผน
Ingestion
Warehouse
3Deploy
4Monitor
เฟส 3 เสร็จ · orchestration พิสูจน์แล้ว (200 + 207)

ขึ้น Cloud Run · รันเองทุก 4 ชั่วโมง

เฟสที่สามของ Premium — มัดเฟส 1 (ingestion) + เฟส 2 (warehouse) เป็นบริการเดียวใน Docker → Cloud Run, ตั้ง Cloud Scheduler ยิงทุก 4 ชม., เก็บ secret ใน Secret Manager. resilient: แพลตฟอร์มเดียวล้ม → คืน HTTP 207 ตัวอื่นยังโหลด. โฟกัสเฉพาะ deploy — monitoring/dashboard อยู่เฟส 4

Cloud Run
Docker serverless
ทุก 4 ชม.
Cloud Scheduler
200/207
พิสูจน์รันจริง
9/9
เทสผ่าน
มืออาชีพ · ไม่หลุดเป้า

ขอบเขตเฟส 3 ชัดเจน

เฟสนี้คือทำให้ระบบ "รันเองบน cloud" — ส่วนเฝ้าระวัง/แดชบอร์ดอยู่เฟสสุดท้าย

✅ เฟสนี้ทำ (In Scope)

  • orchestrator (main.py) มัดเฟส 1 + เฟส 2 · คืน 200/207
  • Dockerfile → Cloud Run (functions-framework)
  • Cloud Scheduler ยิงทุก 4 ชม. (OIDC)
  • Secret Manager — token/DATABASE_URL ไม่ hardcode
  • Cloud SQL connection (--add-cloudsql-instances)
  • deploy.sh + runbook + พิสูจน์ orchestration ในเครื่อง

→ ส่งต่อเฟสหน้า (เฟส 4 สุดท้าย)

  • Cloud Logging/Monitoring + alert policy เฟส 4
  • Telegram health alert + daily summary เฟส 4
  • Looker dashboard เชื่อม views เฟส 4
  • UAT + handover + ดูแล 1 เดือน เฟส 4
01 · โครงสร้าง deploy

จากโค้ด → บริการบน Cloud

ทุกกล่องคือทรัพยากรจริงบน Google Cloud ที่ลูกค้าเป็นเจ้าของ

🐳
Docker image
bundle เฟส 1+2+3
☁️
Cloud Run
serverless · run()
Cloud Scheduler
ยิงทุก 4 ชม. OIDC
🔐
Secret Manager
token/DB_URL
🗄️
Cloud SQL
Postgres warehouse
02 · orchestrator

มัด 2 เฟส + resilient status

main.run() เดิน extract → quality → load แล้วคืนสถานะตามผล

📥
extract (เฟส 1)
5 แพลตฟอร์ม
🚦
quality + load (เฟส 2)
UPSERT Postgres
ครบทุกแพลตฟอร์ม → 200
1 แพลตฟอร์มล้ม → 207 (ตัวอื่นยังโหลด)
03 · โค้ดจริง

เปิดดูโค้ด คัดลอกได้

พิสูจน์ orchestration ก่อน deploy ด้วย python orchestrate_dryrun.py

main.py

    
04 · ผลรันจริง

พิสูจน์ orchestration

output จริงจาก python orchestrate_dryrun.py (เฟส1→เฟส2→warehouse)

$ python orchestrate_dryrun.py
=== Orchestration dry-run === platforms ok : 5/5 orders loaded : 5 | inventory clean : 5 quality reject: 0 HTTP status (ทุกแพลตฟอร์มสำเร็จ) -> 200 (OK) HTTP status (จำลอง tiktok ล้ม) -> 207 (Partial) ✓ orchestration + 207 partial-success logic ทำงานถูกต้อง

🔒 พิสูจน์อะไรบ้าง

🔗 มัดเฟส 1 + เฟส 2 เดินครบ loop 5/5
ทุกแพลตฟอร์มสำเร็จ → HTTP 200
🛡️ 1 แพลตฟอร์มล้ม → HTTP 207
🧩 ตัวอื่นยังโหลด ไม่ abort ทั้ง run resilient
🔐 secret จาก Secret Manager ไม่ hardcode
05 · Deploy

ขึ้น Google Cloud

คำสั่ง gcloud คัดลอกได้ (หรือรัน deploy.sh ทีละบล็อก)

Cloud SQL (Postgres)

สร้าง instance + database → psql -f ../phase2/schema.sql

Secret Manager (ไม่ hardcode)

เก็บ DATABASE_URL + token 5 แพลตฟอร์ม + TG_TOKEN/TG_CHAT

Deploy Cloud Run

gcloud run deploy premium-etl --source . --region asia-southeast1 \
  --no-allow-unauthenticated \
  --add-cloudsql-instances PROJECT:REGION:urbanactive-pg \
  --set-secrets "DATABASE_URL=DATABASE_URL:latest,TG_TOKEN=TG_TOKEN:latest,..."

Cloud Scheduler (ทุก 4 ชม.)

gcloud scheduler jobs create http premium-etl-4h \
  --schedule "0 */4 * * *" --time-zone Asia/Bangkok \
  --uri <RUN_URL> --http-method GET \
  --oidc-service-account-email <SA>

เช็ค: Force run → log status=200 · Postgres มีแถวใหม่

⚠️ การ deploy จริงทำบน GCP ของลูกค้า (เป็นเจ้าของ 100% · มีค่า cloud) — เราเตรียม script + พิสูจน์ logic ครบ พร้อมกดรันเมื่อพร้อม
06 · ทดสอบ

รายงานผล Deploy & Orchestrate

9 กรณีผ่านครบ

#กรณีทดสอบผลที่คาดหวังผล
1orchestration end-to-endเฟส1→เฟส2→warehouse ครบ loop✅ ผ่าน
2สถานะ 200 (ทุกแพลตฟอร์มสำเร็จ)คืน 200✅ ผ่าน
3สถานะ 207 (1 แพลตฟอร์มล้ม)คืน 207 · ที่เหลือยังโหลด✅ ผ่าน
4main.py compilesyntax OK✅ ผ่าน
5Dockerfile (functions-framework)โครงถูก พร้อม build✅ ผ่าน
6deploy.sh syntax (bash -n)ผ่าน · secret idempotent✅ ผ่าน
7secret จาก Secret Managerไม่ hardcode · --set-secrets✅ ผ่าน
8Scheduler ทุก 4 ชม.cron 0 */4 * * * + OIDC✅ ผ่าน
9Cloud SQL connection--add-cloudsql-instances✅ ผ่าน
สรุป: ผ่าน 9/9 · orchestration พิสูจน์รันจริง · deploy artifacts พร้อมขึ้น Cloud Run — เหลือเฟส 4 (สุดท้าย)
ไฟล์ส่งมอบเฟส 3

ดาวน์โหลด ไฟล์จริง

โฟลเดอร์ premium-delivery/phase3/

🧩
Orchestrator
main.py
↓ ดาวน์โหลด
🐳
Container
Dockerfile
↓ ดาวน์โหลด
🚀
Deploy script
deploy.sh
↓ ดาวน์โหลด
▶️
Runnable proof
orchestrate_dryrun.py
↓ ดาวน์โหลด
📘
Deploy runbook
DEPLOY_RUNBOOK.md
↓ ดาวน์โหลด
🧪
รายงานทดสอบ
TEST_REPORT.md
↓ ดาวน์โหลด
AICE Hub🔎 ตรวจ AI ฟรี