๐Ÿš€ Languege/DevOps

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

mini_world 2022. 7. 9. 16:34
๋ชฉ์ฐจ ์ ‘๊ธฐ

https://www.youtube.com/watch?v=3WZoVkvLE4A 


 

3. ๊ฐœ๋ฐœํ™˜๊ฒฝ ๋ฐ CI/CD์˜ ๊ธฐ๋ณธ ๋™์ž‘ ์ดํ•ด

  • ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์˜ ์ข…๋ฅ˜
    • ๊ฐœ๋ฐœ์ž์˜ ๋กœ์ปฌ ํ™˜๊ฒฝ
    • ํ†ตํ•ฉํ…Œ์ŠคํŠธ 
    • QAํ™˜๊ฒฝ
    • ์‹ค์œ ์ € ํ”„๋กœ๋•์…˜ 
  • ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค
    1. ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž์‹ ์˜ PC์—์„œ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•œ๋‹ค.
    2. ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ์™€ ์ฐจ์ด๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”์ง€ ๋‚ด๋ถ€ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค.
    3. ์ง„ํ–‰ํ•œ ๋‚ด์šฉ์„ ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๋“ค๊ณผ ๋™์œ ํ•˜๊ธฐ ์œ„ํ•ด git ๊ฐ™์€ SCM์— ์˜ฌ๋ฆฐ๋‹ค -> dev ๋ธŒ๋žœ์น˜
    4. Dev๋ธŒ๋žœ์น˜์˜ ๋‚ด์šฉ์„ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์— ๋ฐฐํฌํ•˜๊ธฐ ์ „์— Lint๋“ฑ ์ฝ”๋“œ ํฌ๋ฉงํŒ…์„ ํ•œ๋‹ค
    5. ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•œ ๋นŒ๋“œ ๊ณผ์ •์„ ๊ฑฐ์นœ๋‹ค
    6. ์ฝ”๋“œ๋ฅผ ๋ฐฐํฌํ•œ๋‹ค
    7. ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค
    8. ์œ„ ๊ณผ์ •์„ Dev, QA, PRDํ™˜๊ฒฝ์—์„œ ๋ชจ๋‘ ํ•˜๊ณ  ๊ฐ๊ฐ ๋งž๋Š” ํ™˜๊ฒฝ์— ๋ฐฐํฌํ•œ๋‹ค.
  • ์—ฌ๋Ÿฌ ๋ฐฐํฌํ™˜๊ฒฝ์˜ ๊ด€๋ฆฌ
    • ์—ฌ๋Ÿฌ ๋ฐฐํฌํ™˜๊ฒฝ์˜ ๊ด€๋ฆฌ์—์„œ ํ•ต์‹ฌ์€ ์ธํ”„๋ผ๋ฅผ ๋ชจ๋“ˆํ™” ํ•˜์—ฌ ์–ด๋–ค๊ฒƒ์ด ๋ณ€์ˆ˜์ธ์ง€ ์ž˜ ์„ค์ •ํ•˜๊ณ  ์ด๋ฅผ ์ž˜ ์„ค๊ณ„ํ•˜๋Š”๊ฒƒ
    • ์˜ˆ๋ฅผ๋“ค์–ด, APP_ENV์ฒ˜๋Ÿผ ํ˜„์žฌ ๋ฐฐํฌํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒƒ์ด ๋ฌด์Šจ ํ™˜๊ฒฝ์ธ์ง€ ์•ฑ ๋‚ด์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋ณ€์ˆ˜๋“ค์„ ํ™˜๊ฒฝ์— ๋งž๊ฒŒ ์ž˜ ๊ฐ€์ ธ๋‹ค ์“ฐ๋Š”๊ฒƒ์ด ํ•ต์‹ฌ
    • ์„œ๋น„์Šค ๋‚ด๋ถ€์˜ ๋ณ€์ˆ˜ ๋ฟ ๋งŒ ์•„๋‹ˆ๋ผ ํด๋ผ์šฐ๋“œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋งŽ์ด ํ™œ์šฉํ•ด์„œ ๊ฐœ๋ฐœํ•˜๋Š” ์š”์ฆ˜์—๋Š” ํด๋ผ์šฐ๋“œ ๋ฆฌ์†Œ์Šค ๋‚ด์—์„œ ์ธํ”„๋ผ ๋ณ„ ํ‚ค ๊ด€๋ฆฌ๊ฐ€ ๋งค์šฐ ์ค‘์š”ํ•ด์„œ System Manager Parameter Store์™€ ๊ฐ™์€ ํ‚ค ๊ด€๋ฆฌ ์„œ๋น„์Šค๋ฅผ ์“ฐ๋Š”๊ฒƒ ๊ฐ•์ถ”
  • ์˜ˆ์‹œ ๋ฐฐํฌ ํ™˜๊ฒฝ
    1. ์›น์‚ฌ์ดํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค
    2. ์›น์‚ฌ์ดํŠธ ์ฝ”๋“œ๋ฅผ ๋ฆฐํŠธ, ์›นํŒฉ ๋นŒ๋“œํ•ด์„œ AWS S3 bucket์— HtmlํŒŒ์ผ์„ ์—…๋กœ๋“œ ํ•œ๋‹ค.
    3. Node.js ๋ฐฑ์—”๋“œ ์ฝ”๋“œ๋ฅผ typescript ์ž‘์„ฑํ•œ๋‹ค
    4. ์œ„ ์ฝ”๋“œ๋ฅผ javascript complie ํ•˜๊ณ , ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ๋Œ๋ ค์„œ ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค์–ด ECR์— ์—…๋กœ๋“œ ํ•œ๋‹ค
    5. ์—…๋กœ๋“œํ•œ ECR ์ด๋ฏธ์ง€๋กœ ECS์„œ๋น„์Šค๋ฅผ ์žฌ์‹œ์ž‘ํ•œ๋‹ค. (rolling deploy) --> cd