컨테이너 레지스트리는 스토리지 및 액세스를 위해 컨테이너 이미지를 보관하는 데이터 저장소(또는 여러 저장소)입니다. 컨테이너 이미지는 실행 코드를 포함하고 IT 인프라에서 격리되어 실행되는 변경되지 않는 정적 파일입니다.
Container Registry의 주요 장점은 컨테이너 오케스트레이션 시스템이나 Kubernetes 및 Docker와 같은 플랫폼에 쉽게 연결할 수 있다는 점입니다.
컨테이너 기반 애플리케이션 개발 중에는 팀이 Container Registry를 DevOps 역량으로도 사용할 수 있어, 지속적 통합(CI) 워크플로 및 지속적 제공(CD) 워크플로와의 최적화된 통합이 가능합니다. 두 워크플로 모두 소프트웨어 개발의 핵심 활동입니다. CI와 CD는 모두 자동화 기반이며 잦은 코드 변경을 수용할 수 있도록 구축되었습니다. CI는 최종 릴리스를 위해 코드를 준비하는 반면 CD는 코드의 실제 릴리스와 관련이 있다는 점에서 다릅니다. Container Registry는 두 워크플로를 모두 지원합니다.
Container Registry에는 두 가지 유형이 있습니다.
Container Registry는 컨테이너 이미지를 저장하여 사용자가 이미지를 레지스트리에 업로드("푸시")하거나 다른 시스템으로 다운로드("풀링")할 수 있도록 합니다.
Container Registry는 단독으로 사용할 수도 있고 다른 Container Registry와 함께 사용할 수도 있습니다. 여러 개의 컨테이너가 클라우드 서비스 제공을 위한 하나의 운영 단위로 결합될 경우, 이 기능은 공동의 아웃풋을 전달하기 위해 서로 긴밀히 협력하는 에코시스템의 구성원들을 모방하는 방식으로 작동합니다.
컨테이너 레지스트리는 개체 스토리지를 사용하여 컨테이너 이미지에 대한 메타데이터를 매니페스트합니다. 이는 이러한 메타데이터를 성공적으로 전송할 수 있는 수단을 제공하지만 특성상 제한적인데, 예를 들어 여러 이미지가 포함될 수 있는 데이터의 경우 사용 가능한 리스팅 태그의 수에 제한이 있습니다.
종속성 컨테이너는 또 다른 스토리지 방법입니다. 이를 통해 애플리케이션에서 종속성을 관리, 등록, 해결할 수 있습니다. 프로그래밍 맥락에서 종속성은 하나의 객체나 프로세스가 정상적으로 작동하기 위해 다른 객체나 프로세스가 먼저 발생해야 하는 상황을 설명합니다.
이러한 종속성은 종속성 컨테이너에 의해 관리되며, 이는 테스트를 단순화하고, 확장성을 향상하고, 오류 및 버전 제어 문제로 이어질 수 있는 코드 결합(프로그래밍되는 개체 간의 지나치게 강한 상호 의존성)의 필요성을 최소화하는 데 도움이 됩니다.
온라인 보안이 시급하고 지속적으로 필요한 상황에서 리포지토리에 대한 액세스 권한이 부여된 개인에 대한 인증은 매우 중요합니다. 이는 해당 Container Registry와 관련된 일련의 권한에 따라 달라집니다. 권한은 해당 Container Registry의 컴퓨터 리소스를 사용할 권한이 있는 사용자를 정의합니다.
런타임의 개념은 매우 중요합니다. 컨테이너 런타임은 컨테이너가 호스트 시스템 내에서 작동할 수 있게 해주는 소프트웨어입니다. 런타임은 일련의 단계를 사용하여 컨테이너를 생성합니다. 이 단계들은 애플리케이션과 그 종속성이 포함된 컨테이너 이미지의 지침에 따라 컨테이너를 생성하고 해당 환경을 초기화하는 전체 과정을 포함합니다.
컨테이너가 구성된 후에도 런타임은 컨테이너 수명 주기를 관리하고, 지속적인 실행 가능성을 추적하고, 더 이상 필요하지 않을 때 리소스를 제거하는 등 적극적으로 참여합니다.
Container Registry는 로드 밸런싱도 지원합니다. 컨테이너 네이티브 로드 밸런싱에서 밸런서 트래픽은 해당 트래픽을 수신할 영역으로 직접 라우팅됩니다. 이러한 방식으로 Container Registry는 로드 밸런서와 함께 작동하므로 트래픽을 추가 네트워크 루프를 통해 라우팅할 필요가 없습니다.
Container Registry는 다음과 같은 다양한 이점을 제공합니다.
컨테이너 레지스트리는 장기 스토리지를 위해 이미지를 보관할 수 있는 전용 공간을 확보하여 운영의 명확성을 높입니다. 프로덕션 아티스트와 소프트웨어 개발자는 종종 자산이 과도하게 쌓이는 데 어려움을 겪습니다. 컨테이너 레지스트리는 자산을 단일 위치로 제한하여 이 문제를 완화합니다.
Container Registry는 이미지의 정확한 위치를 알 수 없는 경우, 특히 우선순위가 높은 시간대에 발생할 수 있는 성능 지연을 방지하는 데 도움이 됩니다. 컨테이너 레지스트리는 언제든지 확인하고 확인할 수 있는 재고를 제공하여 이 문제를 해결합니다.
레지스트리는 모든 구성 요소 또는 애플리케이션에 대한 신뢰할 수 있는 단일 소스를 생성하므로 해당 구성 요소 또는 앱의 구성에 대한 투명성이 항상 보장됩니다. Container Registry를 사용하면 최적의 버전 관리를 위해 가장 최근의 반복을 사용하거나 복제할 수 있습니다.
Container Registry는 이미지에 대한 향상된 보안 조치를 제공합니다. 액세스 프로토콜은 보안 관점에서 이미지를 보호하는 데 도움이 됩니다. 한편, 취약점 스캔을 통해 사용자는 이미지를 자세히 보고 그 안에 숨겨진 문제를 발견할 수 있습니다.
다음 활동은 Container Registry를 광범위하게 활용합니다.
소프트웨어 개발은 Container Registry의 주된 사용 사례이며, 처음부터 소프트웨어 개발자에게 이미지를 저장하고, 액세스하고, 공유하기 위한 작업 공간을 제공함으로써 소프트웨어 개발자를 지원하기 위해 만들어졌습니다.
비공개 Container Registry는 일반적으로 내부적으로 소프트웨어 앱을 설계하고 제공하는 조직에 필요한 인프라로 간주됩니다. 비공개 레지스트리는 사용자에게 소프트웨어 공급망을 더 높은 수준으로 제어할 수 있는 권한을 부여합니다.
많은 Container Registry는 컨테이너 클러스터에서 특정 마이크로서비스를 찾아 연결하는 과정을 명확히 하여 마이크로서비스 사용자를 지원합니다. 이러한 레지스트리는 이미지 이름과 가상 IP를 제공하는 도메인 이름 시스템 서비스를 제공합니다.
Container Registry는 모듈식 경량 레지스트리의 특성으로 인해 앱의 빠른 반복을 촉진하는 데 도움이 됩니다. 배포의 또 다른 이점은 레지스트리의 이식성과 일관성입니다.
Container Registry는 유전학 데이터 지원 및 게놈 연구 강화와 같은 특수한 과학적 목적에 맞게 맞춤화되고 있습니다. 연구 결과를 다른 형식으로 쉽게 재현할 수 있으므로 주요 코드와 아티팩트를 공유할 수 있습니다.
Container Registry 사용을 지배하는 두 가지 주요 컨테이너 오케스트레이션 공급자가 있습니다.
Docker는 앱 생성, 배포 및 실행의 복잡성을 줄이기 위해 2013년에 개발 및 도입된 컨테이너 오케스트레이션 시스템입니다. Docker는 인프라에 관계없이 모든 플랫폼에서 실행할 수 있는 가볍고 휴대 가능하며 독립적인 컨테이너를 쉽게 구축할 수 있는 방법으로 최근 인기를 얻고 있습니다. 그 사용 용이성에 대한 평판 덕분에 Docker는 인공 지능(AI) 및 머신 러닝(ML)에 특화된 애플리케이션을 배포하는 이들에게 널리 사용되는 선택지가 되었습니다.
마찬가지로, Docker 컨테이너는 뛰어난 이식성을 제공하여 인프라에 상관없이 한 장치에서 다른 장치로 자유롭게 이동할 수 있습니다. 다시 말해, Docker를 사용하면 AI 및 ML 애플리케이션을 로컬 머신, 엣지 장치 또는 클라우드 서버와 같은 다양한 환경에 비교적 간단하게 도입할 수 있다는 이점이 있습니다.
Kubernetes는 컨테이너 오케스트레이션을 위한 오픈 소스 플랫폼입니다. 2013년에 시작되었으며 “파일럿"을 뜻하는 그리스어에서 이름을 딴 Kubernetes는 소프트웨어의 관리, 배포, 확장과 같은 다양한 프로세스를 자동화하는 데 사용됩니다.
Kubernetes Service에서는 하나 이상의 컴퓨터(가상 머신 또는 Bare Metal Server)가 다양한 크기와 유형의 컨테이너 워크로드를 실행할 수 있는 클러스터에 연결됩니다. Kubernetes는 종종 Helm 차트와 함께 배포되며, Helm 차트는 Kubernetes 클러스터의 다양한 리소스를 설명하고 이들을 하나의 애플리케이션으로 패키징하는 파일 모음입니다.
Kubernetes는 컨테이너화된 ML 앱의 사용과 간단한 확장을 가능하게 하며, ML 프레임워크와 툴을 지원합니다. Kubernetes는 AI 학습 워크로드를 위한 플랫폼으로도 사용할 수 있습니다.
Docker와 Kubernetes는 여러 면에서 유사합니다. 그러나 Docker는 본질적으로 런타임인 반면, Kubernetes는 여러 런타임에서 컨테이너를 실행하고 관리할 수 있도록 설계된 완전한 플랫폼이기 때문에 각각의 규모는 다릅니다. 두 가지의 차이점을 나타내는 지표로, Kubernetes의 규모가 너무 커서 Docker는 Kubernetes가 지원하는 여러 컨테이너 런타임 중 하나일 뿐이라는 점을 고려하세요.
컨테이너 레지스트리 공급업체 시장은 항상 진화하고 있으며, 플레이어는 언제든지 시장에 진입하고 퇴출되지만, 그럼에도 불구하고 여기에 나열된 공급업체는 이 시장에서 지속적인 명성을 쌓았습니다.
Red Hat OpenShift on IBM Cloud는 풀 매니지드 OpenShift 컨테이너 플랫폼(OCP)입니다.
컨테이너 솔루션은 보안, 오픈 소스 혁신, 신속한 배포를 통해 컨테이너화된 워크로드를 실행하고 확장합니다.
IBM Cloud 컨설팅 서비스를 통해 새로운 역량을 개발하고 비즈니스 민첩성을 향상하세요. 하이브리드 클라우드 전략 및 전문가 파트너십을 통해 솔루션을 공동으로 개발하고, 디지털 혁신을 가속화하고, 성능을 최적화하는 방법을 알아보세요.