111
6장 상용배포
6.4
컨테이너화
앞서 설명했듯이, 모델 버전을 관리하는 것은 단순히 버전 제어 시스템에 코드를 저장하는 것
이상이다. 특히 환경에 대한 상세한 내용(예를 들어, 사용되는 모든
Python
라이브러리의 종
류 및 버전, 설치해야 하는 시스템 종속성 등)을 제공해야 한다.
그러나 이러한 메타데이터를 저장하는 것만으로는 충분하지 않다. 상용 배포 과정에서 대상 시
스템에 이 환경을 자동적·안정적으로 재구성해야 한다. 또한 대상 시스템에서는 일반적으로
여러 모델을 동시에 실행하고, 두 모델 간에 종속된 라이브러리의 종류나 버전에 차이가 있을
수 있다. 마지막으로, 동일한 장비에서 실행되는 여러 모델은 자원을 두고 경합할 수 있고, 모
델 하나에서 오작동이 발생하면 공동 호스팅된 다른 모델의 성능도 저하될 수 있다.
컨테이너화 기술은 이러한 과제를 해결하기 위해 점점 더 많이 사용되고 있다. 이러한 도구는
응용 프로그램뿐만 아니라 여러 운영 환경에서 실행하는 데 필요한 모든 관련 구성 파일, 라이
브러리 및 종속성을 번들로 함께 제공한다. 가상 머신
VM
과 달리 컨테이너는 운영 체제를 완전
히 복제하지 않는다.
가장 잘 알려진 컨테이너화 기술은 오픈소스 플랫폼 도커
Docker
다.
2014
년에 출시되었고, 사실
상의 표준이 되었다. 응용 프로그램을 패키징하여 서버(도커 호스트)로 전송하고 다른 응용 프
로그램과 격리된 상태로 실행할 수 있다.
많은 모델을 수용하고 각 모델의 사본 여러 개를 실행할 수 있는 모델 서비스 환경 기반을 ...