Go คืออะไร และวิธี Deploy แอปบน Cloud Server
Go คือภาษาโปรแกรมที่ออกแบบมาเพื่อระบบเซิร์ฟเวอร์โดยเฉพาะ คอมไพล์เป็นไฟล์เดียวที่รันได้ทันที ใช้หน่วยความจำน้อย และรองรับงานพร้อมกันจำนวนมากได้ดี
- หมวดหมู่
- ภาษาโปรแกรมและ Framework
- ติดตั้งบนเซิร์ฟเวอร์เองได้
- ได้
- สเปกเริ่มต้นที่แนะนำ
- 1 vCPU · RAM 1 GB
- ไลเซนส์
- BSD 3-Clause (โอเพนซอร์ส)
- เว็บทางการ
- เปิดเว็บไซต์
- ISO/IEC 27001
- ISO 22301
- ISO 20000-1
- CSA-STAR
Data Center ในไทย มาตรฐาน TIA-942 Tier 3+ ข้อมูลอยู่ในประเทศไทย
Go คืออะไร
จุดที่ทำให้ Go ต่างจากภาษาอื่นในการนำขึ้นใช้งานคือผลลัพธ์ของการคอมไพล์เป็นไฟล์เดียวที่ไม่ต้องพึ่งไลบรารีภายนอก การ Deploy จึงเหลือเพียงคัดลอกไฟล์ไปวางแล้วรัน
ภาษาถูกออกแบบให้จัดการงานพร้อมกันได้ง่ายและใช้ทรัพยากรน้อยมาก บริการที่เขียนด้วย Go จึงมักใช้หน่วยความจำระดับไม่กี่สิบเมกะไบต์และรองรับคำขอพร้อมกันได้จำนวนมากบนเครื่องเล็ก
ข้อแลกเปลี่ยนคือภาษาตั้งใจให้เรียบง่ายจนขาดความสามารถบางอย่างที่ภาษาอื่นมี ซึ่งทำให้โค้ดยาวกว่าในบางกรณี แต่ก็ทำให้อ่านง่ายและคนใหม่เข้าใจโค้ดของทีมได้เร็ว
ความสามารถเด่นของ Go
คอมไพล์เป็นไฟล์เดียว
Deploy ง่ายมากเพราะคัดลอกไฟล์ไปวางแล้วรันได้ทันที
ใช้ทรัพยากรน้อยมาก
บริการหนึ่งตัวมักใช้หน่วยความจำระดับไม่กี่สิบเมกะไบต์
จัดการงานพร้อมกันได้ง่าย
รองรับคำขอจำนวนมากพร้อมกันด้วยโค้ดที่ไม่ซับซ้อน
เริ่มทำงานเร็วมาก
เหมาะกับการปรับขนาดอัตโนมัติและงานที่เปิดปิดบ่อย
ไลบรารีมาตรฐานครบ
เขียนเว็บเซิร์ฟเวอร์และงานเครือข่ายได้โดยแทบไม่ต้องพึ่งไลบรารีภายนอก
ใช้ Go ทำอะไรได้บ้าง
- API และบริการหลังบ้านที่ต้องรองรับคำขอจำนวนมาก
- เครื่องมือบรรทัดคำสั่งที่แจกจ่ายเป็นไฟล์เดียว
- ระบบที่แยกเป็นหลายบริการย่อย
- งานที่ต้องประมวลผลข้อมูลจำนวนมากพร้อมกัน
สเปก Cloud Server ที่แนะนำ
| ระดับการใช้งาน | vCPU | RAM | Disk |
|---|---|---|---|
| เริ่มต้นบริการเล็กที่มีผู้ใช้ไม่มาก | 1 vCPU | 1 GB | NVMe 20 GB |
| แนะนำAPI งานจริงที่มีคำขอต่อเนื่อง | 2 vCPU | 4 GB | NVMe 40 GB |
| ทราฟฟิกสูงคำขอจำนวนมากพร้อมกัน | 4 vCPU ขึ้นไป | 8 GB ขึ้นไป | NVMe 80 GB |
ดูราคาตามสเปกได้ที่ ราคา Cloud Compute หรือให้ทีมงานช่วยประเมินสเปกจากปริมาณผู้ใช้จริงของคุณ
วิธีติดตั้ง Go บน Cloud Server ของ THAI DATA CLOUD
ขั้นตอนด้านล่างใช้กับ Cloud Server ที่เพิ่งสร้างใหม่จากหน้าจัดการของ THAI DATA CLOUD ได้ทันที ถ้าไม่สะดวกทำเอง ทีมวิศวกรของเราติดตั้งและตั้งค่าให้ฟรีสำหรับลูกค้า Cloud Server
สิ่งที่ต้องเตรียม
- Ubuntu Server 24.04 LTS
- Go สำหรับคอมไพล์ (คอมไพล์บนเครื่องบิลด์แล้วส่งไฟล์ไปก็ได้)
- Nginx พร้อมใบรับรอง SSL
- ฐานข้อมูลถ้าแอปต้องเก็บข้อมูล
ทดสอบบน Ubuntu Server 24.04 LTS
- 1
ติดตั้ง Go บนเครื่องบิลด์
curl -LO https://go.dev/dl/go1.23.0.linux-amd64.tar.gz sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.23.0.linux-amd64.tar.gz echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc && source ~/.bashrc go version - 2
คอมไพล์แอป
ตั้งค่าให้คอมไพล์แบบไม่พึ่งไลบรารีของระบบ ทำให้ไฟล์ที่ได้รันบนเครื่องปลายทางได้โดยไม่ต้องติดตั้งอะไรเพิ่ม
CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o app ./cmd/server - 3
ส่งไฟล์ไปเครื่องปลายทาง
scp app user@server:/tmp/ ssh user@server "sudo mv /tmp/app /opt/myapp/app && sudo chmod +x /opt/myapp/app" - 4
สร้างไฟล์บริการ
# /etc/systemd/system/myapp.service [Unit] Description=Go Application After=network.target [Service] User=myapp ExecStart=/opt/myapp/app EnvironmentFile=/opt/myapp/app.env Restart=always RestartSec=5 [Install] WantedBy=multi-user.target - 5
ตั้ง Nginx เป็น Reverse Proxy
location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } - 6
ตั้งขั้นตอนอัปเดตแบบไม่หยุดบริการ
ส่งไฟล์ใหม่ไปวางแล้วสั่งรีสตาร์ตบริการ ซึ่งใช้เวลาไม่ถึงวินาทีเพราะแอปเริ่มทำงานเร็วมาก หรือใช้ตัวกระจายโหลดสลับทีละเครื่องเมื่อต้องการไม่ให้ขาดตอนเลย
คอมไพล์บนเครื่องบิลด์แล้วส่งเฉพาะไฟล์ผลลัพธ์ไปเครื่องจริง ทำให้เครื่องที่ให้บริการไม่ต้องติดตั้งเครื่องมือพัฒนา ซึ่งลดพื้นที่เสี่ยงลง
พอร์ตที่ต้องเปิดบน Firewall
| พอร์ต | โปรโตคอล | ใช้ทำอะไร |
|---|---|---|
| 443 | TCP | HTTPS ผ่าน Nginx |
| 8080 | TCP | พอร์ตภายในของแอป |
สิ่งที่ควรทำต่อหลังติดตั้งเสร็จ
- รันแอปด้วยผู้ใช้ที่ไม่มีสิทธิ์สูงสุด
- ไม่ติดตั้งเครื่องมือพัฒนาบนเครื่องที่ให้บริการจริง
- เก็บค่าลับในไฟล์ตัวแปรสภาพแวดล้อมที่จำกัดสิทธิ์
- อัปเดตรุ่นของภาษาและไลบรารีตามการแจ้งช่องโหว่
ทำไมควรรัน Go บน Cloud Server ของ THAI DATA CLOUD
Data Center ในประเทศไทย มาตรฐาน ISO/IEC 27001 และ ISO 22301 พร้อมทีมวิศวกรคนไทยดูแลตลอด 24 ชั่วโมง
ใช้ทรัพยากรน้อยมาก จึงรันหลายบริการบน Cloud Server เครื่องเดียวได้อย่างคุ้มค่า
เริ่มทำงานเร็วจึงเหมาะกับการเพิ่มเครื่องอัตโนมัติเมื่อทราฟฟิกพุ่ง
เชื่อมกับฐานข้อมูลใน Private Network ได้โดยตรง
คำถามที่พบบ่อยเกี่ยวกับ Go
Go เหมาะกับงานแบบไหน
เหมาะมากกับ API และบริการหลังบ้านที่ต้องรองรับคำขอจำนวนมาก รวมถึงเครื่องมือบรรทัดคำสั่งที่ต้องแจกจ่ายเป็นไฟล์เดียว ส่วนงานที่ต้องใช้ไลบรารีเฉพาะทางจำนวนมากอาจเหมาะกับ Python มากกว่า
ใช้ทรัพยากรน้อยจริงไหม
จริง บริการที่เขียนด้วย Go มักใช้หน่วยความจำระดับไม่กี่สิบเมกะไบต์ ต่างจากภาษาที่ต้องรันบนเครื่องเสมือนซึ่งใช้หลายร้อยเมกะไบต์ ทำให้รันหลายบริการบนเครื่องเดียวได้คุ้มกว่ามาก
Deploy อย่างไรให้ง่ายที่สุด
คอมไพล์บนเครื่องบิลด์แล้วส่งไฟล์เดียวไปวางบนเครื่องจริง จากนั้นรันเป็นบริการของระบบ ซึ่งง่ายกว่าภาษาที่ต้องติดตั้งสภาพแวดล้อมและไลบรารีบนเครื่องปลายทาง
ทางเลือกอื่นที่คล้ายกับ Go
แอปอื่นในหมวด ภาษาโปรแกรมและ Framework
บริการของ THAI DATA CLOUD ที่เกี่ยวข้อง
ให้เราติดตั้ง Go ให้ฟรี บน Cloud Server ในไทย
แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด