2012-09-29 27 views
23

Có một loạt các dịch vụ lưu trữ dựa trên đám mây được quản lý cho các nút bấm out there có vẻ tương đối mới và một số vẫn còn trong bản Beta.NodeJS Managed Hostings vs VPS

Tuy nhiên, một đường dẫn khác để lưu trữ ứng dụng nodejs đang thiết lập ngăn xếp trên VPS như Linode.

Tôi tự hỏi sự khác biệt cơ bản ở đây giữa hai loại triển khai này là gì. Yếu tố nào nên cân nhắc khi chọn một yếu tố khác?

Phương pháp nào phù hợp hơn cho sản xuất xem xét các dịch vụ này trẻ như thế nào.

Để rõ ràng, tôi không yêu cầu chọn nhà cung cấp nhưng quyết định có lưu trữ trên máy chủ lưu trữ cụ thể được quản lý hay trên VPS tự thiết lập cũ.

+1

Như một số ghi chú, ngay cả khi bạn đi với một con hoster, nó đáng phải trải qua một lần để hiểu điều gì đang xảy ra. Hy vọng rằng các liên kết của tôi giúp ... – bryanmac

+0

Cảm ơn người đàn ông, tôi tin rằng tôi sẽ đi với Linode VPS cho nên các liên kết của bạn sẽ rất hữu ích, mặc dù tôi hy vọng sẽ tìm thấy một số nhược điểm rõ ràng và ưu điểm đặc biệt trên các giải pháp lưu trữ. tôi lúc này. –

+0

OK - có ý nghĩa. Thêm một chút về ưu/khuyết điểm. Tôi sẽ theo dõi nếu tôi nghĩ nhiều hơn ... – bryanmac

Trả lời

34

Sử dụng một trong các dịch vụ là phần lớn các hoạt động - bạn viết mã của bạn và để họ lo lắng về việc quản lý hộp, giữ nguyên quá trình, tạo kênh xuất bản, vá hệ điều hành, v.v ...

Ngược lại, máy ảo của riêng bạn cung cấp cho bạn nhiều quyền kiểm soát hơn nhưng với nhiều đầu tư thời gian trước và liên tục hơn.

Một lưu ý khác là một số nhà cung cấp dịch vụ lưu trữ và đám mây cung cấp các biến thể độc quyền hoặc khác biệt về công nghệ. Họ có lý do cho họ và họ cung cấp giá trị nhưng điều đó có nghĩa là nếu bạn muốn chuyển đổi nhà cung cấp dịch vụ đám mây, điều đó có nghĩa là bạn phải viết lại mã, tập lệnh triển khai, v.v. Mặt khác đã sử dụng VM với hệ điều hành chuẩn làm đường cơ sở khá chung chung. Nếu bạn tự động hóa/script/tài liệu cấu hình của máy ảo của bạn và mã của bạn vẫn chung chung, sau đó tùy chọn của bạn vẫn mở.Nếu bạn thực hiện một sự phụ thuộc vào một công nghệ đám mây độc quyền thì sẽ tốt nếu trừu tượng nó đi phía sau một giao diện để nó là một thành phần tách rời và không được rải khắp mã của bạn.

Tôi đã thực hiện cả hai. Tôi đã làm đường dẫn VM gần đây chủ yếu là vì tôi muốn có kinh nghiệm học tập. Tôi phải:

  • được VM từ nhà cung cấp đám mây
  • tôi phải cập nhật và vá hệ điều hành
  • tôi phải cài đặt và cấu hình git như một kênh xuất bản
  • tôi đã phải viết một số tập lệnh và sử dụng những thứ như mãi mãi để giữ cho nó chạy
  • Tôi phải định cấu hình proxy http ngược lại để làm cho nó chạy nhiều trang web.
  • tôi phải cấu hình DNS với các nhà cung cấp điện toán đám mây, cổng mở cho git vv ...

Danh sách đi. Cuối cùng, chi phí cho tôi nhiều hơn thời gian trước không mã hóa nhưng tôi đã học được nhiều thứ hơn. Nếu những thứ đó quan trọng đối với bạn, thì hãy cho nó một shot. Nếu bạn muốn tập trung vào viết mã của mình, thì nhà cung cấp dịch vụ lưu trữ nút có thể dành cho bạn.

Khi kết thúc, tôi cũng có nhiều tùy chọn hơn - tôi muốn thêm trang web thứ hai. Tôi đã thêm en nhập vào proxy ngược của mình, nối thêm tập lệnh của tôi để khởi động một ứng dụng khác với mãi mãi, voila, một trang web khác. Điều khiển nhiều hơn. Sau đó, tôi muốn thử nghiệm mongodb - đơn giản - cài đặt nó.

Chi phí khôn ngoan chúng giống nhau nhưng nếu bạn bắt đầu lưu trữ nhiều trang web với nhiều gói khác như cơ sở dữ liệu, v.v ... thì VM có thể bắt đầu rẻ hơn.

Nodejitsu open sourced các công cụ của chúng cũng giúp bạn dễ dàng hơn nếu bạn tự làm.

Nếu bạn làm điều đó cho mình, sau đây là một số liên kết có thể giúp bạn:

Giữ máy chủ lên:

https://github.com/nodejitsu/forever/

http://blog.nodejitsu.com/keep-a-nodejs-server-up-with-forever

https://github.com/bryanmacfarlane/svchost

Upstart và Monit tự động bắt đầu và khởi động lại thông qua monit oring

http://howtonode.org/deploying-node-upstart-monit

Cụm Node Chạy một quá trình cho mỗi lõi

http://nodejs.org/docs/latest/api/cluster.html

Reverse Proxy

https://github.com/nodejitsu/node-http-proxy

https://github.com/nodejitsu/node-http-proxy/issues/232

http://blog.nodejitsu.com/http-proxy-middlewares

https://github.com/nodejitsu/node-http-proxy/issues/168#issuecomment-3289492

http://blog.argteam.com/coding/hardening-node-js-for-production-part-2-using-nginx-to-avoid-node-js-load/

Script cài đặt

https://github.com/bryanmacfarlane/svcinstall

Exit Shell Script Based on Process Exit Code

xuất bản trang web

Using git to publish to a website

14

IMHO hạn chế lớn nhất của việc thiết lập ngăn xếp của riêng bạn là bạn cần quản lý những thứ như làm cho Node.js chạy forever, khởi động nó như một daemon, mang nó đằng sau proxy ngược như Nginx, v.v. .. điều tuyệt vời về Node.js - làm cho việc kích hoạt một máy chủ web trở thành một lớp lót - là một trong những hạn chế lớn nhất của nó khi nói đến các hệ thống sẵn sàng sản xuất.

Ngoài ra, bạn có tất cả các vấn đề về quản lý và cập nhật và bảo mật máy chủ của mình.

Điều này dễ hơn rất nhiều đối với người tổ chức: Thông thường, đây là số git push và đó là điều đó. Chia tỷ lệ? Dễ dàng. Nhân rộng? Dễ dàng. ...? Dễ dàng. Tất cả chỉ trong vài cú nhấp chuột.

Hạn chế với chủ nhà là bạn không thể điều chỉnh môi trường. Được rồi, bạn có thể chọn phiên bản nào của Node.js và/hoặc npm để chạy, nhưng đó là nó. Bạn không kiểm soát được phần mềm của bên thứ ba nào được cài đặt. Bạn không có quyền kiểm soát hệ điều hành. Bạn đã không có quyền kiểm soát nơi các máy chủ được đặt. Và cứ thế ...

Tất nhiên, một số chủ nhà cho phép bạn truy cập vào một số trong những thứ này, nhưng hiếm khi có một con hoster hỗ trợ tất cả.

Vì vậy, về cơ bản các câu hỏi liên quan Node.js là giống như với mỗi công nghệ khác: Đó là một pro vs con của chủ nghĩa cá nhân, giá cả, scalabilty, độ tin cậy, kiến ​​thức, ...

Cá nhân tôi đã chọn để đi với một con hoster: Thời gian và công sức tôi tiết kiệm dễ dàng vượt trội so với nhược điểm. Tâm trí bạn: Đối với tôi, cá nhân.

Câu hỏi này cần phải được trả lời riêng.