2016-07-09 3 views
-1

그래서 저는 클라우드 기반 서비스 (AWS Azure 등)에서 컨테이너와 그 사용법을 알아 내려고 노력해 왔으며 사용 이유가 없습니다. 가상 머신에 앱 (또는 서비스)을 배포하거나 컨테이너에서 동일한 작업을 수행 할 수 있지만 여전히 일부 환경에서는 실행 만합니다 Nx 1:1 VM to container.클라우드의 컨테이너는 무엇에 좋은가요?

두 번째 방법은 하나의 강력한 VM을 가지고 있고 컨테이너 전원에 컨테이너 전원을 배포하는 컨테이너 관리자가 있다는 것입니다.하지만 컨테이너에서 VM을 실행하는 앱의 차이점은 무엇입니까? 컨테이너? 컨테이너 관리는 불필요한 오버 헤드로 인해 컴퓨팅 성능을 훔치지 않을 것입니까? 평상시와 마찬가지로 가격은 일반 스케일링 (예 : 단일 유닛의 가격이 개수와 동일하게 유지됨)이므로 두 개의 컨테이너가있는 하나의 머신을 가지고 성능을 두 배로하는 것과 동일합니다.

클라우드 서비스에 도움이 될 수있는 몇 가지 예를 제공해주십시오.

답변

0

컨테이너는 모두 하드웨어에서 더 많은 밀도를 얻고 있습니다. 즉, 보유하고있는 리소스의 양에 비례하여 서비스를보다 효율적으로 실행할 수 있습니다. 따라서 일부 $를 절약 할 수 있습니다.

주체는 컨테이너가 VM과 같지 않으며 OS의 자체 복사본이 없으므로 훨씬 더 압축 된 샌드 박스이며 컨테이너 처리 기술로 관리된다는 사실을 기반으로합니다. 상단에는 컨테이너가 액세스 할 수있는 자원을 제어합니다.

이렇게하면 한 컨테이너가 한 가지 유형의 서비스를 실행하도록 시스템을 설계하면 컨테이너 관리 레이어가 여러 인스턴스를 조정할 수 있기 때문에보다 효율적으로 배율을 조정하고보다 효과적으로 배포 할 수 있습니다 (탄력성). 각 서비스는 한 번에 스핀 업하거나 배포 할 수 있습니다. 이를 SOA 아키텍처와 비교해보십시오. 일반적으로 (항상 그런 것은 아닙니다) 서비스가 아닌 계층으로 확장됩니다. 웹 계층은 웹 서버 및 서비스를 실행하는 VM 세트, 여러 백엔드 서비스를 실행하는 응용 프로그램 계층 등이 될 것입니다. 컨테이너의 경우 이러한 구분을 할 필요가 없으며 독립적으로 확장 가능한 계층을 100 개 가질 수 있습니다.

귀하가 소비하는 것에 대해서만 비용을 지불하는 클라우드에 완벽하게 적합합니다. 애플리케이션 제품군이 세분화할수록 실행이 더 효율적이어서 소비해야하는 자원이 적습니다.

컨테이너 관리 기술은 또한 일반적으로 어쩌면 클라우드 하나 개 또는 두 개의 가상 머신에서 호스트 (또는 수 있습니다 작은 응용 프로그램이나 워크로드

... 등 등 탄력성, 네트워킹, 작업 부하 분배, 규모, 관리 할 수 ​​있습니다 서비스 또는 VM 스케일 설정)을 사용하면 컨테이너를 사용하면 비용이 더 많이들 수 있습니다. 일반적으로 컨테이너를 호스팅하여 하드웨어 배포를 통해 복원력을 제공하는 최소 3 Vms가 필요하며 이러한 리소스 중 일부는 컨테이너 관리. 따라서 더 적합한 유스 케이스는 시간이 지남에 따라 다양한 수요가있을 수있는 다양한 서비스 컴포넌트가있는 더 큰 시스템입니다.

기술에 따라 실제 VMS의 수는 일반적으로 3에서 20 사이라고 할 수 있지만 일반적으로 노드 당 여러 개의 컨테이너가 있습니다. 각 VM마다 20 개가 필요하므로 3 VMS를 사용하면 VM을 확장해야하기 전에 3 x 20 = 60 인스턴스의 서비스를 호스팅 할 수 있습니다. 어떤 서비스가 이고 그 중 60 개가 미리 결정될 필요는 없습니다. 따라서 웹 프런트 엔드, 계산 서비스 및 데이터 액세스 서비스 등 3 개의 서비스를 호스팅하는 3 개의 VM으로 시작할 수 있습니다. 수요가 늘어남에 따라 프런트 엔드 서비스의 인스턴스 10 개, 계산 35 개, 데이터 액세스 레이어 5 개 - 60 개의 컨테이너 중 10 + 35 + 5 = 50 개를 사용하게 될 수 있습니다.

여기 용기의 밀도를 설명 할 수있는 좋은 시각적 인 그림이있다 : 이 Linux Journal

+0

그래서 "컨테이너 관리 층은"여러 VM을 통해 확산 당신이 아래의 VM을 확장 할 수있는가? –

+0

그래서이 방법은 실제로 자체적으로 확장 할 수없는 서비스가있는 경우에 유용합니다 (예 : 단일 스레드 인 경우). 그러나 VM의 모든 리소스 (코어)를 사용할 수있는 앱을 사용하면 새로운 VM을 올바르게 생성 할 때 동일한 결과가 나타납니다. –

+0

예, 좋은 예는 대기열에서 작업 부하를 사용하는 서비스입니다. 자체적으로 스레드를 생성 할 필요가 없습니다. 각 서비스 인스턴스는 새 컨테이너 인스턴스에서 실행됩니다. –