λ°˜μ‘ν˜•
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

λ°˜μ‘ν˜•

+ Recent posts