Prefect 핵심개념 - Projects, Labels, Storage

홍성환·2021년 8월 31일
2
post-thumbnail

1. Projects

  • ETL작업의 개수는 시간이 지날수록 계속 늘어나 정신차려보면 몇백개가 되어있는 경우가 많다.
  • 만약 ETL작업들이 같은 화면에 몇백개가 한번에 보인다면 큰 스트레스일 수 있다.
  • 이럴 때 작업들을 그룹단위로 묶어주게 하기 위해 prefect에는 Projects라는 상위 그룹 개념이있다.
  • Projects는 비슷한 flow들을 모아놓은 그룹이다
  • UI 상에서 다음과 같이 Projects를 선택해서 볼 수 있다.
  • projects를 선택하면 Projects에 속한 flow들만 모아서 볼 수 있다.

2. Labels

  • Prefect에서는 Flow가 UI서버가 아닌 Agent라는 곳에서 돌아간다.
  • 여러개의 Agent가 여러 서버(Spark cluster, gpu 장비, 고성능 CPU 장비 등등)에 분포되어 있을 수도 있다.
  • Flow는 Agent에서 돌아가기 때문에 어떤 Agent에서 돌아갈지 정해줘야하는데 이때 쓰이는게 Labels라는 개념이다.
  • Flow와 Agent는 각각 Label을 붙일 수 있다.
  • Flow를 만들때도 Label 붙여서 만들고, Agent를 띄울 때도 Label을 붙여서 띄운다.
  • Flow를 실행하면 Label이 같은 Agent를 찾아서 Flow를 실행하게된다.

3. Storage

  • Prefect는 UI서버나 Agent에 flow를 정의한 코드를 저장하지 않는다
  • flow code는 따로 Storage라는 곳에 저장된다.
  • 즉 Storage는 flow 코드가 보관되는 장소이다.
  • Agent는 flow를 실행하려 할 때 Storage에서 코드를 가져온다.
  • 다양한 소스를 스토리지로 설정해서 쓸 수 있으며 flow마다 다르게 설정할 수 있다.
    - github, s3, 클라우드 회사별 스토리지, docker, local 등등
profile
Machine Learning Engineer: recsys, mlops

0개의 댓글