Get in touch
or send us a question?
CONTACT

Azure App Service là gì?

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 Machine là Infrastructure 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 Service là Platform 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 Service và App 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 Plan là server để 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