238
클라우드 네이티브
컨테이너
컨테이너를 다루지 않고는 이식성 부분을 마무리할 수 없습니다. 코드와 의존성을 캡슐화하는
표준 패키징 형식인 컨테이너는 애플리케이션 코드의 이전을 매우 쉽게 만들 수 있습니다. 애
플리케이션과 의존성을 컨테이너 내부에 패키징해서 컨테이너 안에서 애플리케이션을 실행하
기 위해 여러 클라우드 공급자 서비스 중 하나를 사용할 수 있습니다. 널리 퍼져서 사용 중인
도커 컨테이너 형식은 컨테이너를 쉽게 이식이 가능하도록 만들 수 있게 도와줍니다.
컨테이너 안에 애플리케이션을 두면 이식성 있게 만들 필요가 없습니다. 애플리케이션이 로깅
서비스 같은 클라우드 벤더 종속적인 서비스에 연결한다거나 애플리케이션을 온프레미스나 다
른 클라우드 벤더에서 실행하려면 변경해야 할 수도 있습니다. 애플리케이션을 개발할 때 외부
의존성을 생각하고
12
요소 애플리케이션 방법론을 사용하세요. 예를 들어
12
요소 방법론 중
하나는 로그를 이벤트 스트림으로 다루는 것입니다. 이때 애플리케이션은 스트림의 라우팅이
나 스토리지를 신경 쓰지 않아야 합니다. 표준 출력으로 로깅을 해서 실행 환경이 애플리케이
션이 실행 중인 환경에 가장 잘 맞는 위치로 로그를 보내도록 설정할 수 있습니다.
7.3.2
공통 서비스와 기능
클라우드 공급자에서 이용할 수 있는 공통 기술과 기능을 최소한으로 사용하면 이식성 요
구 사항에 도움을 줄 수 있습니다. 하지만 그렇게 하면 비용을 증가시킬 수 있고 잠재적으
로 애플리케이션의 기능성을 줄일 수 있습니다. 예를 들어