Cùng học Cờ Lao – Azure Phần 4.1: Azure App Service là gì? Nó có gì hay ho?

Ở kì trước, chúng ta đã deploy một ứng dụng đơn giản trên máy ảo rồi.

Trong phần 4 này, chúng ta sẽ tìm hiểu về Azure App Service, cũng như thực hành deploy ứng dụng lên Azure App Service một cách nhanh hơn, tiện hơn, nhẹ nhành hơn nha!

Nhược điểm của việc tự quản lý server

Ở phần trước, mình cố tình bắt các bạn deploy một ứng dụng lên server để hiểu ứng dụng thực sự hoạt động ra sao.

Tuy nhiên, các bạn có thể thấy cách này khá là dài dòng phức tạp, chúng ta phải làm “hơi bị nhiều” bước:

  • Cài Runtime (C#, NodeJS, Java) của ứng dụng đó
  • Copy code ứng dụng về máy (file zip, pull từ Git)
  • Chạy ứng dụng từ command line hoặc bỏ vào IIS/Apache
  • Mở port từ Azure, mở firewall trên server
  • Trỏ tên miền tới IP của máy ảo v…v

Ngoài ra, cách thủ công này còn có 1 số vấn đề:

  • Khó tự động hóa, mỗi khi update code bản mới, ta phải copy code lên server rồi chạy
  • Phải tự bảo đảm security trên máy ảo (Cài lung tung rất dễ dính virus)
  • Phải cài đặt và tinh chỉnh IIS và Windows để optimize hiệu năng
  • Khi server chết (do xóa nhầm v…v), mất dữ liệu phải cài đặt lại, deploy lại
  • Phải update OS, update runtime của ứng dụng lên phiên bản mới khi cần (cần tính năng mới, vá lỗi bảo mật)

Trước đây, đây là việc của mấy anh sysdamin khi làm việc với server truyền thống, tốn khá nhiều thời gian và công sức.

Trước đây mấy anh sysadmin phải làm những việc này – kèm thêi đi dây mạng sửa server nữa

Thế nhưng, developer chúng ta chỉ muốn code, bỏ code lên là chạy, không muốn làm mấy việc rườm rà phức tạp như vậy.

Thế là, Azure App Server ra đời, đáp ứng nhu cầu của developer!

Azure App Service là gì, nó có gì hot?

Nói một cách đơn giản, Azure App Service là một Platform cho phép ta tạo và deploy ứng dụng web/di động/API một cách nhanh chóng.

Nếu còn nhớ kiến thức ở bài về IaaS và Paas, các bạn sẽ thấy rõ sự khác biệt giữa Virtual Machine và App Service:

  • Azure Virtual MachineInfrastructure as a Service, cho bạn hạ tầng (máy ảo) để bạn tự cài đặt và tùy chỉnh
  • Azure App ServicePlatform as a Service, cho bạn platform (có sẵn runtime), bạn chỉ cần bỏ code vào là chạy.
Nhắc lại kiến thức về IaaS và PaaS

Với Azure Web Service, bạn sẽ được Azure hỗ trợ tận răng. Chỉ cần deploy code lên là được. Mấy vấn đề như runtime để chạy code, biến môi trường, mở port, kết nối với domain, SSL,… đều được Azure lo hết.

Bên cạnh đó, App Service còn tích hợp khá nhiều thứ hay ho:

  • Application Insight giúp bạn log lại performance của ứng dụng, giúp dễ optimize và cải thiện
  • Monitoring giúp theo dõi và thông báo khi có điều bất thường trong hệ thống (CPU hoặc RAM tăng cao, lỗi 500 nhiều)
  • Snapshot giúp ta tự động back-up code và dữ liệu
Application Insight cho bạn quá trời thông tin về ứng dụng đang chạy

Phân biệt App Service và App Service Plan

Việc tạo và deploy App Service cũng khá dễ dàng, chỉ tốn khoảng 5 phút là xong. Tuy vậy, trước khi bắt đầu, mình sẽ giúp các bạn phân biệt 2 khái niệm dễ gây nhầm lẫn: App ServiceApp Service Plan.

Khi tạo 1 App Service trong Azure, các bạn sẽ thấy cửa sổ sau:

Mỗi khi tạo App Service mới, các bạn sẽ phải chọn một App Service Plan đi kèm với nó. Bạn có thể hiểu nôm na như sau:

  • App Service là một ứng dụng web/web api
  • App Service Planserver để chạy ứng dụng đó. Do vậy, khi tạo App Service, ta phải chọn App Service Plan để chọn máy chủ sẽ chạy ứng dụng của mình.

Ví dụ, bạn làm web bán hàng, bạn tạo 2 ứng dụng cho khách hàng và cho admin, dùng chung 1 database. Hai ứng dụng này chạy chung trên một máy chủ ở Việt Nam. Lúc này, App Service Plan chính là máy chủ ở Việt Nam, và 2 ứng dụng chính là 2 App Service, chạy trên Plan đó.

Một số điểm nhỏ khác cần lưu ý:

  • Trong 1 App Service Plan, bạn có thể deploy bao nhiêu App Service tùy thích (Chỉ có gói Free và Shared là có giới hạn)
  • Azure tính tiền theo App Service Plan, không phải theo App Service. Nếu có vài chục ứng dụng xài chung 1 Plan, bạn chỉ bị tính tiền 1 Plan đó!
  • Khi nhiều App Service này dùng chung một Plan, chúng sẽ dùng chung tài nguyên (CPU, RAM, Disk), do đó nếu một ứng dụng chiếm quá nhiều tài nguyên, nó sẽ làm ảnh hưởng đến các ứng dụng khác.
  • Ngày xưa ở công ty mình có cái App Service nặng quá, phải cho nó nằm nguyên 1 Plan chơi 1 mình luôn
Muốn deploy bao nhiêu App lên 1 plan cũng được!

Tạm kết

Ở kì này, mình đã nói sơ lý thuyết để các bạn hiểu về việc mình sẽ làm. Công nghệ gì cũng vậy, thay vì cắm đầu làm, các bạn tìm hiểu nguyên nhân nó ra đời, vấn đề nó giải quyết trước, thì khi làm sẽ dễ tiếp thu hơn nhiều!

Lý thuyết vậy cũng tạm đủ rồi, tới kì sau tụi mình sẽ bắt tay vào deploy ứng dụng lên Azure App Service luôn nha! Kì sau mình đã viết xong rồi nên các bạn cứ hóng tuần sau sẽ có nhé!

3 thoughts on “Cùng học Cờ Lao – Azure Phần 4.1: Azure App Service là gì? Nó có gì hay ho?”

  1. Hi Admin,
    Cám ơn anh đã chia sẻ thông tin.
    Em đang muốn triển khai hệ thống web trên nền Azure với mô hình như sau nhờ anh tư vấn:
    Em muốn triển khai một loạt Web – App Service docker kết nối đến database MySQL. Nhờ anh tư vấn việc cân bằng tải cho các Web.

    Like

  2. Hi admin, cho mình hỏi chút, mình muốn setup auto scale cho app service plan, trường hợp này có phát sinh chi phí subscription ko bạn.

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s