2021.01.14

칼럼|컨테이너에는 그에 적합한 아키텍처가 필요하다

David S. Linthicum | InfoWorld
컨테이너는 간단해 보인다. 하지만 컨테이너의 장점을 활용하려면 그에 적합한 아키텍처를 새롭게 설계해야 한다. 

가트너는 기업 내 컨테이너 도입율이 2023년까지는 계속 증가할 것으로 예측하고 있다. 가트너가 발표한 자료에 따르면 애플리케이션(과 데이터)은 빠른 속도로 컨테이너화되고 있다. 앱의 절반 이상을 컨테이너 기반으로 운영하는 조직은 23%에서 29%로 증가했으며, 앱을 컨테이너화한 비율이 10% 미만인 조직은 32%에서 21%로 감소했다.  
 
ⓒGetty Images Bank

컨테이너는 점점 클라우드 기반 애플리케이션의 기본 시스템으로 자리매김하고 있다. 컨테이너가 클라우드 네이티브를 달성하는 데 있어서 인기있는 방법이라는 걸 이해하기 위해서는 가트너의 자료를 참고해도 좋겠지만, 클라우드 개발팀과 만나보면 실감할 수 있을 것이다. 또 컨테이너 오케스트레이션 도구를 사용하여 이식성과 확장성을 극대화해보면 왜 컨테이너가 인기 있는지 이해할 수 있다.

컨테이너와 관련된 문제점 중 하나는 컨테이너 자체 혹은 컨테이너 오케스트레이션에 있는 게 아니라, 컨테이너를 어떻게 활용할지 설계하는 일에 있다. 컨테이너는 기본적으로 복잡하면서 층이 나뉘어 있는 분산 애플리케이션이다. 컨테이너를 플랫폼 삼아 특정 애플리케이션을 리프트 앤 시프트 방식으로 옮기는 건 그다지 어렵지 않다. 하지만 대부분의 경우 컨테이너를 그렇게 사용하면 별로 보탬이 되지 않는다. 컨테이너를 플랫폼이자 일종의 아키텍처로 설계하지 않는 한 컨테이너의 장점을 십분 활용할 수 없다. 몇 가지 팁은 다음과 같다. 

첫째, 컨테이너에 담긴 애플리케이션들을 기능에 입각해 그룹으로 묶는 법이 있다. 새로운 것이든 기존에 있었던 것이든 모두 그룹화하는 것이다. 그렇게 하는 이유가 있다. 데이터베이스 액세스를 비롯한 목표를 수행하는 데 최적화된 코드를 특정 도메인에 삽입함으로써 문제 해결과 운영 개선을 도모할 수 있기 때문이다. 또 컨테이너를 최적의 클러스터에 배치할 수 있으므로 컨테이너가 최상의 성능을 낼 수 있다. 가령, I/O, CPU, 네트워크의 성능을 향상시킬 수 있다. 

둘째, 보안에 중점을 두고 애플리케이션을 그룹으로 묶는 법이 있다. 컨테이너를 사용해 애플리케이션을 구축하다보면 보안은 뒷전이 되는 경우가 종종 있다. 필자가 참여했던 여러 개발 프로젝트들도 마찬가지였다. 현실적으로 (컨테이너 기반의) 복잡하고 분산된 애플리케이션은 보호하기가 어렵다. 또, 컨테이너는 기본적으로 플랫폼 위에서 실행되는 플랫폼이므로 우수한 보안을 갖추기가 훨씬 어렵다.

이 경우 애플리케이션 요소들 중에서 보안과 거버넌스가 필요한 것들만 자체 도메인(단일 컨테이너 혹은 관리형 클러스터를 의미)에 포함시키는 방안이 있다. 즉, 애플리케이션 중에서 보안이 필요한 요소에만 초점을 맞추는 방법이다. 이렇게 하면 애플리케이션의 성능이 전반적으로 향상되며, 보안 작업도 훨씬 쉽고 효과적으로 할 수 있다.

물론 이런 방식 외에도 사용할 수 있는 아키텍처 패턴들은 많다. 애플리케이션, 데이터 그리고 시스템의 전반적인 목적에 따라 어떤 아키텍처를 사용할지 여부도 결정된다. 하지만, 아키텍처를 사전에 고려한다면 컨테이너의 활용성을 훨씬 높일 수 있을 것이다. ciokr@idg.co.kr

*David S.Linthicum은 산업 전문가다. 그의 견해는 인포월드의 입장과는 무관하다.



2021.01.14

칼럼|컨테이너에는 그에 적합한 아키텍처가 필요하다

David S. Linthicum | InfoWorld
컨테이너는 간단해 보인다. 하지만 컨테이너의 장점을 활용하려면 그에 적합한 아키텍처를 새롭게 설계해야 한다. 

가트너는 기업 내 컨테이너 도입율이 2023년까지는 계속 증가할 것으로 예측하고 있다. 가트너가 발표한 자료에 따르면 애플리케이션(과 데이터)은 빠른 속도로 컨테이너화되고 있다. 앱의 절반 이상을 컨테이너 기반으로 운영하는 조직은 23%에서 29%로 증가했으며, 앱을 컨테이너화한 비율이 10% 미만인 조직은 32%에서 21%로 감소했다.  
 
ⓒGetty Images Bank

컨테이너는 점점 클라우드 기반 애플리케이션의 기본 시스템으로 자리매김하고 있다. 컨테이너가 클라우드 네이티브를 달성하는 데 있어서 인기있는 방법이라는 걸 이해하기 위해서는 가트너의 자료를 참고해도 좋겠지만, 클라우드 개발팀과 만나보면 실감할 수 있을 것이다. 또 컨테이너 오케스트레이션 도구를 사용하여 이식성과 확장성을 극대화해보면 왜 컨테이너가 인기 있는지 이해할 수 있다.

컨테이너와 관련된 문제점 중 하나는 컨테이너 자체 혹은 컨테이너 오케스트레이션에 있는 게 아니라, 컨테이너를 어떻게 활용할지 설계하는 일에 있다. 컨테이너는 기본적으로 복잡하면서 층이 나뉘어 있는 분산 애플리케이션이다. 컨테이너를 플랫폼 삼아 특정 애플리케이션을 리프트 앤 시프트 방식으로 옮기는 건 그다지 어렵지 않다. 하지만 대부분의 경우 컨테이너를 그렇게 사용하면 별로 보탬이 되지 않는다. 컨테이너를 플랫폼이자 일종의 아키텍처로 설계하지 않는 한 컨테이너의 장점을 십분 활용할 수 없다. 몇 가지 팁은 다음과 같다. 

첫째, 컨테이너에 담긴 애플리케이션들을 기능에 입각해 그룹으로 묶는 법이 있다. 새로운 것이든 기존에 있었던 것이든 모두 그룹화하는 것이다. 그렇게 하는 이유가 있다. 데이터베이스 액세스를 비롯한 목표를 수행하는 데 최적화된 코드를 특정 도메인에 삽입함으로써 문제 해결과 운영 개선을 도모할 수 있기 때문이다. 또 컨테이너를 최적의 클러스터에 배치할 수 있으므로 컨테이너가 최상의 성능을 낼 수 있다. 가령, I/O, CPU, 네트워크의 성능을 향상시킬 수 있다. 

둘째, 보안에 중점을 두고 애플리케이션을 그룹으로 묶는 법이 있다. 컨테이너를 사용해 애플리케이션을 구축하다보면 보안은 뒷전이 되는 경우가 종종 있다. 필자가 참여했던 여러 개발 프로젝트들도 마찬가지였다. 현실적으로 (컨테이너 기반의) 복잡하고 분산된 애플리케이션은 보호하기가 어렵다. 또, 컨테이너는 기본적으로 플랫폼 위에서 실행되는 플랫폼이므로 우수한 보안을 갖추기가 훨씬 어렵다.

이 경우 애플리케이션 요소들 중에서 보안과 거버넌스가 필요한 것들만 자체 도메인(단일 컨테이너 혹은 관리형 클러스터를 의미)에 포함시키는 방안이 있다. 즉, 애플리케이션 중에서 보안이 필요한 요소에만 초점을 맞추는 방법이다. 이렇게 하면 애플리케이션의 성능이 전반적으로 향상되며, 보안 작업도 훨씬 쉽고 효과적으로 할 수 있다.

물론 이런 방식 외에도 사용할 수 있는 아키텍처 패턴들은 많다. 애플리케이션, 데이터 그리고 시스템의 전반적인 목적에 따라 어떤 아키텍처를 사용할지 여부도 결정된다. 하지만, 아키텍처를 사전에 고려한다면 컨테이너의 활용성을 훨씬 높일 수 있을 것이다. ciokr@idg.co.kr

*David S.Linthicum은 산업 전문가다. 그의 견해는 인포월드의 입장과는 무관하다.

X