Triển khai ứng dụng với Azure App Service: Hướng dẫn chi tiết và so sánh với AWS Elastic Beanstalk Chuyên mục Devops 2025-05-12 1 Lượt xem 1 Lượt thích 0 Bình luận
Giới thiệu
Khi triển khai một ứng dụng web lên cloud, hai dịch vụ phổ biến nhất mà lập trình viên thường lựa chọn là Azure App Service và AWS Elastic Beanstalk. Cả hai đều cung cấp nền tảng PaaS (Platform as a Service) giúp bạn dễ dàng triển khai, quản lý và mở rộng ứng dụng mà không cần lo lắng nhiều về cơ sở hạ tầng bên dưới.
Trong bài viết này, chúng ta sẽ:
-
Hướng dẫn chi tiết cách triển khai một ứng dụng Node.js lên Azure App Service.
-
So sánh giữa Azure App Service và AWS Elastic Beanstalk để bạn dễ lựa chọn nền tảng phù hợp.
1. Azure App Service là gì?
Azure App Service là một dịch vụ PaaS được Microsoft cung cấp, cho phép bạn triển khai các ứng dụng Web, RESTful API và backend mobile nhanh chóng. Nó hỗ trợ nhiều ngôn ngữ như Node.js, Python, .NET, Java, PHP... và dễ dàng tích hợp CI/CD từ GitHub, Azure DevOps, Bitbucket, hoặc thậm chí dùng Local Git để đẩy code.
2. Các bước triển khai ứng dụng lên Azure App Service
2.1. Chuẩn bị ứng dụng Node.js đơn giản
Tạo một project Node.js đơn giản:
mkdir mynodeapp && cd mynodeapp
npm init -y
npm install express
Tạo file index.js:
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Hello from Azure App Service!');
});
const port = process.env.PORT || 3000;
app.listen(port, () => console.log(`Server listening on port ${port}`));
Tạo file web.config nếu bạn dùng Node.js trên Windows hosting:
<configuration>
<system.webServer>
<handlers>
<add name="iisnode" path="index.js" verb="*" modules="iisnode" />
</handlers>
<rewrite>
<rules>
<rule name="DynamicContent">
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="True" />
</conditions>
<action type="Rewrite" url="index.js" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
2.2. Tạo App Service trên Azure
-
Đăng nhập Azure Portal: https://portal.azure.com
-
Tìm kiếm "App Service" > Nhấn Create
-
Điền thông tin:
-
App name: mynodeapp-demo
-
Publish: Code
-
Runtime stack: Node.js (v16 hoặc v18)
-
Region: Chọn khu vực gần bạn (Japan East, Southeast Asia...)
-
App Service Plan: Sử dụng gói miễn phí (F1) hoặc chọn gói phù hợp
-
-
Nhấn Review + Create > Create
2.3. Kết nối và deploy qua Local Git
-
Sau khi tạo xong App Service, vào tab Deployment Center
-
Chọn Local Git > Nhấn Save
-
Sau khi lưu xong, bạn sẽ thấy Git Clone URL, ví dụ:
https://mynodeapp-demo.scm.azurewebsites.net:443/mynodeapp-demo.git
-
Thiết lập Git remote và đẩy code:
git add .
git commit -m "initial deploy"
Username và password bạn lấy trong phần Deployment Credentials của App Service
-
Push code:
git push azure main:master
Hoặc
git push https://your_git.git master
Ứng dụng của bạn sẽ được tự động deploy. Truy cập qua URL:
https://mynodeapp-demo.azurewebsites.net
3. So sánh Azure App Service và AWS Elastic Beanstalk
Tiêu chí | Azure App Service | AWS Elastic Beanstalk |
---|---|---|
Mức độ dễ sử dụng | Dễ, giao diện trực quan | Có thể phức tạp hơn với người mới |
Ngôn ngữ hỗ trợ | Node.js, .NET, PHP, Java, Python... | Tương tự |
Tự động scaling | Có | Có |
CI/CD | GitHub, Azure DevOps, Bitbucket, Local Git | GitHub, CodePipeline, CLI |
Tùy chỉnh hạ tầng | Hạn chế hơn Beanstalk | Cho phép tùy chỉnh sâu (EC2, VPC...) |
Chi phí | Có gói miễn phí F1 | Không có gói free sau 12 tháng |
Hệ sinh thái tích hợp | Azure AD, Monitor, Logic Apps | CloudWatch, S3, RDS, IAM... |
4. Nên chọn Azure App Service hay AWS Beanstalk?
-
Azure App Service phù hợp với:
-
Những ai muốn triển khai nhanh, ít cấu hình
-
Ứng dụng vừa và nhỏ
-
Tích hợp tốt với Azure ecosystem (AD, DevOps...)
-
-
AWS Elastic Beanstalk phù hợp nếu:
-
Cần kiểm soát sâu hơn hạ tầng
-
Muốn tận dụng mạnh mẽ hệ sinh thái AWS như RDS, EC2
-
Trong quá trình triển khai một ứng dụng Web trên Azure App Service, việc theo dõi logs và debug là vô cùng quan trọng nhằm phát hiện sớm lỗi và đảm bảo hệ thống hoạt động trơn tru. Dưới đây là hướng dẫn chi tiết các công cụ logging có sẵn trong Azure App Service, bao gồm Log stream, Kudu Console, Web Server logs và Application Insights.
1. Bật Application Logging trong Azure App Service
Bước 1: Truy cập App Service logs
-
Truy cập Azure Portal
-
Vào App Service của bạn
-
Đi đến Monitoring > App Service logs
Bước 2: Bật Logging
-
Application Logging (Filesystem): Bật để lưu trữ log vào file
-
Web Server Logging: Bật và chọn Filesystem hoặc Blob Storage
-
Detailed Error Messages: Hữu ích khi gặp HTTP 5xx
-
Failed Request Tracing: Dùng cho chức năng phân tích các request thất bại
2. Xem Log theo thời gian thực - Log Stream
-
Truy cập App Service > Log stream trong Azure Portal
-
Tại đây bạn có thể xem các log xuất ra từ ứng dụng khi chạy (như log.debug, console.log,...)
-
Rất hữu ích khi deploy ứng dụng qua Git hay CI/CD và muốn xem log runtime ngay lập tức
3. Truy cập File Logs qua Kudu Console
-
Mở Kudu: https://<your_app_name>.scm.azurewebsites.net/DebugConsole
-
Đi đến thư mục: /home/LogFiles/application
-
Tại đây có các file log theo dạng .txt, .log
-
Đây là nơi lưu trữ log khi bật Application Logging (Filesystem)
4. Deployment Logs chi tiết - Kudu Console
-
Truy cập: https://<your_app_name>.scm.azurewebsites.net/DebugConsole
-
Đi đến: /home/LogFiles/kudu/trace
-
Các file .log ghi nhật trình tịnh trong quá trình deploy: build, install dependency, copy file...
-
Rất hữu ích khi bạn gặp lỗi deploy mà không thấy lý do rõ ràng
5. Web Server Logs
-
Ghi lại các HTTP request đến App Service
-
Bao gồm: path, status code, thời gian xử lý...
-
Bật trong App Service logs > Web server logging
-
Lựa chọn lưu trữ: Filesystem hoặc Blob Storage
6. Application Insights (Tuự chọn - nên bật)
-
Tích hợp Application Insights với App Service
-
Cung cấp các thông tin:
-
Request
-
Exception
-
Trace
-
Custom Events
-
-
Giao diện phân tích mạnh mẽ
-
Cách bật:
-
Azure Portal > App Service > Application Insights > Enable
-
Hoặc gắn SDK (cho Node.js, .NET, Python...)
-
7. Gợi ý quy trình Debug khi deploy:
-
Xem Deployment Center logs trong App Service
-
Dò log thực tế trong Log Stream
-
Kiểm tra file trong /home/LogFiles/application
-
Xem kỹ lễ deployment qua /home/LogFiles/kudu/trace
-
Bật Application Insights để theo dõi Exception, Metrics
Ghi nhớ:
-
Một số log sẽ bị xoá sau 72 giờ khi dùng Filesystem
-
Hãy cân nhắc sử dụng Blob Storage cho lưu trữ dài hạn
-
Kudu Console rất mạnh, hãy khai thác thường xuyên khi gặp sự cố
Kết luận
Azure App Service là một lựa chọn tuyệt vời cho các nhà phát triển muốn triển khai ứng dụng một cách đơn giản và nhanh chóng mà không cần nhiều kiến thức về cloud hạ tầng. Tuy không mạnh mẽ như Beanstalk trong việc tùy chỉnh, nhưng lại dễ dùng và thân thiện hơn với người mới.
Hy vọng bài viết giúp bạn hiểu rõ hơn về Azure App Service và cách so sánh với AWS Elastic Beanstalk để đưa ra lựa chọn phù hợp cho dự án của mình.
Bình luận (0)