๐Ÿš€ Languege/DevOps

CI/CD ๊ณต๋ถ€ ๋…ธํŠธ #1

mini_world 2022. 7. 9. 15:55
๋ชฉ์ฐจ ์ ‘๊ธฐ

https://www.youtube.com/watch?v=JPDKLgX5bRg&t=24s 

 

 


1. CI/CD๋ž€ ๋ฌด์—‡์ธ๊ฐ€? 

  • Continuous Integration : ์—ฌ๋Ÿฌ ๊ฐœ๋ฐœ์ž๋“ค์˜ ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ๊ณ„์†ํ•ด์„œ ํ†ตํ•ฉํ•˜๋Š”๊ฒƒ
  • Continuous Delivery : ์‚ฌ์šฉ์ž์—๊ฒŒ ์ œํ’ˆ/์„œ๋น„์Šค๋ฅผ ์ง€์†์ ์œผ๋กœ ์ œ๊ณต, ์ฝ”๋“œ๋ฒ ์ด์Šค๊ฐ€ ํ•ญ์ƒ ๋ฐฐํฌ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๋Š”๊ฒƒ
  • Continuous Deployment : ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ํ™˜๊ฒฝ์— ๋ฐฐํฌํ•œ๋Š๊ฒƒ์„ ์ž๋™ํ™” ํ•˜๋Š”๊ฒƒ
  • ์ฆ‰, ์ฝ”๋“œ ๋นŒ๋“œ&ํ…Œ์ŠคํŠธ&๋ฐฐํฌ ์ž๋™ํ™”!
  • ๊ฐ ๋‹จ๊ณ„๋ฅผ ํ•˜๋‚˜์˜ ํŒŒ์ดํ”„๋ผ์ธ์œผ๋กœ ์ •์˜
    • ์ฝ”๋“œ ์ž‘์„ฑ
    • ๋นŒ๋“œ: webpack, ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์ปดํŒŒ์ผ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ปดํŒŒ์ผ
    • ํ…Œ์ŠคํŠธ: Jest, Junit
    • ๋ฐฐํฌ: ...

2. ์  ํ‚จ์Šค์˜ ๊ธฐ๋ณธ ๊ฐœ๋…๊ณผ ๋™์ž‘ ๋ฐฉ์‹

  • ์  ํ‚จ์Šค๊ฐ€ ๋ญ์•ผ?
    • ๊ท€์ฐฎ์€ ์ž‘์—…(๋นŒ๋“œ,ํ…Œ์ŠคํŠธ,๋ฐฐํฌ ๋“ฑ)์„ ๋‹ค ํ•ด์ฃผ๋Š” ์ž๋™ํ™” ์„œ๋ฒ„
    • ๊ฐœ๋ฐœ๋งŒํ•ด! ๊ท€์ฐฎ์€๊ฑด ์  ํ‚จ์Šค๊ฐ€ ๋‹ค ํ•œ๋‹ค!
  • ๊ธฐ๋ณธ ๊ฐœ๋…
    • Java Runtime ํ™˜๊ฒฝ์—์„œ ๋™์ž‘
    • ๋‹ค์–‘ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ๋“ค์„ ํ™œ์šฉํ•ด์„œ ๊ฐ์ข… ์ž๋™ํ™” ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ
  • ํ”Œ๋Ÿฌ๊ทธ์ธ?
    • ์ •๋ง ๋งŽ์€ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์กด์žฌํ•œ๋‹ค! 
    • ์ฒ˜์Œ์— ์ถ”์ฒœํ•ด์ฃผ๋Š”๊ฑธ ๊น”๋ฉด ๋œ๋‹ค.
    • Credentoals Plugin: ๊ฐ์ข… ๋ฆฌ์†Œ์Šค์˜ ์ ‘๊ทผ์ •๋ณด๋ฅผ ์ €์žฅ (AWS, Git...)
    • Pipeline Plugin(๐ŸŒŸ์ค‘์š”):
      • ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ ์ง‘ํ•ฉ์ด์ž ์Šค์Šค๋กœ๋„ ํ”Œ๋Ÿฌ๊ทธ์ธ์ž„,
      • ์—ฌ๋Ÿฌ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ด ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ์šฉ๋„์— ๋งž๊ฒŒ ์‚ฌ์šฉํ•˜๊ณ  ์ •์˜ํ•จ์œผ๋กœ์จ ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ†ตํ•ด ์„œ๋น„์Šค๊ฐ€ ๋ฐฐํฌ ๋จ
      • Pipeline DSL(Domain Specific Language)๋กœ ์ž‘์„ฑ
      • ๋‘๊ฐ€์ง€ ํ˜•ํƒœ์˜ Pipeline syntax๊ฐ€ ์กด์žฌ (Declarative, Scripted Pipeline)
  • Pipeline Syntax
    • Sections 
      • Agent Section: ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  Slave Node ํ˜น์€ Docker
      • Post Section: ์Šคํ…Œ์ด์ง€๊ฐ€ ๋๋‚œ ์ดํ›„ ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ํ›„์† ์กฐ์น˜ ์ •์˜ (ex. ์„ฑ๊ณตํ–ˆ์œผ๋ฉด ์ด๋ฉ”์ผ ๋กœ ์•Œ๋ ค์ค˜)
      • Stges Section: ์–ด๋–ค ์ผ์„ ์ฒ˜๋ฆฌํ• ๊ฑด์ง€ ์ผ๋ จ์˜ ์Šคํ…Œ์ด์ง€๋ฅผ ์ •์˜ํ•จ (์š”๋ฆฌ์ด๋ฆ„, ๋ณถ์Œ๋ฐฅ) https://www.jenkins.io/doc/pipeline/steps/
      • Steps Section: ์Šคํ…Œ์ด์ง€ ์•ˆ์—์„œ์˜ ๋‹จ๊ณ„๋กœ ์ผ๋ จ์˜ ์Šคํ…์„ ์ •์˜ํ•จ (๋ ˆ์‹œํ”ผ, ๊ธฐ๋ฆ„์„ ๋‘๋ฃจ๊ณ  ์ „๋ถ€ ๋ณถ์•„๋ผ)