โลโก้ Go
ภาษาโปรแกรมและ FrameworkBSD 3-Clause (โอเพนซอร์ส)

Go คืออะไร และวิธี Deploy แอปบน Cloud Server

Go คือภาษาโปรแกรมที่ออกแบบมาเพื่อระบบเซิร์ฟเวอร์โดยเฉพาะ คอมไพล์เป็นไฟล์เดียวที่รันได้ทันที ใช้หน่วยความจำน้อย และรองรับงานพร้อมกันจำนวนมากได้ดี

ติดตั้งบนเซิร์ฟเวอร์เองได้
ได้
สเปกเริ่มต้นที่แนะนำ
1 vCPU · RAM 1 GB
ไลเซนส์
BSD 3-Clause (โอเพนซอร์ส)
เว็บทางการ
เปิดเว็บไซต์
สร้าง Cloud Server เดี๋ยวนี้
  • ISO/IEC 27001
  • ISO 22301
  • ISO 20000-1
  • CSA-STAR

Data Center ในไทย มาตรฐาน TIA-942 Tier 3+ ข้อมูลอยู่ในประเทศไทย

Go คืออะไร

จุดที่ทำให้ Go ต่างจากภาษาอื่นในการนำขึ้นใช้งานคือผลลัพธ์ของการคอมไพล์เป็นไฟล์เดียวที่ไม่ต้องพึ่งไลบรารีภายนอก การ Deploy จึงเหลือเพียงคัดลอกไฟล์ไปวางแล้วรัน

ภาษาถูกออกแบบให้จัดการงานพร้อมกันได้ง่ายและใช้ทรัพยากรน้อยมาก บริการที่เขียนด้วย Go จึงมักใช้หน่วยความจำระดับไม่กี่สิบเมกะไบต์และรองรับคำขอพร้อมกันได้จำนวนมากบนเครื่องเล็ก

ข้อแลกเปลี่ยนคือภาษาตั้งใจให้เรียบง่ายจนขาดความสามารถบางอย่างที่ภาษาอื่นมี ซึ่งทำให้โค้ดยาวกว่าในบางกรณี แต่ก็ทำให้อ่านง่ายและคนใหม่เข้าใจโค้ดของทีมได้เร็ว

แผนผังการวางระบบ Go บน Cloud Server หนึ่งเครื่องที่ Data Center ในประเทศไทย ผู้ใช้เข้าถึงผ่านไฟร์วอลล์ที่เปิดเฉพาะพอร์ต 443, 8080 ตัว Go และข้อมูลอยู่บนเครื่องเดียวกัน เริ่มต้นที่ 1 vCPU แรม 1 GB และมีสำเนาสำรองเขียนออกไปเก็บอีกไซต์หนึ่ง
Go ทำงานบน Cloud Server เครื่องเดียวได้ครบ เปิดเฉพาะพอร์ตที่จำเป็น ข้อมูลและสำเนาสำรองอยู่ใน Data Center ในประเทศไทย

ความสามารถเด่นของ Go

คอมไพล์เป็นไฟล์เดียว

Deploy ง่ายมากเพราะคัดลอกไฟล์ไปวางแล้วรันได้ทันที

ใช้ทรัพยากรน้อยมาก

บริการหนึ่งตัวมักใช้หน่วยความจำระดับไม่กี่สิบเมกะไบต์

จัดการงานพร้อมกันได้ง่าย

รองรับคำขอจำนวนมากพร้อมกันด้วยโค้ดที่ไม่ซับซ้อน

เริ่มทำงานเร็วมาก

เหมาะกับการปรับขนาดอัตโนมัติและงานที่เปิดปิดบ่อย

ไลบรารีมาตรฐานครบ

เขียนเว็บเซิร์ฟเวอร์และงานเครือข่ายได้โดยแทบไม่ต้องพึ่งไลบรารีภายนอก

ใช้ Go ทำอะไรได้บ้าง

  • API และบริการหลังบ้านที่ต้องรองรับคำขอจำนวนมาก
  • เครื่องมือบรรทัดคำสั่งที่แจกจ่ายเป็นไฟล์เดียว
  • ระบบที่แยกเป็นหลายบริการย่อย
  • งานที่ต้องประมวลผลข้อมูลจำนวนมากพร้อมกัน

สเปก Cloud Server ที่แนะนำ

แผนภาพเทียบสเปก Cloud Server สำหรับ Go 3 ระดับ เริ่มจาก 1 vCPU แรม 1 GB ดิสก์ NVMe 20 GB ไปจนถึง 4 vCPU ขึ้นไป แรม 8 GB ขึ้นไป ดิสก์ NVMe 80 GB โดยเทียบขนาดแยกตามแต่ละคอลัมน์
เริ่มจากระดับที่ตรงกับการใช้งานตอนนี้ แล้วเพิ่ม CPU และ RAM ทีหลังได้บนเครื่องเดิม
ระดับการใช้งานvCPURAMDisk
เริ่มต้นบริการเล็กที่มีผู้ใช้ไม่มาก1 vCPU1 GBNVMe 20 GB
แนะนำAPI งานจริงที่มีคำขอต่อเนื่อง2 vCPU4 GBNVMe 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. 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. 2

    คอมไพล์แอป

    ตั้งค่าให้คอมไพล์แบบไม่พึ่งไลบรารีของระบบ ทำให้ไฟล์ที่ได้รันบนเครื่องปลายทางได้โดยไม่ต้องติดตั้งอะไรเพิ่ม

    CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o app ./cmd/server
  3. 3

    ส่งไฟล์ไปเครื่องปลายทาง

    scp app user@server:/tmp/
    ssh user@server "sudo mv /tmp/app /opt/myapp/app && sudo chmod +x /opt/myapp/app"
  4. 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. 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. 6

    ตั้งขั้นตอนอัปเดตแบบไม่หยุดบริการ

    ส่งไฟล์ใหม่ไปวางแล้วสั่งรีสตาร์ตบริการ ซึ่งใช้เวลาไม่ถึงวินาทีเพราะแอปเริ่มทำงานเร็วมาก หรือใช้ตัวกระจายโหลดสลับทีละเครื่องเมื่อต้องการไม่ให้ขาดตอนเลย

คอมไพล์บนเครื่องบิลด์แล้วส่งเฉพาะไฟล์ผลลัพธ์ไปเครื่องจริง ทำให้เครื่องที่ให้บริการไม่ต้องติดตั้งเครื่องมือพัฒนา ซึ่งลดพื้นที่เสี่ยงลง

พอร์ตที่ต้องเปิดบน Firewall

พอร์ตโปรโตคอลใช้ทำอะไร
443TCPHTTPS ผ่าน Nginx
8080TCPพอร์ตภายในของแอป

สิ่งที่ควรทำต่อหลังติดตั้งเสร็จ

  • รันแอปด้วยผู้ใช้ที่ไม่มีสิทธิ์สูงสุด
  • ไม่ติดตั้งเครื่องมือพัฒนาบนเครื่องที่ให้บริการจริง
  • เก็บค่าลับในไฟล์ตัวแปรสภาพแวดล้อมที่จำกัดสิทธิ์
  • อัปเดตรุ่นของภาษาและไลบรารีตามการแจ้งช่องโหว่

ทำไมควรรัน Go บน Cloud Server ของ THAI DATA CLOUD

Data Center ในประเทศไทย มาตรฐาน ISO/IEC 27001 และ ISO 22301 พร้อมทีมวิศวกรคนไทยดูแลตลอด 24 ชั่วโมง

ใช้ทรัพยากรน้อยมาก จึงรันหลายบริการบน Cloud Server เครื่องเดียวได้อย่างคุ้มค่า

เริ่มทำงานเร็วจึงเหมาะกับการเพิ่มเครื่องอัตโนมัติเมื่อทราฟฟิกพุ่ง

เชื่อมกับฐานข้อมูลใน Private Network ได้โดยตรง

คำถามที่พบบ่อยเกี่ยวกับ Go

Go เหมาะกับงานแบบไหน

เหมาะมากกับ API และบริการหลังบ้านที่ต้องรองรับคำขอจำนวนมาก รวมถึงเครื่องมือบรรทัดคำสั่งที่ต้องแจกจ่ายเป็นไฟล์เดียว ส่วนงานที่ต้องใช้ไลบรารีเฉพาะทางจำนวนมากอาจเหมาะกับ Python มากกว่า

ใช้ทรัพยากรน้อยจริงไหม

จริง บริการที่เขียนด้วย Go มักใช้หน่วยความจำระดับไม่กี่สิบเมกะไบต์ ต่างจากภาษาที่ต้องรันบนเครื่องเสมือนซึ่งใช้หลายร้อยเมกะไบต์ ทำให้รันหลายบริการบนเครื่องเดียวได้คุ้มกว่ามาก

Deploy อย่างไรให้ง่ายที่สุด

คอมไพล์บนเครื่องบิลด์แล้วส่งไฟล์เดียวไปวางบนเครื่องจริง จากนั้นรันเป็นบริการของระบบ ซึ่งง่ายกว่าภาษาที่ต้องติดตั้งสภาพแวดล้อมและไลบรารีบนเครื่องปลายทาง

บริการของ THAI DATA CLOUD ที่เกี่ยวข้อง

ให้เราติดตั้ง Go ให้ฟรี บน Cloud Server ในไทย

แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด