DevOps AI
  • Home
  • Bảo mật
  • AI & Automation
  • DevOps & Cloud
  • Bộ đề luyện thi cloud
No Result
View All Result
DevOpsAI
  • Home
  • Bảo mật
  • AI & Automation
  • DevOps & Cloud
  • Bộ đề luyện thi cloud
No Result
View All Result
DevOpsAI
No Result
View All Result
Home DevOps & Cloud

CICD Demo với Azure Pipeline

CICD azure pipeline và deploy app lên azure app service

Hiếu Tạ by Hiếu Tạ
25 Tháng 4, 2025
in DevOps & Cloud
0
Share on FacebookShare on Twitter

I. Lời mở đầu

Ở topic này mình sẽ hướng dẫn cơ bản về việc setup CICD trên Azure Pipeline cho một dự án C# siêu nhỏ. Gồm các stage checkout code, build, deploy. Bỏ qua mấy cái to bự như multiple environment, testing,…. nhé vì đây là hướng dẫn setup cơ bản cho anh em mới bắt đầu để hiểu sơ lược cách hoạt động của Azure Pipeline

II. Vô việc!

1. Create an account with Azure DevOps 

Đầu tiên anh em cần truy cập https://azure.microsoft.com/en-us/ để đăng ký tài khoản Azure free, nhớ không nhầm thì được 200$, check detail ở https://azure.microsoft.com/en-us/free

2. Start Free Azure DevOps

Sau khi tạo được cái acc free thì mọi step dưới đây còn dễ hơn nữa

Step 2.1: Vào Azure Portal bắt đầu tạo môi trường để deploy, ở bà ivieest này mình sẽ dùng các servicess của Azure như Resource Groups, Azure App Services, Azure App Plan.

Related Post

Ưu Đãi Đặc Biệt: Nhận Ngay Coupon Giảm 25% cho Bộ Đề Luyện Thi Cloud!

Ưu Đãi Đặc Biệt: Nhận Ngay Coupon Giảm 25% cho Bộ Đề Luyện Thi Cloud!

29 Tháng 4, 2025
Đổi MTU cho Calico trong Kubernetes

Đổi MTU cho Calico trong Kubernetes

30 Tháng 4, 2025

Tắt NLA trên Amazon EC2 Windows instance

30 Tháng 4, 2025

Demo Tích Hợp Vault trong Kubernetes

30 Tháng 4, 2025

Step 2.2: Start free Azure DevOps để vào Azure DevOps

Step 2.3:  Tạo mới một organization như “Kế hoạch thành đại bàng”

Step 2.4: Tạo mới một pipeline => chọn GitHub. Mục đích của việc này là ta sẽ connect được giữa Azure Pipeline với repository đang chứa source code của dự án. Ở đây mình chọn GitHub làm example. Trong trường hợp step 2.3 anh em nào không có repo mẫu thì lụm cái https://github.com/taminhhieu31gl/pipelines-dotnet-core của mình xài đỡ cũng được. Azure Pipeline sẽ generate ra một pipeline Hello Word và lưu nó ở chính branch của repo Github, naming là azure-pipeline.yml. Hoặc nếu thấy cái file khó ưa quá thì không generate nó ra cũng được nhé.

Step 2.4: Bấm run pipeline để chạy thử Hello World hoặc copy paste cái đoạn dưới đây và commit vào azure-pipeline.yml. Để mình giải thích chút:

# ASP.NET Core
# Build and test ASP.NET Core projects targeting .NET Core.
# Add steps that run tests, create a NuGet package, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core

trigger:
– master

pool:
vmImage: ubuntu-latest

variables:
buildConfiguration: ‘Release’

steps:
– script: dotnet build –configuration $(buildConfiguration)
displayName: ‘dotnet build $(buildConfiguration)’

– task: ArchiveFiles@2
inputs:
rootFolderOrFile: ‘/home/vsts/work/1/s/bin/Release/net6.0/pipelines-dotnet-core.dll’
includeRootFolder: true
archiveType: ‘zip’
archiveFile: ‘$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip’
replaceExistingArchive: true

– task: AzureRmWebAppDeployment@4
inputs:
ConnectionType: ‘AzureRM’
azureSubscription: ‘Azure subscription 1(095eb3b1-0317-4e50-8340-d4d8345bc143)’
appType: ‘webApp’
WebAppName: ‘demositecore’
packageForLinux: ‘$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip’

Giải thích chút cái mớ trên:

  • trigger: định nghĩa branch trên SCM, khi có commit trên branch được định nghĩa, pipeline sẽ được thực thi.
  • pool: để pipeline hiểu bạn đang muốn thực hiện đống CICD này ở agent nào. Chi tiết về Agent của Azure sẽ trong bài viết khác nhé
  • variables: định nghĩa biến môi trường để “xài đi xài lại” trong pipeline
  • steps, task: kiểu như vô vấn đề, bạn cần làm gì sẽ defind ở đây
    Ví dụ: về C# sẽ có nhiều cách build, mình xài script dotnet build để build cái project này.
  • displayName: hiển thị tên của cái stage này
  • ArchiveFiles@2: cơ chế là sau khi build ra package, mình sẽ zip nó lại để mang đi deploy cho stage tiếp theo
  • AzureRmWebAppDeployment@4: Do đang xài Azure App Service nên mình sẽ dùng task này để deploy, kiểu như lấy cái zip từ stage trên ném vô Azure App Service sẽ tự mang đi deploy cho bạn. Azure App Service sẽ có 3 DeploymentType. Ở pipeline mình không dùng nên sẽ tự hiểu mặc định, còn mặc định là gì, 3 loại nào thì để bài viết khác :)).

II. Kết quả

Vào lại Auzre Portail, chọn Resource Group => Azure App Service mà bạn đã tạo ở step 2.2. Click Overview => https://demositecore.azurewebsites.net. Hãy sửa code và commit ở github xem có trigger hay bất ngờ gì xảy ra không nhé.

Bài viết tới đây là hết, nhân tiện thì một số tình tiết chưa nếu chi tiết sẽ được viết trong bài viết chi tiết khác nhé. Mọi thứ mình để ở đây, anh em tham khảo  https://github.com/taminhhieu31gl/pipelines-dotnet-core

Tags: agentartifactazureAzure DevOpsbuildcicdcmcơ bảnconfigurationdemodeploydevopsđịnh nghĩadotnetenvironmentgitgithubhoạt độnghướng dẫnkiến trúclinuxmicrosoftNuGetpackagepipelinercereleaserepositorysetuptestingtriggervm
Hiếu Tạ

Hiếu Tạ

Graduated as a Software Engineer. I have more than 3-year experience in developing software and DevOps, used to many services of AWS, and Azure, K8S, and using Windows or Linux on-premies proficiently to set up servers, proxy, build and deploy multiple programming languages (Java, GO, NET,...)..... Experience with CMS such SiteCore, ElasticPath, AEM... Implement CICD via Jenkins scripting, infrastructure as code via Terraform, and AWS Cloud Formation.

Related Posts

Ưu Đãi Đặc Biệt: Nhận Ngay Coupon Giảm 25% cho Bộ Đề Luyện Thi Cloud!
Tin tức

Ưu Đãi Đặc Biệt: Nhận Ngay Coupon Giảm 25% cho Bộ Đề Luyện Thi Cloud!

by devopsify
29 Tháng 4, 2025
Đổi MTU cho Calico trong Kubernetes
DevOps & Cloud

Đổi MTU cho Calico trong Kubernetes

by Hiếu Tạ
30 Tháng 4, 2025
Tắt NLA trên Amazon EC2 Windows instance
DevOps & Cloud

Tắt NLA trên Amazon EC2 Windows instance

by Hiếu Tạ
30 Tháng 4, 2025
Next Post

Tản mạn về IaC là gì

Để lại một bình luận Hủy

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Recommended

Cài đặt Maven trên Windows

25 Tháng 4, 2025

Các website demo hay được sử dụng cho thực hành Automation Test

1 Tháng 5, 2025
Cài đặt Jenkins bằng Docker

Cài đặt Jenkins bằng Docker

30 Tháng 4, 2025

Kiểm tra tài nguyên CPU, RAM trên Ubuntu 22.04

25 Tháng 4, 2025
Unit Test là gì?

Unit Test là gì?

29 Tháng 4, 2025
cdk terraform

CDK cho Terraform

29 Tháng 4, 2025
Hướng Dẫn Thiết Lập LDAPS Trên Windows Server 2022

Hướng Dẫn Thiết Lập LDAPS Trên Windows Server 2022

26 Tháng 4, 2025
DeepSeek AI là gì? Tổng hợp các mô hình DeepSeek mạnh mẽ nhất hiện nay

DeepSeek AI là gì? Tổng hợp các mô hình DeepSeek mạnh mẽ nhất hiện nay

1 Tháng 5, 2025
DevOpsify

Cộng đồng DevOps Việt Nam chia sẽ kiến thức giúp tăng tốc quá trình phát triển ứng dụng và tự động hóa trong lĩnh vực Cloud DevOps & AI.

Bài viết mới

  • Unit Test là gì?
  • CDK cho Terraform
  • Hướng Dẫn Thiết Lập LDAPS Trên Windows Server 2022

Categories

  • AI & Automation
  • Bảo mật
  • Chưa phân loại
  • DevOps & Cloud
  • Tin tức
No Result
View All Result
  • Home
  • Bảo mật
  • AI & Automation
  • DevOps & Cloud
  • Bộ đề luyện thi cloud

© 2025 DevOpsify