5 bước deploy ASP.NET Core app lên Azure
Khám phá hướng dẫn từng bước triển khai ứng dụng ASP.NET Core lên Azure, đặc biệt cho người dùng macOS với CI/CD qua GitHub - không cần Visual Studio hay Windows!

Giới thiệu
Đa số các bài trên mạng hướng dẫn deploy ứng dụng ASP.NET MVC hoặc ASP.NET Core lên Azure đều dùng Windows + Visual Studio.
Nên mình sẽ viết một bài hướng dẫn deploy dùng Macbook, cách setup Github để sử dụng Continuous Integration với Azure nhé. Stay tuned!
Bước 1: Chuẩn bị source code
Tưởng có vẻ đơn giản, nhưng nhớ chạy dưới local xem có lỗi gì không trước đã nhé , có gì debug cho tiện luôn. Chứ đừng để deploy rồi mới biết có bug.
Lúc trước mình hay dùng SQLite dưới local để dev. Lúc deploy thì trên production lại dùng SQL Server. Lúc đó thì dưới local chạy ok hết nhưng lên production sẽ bị lỗi như khoá ngoại duplicate, bla bla.
Mình đã chuẩn bị một app nhỏ là web api có 1 api lấy email subscription. App này để xây dựng trang khoá học trực tuyến sắp tới của tụi mình luôn đó.
Chuẩn bị ứng dụng để deploy nào!
Bước 2: Tìm hiểu Azure và các khái niệm cơ bản
Các bạn nhớ đăng ký Azure nhé. Nếu bạn là sinh viên có thể đăng ký Azure for Students sẽ được miễn phí sử dụng, và miễ phí luôn key bên Pluralsight.
Sau khi đăng nhập xong sẽ có giao diện như vầy:
Giao diện Azure
Các khái niệm cơ bản
-
Resource Group : Là một nhóm các dịch khác nhau để dễ quản lý. Có thể dễ hiểu là mỗi ứng dụng bạn tạo mới 1 cái group này. Ví dụ khách hàng A có 1 web app hoá đơn điện tử, mình tạo 1 Resource Group riêng cho anh ấy. Chị B thuê mình làm ứng dụng rao vặt, thì mình tạo Resource Group riêng cho chị.
-
App Services : "Azure App Service is a service for hosting web applications, REST APIs, and mobile back ends. You can develop in your favorite language, be it .NET, .NET Core, Java, Ruby, Node.js, PHP, or Python". Ở dưới localhost, bạn dùng máy tính của bạn, thì coi như bạn trả cho Azure một khoảng tiền để mua cái App Services này. App Services giống như 1 cái hosting nhưng có nhiều tính năng hơn như load balancing, autoscaling, hỗ trợ continuous deployment qua Github, Azure DevOps
-
App Services Plan : Chi tiết cấu hình và giá mà bạn muốn cho cái App Services ở trên. Ví dụ như Ram mấy GB, CPU mấy core, máy chủ được đặt ở đâu, vv
-
SQL Server (SQL Logic Server) : Là "logical grouping of multiple Azure SQL Databases". Mình cũng không biết dịch tiếng Việt là gì. Nhưng một SQL Server sẽ có nhiều SQL Database con. Các SQL database con này sẽ dùng chung Server Admin username và password. Azure sẽ không tính phí khi tạo SQL Server vì mức phí sẽ quy định khi tạo SQL Database con.
1 SQL Server có nhiều SQL Database
- SQL Database: Cơ sở dữ liệu của bạn. Mức giá được tính theo storage size và DTU (Database Transaction Unit)
Vậy để deploy một ứng dụng cơ bản, ta cần làm các bước sau:
-
Tạo Resource Group
-
Tạo App Services Plan
-
Tạo App Services
-
Tạo SQL Server
-
Tạo SQL Database
-
Config các kiểu
-
Push code lên App Services
Bước 3: Khởi tạo các dịch vụ cần thiết
Lưu ý nếu dashboard của bạn không hiển thị dịch vụ nào ở trên thì bạn dùng tính năng search của Azure cho nhanh nhé.
Tạo Resource Group
Tạo App Service Plan
Tạo App Service
Tạo SQL Server
Tạo SQL Database
Bước 4: Config
Tiếp theo chúng ta cần config một số thứ nữa để có thể deploy được.
Set các biến và Connection String
Bạn vào App service mới tạo -> Application settings (Classic) và set các biến cần thiết cũng như connection string tới SQL Database mới tạo ở bước trên nhé.
Với một ứng dụng ASP.NET Core, thì mình set 2 biến này là đủ
ASPNETCORE_ENVIRONMENT = Production
ASPNETCORE_DETAILEDERRORS = true
Ngoài ra, mình dùng Entity Framework nên cần chạy lệnh dotnet ef database update từ local. Nên cần cho phép địa chỉ IP máy mình truy cập được SQL Server. Bạn vào SQL Server -> Firewalls and virtual networks để thêm địa chỉ IP máy local của bạn nếu cần nhé.
Bước 5: Continuous Integration với Github Repo
Bạn push source code của mình lên Github sau đó vào phần App Service -> Deployment Center nhé
Sau đó bạn uỷ quyền Github cho Azure, chọn Repo và nhánh muốn liên kết. Sau này mỗi khi branch mà bạn đã chọn có thay đổi gì thì App Server tự pull code về để deploy và thông báo kết quả cho bạn luôn.
Sau có thông báo Success, bạn vào url của App Service để kiểm tra nhé!
Kết
Bài viết đã giới thiệu sơ lược về các dịch vụ cơ bản của Azure cũng như cách deploy một ứng dụng ASP.NET Core. Mọi thắc mắc hay đóng góp mọi người để dưới phần bình luận nhé
Link thao khảo:
Related Posts
Discover more content you might enjoy

Game Theory trong thời đại AI: Khi máy móc tham gia vào "trò chơi"
Bài viết phân tích sự giao thoa giữa lý thuyết trò chơi (Game Theory) và trí tuệ nhân tạo, giải thích cách AI đang thay đổi các nguyên lý cân bằng Nash và chiến lược tối ưu. Tác giả đưa ra các ví dụ thực tế về ứng dụng trong kinh doanh, giao thông và an ninh mạng.

Bài này không phải AI viết
Suy ngẫm chân thành về giá trị của việc viết thủ công trong kỷ nguyên AI. Dù AI có thể tạo nội dung hiệu quả, bài viết này là lời khẳng định về sự kết nối cá nhân và giá trị độc đáo mà con người mang lại cho văn bản của mình.

Dự đoán về Vibe Coding: Cách AI sẽ biến đổi việc tạo ra phần mềm
Bài viết phân tích cách 'vibe coding' - phương pháp lập trình dựa trên mô tả ý định thay vì viết code trực tiếp - sẽ dân chủ hóa việc phát triển phần mềm. Tác giả dự đoán về sự chuyển đổi từ giao diện dòng lệnh sang thiết kế trực quan, sự xuất hiện của phần mềm tự cải thiện, và tác động đến cấu trúc tổ chức công ty cũng như các thị trường ngách chưa được khai thác.

Dùng AI để hỗ trợ đầu tư crypto
Bài viết chia sẻ 7 mẹo thực tế để sử dụng AI (như Claude.ai và ChatGPT) hỗ trợ hiểu rõ whitepaper và tài liệu kỹ thuật của các dự án blockchain. Từ việc yêu cầu tóm tắt đơn giản, giải thích như cho trẻ em, đặt câu hỏi làm rõ, sử dụng ví dụ, tạo tình huống giả định, chuyển đổi thuật ngữ, đến so sánh nhiều nguồn tài liệu - giúp nhà đầu tư đưa ra quyết định đầu tư crypto sáng suốt hơn.
Tạo một ứng dụng đọc truyện Window Phone đơn giản với AppStudio

Day 28-29-30 - Profitable MVP in 30 Days - Tất cả đã có trong kế hoạch
Bài viết tổng hợp ngày 28-29-30 của thử thách xây dựng MVP có lợi nhuận, tác giả nhìn lại kế hoạch ban đầu và đánh giá tiến độ thực hiện. Bài viết chia sẻ cách tác giả định đạt mục tiêu lợi nhuận $1000 bằng cách tự mua lại ứng dụng của mình, đồng thời thông báo về việc hoàn thiện ứng dụng mới có tên Focusify.app thay vì letmethink như đã đề cập trước đó. Tác giả cũng chia sẻ về việc chuẩn bị landing page, video quảng cáo và hình ảnh để chuẩn bị cho ngày ra mắt sản phẩm.