CI / CD
ν΄λΌμ°λ μ»΄ν¨ν μλΉμ€λ₯Ό μ΄μ©νμ¬ κ°μ νκ²½μ μ½λλ₯Ό ν΅ν©νμ¬ λ°°ν¬νλ κ²μ CI/CD λΌκ³ λΆλ¦ λλ€. CI/CDλ Continuous Integration(μ§μμ ν΅ν©)κ³Ό Continuous Deployment(μ§μμ λ°°ν¬) λλ Continuous Delivery(μ§μμ μ λ¬)λ₯Ό ν¬ν¨νλ μννΈμ¨μ΄ 곡ν λ°©λ²λ‘ μΌλ‘μ, CI/CDλ μννΈμ¨μ΄ κ°λ° νλ‘μΈμ€λ₯Ό μλννκ³ , μ½λ λ³κ²½ μ¬νμ λ μμ£Ό, λ μ λ’°ν μ μκ² λ°°ν¬ν μ μλλ‘ λμμ€λλ€. μ΄λ κ°λ° μ£ΌκΈ°λ₯Ό λ¨μΆνκ³ , νμ§μ λμ΄λ©°, μ¬μ©μμκ² λ λΉ λ₯΄κ² κ°μΉλ₯Ό μ 곡ν μ μκ² ν©λλ€.
1. CI - Continuous Integration(μ§μμ ν΅ν©)
μ§μμ ν΅ν©μ κ°λ°μλ€μ΄ μμ±ν μ½λ λ³κ²½ μ¬νμ μ κΈ°μ μΌλ‘, ν΅μμ μΌλ‘λ ν루μλ μ¬λ¬ λ² μ€μ μ μ₯μμ ν΅ν©νλ κ³Όμ μ λλ€. CIμ μ£Όμ λͺ©νλ μ½λ λ³ν© κ³Όμ μμ λ°μν μ μλ λ¬Έμ λ₯Ό μ‘°κΈ°μ λ°κ²¬νκ³ ν΄κ²°νλ κ²μ λλ€. μ΄λ₯Ό ν΅ν΄ νμ λ³΄λ€ λΉ λ₯΄κ³ ν¨μ¨μ μΌλ‘ νμ ν μ μμ΅λλ€.
μ£Όμ νΉμ§
- λ²μ κ΄λ¦¬ μμ€ν
(VCS)
- λͺ¨λ μ½λ λ³κ²½ μ¬νμ μ€μ μ μ₯μ(μ: Git, SVN)μ μ μ₯νμ¬ λ²μ μ κ΄λ¦¬ν©λλ€.
- κ° κ°λ°μλ μλ‘μ΄ κΈ°λ₯μ κ°λ°νκ±°λ λ²κ·Έλ₯Ό μμ ν λ λ³λμ λΈλμΉλ₯Ό μ¬μ©νμ¬ μμ ν©λλ€.
- μλ λΉλ
- μ½λκ° μ€μ μ μ₯μμ νΈμλ λλ§λ€ μλμΌλ‘ λΉλκ° μ€νλ©λλ€.
- λΉλ λꡬ(μ: Maven, Gradle, Make)λ μμ€ μ½λλ₯Ό μ»΄νμΌνκ³ , μ’ μμ±μ ν΄κ²°νλ©°, μ΅μ’ μ°μΆλ¬Όμ μμ±ν©λλ€.
- μλ ν
μ€νΈ
- λΉλκ° μλ£λλ©΄ μλμΌλ‘ ν μ€νΈκ° μ€νλ©λλ€.
- λ¨μ ν μ€νΈ, ν΅ν© ν μ€νΈ, κΈ°λ₯ ν μ€νΈ λ±μ ν΅ν΄ μ½λμ νμ§μ κ²μ¦ν©λλ€.
- νΌλλ°± μμ€ν
- λΉλμ ν μ€νΈ κ²°κ³Όλ κ°λ°μμκ² μ¦μ νΌλλ°±μΌλ‘ μ 곡λ©λλ€.
- CI μλ²(μ: Jenkins, Travis CI, CircleCI)λ λΉλμ ν μ€νΈ μνλ₯Ό μκ°μ μΌλ‘ 보μ¬μ£Όκ³ , μλ¦Όμ ν΅ν΄ κ°λ°μμκ² κ²°κ³Όλ₯Ό μ λ¬ν©λλ€.
μ§μμ μΈ ν΅ν©(CI)λ₯Ό ν΅ν΄μ κ°λ°μλ μ½λ λ³κ²½ μ¬νμ λν νΌλλ°±μ λΉ λ₯΄κ² λ°μ λ³Ό μ μκ² λμκ³ , λ²κ·Έλ₯Ό μ‘°κΈ°μ λ°κ²¬νκ³ μμ ν μ μκ² λμ΅λλ€. λν μλν ν μ€νΈλ₯Ό ν΅ν΄ μ½λ νμ§μ μ§μμ μΌλ‘ κ²μ¦νκ³ , μ²΄ν¬ μ€νμΌ μ»¨λ²€μ μ μ€μ νμ¬ μ¬λ¬ κ°λ°μκ° ν νλ‘μ νΈλ₯Ό κ°λ°νμ¬λ, μ€κ΅¬λλ°© μ½λ μ€νμΌμ΄ μλ, νλͺ μ΄ κ°λ°ν κ²κ³Ό κ°μ κ°λ μ± λμ νλ‘κ·Έλλ°μ΄ κ°λ₯ν΄μ‘μ΅λλ€. μ΄λ¬ν κ³Όμ λλΆμ κ°λ° μλκ° ν₯μλκ³ μ½λ λ³ν©μ λ°μνλ λ¬Έμ λ₯Ό μ€μΌ μ μκ² λμμ΅λλ€.
2. CD - Continuous Deployment(μ§μμ λ°°ν¬) & Continuous Delivery(μ§μμ μ λ¬)
μ§μμ λ°°ν¬μ μ§μμ μ λ¬μ λͺ¨λ CIμ μ°μ₯μ μΌλ‘, μλνλ λ°°ν¬ νμ΄νλΌμΈμ ν΅ν΄ μ½λλ₯Ό μ€μ μ΄μ νκ²½μ λ°°ν¬νλ κ²μ μλ―Έν©λλ€.
μ§μμ μ λ¬μ λͺ¨λ μ½λ λ³κ²½ μ¬νμ΄ λΉλ, ν μ€νΈ, ν¨ν€μ§ κ³Όμ μ κ±°μ³ μ€λΉλλ©΄, μ΄λ₯Ό μ΄μ νκ²½μ λ°°ν¬ν μ μλ μνλ‘ μ μ§νλ κ²μ λλ€. λ°°ν¬λ μ¬μ ν μλμΌλ‘ μ΄λ£¨μ΄μ§ μ μμ§λ§, λ°°ν¬ μ€λΉ μνλ νμ μ μ§λ©λλ€.
μ§μμ λ°°ν¬λ μ§μμ μ λ¬μ μ°μ₯μ μΌλ‘, μ½λ λ³κ²½ μ¬νμ΄ μλμΌλ‘ μ΄μ νκ²½μ λ°°ν¬λλ κ²μ μλ―Έν©λλ€. μ¦, λͺ¨λ μ½λ λ³κ²½ μ¬νμ΄ λΉλ, ν μ€νΈ, ν¨ν€μ§ κ³Όμ μ κ±°μΉ ν μλμΌλ‘ λ°°ν¬λ©λλ€.
μ£ΌμνΉμ§
- λ°°ν¬ νμ΄νλΌμΈ
- μ½λκ° μ μ₯μμ νΈμλλ©΄, CI λ¨κ³μμ λΉλμ ν μ€νΈλ₯Ό κ±°μ³ CD λ¨κ³λ‘ λμ΄κ°λλ€.
- λ°°ν¬ νμ΄νλΌμΈμ μ¬λ¬ λ¨κ³λ₯Ό ν¬ν¨ν μ μμ΅λλ€. μλ₯Ό λ€μ΄, μ€ν μ΄μ§ νκ²½μ λ¨Όμ λ°°ν¬ν ν μ΅μ’ μ μΌλ‘ μ΄μ νκ²½μ λ°°ν¬ν©λλ€.
- μλνλ λ°°ν¬
- λ°°ν¬ λꡬλ₯Ό ν΅ν΄ μ½λλ₯Ό λ€μν νκ²½μ μλμΌλ‘ λ°°ν¬ν©λλ€.
- λ°°ν¬ κ³Όμ μ μ½λκ° μ¬λ°λ₯΄κ² μλνλμ§ νμΈνκΈ° μν΄ μΆκ°μ μΈ ν μ€νΈλ₯Ό ν¬ν¨ν μ μμ΅λλ€.
- λͺ¨λν°λ§ λ° νΌλλ°±
- μ΄μ νκ²½μμ μ ν리μΌμ΄μ μ μνλ₯Ό λͺ¨λν°λ§νμ¬ λ¬Έμ κ° λ°μνλ©΄ μ¦μ νΌλλ°±μ μ 곡ν©λλ€.
- λͺ¨λν°λ§ λꡬ (μ: Prometheus, Grafana)λ₯Ό ν΅ν΄ μ ν리μΌμ΄μ μ μ±λ₯, μ€λ₯, μ¬μ©μ νλ λ±μ μΆμ ν©λλ€.
μ§μμ μΈ μ λ¬/λ°°ν¬λ₯Ό ν΅ μ½λ λ³κ²½ μ¬νμ΄ μλμΌλ‘ μ΄μ νκ²½μ λ°°ν¬λμ΄ μ¬μ©μμκ² λΉ λ₯΄κ² μ 곡λ©λλ€. λ°°ν¬ κ³Όμ μ΄ μλνλμ΄ μΈμ μ€λ₯λ₯Ό μ€μ΄κ³ , μΌκ΄λ λ°°ν¬κ° κ°λ₯ν©λλ€. μμ£Ό λ°°ν¬ν¨μΌλ‘μ¨ μ¬μ©μ νΌλλ°±μ λΉ λ₯΄κ² λ°μνκ³ , μ§μμ μΌλ‘ μλΉμ€λ₯Ό κ°μ ν μ μμ΅λλ€.
CI/CDλ μννΈμ¨μ΄ κ°λ°κ³Ό λ°°ν¬λ₯Ό μλννμ¬ κ°λ° μλλ₯Ό λμ΄κ³ , νμ§μ κ°μ νλ©°, μ¬μ©μμκ² λ λΉ λ₯΄κ² κ°μΉλ₯Ό μ 곡ν μ μλλ‘ ν©λλ€. CI/CDλ₯Ό μ±κ³΅μ μΌλ‘ ꡬννκΈ° μν΄μλ μ μ ν λꡬμ κΈ°μ μ μ ννκ³ , ν μ€νΈ μλν, 보μ κ΄λ¦¬, λ¬Ένμ λ³νλ₯Ό ν¬ν¨ν λ€μν κ³Όμ λ₯Ό ν΄κ²°ν΄μΌ ν©λλ€. μ΄λ₯Ό ν΅ν΄ κ°λ°μλ μ§μμ μΈ μ½λ κ°μ κ³Ό κΎΈμ€νκ² λ°μ λ μλΉμ€λ₯Ό μ 곡ν μ μμ΅λλ€.
'DevOps > CI&CD' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
무μ€λ¨ λ°°ν¬ μ€μ΅ - μΉ΄λ리 μ λ΅ (0) | 2024.09.07 |
---|---|
무μ€λ¨ λ°°ν¬ μ€μ΅ - λ‘€λ§ μ λ΅ (0) | 2024.09.06 |
무μ€λ¨ λ°°ν¬ μ€μ΅ - λΈλ£¨κ·Έλ¦° μ λ΅ (0) | 2024.08.18 |
무μ€λ¨ λ°°ν¬ μ€μ΅ κΈ°λ³Έ μ ν (Github Actions, Nginx νμ©) (0) | 2024.08.13 |
무μ€λ¨ λ°°ν¬(Zero-downtime Deployment) μ λ΅ (0) | 2024.07.23 |
λκΈ