Deploy ứng dụng Rails với Google App Engine Tập 1
This post hasn't been updated for 4 years
Chao, Xin chào các bạn, hôm nay mình sẽ viết bài đầu tiên về hướng dẫn deploy ứng dụng-cụ thể là ứng dụng Ruby on Rails bằng Google Cloud Engine. Bắt đầu nhé
Giới thiệu chung
Hiện nay ngoài AWS thì GAE(Google app engine) cũng là một công cụ hổ trợ server rất tốt cho việc deploy những dự án mà các bạn đang phát triển. Và cơ duyên trong dự án đã giúp mình tìm tòi được một chút kiến thức để chia sẽ với các bạn.
Nhìn chung, con GAE này nó dễ ăn hơn nhiều so với con AWS. Với tôn chỉ "Hạ tầng tụi tao lo, tụi mày lo phát triển" của bọn Google thì việc deploy một ứng dụng trở nên dễ dàng hơn rất nhiều cho các bạn developer, đặc biệt là với những bạn chưa có kinh nghiệm nhiều trong việc build môi trường server như mình.
Đăng ký tài khoản Google Cloud
Bước đăng ký này mình sẽ không đi trong bài giới thiệu mọi người nhé. Vì nó cũng chỉ là bước tạo account để tiếp tục thao tác trên hệ thống của nó thôi. Chúng ta sẽ bắt đầu với những thứ khác vui hơn (go)
Các cách thức để deploy ứng dụng lên GAE
Cái này mình thấy tiện cực kì nè.
Sử dụng CloudShell cuả Google Cloud
Google cloud hổ trợ cho mình một tool editor gọi là CloudShell-nó giống với terminal của Linux ấy. Ở đây bạn có thể clone project từ Git để tiếp tục cài đặt và deploy nó lên server
Sử dụng SDK để deploy ngay tại máy tính cá nhân của bạn
Xin lỗi khi mình không nhớ được SDK là gì và cũng lười search lại quá . Nhưng hình dung tương đối thì nó là một phương thức connect từ server đến máy tính cá nhân của bạn. Ví dụ như bạn đang xài Linux(Hầu như ruby dev đều đang xài Linux or Mac) thì nó sẽ hiểu terminal của máy tính cá nhân bạn như là một CloudShell. Bạn có thể thực hiện các command line của Google trên đấy để hổ trợ việc deploy ứng dung.
Mình sẽ hướng dẫn cách từng cách deploy một trong phần sau nhé
Deploy bằng CloudShell
KHỞI ĐỘNG CLOUDSHELL
Sau khi đăng ký vào tài khoản Google cloud, khởi tạo một App Engine, trên thanh top menu của ứng dụng, bạn sẽ thấy icon của Cloud Shell.
Cái nút trắng trắng có dấu >_ chính là Cloud Shell đấy. Chúng ta click vào đó và Editor Cloud Shell sẽ mở ra.
Bắt đầu nhanh với deploy một ứng dụng demo của google bằng Cloud Shell
Với những bạn lần đầu làm quen với Google cloud engine thì có thể thực hành trước với một demo của google cho việc deplopy ứng dụng
- Đầu tiên, lick vào nút LEARN để xổ ra các tutorial
Một list các tutorial sẽ được xổ ra. Nó giải quyết gần như hoàn toàn những thắc mắc bạn đầu của bạn và những demo cụ thể để bạn có thể sử dụng dịch vụ này.
-
Bây giờ chúng ta sẽ chọn
App Engine Quickstart
để tiến hành deploy một ứng dụng demo Ruby được public trên repo git của google lên server. Sau đấy bạn chọn ngôn ngữ để get app Hello World. Dĩ nhiên chúng ta sẽ chọn Ruby cho mục này. -
Ấn
Next
rồi chọn project của bạn và tiếp tục ấnNext
Đến đây thì bạn sẽ thấy google nó cung cấp cho chúng là 2 command git.
git clone \
https://github.com/GoogleCloudPlatform/ruby-docs-samples
Dòng lệnh trên là lệnh clone một project public của google trên git
cd \
ruby-docs-samples/appengine/hello_world
Dòng thứ hai là bạn trỏ đến đúng app engine Hello World mà mình sẽ deploy thử.
Và 2 command line này mình sẽ chạy trên Cloud Shell.
- Ấn
Next
để đến các bước config trước khi deploy
Bạn lần lượt chạy các lệnh:
cat app.rb
cat app.yaml
app.rb là file chưa base code của bạn, còn app.yaml là file cấu hình của google. Ở đây sẽ lưu các thông số mà bạn muốn khai báo với google như bộ như server, số lượng instance... và các biến môi trường-ENV của ứng dụng(chúng ta sẽ gặp lại file .yaml này ở những phần sau).
- Chạy lệnh:
bunlde install
bundle exec ruby app.rb -p 8080
Trước khi deploy thì chúng ta cần kiểm tra trước những cài đặt và đảm bảo được con app của chúng ta đang chạy ngon lành với file app.rb. Nên sau khi chạy 2 lệnh trên thành công thì bạn đã có thể preview Web app bằng cách click vào Web previrew
- Ấn
Next
nếu không có ý kiến gì, và chúng ta sẽ đến phần kết của câu chuyện
Bạn cần một nơi để deploy ứng dụng lên, gọi nó là region. Nên trước khi deploy thì bạn cần chạy lệnh
gcloud app create
để tạo rgion.
Và sau đó thì:
gcloud app deploy
để doploy ứng dụng đầu tiên lên app engine mà bạn đã tạo. XONG
Khi chạy trên Cloud Shell đến lệnh app deploy hoàn thành. Bạn sẽ có được url để xem kết quả trong log.
Và đây chỉ là một ứng dụng demo đơn giản, còn với ứng dụng phát triển thực tế thì mọi thứ sẽ khó hơn nhiều. Và mình sẽ ưu tiên viết một bài về SDK với ứng dụng thực tế sau.
Với hướng dẫn trên thì chúng ta vừa làm quen với Google Cloud Engine qua việc deploy một ứng dụng Ruby demo bằng Cloud Shell của Google. Trong những bài sau, mình xin hướng dẫn tới các bạn cách còn lại là dùng SDK để deploy ứng dụng, các cấu hình cần thiết, file yaml, custom domain, SSL trên Google Cloud và sử dụng storage để lưu trữ hình ảnh hiển thị trên production. Hy vọng vài chủ để này sẽ giúp ích ít nhiều cho các bạn. See u
All Rights Reserved