2013-02-07 16 views
11

Ruby on Rails phần lớn bị lỗi vì thiếu các tùy chọn khả năng mở rộng, và thay thế nói chung là di chuyển sang một số dạng ứng dụng web Java hoặc một cái gì đó tương tự. Nhưng tất cả những mối quan tâm dường như rất tùy tiện, theo một cách nào đó.Tại thời điểm nào khả năng mở rộng trở thành vấn đề đối với ứng dụng Rails được triển khai trên Heroku?

Có số liệu cụ thể nào khi một ứng dụng nhất định cần được viết lại bằng ngôn ngữ khác không? Heroku cung cấp các tùy chọn mở rộng khác nhau với số lượng dynos có sẵn cho ứng dụng, nhưng tại điểm nào sẽ làm giảm lợi nhuận, nếu có, được hiển nhiên? Hoặc tại thời điểm nào thì chi phí của việc có quá nhiều dynos lớn hơn chi phí của việc viết một ứng dụng mới đơn giản?

Có bao nhiêu người dùng đồng thời hoạt động mà tôi có thể mong đợi để có thể hỗ trợ mà không gặp phải sự cố về hiệu suất trên gói lưu trữ cơ bản miễn phí tại Heroku?

Trả lời

20

Các "Rails không quy mô" huyền thoại chỉ đơn giản là sẽ không chết ...

Trích dẫn kiến ​​trúc sư trưởng của Twitter:

Các hiệu suất tăng liên kết với một ngôn ngữ “nhanh” sẽ cung cấp cho chúng ta một Cải thiện 10-20%, nhưng nhờ những thay đổi về kiến ​​trúc mà Ruby và Rails vui vẻ cung cấp, Twitter nhanh hơn 10000%.

Tôi không thể cung cấp cho bạn số cố định, nhưng hầu như được đảm bảo rằng bạn gặp phải tình trạng nghẽn cơ sở dữ liệu hoặc kiến ​​trúc lâu dài trước khi Ruby hoặc Rails bắt đầu trở thành tắc nghẽn.

Teflon Ted đã tạo a nice collection of blog posts về chủ đề này.

+2

Để thêm vào điều này: nó không quan trọng ** ngôn ngữ nào bạn đang sử dụng. Tại một điểm có khối lượng lớn nhất định, bạn sẽ LUÔN LUÔN chạy vào cùng một vấn đề và nó hầu như luôn đòi hỏi những thay đổi về kiến ​​trúc. IE: Chúng ta có thể phân phối những mẩu dữ liệu nào từ bộ đệm phân tán? Những phần nào của ứng dụng đang truy cập cơ sở dữ liệu không hiệu quả? Nếu bạn thấy mình đang dự tính chuyển đổi ngôn ngữ chỉ để tăng hiệu suất, bạn nên cân nhắc xem vấn đề thực sự là gì. – nzifnab

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