Đã có thể chạy Windows Container trên Azure App Service

Phi Huynh
Azure Vietnam
Published in
3 min readAug 20, 2018

Giới thiệu

Nếu như trước đây dùng Azure AppService anh em thường chọn deploy trực tiếp lên AppService mà không có sự hỗ trợ từ containers. Từ khi thuật ngữ container phổ biến khắp thế giới phát triển phần mềm thì giờ đây anh em đã có thể triển khai các web app trên AppService với kiểu container.

Azure đã hỗ trợ container for Linux đã lâu rồi, tuy nhiên nay thì Windows Container cũng hỗ trợ luôn. Rõ là tin vui khi chúng ta có thể làm được nhiều thứ hơn với Windows Container (mà trước đây mặc định Azure App Service không hỗ trợ), ví dụ như:

  • Nếu tôi có một ứng dụng legacy đang chạy ở on-premise giờ muốn chuyển lên cloud, giải pháp khả dĩ duy nhất là dùng máy ảo, vì với Azure App Service thì hạn chế nhiều thứ. Tuy nhiên với Windows Container, anh em hoàn toàn có thể “đóng gói” các ứng dụng này thành image và deploy lên Azure App Service for Windows Container.
  • Các ứng dụng có nhiều dependencies chẳng hạn như copy các file dll vào Global GAC. App Service không cho phép làm điều này, nhưng với Windows Container trên App Service thì okie :)
  • Giới hạn về security cũng là một hạn chế của App Service, ví dụ như các DLL về PDF Generation hoặc call đến API của GDI sẽ không được phép dùng trong Azure App Service. Với Windows Container, chúng ta có thể làm được các việc này.

Các benefit kể trên sẽ giúp Azure App Service cạnh tranh khá gay gắt với Azure Virtual Machine vì Azure App Service là PaaS còn VM là IaaS, Azure đã hỗ trợ nhiều thứ tứ security, patching, scaling, plugins cho App Service trong khi với VM thì anh em phải tự maintain.

Các images cơ bản sẵn có

Mặc định Azure sẽ hỗ trợ sẵn các image cơ bản sau đây, việc này khá tiện vì anh em cũng biết mấy image của Windows Container khá lơn so với Linux. Các image này hầu như là đầy đủ cho anh e phát triển các ứng dụng .NET Framework và .NET Core.

  • microsoft/iis:windowsservercore-ltsc2016, latest
  • microsoft/iis:nanoserver-sac2016
  • microsoft/aspnet:4.7.2-windowsservercore-ltsc2016, 4.7.2, latest
  • microsoft/dotnet:2.1-aspnetcore-runtime
  • microsoft/dotnet:2.1-sdk

Một số tính năng có trong bản preview

  • Deploy container với các image host trên Docker Hub, Azure Container Registry hay private registry.
  • Tự động scale-out với tính năng auto-scaling.
  • Incremental Deployment với deployment slot (swapping)
  • Kết nối với Azure Service Log Streaming để xem log của ứng dụng
  • Dùng PowerShell hoặc Win-RM để kết nối vào containers.

Hiện tại thì Windows Containers đang public review, hy vọng sẽ sớm GA và lên product để anh em mạnh dạng mang các ứng dụng legacy lên cloud :)

Bắt đầu với Azure App Service for Windows Container ở đây.

--

--