Skip to content

honghyeong/MLOpsCurriculum

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

151 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

MLOpsCurriculum

MLOps Engineer at Corca.

Phase 1

EC2 endpoint : 3.34.122.192:3000

ECS endpoint : 3.38.172.73:3000



summary

  • Phase 1์˜ ๊ตฌ์„ฑ์€ ํฌ๊ฒŒ MLOps์˜ ์ •์˜, RESTful API, DB์„ ๊ณต๋ถ€ํ•˜๊ณ  Corca์˜ code convention์„ ๋ฐ”ํƒ•์œผ๋กœ API๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ . MLOps CI/CD์˜ ๊ธฐ์ดˆ๊ฐ€ ๋˜๋Š” Docker, Docker-compose, AWS(EC2, ECS) ๋ฐฐํฌ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ณ  ๊ฐœ๋ฐœํ•œ API๋ฅผ ๋ฐฐํฌํ•œ๋‹ค.


Review

  • MLOps๋ผ๋Š” ์ง๋ฌด๊ฐ€ ๋งค์šฐ ์ƒ์†Œํ–ˆ๋Š”๋ฐ, ML product์˜ ์ง€์†์ ์ธ ํ•™์Šต, ํ…Œ์ŠคํŒ…, ๋ชจ๋‹ˆํ„ฐ๋ง, ๋ฐฐํฌ(CI/CD)์—์„œ์˜ MLOps์˜ ์ค‘์š”์„ฑ์„ ๋ฐฐ์šฐ๋ฉฐ ์šฐ๋ฆฌ Corca์—์„œ ์–ด๋–ค ์—ญํ• ์„ ํ•ด์•ผํ•˜๋Š”์ง€ ๋А๋ผ๊ณ  ํ•„์š”ํ•œ ๊ธฐ๋ณธ ์ง€์‹์— ๋Œ€ํ•œ ๊ธฐ์ดˆ๋ฅผ ๋‹ค์งˆ ์ˆ˜ ์žˆ์—ˆ๋‹ค.
  • ๋‹จ์ˆœํ•œ API๋ฅผ ๊ฐœ๋ฐœํ•จ์— ์žˆ์–ด์„œ๋„ DB, RESTful API ๋ช…์„ธ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๊ฐœ๋ฐœํ•  ๋•Œ SOLID ์›์น™์„ ์ง€ํ‚ค๋ฉด์„œ, ์—ฌ๋Ÿฌ ์˜ˆ์™ธ์ƒํ™ฉ์„ ์ƒ๊ฐํ•œ ์„œ๋ฒ„๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒƒ์ด ์‰ฝ์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค.
  • Code Review์™€ Corca์˜ convention์„ ํ†ตํ•ด์„œ ๊ฐœ๋ฐœ์— ์ค‘์š”ํ•œ MVC ํŒจํ„ด, ์˜ˆ์™ธ์ฒ˜๋ฆฌ ๋“ฑ ์ง€์‹ ๋ฟ ์•„๋‹ˆ๋ผ ๋ฏธ์ฒ˜ ๊ณ ๋ คํ•˜์ง€๋ชปํ–ˆ๋˜ ์ ์„ ๋ณด์™„ํ•  ์ˆ˜ ์žˆ์–ด ๋ฆฌํŒฉํ† ๋ง์„ ํ†ตํ•ด ์Šค์Šค๋กœ ์„ฑ์žฅํ•จ์„ ๋А๊ผˆ๋‹ค.
  • ํŠนํžˆ, Docker, Docker-compose, EC2, ECS ๋ฐฐํฌ๋ฅผ ๊ณต๋ถ€ํ•˜๋ฉฐ ๋งŽ์€ ์–ด๋ ค์›€์„ ๊ฒช์–ด์„œ Computer Network, Computer Architecture์— ๋Œ€ํ•ด ์ข€ ๋” ์ดํ•ดํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์—ˆ๋‹ค.
  • ์„œ๋ฒ„ ๊ฐœ๋ฐœ๊ณผ ๋ฐฐํฌ์— ๊ธฐ์ดˆ๊ฐ€ ๋˜๋Š” ๋ถ€๋ถ„์„ ๋„ˆ๋ฌด ์ž˜ ์ค€๋น„๋ผ์žˆ์–ด, Phase 1์—์„œ๋งŒ ํ•ด๋„ ๋งŽ์ด ์„ฑ์žฅํ•จ์„ ๋А๋‚„ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์•ž์œผ๋กœ ์–ผ๋งˆ๋‚˜ ๋” ์„ฑ์žฅํ•  ์ˆ˜ ์žˆ์„์ง€ ๊ธฐ๋Œ€๋˜๊ณ  ๋” ๋…ธ๋ ฅํ•˜๊ณ  ์‹ถ์–ด์ง„๋‹ค.


Feedback

  • API ๊ฐœ๋ฐœ ๋ช…์„ธ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ TDD๋ฅผ ํ†ตํ•ด ์ฝ”๋“œ๋ฅผ ์ง ๋‹ค๋ฉด ๋”์šฑ ์ฒด๊ณ„์ ์ธ ์„œ๋ฒ„ ๊ฐœ๋ฐœ์„ ์ตํž ์ˆ˜ ์žˆ์ง€ ์•Š์„๊นŒ ์ƒ๊ฐํ•œ๋‹ค. ํ•˜์ง€๋งŒ, TDD์— ์„ฑ๋Šฅํ…Œ์ŠคํŠธ๊ฐ€ ์žˆ์–ด์„œ ์ง€๊ธˆ ์ปค๋ฆฌํ˜๋Ÿผ๋„ ์ถฉ๋ถ„ํžˆ ์ข‹์€ ๊ฒƒ ๊ฐ™๋‹ค!
  • ๋‚ด์šฉ์ด ์•Œ๊ธฐ์‰ฝ๊ฒŒ ์ž˜ ์ •๋ฆฌ๋ผ์žˆ์–ด ์„œ๋ฒ„ ๊ฐœ๋ฐœ๊ณผ ๋ฐฐํฌ์— ๊ธฐ์ดˆ๊ฐ€ ๋˜๋Š” ๋ถ€๋ถ„์„ ์ž˜ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์—ˆ๋‹ค.
  • ์–ด๋ ค์› ๋˜ ์  : mac m1 ํ™˜๊ฒฝ์—์„œ docker build default architecture๊ฐ€ arm64 ์ด๋ผ์„œ exec format error๋ฅผ ๊ฒช์–ด์„œ ์‹œ๊ฐ„ ์†Œ์š”๊ฐ€ ๋งŽ์•˜๋‹ค. docker buildx build --platform=linux/amd64 ์˜ต์…˜์„ ํ†ตํ•ด์„œ ๋นŒ๋“œํ•˜๊ณ  ECR์— pushํ•ด์•ผ ecs, docker ecs cli ์—์„œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ์ง€์•Š์œผ๋ฏ€๋กœ ๋‹ค์Œ ์ปค๋ฆฌํ˜๋Ÿผ ์ง„ํ–‰์ž์—๊ฒŒ ๋„์›€์ด ๋˜์—ˆ์œผ๋ฉด ํ•œ๋‹ค. link 1
docker buildx build --platform=linux/amd64 -t <tag> .

Phase2

Testing

Unit Testing Command : yarn test

E2E Testing Command : yarn test:e2e

Locust Testing : Locust Testing

Summary

  • Testing, CI/CD, IaC, Monitoring, LoadBalancing, Architecture

  • Phase 1์—์„œ ๊ฐœ๋ฐœํ•œ ๊ฐ„๋‹จํ•œ ์„œ๋ฒ„๋ฅผ ECS ๋ฅผ ํ†ตํ•ด์„œ ๋ฐฐํฌํ•˜๊ณ , Testing ํ”„๋ ˆ์ž„์›Œํฌ์— ๋งž๋Š” testing library๋ฅผ ํ™œ์šฉํ•˜์—ฌ Unit Testing, E2E Testing ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.

  • Github Actions ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์„œ๋ฒ„์— ๋Œ€ํ•œ ์ฝ”๋“œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ Github์— push ํ• ๋•Œ Unit Testing, E2E Testing, ECS ์ธ์Šคํ„ด์Šค ๋ฐฐํฌ๋ฅผ ์ž๋™ํ™”ํ•œ๋‹ค.

  • ์•ˆ์ •์ ์ธ ์„œ๋ฒ„๋ฅผ ์šด์˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ธํ”„๋ผ ์„ค์ •์„ ์ฝ”๋“œํ™” ํ•˜๋Š” Iac ( Infra as code)๋ฅผ ํ†ตํ•ด์„œ ๋‹ค๋ฅธ ํ™˜๊ฒฝ์—์„œ๋„ ๋™์ผํ•œ ์ธํ”„๋ผ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ , ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ๋ฐฐํฌํ•œ ์„œ๋น„์Šค์— ๋Œ€ํ•ด์„œ ์ž˜๋ชป๋œ ์ ‘๊ทผ์ด๋‚˜ ์ง€์†์ ์ธ ์œ ์ง€๋ณด์ˆ˜๋ฅผ LMA ( Logging, Monitoring, Alerting) ํ•˜๋ฉฐ, AWS SNS, Lambda๋ฅผ ์ด์šฉํ•˜์—ฌ CPU Utilization Alerting, Error Alerting Message์„ Slack์œผ๋กœ ๋‚ ๋ฆฌ๊ณ , ์„œ๋ฒ„๋ฅผ ์ง€์†์ ์œผ๋กœ ๊ด€์ฐฐํ•˜๋ฉฐ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

  • CPU Utilization์„ CloudWatch๋ฅผ ํ†ตํ•ด ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ , 50% ๋ฅผ ๋„˜์œผ๋ฉด ์ž๋™์œผ๋กœ ECS๋ฅผ ํ†ตํ•ด์„œ task๋ฅผ ๋Š˜๋ฆฌ๋Š” Load Balancing ์„ ํ†ตํ•˜์—ฌ, ํŠธ๋ž˜ํ”ฝ์— ๋”ฐ๋ผ Scale out, Scale in ํ•˜๋ฉฐ ์•ˆ์ •์ ์ธ ์„œ๋ฒ„๋ฅผ ์šด์˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • 10 common architecture ์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ•˜๋ฉด์„œ, ๊ฐ ์„œ๋น„์Šค ๋ณ„๋กœ ์œ ์šฉํ•œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. Uber, Woowahhan, HyperConnect ๋“ฑ ๊ธฐ์—…์—์„œ ์„œ๋น„์Šค ํŠน์„ฑ์— ๋งž๋Š” ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„์™€ ์„ค๊ณ„ ์ด์œ ๋ฅผ ์‚ดํŽด๋ณด๋ฉฐ ์ฝ”๋ฅด์นด์— ์ ํ•ฉํ•œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ณ ๋ฏผํ•˜๊ณ  ์ ์ ˆํ•œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์„ค๊ณ„ํ•ด๋ณธ๋‹ค.

Review

  • Phase 1์„ ์ง„ํ–‰ํ•˜๋ฉฐ ์•Œ๊ฒŒ๋๋˜ DevOps, MLOps ์˜ ๊ฐœ๋…์€ ๋„ˆ๋ฌด๋‚˜ ์ถ”์ƒ์ ์ด์˜€๊ณ , ์ง€๊ธˆ ๋‚ด๊ฐ€ ์ฝ”๋ฅด์นด์— ์–ด๋–ป๊ฒŒ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์„์ง€, ํ”„๋กœ์ ํŠธ์—์„œ ์–ด๋– ํ•œ ์—ญํ• ์„ ๋‹ด๋‹นํ•˜๋ฉฐ, CI/CD, Monitoring, Testing ํˆด์€ ์–ด๋–ค ๊ฒƒ์ด ์žˆ๊ณ , ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์„์ง€ ๋ถˆ๋ถ„๋ช…ํ•˜๊ณ  ๋ถˆ์•ˆํ–ˆ๋‹ค.
  • MLOps Curriculum์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ, ๊ธฐ์กด์— ์ง„ํ–‰๋˜๋Š” ์ฝ”๋ฅด์นด์˜ ๋‹ค์–‘ํ•œ ํ”„๋กœ์ ํŠธ์—์„œ MLOps๊ฐ€ ์‚ฌ์šฉํ–ˆ๋˜ Github Actions, Pulumi, AWS ์˜ ์‚ฌ์šฉ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์Šค์Šค๋กœ ํ•™์Šตํ•˜๋ฉด์„œ ํ”„๋กœ์ ํŠธ์˜ ํ๋ฆ„๊ณผ MLOps์˜ ํ•„์š”์„ฑ์— ๋Œ€ํ•ด์„œ ๊ตฌ์ฒดํ™”ํ•˜๊ณ , ์ž์‹ ๊ฐ์„ ํ‚ค์šธ ์ˆ˜ ์žˆ๋Š” ์‹œ๊ฐ„์ด์˜€๋‹ค.
  • Phase 1์— ๋น„ํ•ด์„œ ๋งž๋‹ฅ๋œจ๋ฆฌ๋Š” ์˜ค๋ฅ˜๋‚˜, ์Šค์Šค๋กœ ์ƒ๊ฐํ•˜๋ฉฐ ๊ณต๋ถ€ํ•ด์•ผํ•  ๋‚ด์šฉ์ด ๋งŽ์•„์กŒ๊ณ , ์Šค์Šค๋กœ๋ฅผ ๊ฐœ์„ ํ•ด๋‚˜๊ฐˆ ์—ฌ์ง€๊ฐ€ ๋งŽ์ด ๋А๋‚„ ์ˆ˜ ์žˆ๋Š” ์†Œ์ค‘ํ•œ ๊ธฐํšŒ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.
  • MLOps๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค์–‘ํ•œ ํˆด์˜ ์žฅ๋‹จ์ ์„ ๋น„๊ตํ•˜๊ณ  ํ”„๋กœ์ ํŠธ์— ์ ์ ˆํ•˜๊ฒŒ ๋„์ž…ํ•˜๋Š” ์—ญ๋Ÿ‰ ๋ฟ๋งŒ์•„๋‹ˆ๋ผ, ์œ ์ง€๋ณด์ˆ˜์™€ ํ™•์žฅ์ด ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•œ ํด๋ฆฐ์•„ํ‚คํ…์ณ, ๋ฆฌํŽ™ํ† ๋ง, ํด๋ฆฐ์ฝ”๋“œ ๊ณต๋ถ€์˜ ํ•„์š”์„ฑ์„ ๋А๋ผ๊ณ  ๊ฐœ๋ฐœ ๊ณต๋ถ€๋„ ์†Œํ™€ํžˆ ํ•˜์ง€์•Š์•„์•ผ๊ฒ ๋‹ค๊ณ  ์ž์‹ ์˜ ๋ถ€์กฑํ•จ์„ ๋งŽ์ด ๋А๊ผˆ๋‹ค. ์•ž์œผ๋กœ ๋”์šฑ ๋” ์ •์ง„ํ•ด์„œ ์ฝ”๋ฅด์นด์—์„œ ์—†์–ด์„œ๋Š” ์•ˆ๋  ์‚ฌ๋žŒ์ด ๋˜๊ณ ์‹ถ๋‹ค.

Feedback

  • CI/CD : unit testing ์€ ์ดํ›„์— Pulumi ๋‚˜ ์ถ”๊ฐ€์ ์ธ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์ƒ๊ธฐ๋ฉด์„œ ์˜์กด์„ฑ ์˜ค๋ฅ˜๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ๋Š”๋ฐ, ์‰˜์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•˜๊ฑฐ๋‚˜, tsconfig.build.json ๋“ฑ์„ ์ด์šฉํ•œ ๊ฐ ํ”„๋ ˆ์ž„์›Œํฌ ๋ณ„ ๋นŒ๋“œ ํ™˜๊ฒฝ์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๋„ ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.

  • Monitoring : CloudWatch๋ฅผ ํ†ตํ•ด์„œ ๋‹ค์–‘ํ•œ ์ง€ํ‘œ๋ฅผ ํ™•์ธํ•ด๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ฝ”๋ฅด์นด์—์„œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์–ด๋–ค ์ง€ํ‘œ๋ฅผ ์–ด๋–ป๊ฒŒ ํ™œ์šฉํ–ˆ์—ˆ๋‹ค ๋ผ๋Š” ๋‚ด์šฉ์ด ์ถ”๊ฐ€๋œ๋‹ค๋ฉด, ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ํ•„์š”์„ฑ์„ ์กฐ๊ธˆ ๋” ๊ฐ•ํ•˜๊ฒŒ ๋А๋‚„ ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค.

About

MLOps curriculum

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published