7 คะแนน โดย GN⁺ 2023-07-17 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • อธิบายการตั้งค่าของผู้เขียนสำหรับการดูแลเซิร์ฟเวอร์และโครงสร้างพื้นฐานอินเทอร์เน็ต
  • ชอบรันซอฟต์แวร์เซิร์ฟเวอร์บนเครื่องเสมือนหรือเซิร์ฟเวอร์จริง แทนการใช้โซลูชันคลาวด์
  • ผู้เขียนใช้ DigitalOcean VM (เครื่องเสมือน) สำหรับบริการ และรัน Debian 10
  • ซอฟต์แวร์เซิร์ฟเวอร์เขียนด้วย Rust และคอมไพล์เป็นไฟล์ไบนารีเดียว
  • ใช้ systemd เพื่อให้ไบนารีเริ่มทำงานเมื่อเซิร์ฟเวอร์บูต
  • โปรแกรมที่ต้องใช้ฐานข้อมูล ใช้ SQLite พร้อมโซลูชันสำรองข้อมูลแบบซ้ำซ้อน
  • เซิร์ฟเวอร์ทั้งหมดรันอยู่หลัง nginx เพื่อทำ TLS termination และให้บริการไฟล์สถิต
  • การตั้งค่านั้นเรียบง่าย แข็งแรงทนทาน และต้องการการดูแลรักษาน้อยที่สุด
  • สามารถรันหลายบริการบน VM เดียวกันได้ผ่านการแยกด้วยบัญชีผู้ใช้ Unix
  • การตั้งค่าโปรเจ็กต์ใหม่ประกอบด้วยการสร้างผู้ใช้ใหม่ เพิ่ม nginx virtual host เพิ่ม systemd unit และรันสคริปต์ deploy
  • การเปลี่ยนแปลงโครงสร้างพื้นฐานทำอย่างค่อยเป็นค่อยไป เพื่อให้ได้ความเสถียรและคาดการณ์ได้
  • ผู้เขียนขอบคุณ Julia Evans ที่ช่วยสนับสนุนให้เขียนบทความนี้

1 ความคิดเห็น

 
GN⁺ 2023-07-17
ความคิดเห็นบน Hacker News
  • Cloud function ที่ถูกทริกเกอร์ผ่าน HTTP เป็นตัวเลือกยอดนิยมที่ช่วยให้การจัดการเซิร์ฟเวอร์ง่ายขึ้นและลดความซับซ้อน
  • การรันแต่ละบริการด้วยบัญชีผู้ใช้ Unix ที่ไม่ซ้ำกันช่วยเรื่องการแยกส่วนและความปลอดภัย
  • การใช้ความสามารถ DynamicUser ของ systemd ช่วยให้กระบวนการตั้งค่าง่ายขึ้นและประหยัดเวลา
  • นักพัฒนาจำนวนมากใช้ Linode VMs และ Debian GNU/Linux สำหรับเว็บไซต์ส่วนตัวและเว็บไซต์โปรเจกต์
  • Common Lisp เป็นตัวเลือกภาษายอดนิยมสำหรับการเขียนซอฟต์แวร์ในสภาพแวดล้อมลักษณะนี้
  • Nginx มักถูกใช้เป็น reverse proxy และสำหรับให้บริการไฟล์แบบสแตติก
  • Docker container และ docker-compose เป็นตัวเลือกทางเลือกสำหรับการรันบริการ
  • การทำ failover และ uptime เป็นสิ่งสำคัญที่ต้องคำนึงถึงในสภาพแวดล้อม production
  • โดยทั่วไปมักมีการใช้มาตรการด้านความปลอดภัย เช่น การสำรองข้อมูล กฎไฟร์วอลล์ และการยืนยันตัวตน SSH แบบใช้กุญแจ
  • สคริปต์สำหรับดีพลอยและการควบคุมเวอร์ชันมีประโยชน์ต่อการจัดการการอัปเดตแอปและการย้อนกลับ
  • ตัวแปรสภาพแวดล้อม ข้อจำกัดการเปิดไฟล์ และการตั้งค่าการทำบันทึกเหตุการณ์เป็นสิ่งสำคัญที่ต้องพิจารณาในการตั้งค่าบริการ
  • PostgreSQL, NGINX, Redis และ Node.js เป็นองค์ประกอบซอฟต์แวร์ที่ใช้กันบ่อย
  • Dokku เป็นเครื่องมือยอดนิยมสำหรับการจัดการการดีพลอยและการเพิ่มปลั๊กอิน
  • นักพัฒนาบางคนชอบการตั้งค่าที่เรียบง่ายกว่า โดยใช้เซิร์ฟเวอร์เพียงเครื่องเดียวและบัญชีผู้ใช้ Linux มาตรฐาน
  • ความซับซ้อนอาจนำไปสู่ความไม่เสถียรและเวลาหยุดทำงาน ดังนั้นความเรียบง่ายจึงมักเป็นทางเลือกที่ดีกว่า เว้นแต่จะมีความจำเป็นต้องใช้ความซับซ้อนแบบเฉพาะเจาะจง