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 |