โลโก้ Drone CI
DevOps และ CI/CDApache 2.0 พร้อมเงื่อนไขเชิงพาณิชย์บางกรณี

Drone CI คืออะไร และวิธีติดตั้งบน Cloud Server

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

หมวดหมู่
DevOps และ CI/CD
ติดตั้งบนเซิร์ฟเวอร์เองได้
ได้
สเปกเริ่มต้นที่แนะนำ
2 vCPU · RAM 4 GB
ไลเซนส์
Apache 2.0 พร้อมเงื่อนไขเชิงพาณิชย์บางกรณี
เว็บทางการ
เปิดเว็บไซต์
สร้าง Cloud Server เดี๋ยวนี้
  • ISO/IEC 27001
  • ISO 22301
  • ISO 20000-1
  • CSA-STAR

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

Drone CI คืออะไร

ปัญหาที่พบบ่อยของระบบ CI แบบเดิมคือเครื่องบิลด์สะสมเครื่องมือและไลบรารีจนสภาพแวดล้อมต่างกันไปเรื่อย ๆ ทำให้เกิดอาการที่บิลด์ผ่านบนเครื่องหนึ่งแต่ไม่ผ่านบนอีกเครื่อง

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

ไฟล์ตั้งค่าอยู่ในที่เก็บโค้ดเดียวกับโปรเจกต์ การเปลี่ยนไปป์ไลน์จึงผ่านการรีวิวเหมือนโค้ดทั่วไป และย้อนกลับได้เมื่อมีปัญหา

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

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

ทุกขั้นตอนรันในคอนเทนเนอร์

สภาพแวดล้อมสะอาดและทำซ้ำได้ทุกครั้ง

ตั้งค่าด้วยไฟล์เดียว

ไปป์ไลน์อยู่ในที่เก็บโค้ด จึงรีวิวและย้อนกลับได้เหมือนโค้ด

เชื่อมกับ Git ได้หลายระบบ

ทำงานร่วมกับ GitLab, Gitea, GitHub และอื่น ๆ

ขยายด้วยการเพิ่มเครื่องรันงาน

เพิ่ม Runner ได้เมื่องานบิลด์เยอะขึ้น

ระบบเบาและติดตั้งง่าย

ใช้ทรัพยากรน้อยกว่าระบบ CI ขนาดใหญ่หลายตัว

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

  • ทีมที่ต้องการระบบ CI ของตัวเองที่เบาและติดตั้งเร็ว
  • โครงการที่ใช้คอนเทนเนอร์อยู่แล้วและอยากให้ CI สอดคล้องกัน
  • องค์กรที่ใช้ Gitea หรือ GitLab ที่ติดตั้งเองและต้องการ CI แยก
  • ทีมที่ต้องการให้ไปป์ไลน์อยู่ในโค้ดและตรวจสอบย้อนหลังได้

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

แผนภาพเทียบสเปก Cloud Server สำหรับ Drone CI 3 ระดับ เริ่มจาก 2 vCPU แรม 4 GB ดิสก์ NVMe 60 GB ไปจนถึง 8 vCPU ขึ้นไป แรม 16 GB ขึ้นไป ดิสก์ NVMe 300 GB ขึ้นไป โดยเทียบขนาดแยกตามแต่ละคอลัมน์
เริ่มจากระดับที่ตรงกับการใช้งานตอนนี้ แล้วเพิ่ม CPU และ RAM ทีหลังได้บนเครื่องเดิม
ระดับการใช้งานvCPURAMDisk
เริ่มต้นเซิร์ฟเวอร์กลางพร้อม Runner หนึ่งตัว2 vCPU4 GBNVMe 60 GB
แนะนำหลายโครงการที่บิลด์ทุกวัน4 vCPU8 GBNVMe 150 GB
ใช้งานหนักแยกเครื่อง Runner หลายตัวสำหรับงานบิลด์พร้อมกัน8 vCPU ขึ้นไป16 GB ขึ้นไปNVMe 300 GB ขึ้นไป

ดูราคาตามสเปกได้ที่ ราคา Cloud Compute หรือให้ทีมงานช่วยประเมินสเปกจากปริมาณผู้ใช้จริงของคุณ

วิธีติดตั้ง Drone CI บน Cloud Server ของ THAI DATA CLOUD

ขั้นตอนด้านล่างใช้กับ Cloud Server ที่เพิ่งสร้างใหม่จากหน้าจัดการของ THAI DATA CLOUD ได้ทันที ถ้าไม่สะดวกทำเอง ทีมวิศวกรของเราติดตั้งและตั้งค่าให้ฟรีสำหรับลูกค้า Cloud Server

สิ่งที่ต้องเตรียม

  • Docker และ Docker Compose
  • ระบบ Git ที่รองรับ เช่น Gitea หรือ GitLab
  • โดเมนและใบรับรอง SSL

ทดสอบบน Ubuntu Server 24.04 LTS ที่ติดตั้ง Docker แล้ว

  1. 1

    สร้างแอปในระบบ Git เพื่อเชื่อมต่อ

    สร้าง OAuth Application ใน Gitea หรือ GitLab แล้วเก็บ Client ID กับ Secret ไว้ใช้ในขั้นตอนถัดไป

  2. 2

    สร้างไฟล์ docker-compose.yml

    services:
      drone:
        image: drone/drone:2
        environment:
          DRONE_GITEA_SERVER: https://git.example.com
          DRONE_GITEA_CLIENT_ID: CHANGE_ME
          DRONE_GITEA_CLIENT_SECRET: CHANGE_ME
          DRONE_RPC_SECRET: PasteALongRandomStringHere
          DRONE_SERVER_HOST: ci.example.com
          DRONE_SERVER_PROTO: https
        volumes:
          - ./drone-data:/data
        ports:
          - "127.0.0.1:8080:80"
        restart: unless-stopped
    
      runner:
        image: drone/drone-runner-docker:1
        environment:
          DRONE_RPC_HOST: drone
          DRONE_RPC_PROTO: http
          DRONE_RPC_SECRET: PasteALongRandomStringHere
          DRONE_RUNNER_CAPACITY: 2
        volumes:
          - /var/run/docker.sock:/var/run/docker.sock
        restart: unless-stopped
  3. 3

    สั่งรัน

    docker compose up -d
  4. 4

    ตั้ง Nginx และ HTTPS

    sudo certbot --nginx -d ci.example.com
  5. 5

    เปิดใช้งานที่เก็บโค้ดและเขียนไปป์ไลน์

    kind: pipeline
    type: docker
    name: default
    
    steps:
      - name: test
        image: node:22
        commands:
          - npm ci
          - npm test
    
      - name: build
        image: node:22
        commands:
          - npm run build
  6. 6

    เก็บค่าลับในระบบ

    เก็บรหัสผ่านและโทเคนไว้ในส่วน Secret ของโครงการ ไม่เขียนลงในไฟล์ไปป์ไลน์ที่อยู่ในที่เก็บโค้ด

Runner ต้องเข้าถึงซ็อกเก็ตของ Docker จึงมีสิทธิ์สูงบนเครื่องนั้น ควรแยกเครื่อง Runner ออกจากบริการอื่นที่สำคัญ

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

พอร์ตโปรโตคอลใช้ทำอะไร
443TCPHTTPS ผ่าน Reverse Proxy
8080TCPพอร์ตภายในของเซิร์ฟเวอร์ Drone

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

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

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

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

รันคู่กับ Gitea หรือ GitLab ที่ติดตั้งเองบน Cloud Server ในไทย ทำให้โค้ดไม่ออกนอกองค์กร

เพิ่มเครื่อง Runner ได้ตามปริมาณงานบิลด์และปิดเมื่อไม่ใช้เพื่อคุมค่าใช้จ่าย

ดึงแพ็กเกจจาก Nexus ในวงเดียวกันทำให้บิลด์เร็วขึ้นมาก

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

Drone ต่างจาก Jenkins อย่างไร

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

ใช้ฟรีได้ไหม

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

รันงานบิลด์พร้อมกันได้กี่งาน

กำหนดได้จากค่าความจุของ Runner และจำนวนเครื่อง Runner ที่มี ถ้างานบิลด์รอคิวบ่อย ให้เพิ่มเครื่อง Runner แทนการเพิ่มสเปกเครื่องเดียว

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

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