Rails hosting: Heroku hay AWS?

Đây là bài dịch, bài gốc mời các bạn xem ở đây: https://rubyroidlabs.com/blog/2017/02/heroku-aws


Lựa chọn giữa Amazon Web Services và Heroku để lưu trữ ứng dụng của là một câu hỏi phổ biến dành cho developer. Hãy cùng tìm hiểu xem đâu là lựa chọn phù hợp.

Khi ứng dụng gần hoàn thành, đến bước lưu trữ, các developer rơi vào một sự lựa chọn khó khăn giữa Amazon Web Services và Heroku. Mặc dù cả hai đều có lợi thế riêng nhưng khó có thể nói, đâu là phương án phù hợp nhất. Để có thể lựa chọn, chúng ta sẽ cần rất nhiều thời gian để tìm hiểu.

Vì vậy, trong bài viết này, chúng ta hãy cùng làm rõ trong trường hợp nào, dịch vụ nào là tốt nhất.

Heroku vs EC2 vs Elastic Beanstalk

Lựa chọn giữa AWS và Heroku không phải chỉ có 2 lựa chọn. Trên thực tế, có 3 dịch vụ:

  • Heroku – Salesforce Platform as a Service
  • Elastic Compute Cloud (EC2) – Amazon Infrastructure as a Service
  • Elastic Beanstalk – Amazon Platform as a Service

Cùng so sánh để có 1 cái nhìn ngắn gọn:

Có lẽ bạn đã có thêm góc nhìn về chúng, nhưng để làm rõ hơn chúng ta hay cùng tìm hiểu các loại dịch vụ.

IaaS vs PaaS

Trước khi lựa chọn nơi mà bạn sẽ tiêu tiền: Heroku hay Amazon, bạn cần phải tìm ra dịch vụ bạn thực sự cần.

IaaS - Infrastructure as a Service PaaS - Platform as a Service

Như tên của dịch vụ: IaaS chỉ cung cấp cho bạn các công cụ, bạn sẽ cần phải xử lý lưu trữ. còn PaaS sẽ lo mọi thứ cho bạn.

Để thực hiện sự lựa chọn, bạn cần phải xem xét các điểm:

  • Trình độ kỹ thuật của developer
  • Ngân sách của bạn
  • Số lượng nhân lực

Rõ ràng là nếu bạn chỉ sử dụng IaaS, điều này sẽ đòi hỏi từ các developer có nhiều kinh nghiệm hơn.

Bên cạnh đó, nếu có vấn đề xảy ra, bạn sẽ có trách nhiệm sửa chữa chúng. Đồng thời sử dụng IaaS giúp bạn tiết kiệm chi phí cho việc lưu trữ, nhưng đừng quên rằng bạn sẽ cần thêm tiền lương cho developer.

Heroku (hoặc Elastic Beanstalk) hoạt động tốt nhất cho những người không muốn thao tác quá nhiều về kỹ thuật và sẵn sàng trả thêm một chút cho dịch vụ bao gồm tất cả mọi thứ. Và Amazon EC2 dành cho những người muốn tự mình làm, tiết kiệm tiền và tự kiểm soát hoàn toàn tình hình.

Heroku vs Elastic Beanstalk

Đã khá rõ ràng khi chọn EC2. Nhưng về lựa chọn giữa 2 công cụ PaaS. Tình hình không rõ ràng ở đây vì cả hai đều cung cấp các dịch vụ khá giống nhau. Chỉ có sự khác biệt nhẹ:

  • Amazon hoạt động trên toàn thế giới, trong khi Heroku chỉ dành cho Mỹ và Châu Âu
  • Amazon có khả năng mở rộng tự động, trong khi Heroku có thể theo cách thủ công hoặc tự động

Nhưng tất cả những điều này thực sự là những chi tiết nhỏ. Trọng tâm chính ở đây là giá cả. Vì vậy, nếu bạn biết chắc chắn bạn cần một PaaS để lưu trữ, hãy nghiên cứu các tùy chọn giá để đảm bảo bạn nhận được dịch vụ tốt nhất.

Tổng kết

  • Chọn PaaS nếu bạn không có kinh nghiệm với việc lưu trữ hoặc không muốn đầu tư thời gian vào nó
  • Chọn IaaS nếu bạn có kinh nghiệm về cả phát triển phần mềm và kiến trúc hệ thống cũng như muốn kiểm soát tình hình
  • IaaS rẻ hơn PaaS (không tính chi phí của developer)