Build, Manage and Secure
Your Apps Anywhere.
The Dev to Ops Choice for Container Platforms
선도적 인 기업은 기존 애플리케이션에서 최첨단 마이크로 서비스에 이르기까지 모든 애플리케이션을 구축, 관리 및 보호하기 위해 컨테이너 플랫폼에 의존합니다. 어디서나 배포하십시오.
컨테이너란 무엇인가? - 표준화된 소프트웨어 단위
Docker 컨테이너 이미지는 코드, 런타임, 시스템 도구, 시스템 라이브러리 및 설정과 같이 응용 프로그램을 실행하는 데 필요한 모든 것을 포함하는 경량의 독립 실행 형 소프트웨어 패키지입니다.
컨테이너 이미지는 런타임에 컨테이너가되고 Docker 컨테이너의 경우 이미지가 Docker Engine에서 실행될 때 컨테이너가됩니다 .
Linux 및 Windows 기반 응용 프로그램 모두에서 사용할 수있는 컨테이너 화 소프트웨어는 인프라에 관계없이 항상 동일하게 실행됩니다.
컨테이너는 환경에서 소프트웨어를 분리하고 개발과 준비 사이의 차이점에도 불구하고 소프트웨어가 균일하게 작동하도록 보장합니다.
Docker Engine에서 실행되는 Docker 컨테이너 :
-
표준 : Docker는 컨테이너의 산업 표준을 만들어 어디서나 휴대 할 수있었습니다.
-
경량 : 컨테이너는 머신의 OS 시스템 커널을 공유하므로 애플리케이션 당 OS가 필요하지 않으므로 서버 효율성이 향상되고 서버 및 라이센스 비용이 절감됩니다.
-
보안 성 : 애플리케이션이 컨테이너에서 더 안전하며 Docker가 업계에서 가장 강력한 기본 격리 기능을 제공합니다.
컨테이너와 가상머신의 비교
컨테이너와 가상 컴퓨터는 리소스 격리 및 할당 이점이 비슷하지만 컨테이너가 하드웨어가 아닌 운영 체제를 가상화하기 때문에 기능이 다르게 작동합니다. 컨테이너는보다 휴대 가능하고 효율적입니다.
컨테이너
-
코드와 종속성을 함께 패키징하는 앱 계층의 추상화
-
여러 컨테이너를 동일한 시스템에서 실행
-
OS 커널을 다른 컨테이너와 공유
-
사용자 공간에서 분리 된 프로세스로 실행
-
VM보다 공간을 적게 차지(컨테이너 이미지 수십 MB)
-
더 많은 응용 프로그램을 처리 할 수 있으며 더 적은 VM 및 운영 체제가 필요
가상 머신 (VM)
-
하나의 서버를 여러 서버로 전환시키는 물리적 하드웨어의 추상화
-
하이퍼 바이저를 사용하면 여러 대의 VM을 단일 시스템에서 실행
-
각 VM에는 운영 체제의 전체 복사본, 응용 프로그램, 필요한 바이너리 및 라이브러리가 포함되어 있으며 수십 GB를 사용
-
VM도 부팅 속도가 느릴 수 있습니다.
컨테이너 표준 및 업계 리더십
2013 년에 Docker가 출시 됨으로써 소프트웨어 컨테이너를 민주화함으로써 애플리케이션 개발의 혁명이 시작되었습니다.
Docker는 이식성 있고 유연하며 배포하기 쉬운 Linux 컨테이너 기술을 개발했습니다.
Docker는 출처가 밝혀지지 않은 libcontainer를 오픈했으며 기여도가있는 전세계 커뮤니티와 파트너 관계를 맺어 개발을 진전 시켰습니다. 2015 년 6 월 Docker는 OCI (Container Container Initiative)에 컨테이너 이미지 사양 및 런타임 코드 (runc)를 기증하여 컨테이너 생태계가 성장하고 성숙 해짐에 따라 표준화를 수립했습니다.
Docker는이 진화에 이어 Docker가 2017 년에 CNCF (Cloud Native Computing Foundation)에 기증 한 containerd 프로젝트를 계속해서 제공합니다. containerd는 단순성, 견고성에 중점을두고 작성된 업계 표준 컨테이너 런타임입니다. 및 이식성. containerd는 Docker Engine의 핵심 컨테이너 런타임입니다.
기업 IT ‘민첩성’ 높이려면?
‘컨테이너’는 현재 기업 IT 환경에서 도입 논의가 가장 활발하게 이뤄지는 기술 중 하나다.
컨테이너는 VM웨어와 같은 하드웨어 가상화와 종종 비교되는데, VM웨어의 가상화 솔루션이 하드웨어 레벨에서 물리적인 컴퓨팅 자원을 쪼개어 쓰는 것이라면, 컨테이너는 운영체제(OS) 레벨의 가상화다.
즉, 컨테이너는 OS 위에 설치돼, 그 위에 여러 개의 격리된 공간을 만드는 개념이다. 컨테이너에는 어떤 애플리케이션(앱)을 넣을 수 있다. 컨테이너는 패키징 기술이 핵심으로, DB와 같은 소프트웨어와 앱을 집어넣은 하나의 파일(이미지)이다. OS 상에 특정 앱을 위한 별도의 공간을 만드는 셈이다.
현재 도커나 쿠버네티스, 아파치 메소스 등과 같은 컨테이너 관련 기술은 모두 오픈소스다. 컨테이너 애플리케이션 배포를 자동화해주는 엔진인 도커나 컨테이너화된 애플리케이션 관리를 위한 쿠버네티스 등은 현재 컨테이너 환경에서 가장 많이 사용되는 도구다. 이는 일반적인 물리적 인프라(시스템)는 물론이고 여러 퍼블릭 클라우드 환경에서도 활용이 가능하다. 클라우드 환경으로의 전환에 따라 컨테이너 도입도 늘고 있다.
컨테이너 도입의 가장 큰 혜택은 기업 IT환경의 민첩성을 높일 수 있다는 점이다.
컨테이너를 쓰면 개발자는 서버 OS의 커널을 공유하고, 하드웨어 설정이나 바이너리, 데이터베이스(DB) 등 모든 것이 들어있는 이미지를 만들어낼 수 있다. 운영자 입장에선 개발자가 만든 이 컨테이너 이미지를 띄우기만 하면 된다. 즉, IT개발자와 운영자 입장에선 역할을 나눌 수 있어, 시스템에 문제가 생길 경우 명확한 해결이 가능하다.
한국레드햇 김현수 이사는 “보통 개발 환경에서 만들어진 소스(앱)를 운영환경에 배포할 경우 항상 문제가 생긴다”며 “이럴 경우 개발자들은 운영환경이 잘못됐다고 책임을 떠넘기고, 운영자들은 앱이 잘못됐다고 서로 핑퐁을 친다”고 말했다.
하지만 컨테이너를 활용하면 명확한 구분이 가능하다. 개발자들은 애플리케이션 실행에 필요한 모든 파일을 패키징한 컨테이너 이미지만 만들어 내면 되고, 운영자들은개 개발자가 만든 이미지를 띄우고, 인프라와 OS까지만 견고하게 관리하면 그만이다.
문제가 생길 경우, 각자의 영역에서 문제점을 발견해 쉽게 조치를 취할 수 있다. 애플리케이션 배포 자동화도 가능하다. 컨테이너의 롤링 디플로이먼트와 같은 기능을 통해 다운타임 없이 자동으로 애플리케이션 교체(재배포)가 가능하다.
비즈니르 리더 입장에선 효율적인 데브옵스(DevOpS)가 가능하다. 김 이사는 “개발자와 운영자의 협업을 통해 자동화된 프로세스를 만들 수 있어 기업 IT환경의 민첩성을 높일 수 있다”고 강조했다.
레드햇의 경우, ‘오픈시프트 컨테이너 플랫폼’을 통해 기업의 컨테이너 환경을 적극 지원하고 있다. 물리적인 인프라(베어베탈)부터 마이크로소프트(MS)나 IBM, 구글과 같은 퍼블릭 클라우드 등 어떤 환경, 어떤 애플리케이션에서도 실행이 가능하다.
2015년 구글과의 협력을 통해 쿠버네티스를 탑재했으며, 올 초에는 컨테이너 표준 근간기술을 확보한 코어OS를 인수했으며, 조만 레드햇 아토믹과 경량 컨테이너 리눅스를 통합한 ‘레드햇 코어OS’도 출시할 예정이다.
한편 기업의 컨테이너 기술 채택이 늘면서 기존 가상머신(VM)의 지위도 위협받고 있다.
실제 최근 조사에 따르면 지난해 기준 도커 등 컨테이너 엔진을 쓰거나 도입 검토 중인 기업 비중은 전체의 67%에 달했다. 또 베어메탈 컨테이너 개발업체인 디아맨티가 발표한 ‘2018 컨테이너 적용 벤치마크 설문조사’에 따르면, 응답자의 44%는 VM을 컨테이너로 교체할 계획을 세웠다고 답했다. 교체의 주된 이유는 가상화 솔루션의 라이선스 비용이 가장 컸다.
물론 현재 VM웨어의 서버 가상화 솔루션인 v스피어에서도 컨테이너 사용이 가능해 컨테이너가 VM을 다체한다고 보기엔 무리가 있다. 하지만 위의 조사처럼 라이선스 비용 부담 때문에 컨테이너 도입을 하는 기업도 있는 만큼, VM웨어 등에 일부 타격이 있는 것도 사실이다.
이밖에 응답자의 47%가 컨테이너를 현재 운영 중인 시스템 환경에 배포했거나 이미 적용했다고 답했다. 대부분이 비용절감 및 애플리케이션의 이동 편의성 때문이 컨테이너를 도입한 것으로 분석됐다. 가장 많이 채택된 컨테이너 기술은 도커와 쿠버네티스 순이었으며 주로 클라우드 네이티브 애플리케이션을 위한 용도로 활용하고 있는 것으로 나타났다.
참고자료 : http://www.ddaily.co.kr/news/article.html?no=172590