본문 바로가기
CS/MachineLearning

MLOps 실전 가이드

by Diligejy 2024. 1. 18.

 

 

 

p.35~36

마이크로서비스는 의존성이 거의 없고 (심지어는 아예 없기도 한) 독립적인 기능을 가진 소프트웨어 서비스를 의미한다. 예를 들어 머신러닝 추론 엔드포인트(endpoint)는 마이크로서비스로 구성하기에 매우 적합하다. 대표적으로 플라스크(Flask)는 파이썬 기반 마이크로서비스 구현을 돕는 인기 있는 프레임워크 중 하나다. 이러한 마이크로서비스는 서비스형 함수(Function as a Service - FaaS)를 포함한 다양한 기술을 사용할 수 있다. AWS 람다는 클라우드에서 제공되는 다양한 서비스형 함수를 대표한다. 마이크로서비스는 컨테이너 환경에서 즉시 실행 가능하도록 구성할 수 있다. 서비스형 컨테이너(Container as a Service- CaaS)를 사용하여 도커파일과 함께 플라스크 애플리케이션을 AWS Fargate, Google Cloud Run, Azure App Services 등 서비스에 손쉽게 배포할 수 있다.

 

p.41~42

파이썬 초보자들은 '메이크파일이 도대체 왜 필요할까?'라는 반응을 보이곤 한다. 지속적 통합 작업이라는 핵심에 역행하는 듯한 부수적인 작업들과 추가 파일들의 등장에 거부감을 느낄 수도 있따. 이러한 생각은 지극히 건전하기 때문에 여러분을 나무라는 것은 전혀 아니고, 여러분의 걱정을 덜어보려고 한다. 메이크파일은 매번 기억하기 어렵고 복잡한 빌드 단계를 관리하기 때문에 궁극적으로는 복잡성을 덜어준다.

 

예를 들어 pylint를 이용하여 파이썬 파일을 liniting해야 하는 상황을 생각해보자. 메이크파일을 사용하면 make lint만 사용하여 지속적 통합(CI) 서버 내에서 동일한 명령을 실행할 수 있다. 물론 메이크파일을 사용하지 않고 다음과 같이 전체 문장을 입력해도 상관없다.

 

pylint --disable=R,C *.py

 

하지만 이렇게 수동으로 문장을 입력하면 오류가 발생하기 쉬울 뿐 아니라 프로젝트 수명 내내 반복적으로 동일한 명령을 입력해야 하므로 상당히 번거롭다.

 

하지만 다음과 같이 입력하면 훨씬 더 간단해지므로 실수를 줄일 수 있다.

 

make lint

 

메이크파일을 사용하면 이처럼 워크플로를 간소화하고, 프로젝트를 지속적 통합 시스템으로 쉽게 통합할 수 있다. 입력해야 하는 코드의 양이 줄면 자동화 측면에서 좋다. 또한 메이크파일 명령이 쉘(shell) 자동 완성에서 인식되는 덕에 각 단계를 쉽게 tab 키로 완성할 수 있다는 장점이 있다.

댓글