5 bước deploy ASP.NET Core app lên Azure

April 9, 2019
Categories:
Tags:

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

Vậy để deploy một ứng dụng cơ bản, ta cần làm các bước sau:

  1. Tạo Resource Group
  2. Tạo App Services Plan
  3. Tạo App Services
  4. Tạo SQL Server
  5. Tạo SQL Database
  6. Config các kiểu
  7. 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:

https://docs.microsoft.com/vi-vn/azure/sql-database/sql-database-purchase-models#dtu-based-purchasing-model

browser
Author: Khoa Nguyen
https://niviki.com
Thất nghiệp. Đang rủ rê nhiều người thất nghiệp. Nhận tư vấn Zero to MVP để nhiều người bỏ việc. Hy vọng với NIVIKI.COM có thể lan toả tinh thần thất nghiệp đến với nhiều người hơn nữa.