Quay lại

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    comment-3 Created with Sketch Beta. 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 ServiceAWS 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

  1. Đăng nhập Azure Portal: https://portal.azure.com

  2. Tìm kiếm "App Service" > Nhấn Create

  3. Đ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

  4. Nhấn Review + Create > Create

2.3. Kết nối và deploy qua Local Git

  1. Sau khi tạo xong App Service, vào tab Deployment Center

  2. Chọn Local Git > Nhấn Save

  3. 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
  1. Thiết lập Git remote và đẩy code:

git add .
git commit -m "initial deploy"

Usernamepassword bạn lấy trong phần Deployment Credentials của App Service

  1. 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
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:

  1. Xem Deployment Center logs trong App Service

  2. Dò log thực tế trong Log Stream

  3. Kiểm tra file trong /home/LogFiles/application

  4. Xem kỹ lễ deployment qua /home/LogFiles/kudu/trace

  5. 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)

Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough

Bài viết liên quan

Learning English Everyday