Cùng học Cờ Lao – Azure Phần 3: Cùng deploy ứng dụng Web trên máy ảo Azure Cloud

Để anh em chờ lâu quá cũng ngại, kì này series Cùng Học Cờ Lao đã quay trở lại rồi nha.

Ở kì trước, mình đã hướng dẫn các bạn cài đặt và làm đủ trò nghịch ngợm trên máy ảo rồi. Kì này, chúng ta sẽ thử deploy một ứng dụng đơn giản trên máy ảo, tìm hiểu cách Azure quản lý port nhé.

Chuẩn bị máy ảo sẵn sàng!

Để chuẩn bị, các bạn đọc lại kĩ phần 2, làm theo nha. Có thể lâu quá các bạn quên thì xem lại phần trước để tạo lại máy ảo nhé.

Sau khi làm xong chúng ta sẽ có 1 con máy ảo Windows có cài sẵn Chờ Rôm để tha hồ nghịch.

Cài đặt NodeJS để chạy app (Hoặc Java, C#)

Để server có thể muốn chạy 1 ứng dụng, chúng ta phải cài đặt Runtime của ứng dụng đó:

  • Muốn chạy được app Java thì phải cài Java SE Runtime Environment
  • Chạy app C# thì phải cài .NET Framework hoặc .NET Core
  • Chạy app NodeJS thì phải cài … NodeJS

Quá trình cài đặt trên máy ảo cũng tương tự cài đặt trên máy của các bạn vậy thôi.

1. Login vào máy ảo, mở Chrome lên

2. Vào trang chủ của NodeJS, tải bản mới nhất về để cài: https://nodejs.org/en/download

Cứ Next, Next rồi Install là được ấy mà!

3. Sau khi cài đặt xong, bạn mở command line lên, gõ node -v nếu thấy hiện version là ok nha

Command Line giấu hơi kĩ, các bạn phải mở Start Menu, search cmd mới ra
Gõ node -v nếu thấy version là được nhé

2. Chạy và kết nối với app NodeJS đơn giản

Tiếp theo, chúng ta sẽ chạy một project NodeJS vô cùng đơn giản.

1. Bạn mở Notepad lên, vào Start Menu tìm Nodepad là ra nha

2. Dán đoạn code sau vào, lưu lại thành server.js trong ổ D cho dễ tìm


const http = require('http')
const port = 3000
const server = http.createServer((request, response) => {
console.log(request.url)
response.end('Hello from ToiDiCodeDao')
})
server.listen(port, (err) => {
if (err) {
return console.log('something bad happened', err)
}
console.log(`Server is listening on ${port}`)
})

view raw

server.js

hosted with ❤ by GitHub

Nhớ lưu vào ổ D nhé!

 

3. Mở cửa sổ command line lên, cd vào ổ D có chứa file vừa tạo và gõ node server.js, bạn đã có một ứng dụng web vô cùng cơ bản rồi.

Gõ theo trong hình là được nha các bạn

4. Để truy cập trang web mình vừa tạo, các bạn mở chrome lên, gõ localhost:3000 vào trình duyệt nha. Có thấy Hello từ Tôi Đi Code Dạo chưa?

(Thấy NodeJS tiện chưa! Không cần phải tạo project, một đống thư viện lòng vòng như C# hay Java, cũng không cần tải Apache hay LAMP stack, chỉ cần 1 file là chạy được rồi!)

Để người khác truy cập website của bạn

Giờ giả sử bạn muốn khoe mọi người cái app “đơn giản” bạn thử làm thì sao?

Để truy cập app, bạn chỉ cần truy cập tới server đang chạy là xong chứ gì! Đúng rồi, vậy làm sao để truy cập tới server đang chạy app đó?

Dễ thôi, chỉ cần làm theo các bước sau đây:

1. Bạn có thể xem trực tiếp bên Azure, hoặc truy cập whatismyip.com từ máy ảo để xem ip của máy ảo đó.

Nhớ truy cập whatismyip.com từ máy ảo nhe!

 

2. Theo hình, IP của mình là 13.76.129.242. Vậy là bạn chỉ cần gõ 13.76.129.242:3000 là truy cập được thôi:

Ủa tại sao tải hoài ko load được trang nhỉ!

Thật ra là mình cố ý chỉ vậy để troll các bạn đấy. Mặc định, Azure sẽ chặn tất cả các port của VM đó (để tránh bị tấn công).

Bạn sẽ thấy ở bài trước, khi tạo VM, ta phải mở port 3389 thì mới có thể RDP vào được. Do vậy, để bà con truy cập được web application ở port 3000, bạn phải cho phép truy cập port 3000.

3. Các bạn quay lại Azure Portal (portal.azure.com), vào lại VM của mình, bấm vào phần Networking. Tại đây các bạn sẽ thấy port 3389 đã mở.

4. Các bạn bấm vào nút “Add Inbound Port” góc trên bên phải, chú ý điền Destionation Port Ranges 3000 là được nhé.

5. Ngoài ra, mặc định Window Fireware cũng sẽ … chặn tất cả các port. Các bạn quay lại máy ảo, vào Start Menu tìm Firewall, sau đó add port 3000 vào nhé.

Bấm vào “New Rule” góc trên bên phải

Sau khi bấm Finish, nếu thấy có Rule mới màu xanh là ok nha!

6. Thử truy cập vào 13.76.129.242:3000 lại xem. Bạn đã truy cập được rồi đấy.

Bạn cũng có thể gửi link này cho bà con vào xem thử luôn!

Cuối cùng cũng truy cập được rồi. Mừng quá ahihi!

 

Hướng dẫn kì này đến đây là hết rồi! Chúc mừng các bạn đã hoàn thành một bài khá dài và khó như vậy.

À quên, làm xong demo các bạn nhớ xóa sạch đống VM, Disk, IP v…v vừa tạo để không bị charge tiền vô duyên nhé :3

Xóa sạch hết luôn nào :3

Tạm kết

Sau kì này, bạn đã có thể tự deploy một ứng dụng trên máy ảo Azure rồi đấy. Nếu bạn có app viết bằng C# hay Java cũng làm tương tự là được.

Bạn chỉ cần làm các bước:

  1. Cài đặt runtime (Java, C#)
  2. Tải source code hoặc bản build về
  3. Chạy ứng dụng đó trên server
  4. Mở port cho người khác kết nối vào làm xong ngay.

Ngoài ra, bạn cũng có dùng con máy ảo này để cài database server (MS SQL Server, MySQL), sau đó mở port phù hợp cho các ứng dụng của bạn kết nối vào là được.

Tuy nhiên, việc deploy app như vậy rất … thủ công, tốn thời gian (cài đặt, setup, mở port v…v). Do vậy ở kì sau, mình sẽ giới thiệu về 2 dịch vụ khá phổ biến nhất của Azure, giúp việc deploy dễ dàng hơn nha:

 

P/S: Viết cái nì mệt lắm nên thấy hay các bạn nhớ comment hoặc like/share nhiệt tình để mình có động lực viết tiếp nha! Mãi yêu :3.

10 thoughts on “Cùng học Cờ Lao – Azure Phần 3: Cùng deploy ứng dụng Web trên máy ảo Azure Cloud”

  1. Cho e hỏi cái đống VM, Disk, IP… nếu mình k xóa mà vẫn để im cho con server chạy bình thường thì sau bao lâu nó sẽ tính phí ạ? Ý là muốn cắm một con máy ảo trên này thì mình duy trì được bao lâu a?

    Like

  2. Cho em hỏi là có bạn kêu em active account chỉ tốn $1 thôi phải không anh? Mà sao em không tìm ra được ạ.

    Liked by 1 person

Leave a comment