컨테이너가 메가트렌드가 된 이유는 바로 여기에 있다.
IT 부서는 보통 컨테이너는 괜찮은 아이디어로 고려한다. 모두가 사용하고 있으며, 개발 생태계를 만들어 낸 주류의 흐름을 따르는 이점이 있기 때문이다. 또한 컨테이너는 쿠버네티스 같은 클러스터 관리자와 오케스트레이션 서비스를 이용해 확장할 수 있다.
그리고 마지막으로 컨테이너는 애플리케이션을 기반이 되는 네이티브 서비스로부터 추상화하는 괜찮은 방법이기 때문이다. 애플리케이션을 이 클라우드에서 저 클라우드로 이식하기 쉬워진다. 또한 컨테이너는 애플리케이션을 추상화하지 않을 때보다 특정 퍼블릭 클라우드의 특징이나 기능을 덜 생각해도 된다.
그렇다면, 컨테이너는 단점이 없을까?
컨테이너 자체와 컨테이너 생태계의 모든 좋은 점은 여러 퍼블릭 클라우드에 걸쳐 동작하는 공통 플랫폼으로 자리잡고 있다. 오늘날의 개발자와 애플리케이션 아키텍트는 더 이상 스토리지와 컴퓨팅 서비스를 특정 클라우드 서비스 업체의 조건에 맞춰 생각하지 않는다. 보통은 스토리지와 컴퓨팅 서비스를 추상화된 개념으로 생각한다. 이 개념은 컨테이너를 사용하는 특정 네이티브 서비스로 해석될 수 있으며, 이들 자원을 공통 서비스라고 부르고 여러 클라우드에 걸쳐 동일한 것으로 취급한다.
애플리케이션과 개발자에게 네이티브 서비스는 이제 퍼블릭 클라우드 플랫폼과는 독립적으로 운영되는 공통 서비스이다. 퍼블릭 클라우드 서비스 업체가 제안하는 구체적인 가치는 성능 문제나 서비스 장애가 발생하지 않는 한, 정말로 중요한 문제는 아니다. 이렇게 퍼블릭 클라우드 서비스가 보편적이고 범용화된 유틸리티 서비스가 되고 있다.
이전에도 이런 상황의 일부는 본적이 있다. 퍼블릭 클라우드 서비스 중개업체가 서로 다른 서비스 업체 중에서 가장 뛰어나고 가장 저렴한 클라우드 서비스를 찾아서 이용할 수 있다고 약속했다. 하지만 기업은 아직 클라우드 서비스 업체가 제공하는 네이티브 API와 인터페이스를 사용해 이들 서비스를 이용한다.
차이점이 있다면, 클라우드 서비스라고 하는 것의 대부분이 인터페이스와 관리, 운영을 모두 포함해 한 세트의 공통 접근법과 서비스로 추상화된다는 것이다. 이런 서비스는 여러 클라우드에 걸쳐 운영할 수 있다. 이런 특성 때문에 개발자와 실제 애플리케이션이 보는 클라우드 서비스는 대동소이해진다. 게다가 보안이나 거버넌스, 가시성, 데이터 스토리지 등 다른 네이티브 서비스로도 이런 개념이 확장된다. 이 모든 것이 합쳐지면, 클라우드 서비스 업체의 이름은 몰라도 되는 한 세트의 추상화된 개념이 된다.
물론 대부분 컨테이너 개발자는 사용하는 클라우드를 잘 알고 있다. 하지만 개념적이든 클라우드 서비스 업체에 대한 실질적인 의존성이든 모두 제거하는 추상화 개념은 점점 더 많은 클라우드 개발로 퍼져 나갈 수 있다.
만약 기반 클라우드 서비스가 범용화된다면, 컨테이너화 작업은 훨씬 더 귀중한 애플리케이션에 투자할 수 있을 것이다. 게다가 추상화된 서비스는 최적의 조합을 찾을 수 있기 때문에 애플리케이션 개발 및 배치 비용도 절감할 수 있다.
그렇다면 퍼블릭 클라우드 서비스 업체에게 남는 것은 무엇일까? 기업은 클라우드 서비스 업체의 네이티브 인터페이스나 네이티브 서비스를 추상화된 공통 서비스로 해석할 수 있는 인터페이스를 사용해 서비스를 이용할 것이다. 어떤 시나리오이든 퍼블릭 클라우드 서비스 업체는 돈을 번다. 필자는 이를 윈윈 관계라고 본다. editor@itworld.co.kr