Trong bài viết này, mình sẽ hướng dẫn các bạn cách build 1 project đơn giản trên VSO và thực hiện deploy trên Azure. Quá trình đó gọi là CI và CD
CI sẽ giúp bạn build project thành 1 file zip, với các package và config cần thiết để run 1 web application.
CD sẽ giúp bạn đưa source từ artifacts lên Azure bằng cách cấu hình Azure Subscription, hoặc FTP, …
Tạo mới Project nếu chưa có.
Clone project về:
Tạo project Web Application, lưu vào thư mục mà bạn vừa clone project về.
Build và chạy project lên.
Commit and push code
Check your code: https://<your-account>.visualstudio.com/CI-Demo
Chọn ASP.NET => Apply
Chọn Process=> Chọn lại đường dẫn tới file *.sln hoặc file packages.config
Bạn nên chọn lại đường dẫn tới file *.sln hoặc file packages.config. Trường hợp không tìm thấy file solution hoặc packages, source code sẽ được nén lại thay vì compiled code.
Bạn nên bỏ chọn Enable continuous integration.
Nhấp Save and queue => Save
Nhập thông tin cần thay đổi và cập nhật lại Variables
Sau đó bạn nhấp vào link để đi tới trang hiển thị quá trình build project
Nếu build thành công, bạn sẽ thấy giao diện:
Tập tin sau khi build nằm trong Artifacts
Nhấp + => Create release definition
Chọn Template Azure App Service Deployment
Bạn nhấn nút Apply.
Bạn chọn Project và source cần để deploy. Trong trường hợp này, mình có định nghĩa 2 source StepOne và Demo-ASP.NET-CI. Bạn chọn Demo-ASP.NET-CI.
Với các tùy chọn tiếp theo, bạn cứ để như mặc định là được.
Tiếp theo, bạn cần đặt tên Environment. Bạn cần đặt tên lại để phân biệt môi trường deploy giữa các phiên bản Demo, Staging, hoặc Production.
Sau đó bạn nhấp vào tab Tasks, để định nghĩa các bước thiết lập account và đưa source lên Azure
Ở hình trên, mình có 2 account Azure Pass và Visual Studio Enterprise. Bạn chọn Account nào có liên kết với Azure Web App mà bạn cần đưa source lên.
Trường hợp bạn chưa có Azure subscription, click vào Manage để thực hiện việc liên kết.
Có 2 cách tạo subscription, 1 là bạn sử dụng Azure Classic, 2 là bạn sử dụng Azure Resource Manager
Một hộp thoại xuất hiện như sau:
Nhấp vào link publish settings file sẽ dẫn tới trang Publish Settings ở Azure Portal.
Bạn chọn Azure subscriptions, bấm Validate và rồi bấm nút Download Publish Settings.
Sau khi tải file Publish Settings về, bạn điền thông tin và Save lại.
Trường hợp bạn gặp thông báo: “The selected subscription 'Visual Studio Enterprise – MPN' is missing co-admin priviledges. Please check permissions.” Có nghĩa là bạn không thể sử dụng Azure Subscription để deploy trực tiếp lên Azure. Trong trường hợp, bạn cấu hình lại CD để sử dụng FTP để đưa source lên Azure.
Chọn Subscription và bấm OK.
Trường hợp thiếu permission, bạn sẽ gặp thông báo lỗi tương tự như ở bước trên:
https://docs.microsoft.com/en-us/VSO/build-release/concepts/library/service-endpoints#sep-azure-rm
Quay trở lại tab Tasks, bạn chọn Azure subscription.
Chọn connection bạn vừa thiết lập ở bước trên hoặc subscriptions được gợi ý từ VSO. Trong trường hợp chọn subscription được gợi ý, bạn cần Authorize subscription đó.
Ở đây, mình chọn Azure Pass.
Đổi tên Release definition, rồi bấm nút Save.
Sau đó bấm nút Release
Chọn Environment =>Create.
Bạn sẽ thấy Environment Production được deploy succeeded
Kiểm tra lại trên Azure websites
Và kiểm tra lại các file ở thư mục wwwroot
Chúc các bạn thành công
Nhatkyhoctap's blog
- CI là quy trình tự động build (và chạy test nếu có) ngay khi code bạn được commit hoặc check in lên project repository trên source control team bạn. Cho phép bạn nhận được các feedback tức thì về việc code bạn có khả thi khi build và sẵn sàng để deploy chưa.
- CD là quy trình tự động chạy deploy khi có build mới thành công.
- Kết hợp lại với việc sử dụng CI và CD khi có sự thay đổi code trên repository khi hoàn tất commit hoặc check, code của bạn sẽ được nhanh chóng được kiểm tra, build và tự động deploy lên server test, live web site, hoặc bất cứ nơi nào bạn muốn.
Tại sao phải thực hiện build tự động và deploy tự động?
Thực ra, bạn vẫn có thể deploy thủ công bằng cách download file publish profile từ Azure Web App, và đưa website lên chỉ với 1 cú click chuột. Bạn muốn deploy website lên nhiều môi trường, ví dụ như Dev, QC, Staging, … Bạn phải setting nhiều thứ như connection string, web-services, version,… Tất cả phải làm bằng tay và bạn phải nhớ. Lỡ 1 ngày nào đó đẹp trời bạn quên 1 config nào đó thì sao.CI sẽ giúp bạn build project thành 1 file zip, với các package và config cần thiết để run 1 web application.
CD sẽ giúp bạn đưa source từ artifacts lên Azure bằng cách cấu hình Azure Subscription, hoặc FTP, …
Tạo, build và deploy Web Application lên Azure Web App
Thực hiện qua các bước:Tạo project & quản lý source code với VSO
Truy cập vào tài khoản VSO của bạn, đường dẫn truy cập có dạng https://{your-team-name}.visualstudio.comTạo mới Project nếu chưa có.
Clone project về:
Tạo project Web Application, lưu vào thư mục mà bạn vừa clone project về.
Build và chạy project lên.
Commit and push code
Check your code: https://<your-account>.visualstudio.com/CI-Demo
Configure continuous integration
Trong VSO, nhấp vào Build and Release => trong tab Build, nhấp New Definition.Chọn ASP.NET => Apply
Chọn Process=> Chọn lại đường dẫn tới file *.sln hoặc file packages.config
Bạn nên chọn lại đường dẫn tới file *.sln hoặc file packages.config. Trường hợp không tìm thấy file solution hoặc packages, source code sẽ được nén lại thay vì compiled code.
Bạn nên bỏ chọn Enable continuous integration.
Nhấp Save and queue => Save
Nhập thông tin cần thay đổi và cập nhật lại Variables
Sau đó bạn nhấp vào link để đi tới trang hiển thị quá trình build project
CI process |
Nếu build thành công, bạn sẽ thấy giao diện:
Tập tin sau khi build nằm trong Artifacts
Thiết lập CD (continuous deployment)
Nhấp chọn Build and Release => ReleasesNhấp + => Create release definition
Chọn Template Azure App Service Deployment
Bạn nhấn nút Apply.
Bạn chọn Project và source cần để deploy. Trong trường hợp này, mình có định nghĩa 2 source StepOne và Demo-ASP.NET-CI. Bạn chọn Demo-ASP.NET-CI.
Với các tùy chọn tiếp theo, bạn cứ để như mặc định là được.
Tiếp theo, bạn cần đặt tên Environment. Bạn cần đặt tên lại để phân biệt môi trường deploy giữa các phiên bản Demo, Staging, hoặc Production.
Sau đó bạn nhấp vào tab Tasks, để định nghĩa các bước thiết lập account và đưa source lên Azure
Ở hình trên, mình có 2 account Azure Pass và Visual Studio Enterprise. Bạn chọn Account nào có liên kết với Azure Web App mà bạn cần đưa source lên.
Trường hợp bạn chưa có Azure subscription, click vào Manage để thực hiện việc liên kết.
Có 2 cách tạo subscription, 1 là bạn sử dụng Azure Classic, 2 là bạn sử dụng Azure Resource Manager
Azure Classic
Nhấp New Service Endpoint => Azure ClassicMột hộp thoại xuất hiện như sau:
Nhấp vào link publish settings file sẽ dẫn tới trang Publish Settings ở Azure Portal.
Bạn chọn Azure subscriptions, bấm Validate và rồi bấm nút Download Publish Settings.
Sau khi tải file Publish Settings về, bạn điền thông tin và Save lại.
Trường hợp bạn gặp thông báo: “The selected subscription 'Visual Studio Enterprise – MPN' is missing co-admin priviledges. Please check permissions.” Có nghĩa là bạn không thể sử dụng Azure Subscription để deploy trực tiếp lên Azure. Trong trường hợp, bạn cấu hình lại CD để sử dụng FTP để đưa source lên Azure.
Azure Resource Manager
Sau đó chọn Azure Resource ManagerChọn Subscription và bấm OK.
Trường hợp thiếu permission, bạn sẽ gặp thông báo lỗi tương tự như ở bước trên:
https://docs.microsoft.com/en-us/VSO/build-release/concepts/library/service-endpoints#sep-azure-rm
Quay trở lại tab Tasks, bạn chọn Azure subscription.
Chọn connection bạn vừa thiết lập ở bước trên hoặc subscriptions được gợi ý từ VSO. Trong trường hợp chọn subscription được gợi ý, bạn cần Authorize subscription đó.
Ở đây, mình chọn Azure Pass.
Đổi tên Release definition, rồi bấm nút Save.
Sau đó bấm nút Release
Chọn Environment =>Create.
Bạn sẽ thấy Environment Production được deploy succeeded
Kiểm tra lại trên Azure websites
Và kiểm tra lại các file ở thư mục wwwroot
Tham khảo
Chúc các bạn thành công
Nhatkyhoctap's blog
Nhận xét
Đăng nhận xét