π CI: Continuous Integration
κΉνλΈλ₯Ό λͺ°λλ μμ ,
ν νλ‘μ νΈλ₯Ό νλ©΄ "λ΄κ° A λΆλΆμ ν κ², λ€κ° B λΆλΆμ ν΄!" νλ©°
μμ€μ½λ νμΌμ μ£Όκ³ λ°μ μμ±νλ μ μ΄ μλ€.
μκ·λͺ¨ νλ‘μ νΈλΌ μΆ©λλ κ±°μ μμκ³ , μμ΄λ κΈλ°© κ³ μ³€μ§λ§
μ§κΈμ²λΌ κ·λͺ¨κ° ν° νλ‘μ νΈμμ κ·Έλ κ² ν΄μΌ νλ€λ©΄ λμμ΄ μΊμΊνλ€.
- μ΄ μ½λ λκ° μμ±νλμ?
- ν μ€νΈνλμ? μ νκ²½μμλ μ λλλ°μ?
체κ³μ μΈ μ½λ ν΅ν©μ νμμ±μ μ€κ°νκ² λλ μκ°μ΄λ€.
CIλ Continuous Integration, μ¦ μ§μμ μΈ ν΅ν©μ΄λΌλ μλ―Έλ‘
μλ‘μ΄ μ½λ λ³κ²½ μ¬νμ΄ μλμΌλ‘ λΉλλκ³ , ν
μ€νΈλμ΄ λ³ν©λλ κ³Όμ μ λ§νλ€.
λνμ μΈ CI λκ΅¬λ‘ Jenkins, GitHub Actions λ±μ΄ μλ€.
μλνλ λΉλ λ° ν μ€νΈ
CI μλ² νΉμ νμ΄νλΌμΈμ Git μ μ₯μμ λ³κ²½ μ¬νμ΄ pushλκ±°λ
PRμ΄ μ¬λΌμ¬ λλ§λ€ μλμΌλ‘ λΉλνκ³ λ¨μ ν
μ€νΈμ ν΅ν© ν
μ€νΈλ₯Ό μννλ€.
μ΄λ λΉλμ ν
μ€νΈ κ³Όμ μμ μ€λ₯κ° λ°μνλ©΄ μ¦κ° μλ¦Όμ 보λ΄
κ°λ°μκ° λ¬Έμ λ₯Ό λΉ λ₯΄κ² νμ
ν μ μλ€.
π CD: Continuous Delivery/Deployment
CIμ ν¨κ» κ°μ΄ λ¬Άμ΄λ
CDλ Continuous Delivery/Deployment λ κ°μ§ μλ―Έλ₯Ό κ°μ§λ€.
π Continuous Delivery
μ§μμ μ 곡μ΄λΌκ³ νλ€.
Continuous Deliveryλ CI λ¨κ³μμ κ²μ¦λμ΄ λ°°ν¬κ° μ€λΉλ μ½λλ₯Ό λ ν¬μ§ν λ¦¬λ‘ κ°μ Έμ€λ κ²(μ 곡, delivery)μ μλννλ€.
λ°°ν¬ κ°λ₯ν μνμ΄μ§λ§, μ€μ λ‘ λ°°ν¬λ₯Ό μ§νν μ§λ λ΄λΉμμ μΉμΈμ κ±°μΉλ€.
π Continuous Deployment
μ§μμ λ°°ν¬λΌκ³ νλ€.
Deliveryμ λ¬λ¦¬
CI λ¨κ³μμ ν μ€νΈκ° λͺ¨λ ν΅κ³Όνλ©΄ μλμΌλ‘ νλ‘λμ νκ²½μΌλ‘ λ°°ν¬λλ κ³Όμ μ΄ λͺ¨λ μλνλμ΄ μλ€.
μ¦, λ΄λΉμμ μΉμΈ μμ΄λ μ½λκ° μ»€λ°λκ³ ν
μ€νΈλ₯Ό ν΅κ³Όνλ©΄
μλμΌλ‘ νλ‘λμ
νκ²½μ λ°°ν¬λλ€.
λ°°ν¬ νμ΄νλΌμΈ μμ
μ νμ μΈ CD νμ΄νλΌμΈ λ¨κ³μ΄λ€.
1. Checkout: Git μ μ₯μμμ μ½λ κ°μ Έμ€κΈ°
- κ°λ°μκ° κΉνλΈμ pushν μ΅μ μ½λλ₯Ό CI/CD μλ²κ° λ°μμ¨λ€.
- μμλ‘ GitHub Actionsμμλ
actions/checkout@v3
κ°μ μ‘μ μ μ¬μ©νλ€κ³ νλ€.
2. Build & Test
- Javaμ jarκ³Ό κ°μ΄ μ€ν κ°λ₯ν ννλ‘ λΉλνλ€.
- λ¨μ ν μ€νΈμ ν΅ν© ν μ€νΈ λ±μ κ±°μΉλ€.
3. Docker Build & Push: Docker μ΄λ―Έμ§ μμ± ν ECR μ λ‘λ
- Dockerfileμ μ΄μ©ν΄ Docker μ΄λ―Έμ§λ₯Ό λ§λ€κ³ ECRμ μ λ‘λνλ€.
4. Deploy: ECS μλΉμ€ μ λ°μ΄νΈ
- μ λ‘λ λ Docker μ΄λ―Έμ§λ μ΄ μ΄λ―Έμ§λ₯Ό μ€μ λ‘ μ€νν ECSλ‘ μ λ¬λλ€.
- μ΄ λ¨κ³μμ μ μ΄λ―Έμ§λ₯Ό κΈ°λ°μΌλ‘ μλΉμ€κ° μ
λ°μ΄νΈλλ€.
- λ‘€λ§ λ°©μ: κΈ°μ‘΄ μΈμ€ν΄μ€μμ μ‘°κΈμ© κ΅μ²΄ν΄λκ°λ λ°©μ
- Blue/Green λ°©μ: κΈ°μ‘΄ λ²μ (Blue)κ³Ό μ λ²μ (Green)μ λμμ λμ°κ³ , νΈλν½μ μ ννλ λ°©μ
6. Post-deploy checks: λ°°ν¬ ν κ²μ¦ λ¨κ³
- λ°°ν¬ ν μ€μ μλΉμ€κ° μ μ λμνλμ§ νμΈνλ€.
- ν¬μ€ 체ν¬, λͺ¨λν°λ§, μλ¦Ό, λ‘κ·Έ νμΈ λ±
μ΄λ κ² λͺ¨λ κ³Όμ μ΄ μλνλμ΄ μμΌλ©΄
κ°λ°μλ μ€μ§ μ½λλ₯Ό κΉμ pushνκΈ°λ§ νλ©΄ λλ€!
μ¬λμ΄ κ΅³μ΄ μμ ν νμ μμ΄ μμ μ μΌλ‘ λ°°ν¬λλ κ²μ΄ CDμ λͺ©μ μ΄λ€.
μ°Έκ³ μλ£
- JSCODE λ°μ¬μ±λ CI/CD μ λ¬Έ μ€μ κ°μ
- μ½λμ μ€νλ¦°νΈ κ°μ
- CI/CDλ 무μμΈκ° (Feat. DevOps μμ§λμ΄)
- CI/CD(μ§μμ ν΅ν©/μ§μμ λ°°ν¬)λ?
'βοΈ κΈ°ν κ°λ° μλ£' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
λλ²κΉ μ μ€μμ± (0) | 2025.05.14 |
---|---|
[κΉνλΈ] Codecov μ μ©νμ¬ PRμ ν μ€νΈ 컀λ²λ¦¬ λ±μ§ λ¬κΈ° (1) | 2025.04.25 |
μΉ API: SOAP API, SOAPκ³Ό RESTμ μ°¨μ΄ (1) | 2025.03.03 |
μΉ μλ²(Web Server) vs WAS(Web Application Server) κ°λ μ΄ν΄μ μ°¨μ΄ λΉκ΅ feat. Tomcat (0) | 2025.02.17 |
νλ μμν¬ vs λΌμ΄λΈλ¬λ¦¬ κ°λ (0) | 2025.02.16 |