CI/CD λ
μ€λͺ
• κ°κ°μ κ°λ°μλ€μ΄ κ°λ°νλ νκ²½μ μ¬μ©μκ° μ¬μ© κ°λ₯ν μλΉμ€λ‘ μ λ¬νλ λͺ¨λ κ³Όμ μ
μ§μ κ°λ₯ν ννλ‘ νΉμ μλμΌλ‘ νμ¬ κ°λ°μ λ° μ¬μ©μ μ¬μ΄μ 격차λ₯Ό μμ λκ²
• λΉλ λ° λ°°ν¬λ₯Ό ν¨!
κ°λ°μ → μ½λμμ± → λΉλ(webpack, javac..) → ν μ€νΈ(junit..) → λ°°ν¬(ecs update,,) → μ¬μ©μ
βΊ Continuous Integration (μ§μμ ν΅ν©)
• ν΅ν©μ λμ? μ½λ!
• μ¬λ¬ κ°λ°μλ€μ μ½λλ² μ΄μ€λ₯Ό κ³μν΄μ ν΅ν©νλκ².
βΊ Continuous Delivery (μλΉμ€ λ°°λ¬)
• μ¬μ©μμκ² μ νμ μλΉμ€λ₯Ό μ§μμ μΌλ‘ λ°°λ¬!
• μ½λλ² μ΄μ€κ° νμ λ°°ν¬κ°λ₯ν μνλ₯Ό μ
• Blue/green, Rolling update, Canary
βΊ Continuous Deployment
• μ½λλ² μ΄μ€λ₯Ό μ¬μ©μκ° μ¬μ©κ°λ₯ν νκ²½μ λ°°ν¬νλ κ²μ μλνν¨.
• νΌλλ°± λ°μνλ κ°λ° λ¬Ένλ₯Ό κ°μ‘°
CI/CD ν΄μΌνλ μ΄μ
• μ½λ κ΄λ¦¬μ μ΄λ €μ λλ¬Έ (μ¬λ¬λͺ
μ κ°λ°μκ° κ°μμμμ κ°λ°ν λ μΆ©λλ±μ΄ λ°μν μ μκΈ° λλ¬Έ. μ΄λ₯Όλ°©μ§)
• 빨리 μ½λλ₯Ό μ½λλ² μ΄μ€μ μμ°©!
Jenkins
μ€λͺ
• Java Runtime μμμ λμνλ μλν μλ²
• λΉλ, ν
μ€νΈ, λ°°ν¬ λ± λͺ¨λ κ²μ μλν ν΄μ£Όλ μλν μλ²
• λ€μν νλ¬κ·ΈμΈλ€μ νμ©ν΄μ κ°μ’
μλν μμ
μ μ²λ¦¬ν μ μμ
• μΌλ ¨μ μλν μμ
μ μμλ€μ μ§ν©μΈ Pipelineμ ν΅ν΄ CI/CD νμ΄νλΌμΈμ ꡬμΆν¨
• Credentials Plugins(μ€μμ 보 aws token, git acccess token λ± μ μ₯ν΄μ£Όλ νλ¬κ·ΈμΈ), Gid Plugin, Pipeline, Docker plugin λ±μ νλ¬κ·ΈμΈμ΄ μ‘΄μ¬
Pipeline
μ€λͺ
• CI/CD νμ΄νλΌμΈμ μ ν¨μ€μ ꡬννκΈ° μν μΌλ ¨μ νλ¬κ·ΈμΈλ€μ μ§ν©μ΄μ ꡬμ±.
• νμ΄νλΌμΈμ ν΅ν΄ μλΉμ€κ° λ°°ν¬λ¨.
• μμ
λͺ
μΈμ.
• DSL(Domain Specific Language) μΌλ‘ μμ±.
• λκ°μ§ ννμ Pipeline syntaxκ° μ‘΄μ¬ (Declarative, Scripted Pipeline)
Pipeline κ΅¬μ± μμ
β Sections
• Agent section : μ΄λ€ μ ν¨μ€μκ² μΌμ μν¬μ§ μ§μ ! (μ ν¨μ€ λ
Έλ μλ‘ λμ°κ±°λ, docker μ΄λ―Έμ§λ₯Ό ν΅ν΄ μ¬μ©)
• Post section : μ€ν
μ΄μ§ λλ ν νμμ‘°μΉ μ·¨ν μ μμ.
• Stages section : μ΄λ€μΌμ μ²λ¦¬ν μ§ stage μ μ
• Step section : λ¨κ³λ³ μ€ν
μ μ
β Declaratives
• Environment : μ΄λ€ νμ΄νλΌμΈμ΄λ stage scopeμ νκ²½λ³μ μ€μ
• Parameter : νμ΄νλΌμΈ μ€ν μ νλΌλ―Έν° λ°μ
• Triggers : μ΄λ€ μ£ΌκΈ°λ‘ μ€ν
• When : μΈμ μ€νλλκ°
β Steps
• μ¬λ¬ μμ
λ€ μ€ν κ°λ₯.
무μ€λ¨ λ°°ν¬ λ°©μ 3κ°μ§
β Rolling Update
• 컨ν
μ΄λ μ΄λ―Έμ§λ₯Ό μ λ²μ μΌλ‘ νλμ© κ΅μ²΄
• μ΅μνμ μ€λ²ν€λ/μ±λ₯ μν₯/μ€λ¨
β Canary
• μλ‘μ΄ λ°°ν¬ λ²μ κ³Ό νν λ²μ μ Prod νκ²½μμ λμμ κ²μ¦νκ³ μ ν λ νμ©
• μν κ°μ§ λ°°ν¬ κΈ°λ²
β Blue/Green
• μμ νκ² μ€λΉλ μν©μμ μλΉμ€ κ΅μ²΄
• λμ μ€λ²ν€λμ μλΉμ€ μ₯μ μ΅μν κ° μ‘°μ¨
μ°Έκ³
- λ§ν¬: https://www.youtube.com/watch?v=JPDKLgX5bRg&list=PL9mhQYIlKEhfgLHvRBRKmTg6HmfSDe8tr&index=1
- λ§ν¬: https://onlywis.tistory.com/10
λ°°ν¬ μ λ΅: Rolling, Blue/Green, Canary
μμ μλ μ κ°μ(νΉμ μ λ )μ ν λ²μ© μλΉμ€λ₯Ό λ¦΄λ¦¬μ¦ νμμ§λ§, μ΅κ·Όμλ μλΉμ€λ₯Ό λ μκ² λ§λ€κ³ (λ§μ΄ν¬λ‘μλΉμ€) λ μμ£Ό λ°°ν¬(Deployment) νλ λ°©μμΌλ‘ λ³ννκ³ μλ€. μ΄λ¬ν νΈλ λμ
onlywis.tistory.com
- κ°μ: https://www.inflearn.com/course/%EC%8B%A4%EB%AC%B4-msa-%EC%9D%B4%EC%95%BC%EA%B8%B0
'κ°λ° > infra' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Jenkins] Pipeline μΌλ‘ Dockerμ μμ€μ½λ λ°°ν¬ν΄λ³΄κΈ° μ 리 ! (1) | 2022.09.11 |
---|---|
VM(Virtual machine) & Container (feat. docker) (1) | 2022.09.04 |
[Jenkins] μμ κ²°κ³Όλ¬Ό(Springboot jar file, gradle μ΄μ©)μ AWS EC2μ λ°μν΄λ³΄κΈ° (2) | 2022.05.06 |
[k8s] μΏ λ²λ€ν°μ€ (0) | 2022.02.16 |
[k8s] 컨ν μ΄λ μ€μΌμ€νΈλ μ΄μ (container orchestration) (0) | 2022.02.16 |