2008-11-11 25 views
31

Tôi đã sử dụng Mongrel thẳng, tôi đã sử dụng cụm Mongrel phía sau Apache, tôi đã xem Thin, và tôi trở nên rất hấp dẫn bởi Passenger. Tôi cũng đã nhìn Nginx. Tôi đã xem MRI, Ruby Enterprise Edition, Rubinius và JRuby. Có rất nhiều lựa chọn, mỗi người tự xưng là chén thánh mới.Các phương pháp hay nhất cho triển khai Rails mới trên Linux?

Tùy chọn nào tốt nhất cho việc triển khai hoàn toàn mới, hoàn toàn mới? Các giả định duy nhất là:

  • Ứng dụng này dựa trên Rails 2.2. (Tôi biết 2.2 chưa được phát hành đầy đủ, nhưng không phải triển khai này.)
  • Máy chủ dựa trên Linux. Có lẽ Ubuntu Hardy, nhưng thực sự, bất cứ điều gì làm việc tốt nhất trong trường hợp này.
  • Đường ray sẽ cần phải có đầy đủ chức năng và có thể nói chuyện với cơ sở dữ liệu MySQL.
  • Mọi thứ khác đều có thể thương lượng.

Với những hạn chế đặc biệt rộng lớn, kết hợp phần mềm nào sẽ mang lại kết quả tốt nhất, về mặt đồng thời và chi phí thấp?

Tôi đang hướng về phía Apache với mh "nhân viên" và Hành khách + Phiên bản doanh nghiệp của Ruby, đơn giản vì nó cung cấp sự ổn định ngay lập tức và tính đơn giản của thiết lập và bảo trì.

Tôi có thể đặc biệt tốt hơn với tùy chọn khác không?

Trả lời

16

Tôi chuyển từ Cụm Mongrel thành Hành khách hai tuần trước (Debian Linux Server). Tôi không nhìn lại trong một giây. Hành khách có lẽ là cách dễ dàng nhất để thiết lập và chạy máy chủ mới của bạn. Hiệu suất và độ tin cậy cũng hợp lý.

Cá nhân, tôi muốn dành nhiều thời gian làm việc cho các dự án Rails mới thú vị hơn là giải quyết các vấn đề triển khai - Hành khách cho phép tôi làm chính xác điều đó. Tuy nhiên, Mongrel hoặc một cái gì đó khác vẫn có thể được ưa thích nếu bạn có một số yêu cầu đặc biệt loại (không áp dụng cho hầu hết các sản phẩm).

+1

+1 cho Hành khách - triển khai siêu dễ dàng cũng nhanh như vậy (đôi khi nhanh hơn cho ứng dụng của tôi) như Mongrel đã từng sử dụng. Tuyệt vời! –

+0

+1 khác cho hành khách. Tôi đã vật lộn trong một tuần cố gắng để thiết lập một gói mongrels trên debian, nhưng đã hoàn thành một thiết lập triển khai vào một buổi chiều với hành khách. – Alan

+0

+1 cho Hành khách. Triển khai đưa tôi khoảng 10 phút, từ đầu đến cuối. – mlambie

0

Tôi đang lưu trữ các ứng dụng mới của mình với Apache2 và Hành khách trên Ubuntu Hardy. Có vẻ như tùy chọn dễ nhất và tốt nhất cho hầu hết các trường hợp. Tôi vừa tham gia Slicehost.com cho mục đích đó. Họ dường như nhận được đánh giá tốt và có giá cạnh tranh nhất của máy chủ hạng nhất.

Tôi thực sự không thể xác nhận chúng vì tôi là khách hàng mới nhưng tập hợp hướng dẫn và phạm vi tùy chọn hỗ trợ rất ấn tượng.

Điều bạn không đề cập đến là ứng dụng của bạn lớn đến mức nào và sẽ phổ biến như thế nào. Tiêu chí này có thể ảnh hưởng đến quá trình ra quyết định.

1

Hãy xem Litespeed. Bạn có thể nhận được một phiên bản miễn phí chạy trên 1 CPU hoặc trả tiền để có được nhiều CPU. Đó là một chút tốn kém nhưng là đá rắn và xử lý đường ray rực rỡ (tức là sử dụng ít bộ nhớ và ít chi phí để giám sát và thiết lập). Tôi chạy một số lượng lớn các ứng dụng trên nó và nó không bỏ lỡ một nhịp.

1

Chúng tôi cũng chuyển từ Mongrel sang mod_passenger và thấy tính ổn định được cải thiện đáng kể với nỗ lực này cần thiết để thiết lập và duy trì. Sự lựa chọn tốt.

4

Chúng tôi đã sử dụng nginx tiêu chuẩn cũ -> mongrel stack trong 18 tháng qua, và mặc dù nó không tầm thường để thiết lập lần đầu tiên, nó đã được chứng minh linh hoạt, và đã xử lý một số trang web lưu lượng truy cập rất cao cho chúng tôi.Nginx nói riêng đã hoàn toàn vững chắc và nhanh chóng, và nếu bạn có thể nhận được trang ứng dụng của bạn, bạn có thể xử lý rất nhiều yêu cầu.

Bị mắc kẹt mongrels đã là một vấn đề, vì vậy chúng tôi sử dụng monit để giết chúng khi họ misbehave. Một lần nữa, nó không hoàn toàn tầm thường để thiết lập, nhưng chúng tôi đã sử dụng quá trình tương tự trên nhiều trang web tại thời điểm này.

Chúng tôi chưa chơi với hành khách, vì vậy có lẽ nó dễ dàng hơn và ổn định hơn, tôi sẽ trì hoãn những người trả lời khác về điều đó, tất cả những gì tôi có thể nói là không có lý do gì cả rắn ngăn xếp với nginx và mongrel.

0

Capistrano + Deprec để thực sự thiết lập ngăn xếp của tôi trên Ubuntu và quản lý vật lý triển khai.

Nginx ủy quyền cho người gắn máy Mongrel cho kiến ​​trúc máy chủ. Nó không phải là kỹ thuật mới nhất, chảy máu nhưng nó hoạt động tốt, nó đang được tài liệu hóa tốt, và nó rất, hiệu suất rất cao ngay cả khi làm việc trên các VPS nhỏ. Giả sử bạn đã không borked ứng dụng, bạn có thể Slashdot một 128 MB Slicehost VPS và nó chỉ giữ lại cho nhiều hơn nữa.

Có nói rằng: đã có của gotchas lần đầu tiên, cho đến khi tôi tìm ra cách Nginx thực sự làm việc. Sau đó nó tuyệt vời - giống như một Apachelet nhỏ với giọng Nga nhẹ.

10

Sáng nay, DHH nói về chủ đề rất này trên blog riêng của mình:

Nhưng bằng cách nào đó thông điệp của hành khách đã được một chút chậm chìm trong có đã là một tấn các trang web lớn chạy ra khỏi nó.. Bao gồm Shopify, MTV, Geni, Yammer, và chúng tôi sẽ sớm di chuyển qua Ta-da List đầu tiên, sau đó hy vọng rằng phần còn lại của bộ 37signals nhanh chóng sau đó.

Vì vậy, trong khi vẫn còn có lý do để chạy thiết lập nhiều lớp tùy chỉnh của riêng bạn bằng các phần được định cấu hình theo cách thủ công, giống như có những người tránh xa mod_php cho các chi tiết cụ thể của chúng, tôi nghĩ cuối cùng chúng tôi đã giải quyết câu trả lời mặc định. Một cái gì đó mà không yêu cầu bạn phải thực sự suy nghĩ về việc triển khai đầu tiên của ứng dụng Rails của bạn. Một cái gì đó mà chỉ hoạt động ra khỏi hộp. Ngay cả khi hộp đó là một máy chủ chia sẻ!

http://www.loudthinking.com/posts/30-myth-1-rails-is-hard-to-deploy

Tobias L ü tke về chủ đề chuyển đổi Shopify (triệu yêu cầu/ngày) để đi tour:

Tất cả điều này có nghĩa là tổng dung lượng bộ nhớ được sử dụng bởi Shopify trong các hoạt động bình thường đã tăng từ trung bình 9GB lên trung bình 5GB. Chúng tôi phân phối đều tiền tiết kiệm giữa các quy trình Shopify và nhiều không gian ghi nhớ hơn, giúp thời gian phản hồi trung bình của chúng tôi từ 210ms lên 130ms trong khi lưu lượng tăng 30% trong vài tháng qua.

Kết luận: Tôi không thể thấy bất kỳ lý do nào để chọn một chiến lược triển khai khác tại thời điểm này. Tài liệu đơn giản, đầy đủ, nhanh chóng và được ghi chép đầy đủ.

http://blog.leetsoft.com/2008/11/15/passenger

2

Chúng tôi đã chuyển fron Nginx + mongrel để hành khách.

Tôi hoàn toàn tin rằng Hành khách sẽ trở thành tiêu chuẩn mới cho đường ray, mặc dù cụm NginX và Mongrel được xác nhận bởi một số người rất thông minh.Những tiến bộ gần đây trong Hành khách đã thực sự đẩy nó về phía trước.

cấu hình hiện tại của chúng tôi là một cái gì đó như thế này:

máy chủ Web

  • Ubuntu 8.04 LTS
  • Phusion tải hành khách trên Apache2
  • MRI Ruby 1.8.6 và bạn bè (mẫu apt)
  • Đá quý Ruby 1.3.0 (Đã cài đặt từ nguồn)

Cơ sở dữ liệu máy chủ

  • Centos 5
  • MySQL Cluster (chúng tôi chỉ chuyển sang này, nhưng nó hứa hẹn)

Sau khi chuẩn trên các distro Linux chính xác chúng tôi đã có thể viết các công thức nấu ăn Capitrano để giúp triển khai (các thay đổi nhỏ trong cấu hình đã là nguồn của nhiều dịch vụ Cúp) và nếu không đơn giản hóa cuộc sống của chúng ta.

1

Một chút vàng:

Josh Peek của Slicehost gem là đầy đủ của công thức nấu ăn Capistrano đó là đơn giản hơn nhiều và nhiều hơn nữa có tổ chức hơn Deprec. Không có gì trong đó đặc biệt là Slicehost cụ thể.

Các vấn đề liên quan