Azure DevOps์์ ํ๊ฒฝ๋ณ(Dev/Prod) ํ์ดํ๋ผ์ธ ๊ตฌ์ฑํ๊ธฐ
๐ Azure DevOps์์ ํ๊ฒฝ๋ณ(Dev/Prod) ํ์ดํ๋ผ์ธ ๊ตฌ์ฑํ๊ธฐ
์์ ์ฐ๋ฆฌ๋ Azure DevOps๋ฅผ ์ฌ์ฉํด
๊ธฐ๋ณธ์ ์ธ CI/CD ํ์ดํ๋ผ์ธ์ ๊ตฌ์ฑํด๋ดค์ด์.
์ด๋ฒ์๋ ํ ๋จ๊ณ ๋ ๋์๊ฐ,
**๊ฐ๋ฐ(Dev)**๊ณผ ์ด์(Prod) ํ๊ฒฝ์ ๋ถ๋ฆฌํด์
๋ฐฐํฌํ๋ ๊ตฌ์กฐ๋ฅผ ๋ง๋ค์ด๋ณผ๊ฒ์.
โ๏ธ ๊ฐ๋ฐ์๋ Dev ํ๊ฒฝ์ ์์ ๋กญ๊ฒ ํธ์ํ๊ณ ,
โ๏ธ ์ด์ ๋ฐฐํฌ๋ ์น์ธ(์น์ธ์)์ด ์์ด์ผ๋ง ๋ฐฐํฌ๋๋๋ก ๊ตฌ์ฑํฉ๋๋ค.
๐ค ์ ํ๊ฒฝ์ ๋๋ ์ผ ํ ๊น?
Dev์ Prod๋ฅผ ๋๋๋ ์ด์ ๋ ๊ฐ๋จํด์:
- Dev: ์์ ๋กญ๊ฒ ํ ์คํธ, ๋๋ฒ๊น , ๋น ๋ฅธ ๋ฐ์
- Prod: ์ค์ฌ์ฉ์์๊ฒ ์ ๊ณต๋๋ ์ ์คํ ํ๊ฒฝ (๋ฒ๊ทธ ์์ผ๋ฉด ํฐ์ผ!)
CI/CD ํ์ดํ๋ผ์ธ๋ ์ด๋ฐ ๊ตฌ์กฐ์ ๋ง์ถฐ์ผ๊ฒ ์ฃ ?
๐งฉ ๊ตฌ์ฑ ํ๋ฆ ์์ฝ
โโโโโโโโโโโโโโโ
Commit → โ Build Stage โ
โโโโโโฌโโโโโโโโโ
↓
โโโโโโโโโโโโโโ
โ Dev ๋ฐฐํฌ โ (์๋)
โโโโโโโโโโโโโโ
↓
โโโโโโโโโโโโโโโโโโโโโโ
โ ์น์ธ ํ Prod ๋ฐฐํฌ โ (์๋ ์น์ธ)
โโโโโโโโโโโโโโโโโโโโโโ
๐ ๏ธ ์ค์ต: ํ๊ฒฝ๋ณ ๋ฐฐํฌ ํ์ดํ๋ผ์ธ ๋ง๋ค๊ธฐ
1. CI ํ์ดํ๋ผ์ธ ๊ตฌ์ฑ (Build)
๋ฃจํธ์ azure-pipelines.yml ํ์ผ ์์ฑ:
trigger:
- main
pool:
vmImage: 'ubuntu-latest'
variables:
buildConfiguration: 'Release'
steps:
- task: NodeTool@0
inputs:
versionSpec: '18.x'
- script: |
npm install
npm run build
displayName: 'Build App'
- task: PublishBuildArtifacts@1
inputs:
pathToPublish: 'build'
artifactName: 'drop'
๐ก ๋น๋๋ ๊ฒฐ๊ณผ๋ฌผ์ Artifacts๋ก ๋ง๋ค์ด์ Release ๋จ๊ณ๋ก ๋๊ฒจ์ค๋๋ค.
2. Release Pipeline ๊ตฌ์ฑ (ํ๊ฒฝ๋ณ ๋ฐฐํฌ)
- Azure DevOps → Releases → New Release Pipeline
- Artifacts ์ฐ๊ฒฐ
- ์ CI ํ์ดํ๋ผ์ธ์ Artifacts(drop) ์ ํ
- Stage 1: Dev ํ๊ฒฝ ๊ตฌ์ฑ
- ๋ฐฐํฌ ๋์: Azure App Service (Dev์ฉ)
- ์ด๋ฆ: Deploy to Dev
- ์๋ ๋ฐฐํฌ ์ค์ : ์ฒดํฌ!
- Stage 2: Prod ํ๊ฒฝ ๊ตฌ์ฑ
- ๋ฐฐํฌ ๋์: Azure App Service (Prod์ฉ)
- ์ด๋ฆ: Deploy to Prod
- ์๋ ๋ฐฐํฌ: โ ํด์
- Pre-deployment approvals์ ์น์ธ์ ์ง์ (PM, Tech Lead ๋ฑ)
- Dev → Prod ์ฐ๊ฒฐ
- Dev Stage ์๋ฃ ์ → Prod Stage ์์๋๋๋ก ์ฐ๊ฒฐ
โ ํ๊ฒฝ๋ณ ๋ถ๊ธฐ ์ ๋ต๋ ๊ณ ๋ คํ๊ธฐ
- main ๋ธ๋์น → Dev ์๋ ๋ฐ์
- release ๋๋ production ๋ธ๋์น → Prod ์น์ธ ๋ฐฐํฌ
๋๋
- dev, prod ๋ธ๋์น๋ก CI/CD ๋ฐ๋ก ๊ตฌ์ฑํด๋ ์ข์์
๐ก ์ค๋ฌด ํ
- ํ๊ฒฝ ๋ณ์๋ ํ์ดํ๋ผ์ธ ๋ณ์ or Azure App Service ์ค์ ์์ ๊ด๋ฆฌ ๊ฐ๋ฅ
- Secret ๊ฐ์ Azure Key Vault์ ์ฐ๋ ๊ฐ๋ฅ
- pm2, Docker, Helm ๋ฑ ๋ค์ํ๊ฒ ๋ฐฐํฌ ๋๊ตฌ ์ปค์คํฐ๋ง์ด์ง ๊ฐ๋ฅ
- ์น์ธ์ ์ง์ ์, ์น์ธ ์์ฒญ ๋ฉ์ผ/Slack ์๋ฆผ๋ ๊ฐ๋ฅ
๐ฏ ๋ง๋ฌด๋ฆฌ
ํ๊ฒฝ์ Dev/Prod๋ก ๋ถ๋ฆฌํ๋ ๊ฑด ๋จ์ํ “๋ถ๋ฆฌ ๋ฐฐํฌ”๊ฐ ์๋๋ผ
์ฑ
์ ์๋ ๋ฆด๋ฆฌ์ฆ ๊ด๋ฆฌ์ ์์์
๋๋ค.
Azure DevOps์ Release ํ์ดํ๋ผ์ธ์ ํ์ฉํ๋ฉด
- ์๋ ๋ฐฐํฌ์ ์๋ ์น์ธ์ ๋ณํํ๊ณ
- ์ค์ ์์ด ๋ฆด๋ฆฌ์ฆ๋ฅผ ์งํํ ์ ์์ด์.