Jump to section

컨테이너의 이해

URL 복사

애플리케이션의 복잡성이 증가하고 애플리케이션 개발 가속화에 대한 요구가 그 어느 때보다 늘어나고 있습니다. 이로 인해 인프라, IT 팀, 프로세스에 대한 요구가 증가됩니다. 컨테이너는 여러 환경에서 문제를 완화하고 반복적인 작업을 가속화하도록 지원합니다.

컨테이너 도입으로 애플리케이션 출시 속도가 5배 빨라진 랭킹 20위의 제약회사

컨테이너는 실행에 필요한 모든 파일을 포함한 전체 실행(runtime) 환경에서 애플리케이션을 패키징하고 격리할 수 있는 기술입니다. 이를 통해 전체 기능을 유지하면서 컨테이너화된 애플리케이션을 환경(개발, 테스트, 프로덕션 환경 등) 간에 쉽게 이동할 수 있습니다. 컨테이너는 IT 보안의 중요한 부분이기도 합니다. 컨테이너 파이프라인에 보안을 구축하고 인프라를 보호하여 컨테이너의 안정성, 확장성, 신뢰성을 보장할 수 있습니다. 또한 일관된 행동과 기능으로 퍼블릭, 프라이빗, 하이브리드 클라우드 환경과 데이터센터(또는 온프레미스) 간에 컨테이너화된 애플리케이션을 손쉽게 이동할 수 있습니다.

 

 

컨테이너를 활용하면 담당 영역을 분리하여 개발 팀과 운영 팀 간의 충돌을 줄일 수 있습니다. 개발자는 애플리케이션에 집중할 수 있고 운영 팀은 인프라에 주력할 수 있습니다. 또한 컨테이너는 오픈소스 기술을 기반으로 하기 때문에 최신 기술을 활용하여 다양하고 새롭고 강력한 기술 제품을 쉽게 채택할 수 있습니다. Podman, Skopeo, Buildah, CRI-O, 쿠버네티스, Docker 등의 컨테이너 기술은 애플리케이션 개발과 배포를 간소화하고 가속화하고 오케스트레이션하는 데 도움이 됩니다.

컨테이너는 동일한 운영 체제 커널을 공유하고 애플리케이션 프로세스를 시스템의 나머지 영역으로부터 격리하므로 개발, 테스트, 프로덕션 구성에서 전체를 이동하고, 열고, 사용할 수 있습니다. 또한 경량화되고 이식 가능하기 때문에 더욱 신속하게 애플리케이션을 개발하고 비즈니스 요구가 발생할 때 이를 충족할 수 있습니다.  

 

컨테이너를 통해 개발 팀은 애플리케이션에 집중하고 운영 팀은 인프라에 집중할 수 있습니다. 컨테이너 오케스트레이션은 전사적으로 이러한 배포를 관리할 수 있는 방법입니다.

쿠버네티스는 Linux 컨테이너 작업을 자동화하는 오픈소스 플랫폼입니다. 이 플랫폼에서는 컨테이너화된 애플리케이션을 배포하고 확장하는 데 수동 프로세스가 필요하지 않습니다. 쿠버네티스를 통해 물리 서버 또는 가상 머신의 클러스터에서 컨테이너를 예약하고 실행할 수 있는 플랫폼을 제공하며, 쿠버네티스 아키텍처는 상호 연계된 구성 요소로 클러스터를 나누어 클러스터를 정의된 상태로 유지합니다.

Red Hat® OpenShift® 4는 엔터프라이즈 레디 쿠버네티스 플랫폼으로, 개발자는 셀프 서비스 환경을 구축하여 모든 인프라에서 자동화된 풀 스택 오퍼레이션을 구현할 수 있습니다.

컨테이너, 클러스터, Ansible과 이벤트 기반 자동화의 결합

OpenShift 기반으로 구축되어 있으며, Red Hat Advanced Cluster Management와 Red Hat Ansible® Automation Platform을 함께 활용하여 다양한 환경에서 여러 쿠버네티스 클러스터를 효율적으로 배포하고 관리할 수 있습니다.

컨테이너는 규모에 관계없이 다양한 워크로드와 활용 사례에 배포할 수 있습니다. 컨테이너는 클라우드 네이티브 개발 방식에 필요한 기반 기술을 제공하므로 이를 통해 개발자는 DevOps, CI/CD(지속적인 통합/지속적인 배포)를 시작할 수 있으며 서버리스(serverless)로 전환할 수 있습니다.

컨테이너 기반 애플리케이션은 고도로 분산된 클라우드 아키텍처 전반에서 작동할 수 있습니다. 애플리케이션 런타임 미들웨어는 개발, 배포, 통합, 자동화를 위한 통합 환경을 지원하는 툴을 제공합니다.

컨테이너에 통합 기술을 배포하여 Apache Kafka를 통한 실시간 데이터 스트리밍과 같이 애플리케이션과 데이터 연결하는 방식을 손쉽게 확장할 수도 있습니다. 마이크로서비스 아키텍처를 구축 중인 경우, 컨테이너는 각 마이크로서비스와 이들을 연결하는 서비스 메쉬 네트워크에 이상적인 배포 유닛입니다.

여러 환경에 걸쳐 최대한의 이식성이 필요한 경우에는 컨테이너를 사용하는 것이 언제나 옳은 선택입니다.

 

기본적으로 안전한 것은 아무것도 없습니다. 정적 보안 정책과 체크리스트를 엔터프라이즈 내의 컨테이너에 맞게 확장할 수 없으므로 컨테이너 파이프라인에 보안을 강화하는 방법을 알아야 합니다. 이 웨비나 시리즈를 시청하여 컨테이너 애플리케이션 스택과 라이프사이클 전반에서 보안의 필요성과 가치에 대한 전문가의 관점을 확인하세요.

헷갈릴 수도 있지만 Docker는 전통적인 Linux 컨테이너와는 다릅니다. Docker 기술은 처음에는 LXC 기술을 기반으로 개발되었지만 이후에는 이러한 종속 관계를 벗어났습니다. 하지만 대부분의 사람들은 "전통적인" Linux 컨테이너와 연결 지어 생각합니다. LXC는 경량의 가상화 방법으로 유용했지만 뛰어난 개발자 또는 사용자 환경을 제공하지는 못했습니다. Docker 기술은 컨테이너를 실행하는 기능 이상의 다양한 기능을 제공합니다. 특히 컨테이너 생성과 구축, 컨테이너 이미지 전송, 이미지 버전 관리 등의 프로세스를 용이하게 해줍니다.

전통적인 Linux 컨테이너는 여러 프로세스를 관리할 수 있는 init 시스템을 사용합니다. 즉, 전체 애플리케이션을 하나로 실행할 수 있습니다. Docker 기술은 애플리케이션을 개별 프로세스로 세분화하도록 권장하고 이를 위한 툴을 제공합니다. 이러한 세분화된 접근 방식에는 장점이 있습니다.

가상화는 컨테이너가 사용할 수 있는 리소스를 프로비저닝합니다. 이러한 가상 머신(VM) 환경에서는 컨테이너를 실행할 수 있으나 컨테이너가 가상 환경에 연결되어 있지는 않습니다. Red Hat® OpenShift® Virtualization과 같은 일부 소프트웨어는 컨테이너를 오케스트레이션하고 가상 머신을 관리할 수 있지만 그렇다고 해서 두 기술이 동일하다는 의미는 아닙니다.
VM을 생성하는 하이퍼바이저가 유한한 물리 머신 리소스에 연결되어 있으므로 VM의 기능에도 제약이 생기게 됩니다. 반면 컨테이너는 동일한 운영 체제 커널과 패키지 애플리케이션을 공유합니다.
가상화는 컨테이너가 사용할 수 있는 리소스를 프로비저닝합니다. 이러한 가상 머신(VM) 환경에서는 컨테이너를 실행할 수 있으나 컨테이너가 가상 환경에 연결되어 있지는 않습니다. Red Hat® OpenShift® Virtualization과 같은 일부 소프트웨어는 컨테이너를 오케스트레이션하고 가상 머신을 관리할 수 있지만 그렇다고 해서 두 기술이 동일하다는 의미는 아닙니다.

Red Hat은 우수한 오픈소스 커뮤니티와 함께 컨테이너 기술을 위해 많은 노력을 들이고 있습니다. Red Hat 엔지니어는 기능, 신뢰성, 보안을 개선하여 컨테이너가 계속해서 안정적으로 작동할 수 있도록 지원합니다. Red Hat은 Docker와 쿠버네티스 코드베이스를 개발하는 세계에서 두 번째 규모의 업체이며 Open Container Initiative, Cloud Native Computing Foundation과 협력하고 있습니다. 모든 오픈소스 프로젝트와 마찬가지로 Red Hat은 코드를 개발하고 개선 사항을 업스트림 코드베이스에 다시 제공하며, 기술 발전을 공유합니다.

Red Hat의 컨테이너 중심 솔루션과 교육 프로그램은 인프라와 플랫폼, 제어 권한, 그리고 컨테이너가 제공해야 할 모든 기능을 활용할 수 있는 정보를 제공합니다.

 

 

 

Icon-Red_Hat-Media_and_documents-Quotemark_Open-B-Red-RGB 속도, 효율성, 그리고 소프트웨어 개발 간소화의 진전에 따른 여러 요소로 인해 여러 산업의 기업들은 소프트웨어 개발 라이프사이클 전반에 Linux 컨테이너를 구현하려 하고 있습니다.

Source: The state of containerization: A technology adoption profile conducted by Forrester Consulting and commissioned by Red Hat

2016년 6월

추가 자료

문서

컨테이너와 VM 비교

Linux 컨테이너와 가상 머신(VM)은 다양한 IT 요소를 결합해 시스템의 나머지 부분으로부터 격리하는 패키징된 컴퓨팅 환경입니다.

문서

컨테이너 오케스트레이션이란?

컨테이너 오케스트레이션은 컨테이너의 배포, 관리, 확장, 네트워킹을 자동화합니다.

문서

Linux 컨테이너란?

Linux 컨테이너는 시스템에서 격리된 프로세스로, 이러한 프로세스를 지원하는 데 필요한 모든 파일을 제공하는 고유한 이미지에서 실행됩니다.

컨테이너에 대한 자세한 내용

제품

선택한 인프라에서 애플리케이션 출시 테스트를 완료한 통합 서비스 세트를 포함하는 엔터프라이즈 애플리케이션 플랫폼입니다.

리소스

교육

무료 교육 과정

Running Containers with Red Hat Technical Overview

무료 교육 과정

Containers, Kubernetes and Red Hat OpenShift Technical Overview

무료 교육 과정

Developing Cloud-Native Applications with Microservices Architectures