Rust คืออะไร และวิธี Deploy แอปบน Cloud Server
Rust คือภาษาโปรแกรมที่ให้ความเร็วระดับภาษาระบบพร้อมกลไกที่ป้องกันข้อผิดพลาดด้านหน่วยความจำตั้งแต่ตอนคอมไพล์ จึงเหมาะกับระบบที่ต้องการทั้งประสิทธิภาพและความน่าเชื่อถือ
- หมวดหมู่
- ภาษาโปรแกรมและ Framework
- ติดตั้งบนเซิร์ฟเวอร์เองได้
- ได้
- สเปกเริ่มต้นที่แนะนำ
- 1 vCPU · RAM 1 GB
- ไลเซนส์
- MIT และ Apache 2.0 (โอเพนซอร์ส)
- เว็บทางการ
- เปิดเว็บไซต์
- ISO/IEC 27001
- ISO 22301
- ISO 20000-1
- CSA-STAR
Data Center ในไทย มาตรฐาน TIA-942 Tier 3+ ข้อมูลอยู่ในประเทศไทย
Rust คืออะไร
ภาษาที่ให้ความเร็วสูงแบบดั้งเดิมปล่อยให้ผู้เขียนจัดการหน่วยความจำเอง ซึ่งเป็นต้นตอของช่องโหว่ความปลอดภัยจำนวนมากที่พบในซอฟต์แวร์ระบบมาหลายสิบปี
Rust แก้ปัญหานี้ด้วยกลไกตรวจสอบตอนคอมไพล์ที่รับประกันว่าโค้ดจะไม่เข้าถึงหน่วยความจำผิดพลาด โดยไม่ต้องมีตัวเก็บขยะที่ทำให้ประสิทธิภาพไม่แน่นอน จึงได้ทั้งความเร็วและความปลอดภัย
ข้อแลกเปลี่ยนคือช่วงเรียนรู้ที่ชันกว่าภาษาอื่นมาก เพราะต้องเข้าใจแนวคิดเรื่องความเป็นเจ้าของข้อมูล ทีมจึงควรประเมินว่าคุ้มกับงานที่ทำหรือไม่ ก่อนเลือกใช้กับโครงการที่มีกำหนดส่งที่แน่นอน
ความสามารถเด่นของ Rust
ความเร็วระดับภาษาระบบ
ไม่มีตัวเก็บขยะ ประสิทธิภาพจึงคาดการณ์ได้
ป้องกันข้อผิดพลาดหน่วยความจำ
ตรวจตั้งแต่ตอนคอมไพล์ ลดช่องโหว่ที่พบบ่อยในภาษาระบบ
จัดการงานพร้อมกันได้อย่างปลอดภัย
ตัวคอมไพเลอร์จับข้อผิดพลาดจากการเข้าถึงข้อมูลพร้อมกัน
คอมไพล์เป็นไฟล์เดียว
Deploy ง่ายเหมือนภาษาที่คอมไพล์เป็นไฟล์เดียวตัวอื่น
ระบบจัดการแพ็กเกจที่ดี
จัดการไลบรารีและเวอร์ชันได้เป็นระบบ
ใช้ Rust ทำอะไรได้บ้าง
- บริการที่ต้องการประสิทธิภาพสูงสุดและความหน่วงต่ำ
- ส่วนประกอบที่ต้องประมวลผลข้อมูลจำนวนมาก
- เครื่องมือระบบและงานที่ต้องการความน่าเชื่อถือสูง
- งานที่เคยเขียนด้วยภาษาระบบแต่ต้องการลดความเสี่ยงด้านความปลอดภัย
สเปก Cloud Server ที่แนะนำ
| ระดับการใช้งาน | vCPU | RAM | Disk |
|---|---|---|---|
| เริ่มต้นบริการเล็กที่คอมไพล์บนเครื่องอื่น | 1 vCPU | 1 GB | NVMe 20 GB |
| แนะนำบริการงานจริงที่มีคำขอต่อเนื่อง | 2 vCPU | 4 GB | NVMe 40 GB |
| เครื่องบิลด์การคอมไพล์ใช้ทรัพยากรมากและใช้เวลานาน | 8 vCPU ขึ้นไป | 16 GB ขึ้นไป | NVMe 100 GB |
ดูราคาตามสเปกได้ที่ ราคา Cloud Compute หรือให้ทีมงานช่วยประเมินสเปกจากปริมาณผู้ใช้จริงของคุณ
วิธีติดตั้ง Rust บน Cloud Server ของ THAI DATA CLOUD
ขั้นตอนด้านล่างใช้กับ Cloud Server ที่เพิ่งสร้างใหม่จากหน้าจัดการของ THAI DATA CLOUD ได้ทันที ถ้าไม่สะดวกทำเอง ทีมวิศวกรของเราติดตั้งและตั้งค่าให้ฟรีสำหรับลูกค้า Cloud Server
สิ่งที่ต้องเตรียม
- Ubuntu Server 24.04 LTS
- เครื่องมือของภาษาสำหรับคอมไพล์ (ควรคอมไพล์บนเครื่องบิลด์แยก)
- Nginx พร้อมใบรับรอง SSL
- ฐานข้อมูลถ้าแอปต้องเก็บข้อมูล
ทดสอบบน Ubuntu Server 24.04 LTS
- 1
ติดตั้งเครื่องมือบนเครื่องบิลด์
curl --proto "=https" --tlsv1.2 -sSf https://sh.rustup.rs | sh source "$HOME/.cargo/env" rustc --version - 2
คอมไพล์แบบเพิ่มประสิทธิภาพ
การคอมไพล์แบบเพิ่มประสิทธิภาพใช้เวลานานกว่ามากแต่ได้ไฟล์ที่เร็วกว่าอย่างชัดเจน ควรทำบนเครื่องบิลด์ไม่ใช่เครื่องที่ให้บริการ
cargo build --release ls -lh target/release/myapp - 3
ส่งไฟล์ไปเครื่องปลายทาง
scp target/release/myapp user@server:/tmp/ ssh user@server "sudo mv /tmp/myapp /opt/myapp/ && sudo chmod +x /opt/myapp/myapp" - 4
สร้างไฟล์บริการ
# /etc/systemd/system/myapp.service [Unit] Description=Rust Application After=network.target [Service] User=myapp ExecStart=/opt/myapp/myapp EnvironmentFile=/opt/myapp/app.env Restart=always [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
ตั้งไปป์ไลน์บิลด์อัตโนมัติ
ให้ระบบ CI คอมไพล์และทดสอบทุกครั้งที่มีโค้ดใหม่ แล้วส่งไฟล์ไปเครื่องจริงเมื่อผ่าน เพราะการคอมไพล์ใช้เวลานานจึงไม่ควรทำด้วยมือทุกครั้ง
ใช้เครื่องบิลด์ที่มีสเปกสูงและเปิดแคชของระบบ CI เพราะการคอมไพล์ใช้ทรัพยากรและเวลามาก โดยเฉพาะเมื่อโปรเจกต์มีไลบรารีจำนวนมาก
พอร์ตที่ต้องเปิดบน Firewall
| พอร์ต | โปรโตคอล | ใช้ทำอะไร |
|---|---|---|
| 443 | TCP | HTTPS ผ่าน Nginx |
| 8080 | TCP | พอร์ตภายในของแอป |
สิ่งที่ควรทำต่อหลังติดตั้งเสร็จ
- รันแอปด้วยผู้ใช้ที่ไม่มีสิทธิ์สูงสุด
- ไม่ติดตั้งเครื่องมือคอมไพล์บนเครื่องที่ให้บริการจริง
- ตรวจไลบรารีที่ใช้ด้วยเครื่องมือตรวจช่องโหว่ของระบบนิเวศ
- เก็บค่าลับในไฟล์ตัวแปรสภาพแวดล้อมที่จำกัดสิทธิ์
ทำไมควรรัน Rust บน Cloud Server ของ THAI DATA CLOUD
Data Center ในประเทศไทย มาตรฐาน ISO/IEC 27001 และ ISO 22301 พร้อมทีมวิศวกรคนไทยดูแลตลอด 24 ชั่วโมง
ใช้ทรัพยากรน้อยมากขณะให้บริการ จึงรันบน Cloud Server สเปกเล็กได้
ใช้เครื่องบิลด์สเปกสูงเฉพาะช่วงคอมไพล์แล้วปิดเพื่อคุมค่าใช้จ่าย
เชื่อมกับฐานข้อมูลใน Private Network ได้โดยตรง
คำถามที่พบบ่อยเกี่ยวกับ Rust
Rust ต่างจาก Go อย่างไร
Go เรียนรู้เร็วกว่ามากและเพียงพอสำหรับบริการหลังบ้านทั่วไป ส่วน Rust ให้ประสิทธิภาพสูงกว่าและควบคุมหน่วยความจำได้ละเอียดกว่า แลกกับช่วงเรียนรู้ที่ชันกว่ามาก ทีมส่วนใหญ่จึงเลือก Go สำหรับงานทั่วไป
คุ้มไหมที่จะเรียนรู้
คุ้มเมื่องานต้องการประสิทธิภาพสูงสุดหรือความน่าเชื่อถือระดับที่ข้อผิดพลาดยอมรับไม่ได้ ส่วนงานทั่วไปที่มีกำหนดส่งแน่นอน ภาษาที่ทีมถนัดอยู่แล้วมักให้ผลลัพธ์ทางธุรกิจที่ดีกว่า
ทำไมคอมไพล์นาน
เพราะตัวคอมไพเลอร์ตรวจสอบความถูกต้องอย่างเข้มงวดและเพิ่มประสิทธิภาพของโค้ดมาก ซึ่งเป็นเหตุผลที่ไฟล์ผลลัพธ์เร็ว ควรใช้เครื่องบิลด์สเปกสูงและเปิดแคชในระบบ CI เพื่อลดเวลา
ทางเลือกอื่นที่คล้ายกับ Rust
แอปอื่นในหมวด ภาษาโปรแกรมและ Framework
บริการของ THAI DATA CLOUD ที่เกี่ยวข้อง
ให้เราติดตั้ง Rust ให้ฟรี บน Cloud Server ในไทย
แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด