Dev Machines
สภาพแวดล้อมสำหรับพัฒนาและทดสอบแบบแยกอิสระ รันบน Linux เต็มรูปแบบ ขับเคลื่อนโดย Proyecta Cloud
Proyecta จะจัดสรร dev machine (runtime) แบบเฉพาะเจาะจงให้กับแต่ละโปรเจกต์ ซึ่งเป็น container แบบแยกอิสระที่มี Linux environment เต็มรูปแบบ สำหรับรันแอปของคุณระหว่างการพัฒนา
Dev machine ทำงานอย่างไร?
หัวข้อที่มีชื่อว่า “Dev machine ทำงานอย่างไร?”เมื่อคุณเปิดโปรเจกต์ Proyecta จะ:
- สร้าง container (pod) แบบแยกอิสระบนคลาวด์
- Clone โค้ดของคุณจาก GitHub
- ติดตั้ง dependency และตั้งค่า environment
- เริ่ม development server ของแอปคุณ
- แสดง live preview ใน builder
คุณสามารถดูความคืบหน้าการจัดสรรได้ที่ Runtime Status Bar ด้านล่างของ toolbar
ขั้นตอนการจัดสรร
หัวข้อที่มีชื่อว่า “ขั้นตอนการจัดสรร”Status bar จะแสดงขั้นตอนเหล่านี้ระหว่างการเริ่มต้น:
| ขั้นตอน | คำอธิบาย |
|---|---|
| Creating pod | กำลังสร้าง container แบบแยกอิสระ |
| Health check | ตรวจสอบว่า container ทำงานได้ปกติ |
| Git init | กำลัง clone repository ของคุณ |
| Environment setup | ติดตั้ง dependency (npm, pip ฯลฯ) |
| Starting services | เริ่มแอปและ infrastructure |
| Ready | Dev machine พร้อมใช้งานเต็มรูปแบบแล้ว |
Dev machine มีปัญหา แก้ไขอย่างไร?
หัวข้อที่มีชื่อว่า “Dev machine มีปัญหา แก้ไขอย่างไร?”หาก preview ไม่โหลด หรือเครื่องดูเหมือนค้างอยู่:
- ตรวจสอบ Runtime Status Bar เพื่อดูข้อความแสดงข้อผิดพลาด
- ลองใช้ Terminal เพื่อตรวจสอบ log
- หากยังแก้ไขไม่ได้ ให้ขอให้ AI ช่วย debug ปัญหา
บริการ Infrastructure
หัวข้อที่มีชื่อว่า “บริการ Infrastructure”Dev machine ของคุณสามารถรวม sidecar container สำหรับฐานข้อมูลและบริการต่างๆ ได้:
- PostgreSQL — ฐานข้อมูล relational (port 5432)
- PostGIS — PostgreSQL พร้อม geospatial extensions (port 5432)
- Redis — In-memory cache (port 6379)
- MongoDB — ฐานข้อมูลแบบ document (port 27017)
- MySQL — ฐานข้อมูล relational (port 3306)
- MailHog — Email testing server พร้อม web UI (SMTP port 1025, UI port 8025)
ดูบริการที่กำลังรันและสถานะของบริการได้ที่แผง Services
สถานะวงจรชีวิต
หัวข้อที่มีชื่อว่า “สถานะวงจรชีวิต”Dev machine จะผ่านสถานะวงจรชีวิตเหล่านี้:
| สถานะ | คำอธิบาย |
|---|---|
| Pending | รอการสร้าง |
| Initializing | กำลังตั้งค่า environment |
| Running | ทำงานอยู่และปกติดี |
| Suspended | หยุดชั่วคราวเพื่อประหยัดทรัพยากร (กลับมาทำงานได้เร็ว) |
| Archived | จัดเก็บใน cold storage (ใช้เวลานานกว่าในการกู้คืน) |
| Restoring | กำลังกู้คืนจาก archived storage |
| Failed | การจัดสรรหรือการทำงานล้มเหลว — สามารถทำการ provision ใหม่ได้ |
| Terminated | หยุดการทำงานถาวร |
เครื่องจะ suspend โดยอัตโนมัติหลังจากไม่มีการใช้งาน 60 นาที และจะ archive หลังจาก suspend ไป 24 ชั่วโมง
คำถามที่พบบ่อย
หัวข้อที่มีชื่อว่า “คำถามที่พบบ่อย”หาก dev machine หยุดทำงาน จะเกิดอะไรขึ้นกับแอปที่ publish ไว้?
backend ของแอป (Convex serverless functions และฐานข้อมูล) รันบน cloud infrastructure ของ Convex เอง และยังคงพร้อมใช้งานโดยไม่ขึ้นกับสถานะของ dev machine อย่างไรก็ตาม ไฟล์ frontend ของแอปจะถูก serve จาก dev machine — หากเครื่อง suspend หรือ archive อยู่ ผู้เข้าชมจะพบข้อผิดพลาด 503 จนกว่าเครื่องจะกลับมาทำงาน โปรดคำนึงถึงเรื่องนี้สำหรับแอปที่ต้องการให้เข้าถึงได้สาธารณะตลอดเวลา การ resume เครื่องจะทำให้เว็บไซต์กลับมาทำงานได้ปกติ
สามารถใช้ dev machine ที่เร็วกว่านี้ได้ไหม?
ปัจจุบัน dev machine ทุกเครื่องรันด้วยการจัดสรรทรัพยากรเท่ากัน หากต้องการความสามารถมากขึ้นสำหรับโปรเจกต์ขนาดใหญ่ โปรดติดต่อฝ่ายสนับสนุน
สามารถเข้าถึง dev machine โดยตรงได้ไหม?
ได้ ใช้ Terminal ในตัวเพื่อเข้าถึง shell เต็มรูปแบบของ development environment ของคุณ