Deploy RoR, để không “bở ngỡ” với PaaS OpenShift.

Hi all,

Đây là bài đầu tay của mình, tuy có khá nhiều vấn đề với RoR đang muốn được viết, nhưng với cá nhân tự nhận thấy rằng sản phẩm không thể chạy mãi dưới local và nơi để chạy được ứng dụng rõ ràng là rất quan trọng.

Bản thân luôn thích những cái gì “free” và luôn cam kết “free”. Đó là vì sao mình xin giới thiệu 1 PaaS có thể deploy 1 sản phẩm RoR “ngon lành”.

Sau đây xin giới thiệu một số đặc điểm vì sao mình giới thiệu PaaS này với các bạn:

OpenShift: 

  • Do RedHat bảo trợ.
  • Khi đăng kí một account bình thường, 1 account sẽ được cung cấp 3 Gear. (Nôm na là có 3 chỗ để chạy 3 ứng dụng RoR hoặc bất kỳ ứng dụng nào được liệt kê trong website)
  • Điều đáng nói là mỗi Gear có dung lượng 1 GB (với các ứng dụng mức vừa phải thì đây là khá đủ để sài).
  • Mỗi Gear sẽ được cấp 1 domain, (rất ổn với các ứng dụng chú trọng cung cấp API cho Mobile)
  • Deploy bằng Git.
  • Không giới hạn băng thông.
  • Hỗ trợ mọi nhu cầu deploy 1 ứng dụng RoR (Cron, MySQL, Portgresql, MongoDB, … etc)
  • Có hệ thống plugin khá phong phú.
  • Một điều nói thêm dù không phải là đáng chú ý lắm thì RedHat đã cam kết openshift sẽ tham gia vào dự án chạy .Net trên PaaS này.

Giới thiệu đã xong, sau đây xin chuyển qua việc chính, đó là các bước để deploy 1 sản phẩm RoR lên OpenShift:

  1.  Đăng kí, kích hoạt, đăng nhập và tạo 1 Gear sử dụng Ruby on Rails 4, sau đó vào Option của tài khoản add ssh key của máy bạn vào. (nên giữ nguyên git sample mà hệ thống để sẵn trong lúc tạo ứng dụng mới)
  2. Sau đó clone code theo link ssh về (nhìn vào hình là cái màu vàng ấy)clone_code
  3.  Thực hiện như bình để dev 1 ứng dụng
  4.  Deploy nào (chú ý các bước sau)
  •    Trong project sau khi clone để kết nối db hoặc chạy cron job hay dịch vụ khác bạn chú ý đến folder sau .openshift , trong đó có folder config chứ file database.yml (đây là file để kết nối thay cho config trong ứng dụng rails bình thường), muốn chạy cron thì bạn vào folder cron sau đó chọn các folder tương ứng với cách chạy mỗi giờ, mỗi phút, etc để viết file sh chạy cron.
  • Folder action_hooks trong .openshift chứa config bạn có thể custom lại cách stop, start ứng dụng Rails khi deploy 1 dự án lên cloud.
  • Deploy lên thôi. (git commit, git push) sau đó thì sẽ hiển thị thông tin deploy trên server trên console.
  • Đôi khi muốn ssh lên server hoặc push code mà có nhiều file ssh trong máy bạn có thể sử dụng cách config như sau:
  • Tạo file config trong folder .ssh có nội dung như sau:

Thân chào, mong các bạn sớm deploy được 1 ứng dung RoR chạy thực tế ngay.

P/s: Nếu có vấn đề gì có thể post lên để mình xem có thể giúp được ko nhé.

 

Tiến An

Admin tại RubySG.com

You may also like...