7 điểm bởi GN⁺ 2023-07-17 | 1 bình luận | Chia sẻ qua WhatsApp
  • Giải thích về cách thiết lập của tác giả để vận hành máy chủ và hạ tầng internet
  • Thích chạy phần mềm máy chủ trên máy ảo hoặc máy chủ vật lý thay vì dùng giải pháp đám mây
  • Tác giả sử dụng VM (máy ảo) của DigitalOcean cho dịch vụ và chạy Debian 10
  • Phần mềm máy chủ được viết bằng Rust và được biên dịch thành một tệp nhị phân duy nhất
  • Sử dụng systemd để tệp nhị phân khởi động cùng lúc máy chủ khởi động
  • Các chương trình cần cơ sở dữ liệu sử dụng SQLite với giải pháp sao lưu dự phòng
  • Tất cả máy chủ đều chạy phía sau nginx để kết thúc TLS và phục vụ tệp tĩnh
  • Cấu hình đơn giản, vững chắc và chỉ cần bảo trì ở mức tối thiểu
  • Có thể chạy nhiều dịch vụ trên cùng một VM thông qua việc cô lập bằng tài khoản người dùng Unix
  • Thiết lập dự án mới gồm tạo người dùng mới, thêm máy chủ ảo nginx, thêm unit systemd và chạy script triển khai
  • Các thay đổi hạ tầng được thực hiện chậm rãi để đảm bảo tính ổn định và khả năng dự đoán
  • Tác giả bày tỏ lời cảm ơn tới Julia Evans vì đã khuyến khích mình viết bài này

1 bình luận

 
GN⁺ 2023-07-17
Ý kiến trên Hacker News
  • Các hàm đám mây được kích hoạt bằng HTTP là lựa chọn phổ biến để đơn giản hóa việc quản lý máy chủ và giảm độ phức tạp.
  • Chạy mỗi dịch vụ bằng một tài khoản người dùng Unix riêng biệt giúp tăng khả năng cô lập và bảo mật.
  • Sử dụng tính năng DynamicUser của systemd có thể đơn giản hóa quá trình cấu hình và tiết kiệm thời gian.
  • Nhiều nhà phát triển sử dụng VM của Linode và Debian GNU/Linux cho website cá nhân và website dự án.
  • Common Lisp là lựa chọn ngôn ngữ phổ biến để viết phần mềm trong các thiết lập như vậy.
  • Nginx thường được dùng làm reverse proxy và để phục vụ tệp tĩnh.
  • Container Docker và docker-compose là các lựa chọn thay thế để chạy dịch vụ.
  • Khả năng chuyển đổi dự phòng và thời gian hoạt động là những yếu tố cần cân nhắc quan trọng trong môi trường production.
  • Các biện pháp bảo mật như sao lưu, quy tắc tường lửa và xác thực SSH dựa trên khóa thường được triển khai.
  • Script triển khai và quản lý phiên bản rất hữu ích trong việc quản lý cập nhật ứng dụng và rollback.
  • Biến môi trường, giới hạn mở tệp và cấu hình logging là những yếu tố quan trọng cần cân nhắc khi thiết lập dịch vụ.
  • PostgreSQL, NGINX, Redis và Node.js là các thành phần phần mềm thường được sử dụng.
  • Dokku là công cụ phổ biến để quản lý triển khai và thêm plugin.
  • Một số nhà phát triển ưa thích thiết lập đơn giản hơn với một máy chủ duy nhất và các tài khoản người dùng Linux tiêu chuẩn.
  • Độ phức tạp có thể dẫn đến sự thiếu ổn định và downtime, vì vậy sự đơn giản thường được ưu tiên trừ khi thực sự cần mức độ phức tạp nhất định.