2017.04.10

개발자가 컨테이너를 좋아하는 5가지 이유

Paul Rubens | CIO
리눅스 컨테이너가 등장한지 약 10년이 지났다. 그러나 많은 개발자가 이 기술을 본격 이용하기 시작한 것은 도커(Docker)가 나온 4년 전이다. 지금은 곳곳에서 컨테이너를 사용하고 있고, 그 인기가 계속 높아지고 있다.



VM웨어(VMware)와 마이크로소프트(Microsoft) 등 주요 서버 가상화 업체가 이 기술을 수용하면서 컨테이너는 이제 IT 지형의 중요한 일부를 차지하게 됐다. VM웨어는 v스피어(vSphere) 가상화 인프라 관리 시스템 내부에 컨테이너를 배포, 실행, 관리하는 기능을 제공한다. 윈도우 서버에 하이퍼-V 서버 가상화 기술을 통합한 마이크로소프트는 윈도우 서버 컨테이너를 지원하기 위해 도커와 제휴해 윈도우 10 커널에 컨테이너화 관련 기능을 추가했다.

과거 애자일 조직이 원했던 기술은 가상머신(VM)이었다. 그러나 이제는 이런 기업 상당수가 가상화 전략을 재고하고 있으며, VM 대신 혹은 VM에 추가해 컨테이너 기술을 도입하려 하고 있다.

컨테이너에 가장 주목하는 IT 직종 중 하나는 소프트웨어 개발자이다. 도커는 설치와 사용이 쉽고 흔한 작업을 자동화 할 수 있고, 도큐멘테이션과 코드 스니핏(Code snippet)이 유용하며 오픈소스이기 때문이다. 그러나 개발자가 도커를 좋아하는 또 다른 이유가 있다. 이를 다음 5가지로 정리했다.

1. 마이크로서비스의 유행
최근 개발 영역에서는 단일체인 앱 대신 여러 독립적인 구성 요소에서 애플리케이션(또는 서비스)을 구축하는 마이크로서비스 아키텍처 트렌드가 부상하고 있다. 이런 구성 요소는 컨테이너에 적합한 경우가 많다. 포레스터 리서치의 애널리스트 데이브 바톨레티는 "개발자가 컨테이너를 좋아하는 이유는 마이크로서비스 아키텍처로 더 쉽게 옮겨갈 수 있기 때문이다"라고 말했다.

사실 컨테이너와 마이크로서비스 아키텍처의 관계는 '복잡'하다. 시장조사업체 IDC의 소프트웨어 개발 담당 애널리스트 알 질렌에 따르면, 둘은 상호 의존적인 관계이다. 그는 "컨테이너는 마이크로서비스를 지원하고, 마이크로서비스는 컨테이너와 잘 어울린다"라고 말했다. 다시 말해, 개발자는 쉽게 마이크로서비스를 구축할 수 있어 컨테이너를 좋아하고 동시에 컨테이너를 쉽게 구현할 수 있어 마이크로서비스 아키텍처가 인기를 끌고 있다. 즉 '닭이 먼저냐, 달걀이 먼저냐'와 같은 관계이다.

2. 데브옵스(DevOps)의 부상
개발자가 마이크로서비스를 좋아하는 또 다른 이유는 데브옵스이다. 질렌은 "앱을 API(Application Programming Interface)를 통해 상호작용하는 작은 논리 '조각'으로 분리하거나 마이크로서비스를 구축하면 더 쉽게 데브옵스를 구현할 수 있다"라고 말했다.

개발자 대부분은 코드 개발만 신경 쓰고, 애플리케이션 적용 방법은 신경 쓰지 않는다고 생각할 수도 있다. 그러나 데브옵스 프로세스가 더 보편화되고 있으며, 컨테이너화는 이를 더 쉽게 적용(배포)을 할 수 있도록 도와준다. 노트북 컴퓨터에서 데이터센터, 클라우드까지 어떤 환경에서든 컨테이너를 실행시킬 수 있기 때문이다.

도커로 자동화 할 수 있는 데브옵스 작업도 많다. 바톨레티는 "컨테이너 없이도 데브옵스를 구현할 수 있다. 그러나 이 둘은 서로 보완적이다. 컨테이너 인프라에서 데브옵스를 시도하기가 더 쉽다"라고 말했다.


3. 개발자의 '게으름'
프로그래밍 언어인 펄(Perl)을 만든 래리 월은 유능한 프로그래머의 3대 '미덕' 중 하나로 '게으름'을 꼽는다. 나머지 둘은 '성급함'과 '오만'이다. 여기에서 '게으름'이란 개발자가 가능한 한 노동 시간을 줄이는 툴과 자동화 기능을 적극 이용한다는 의미이다. 그리고 컨테이너는 쉽게 '게으름'을 부리도록 도와준다.

바톨레티는 "코드를 개발한 후 테스트를 했는데 문제가 생겼고, 개발자는 리눅스 환경이 바뀐 것이 원인이라는 점을 알게 됐다고 하자. 이 경우 기존에는 테스트 환경을 재구성하는 것이 유일한 방법이었다. 그러나 컨테이너를 이용해 코드를 작성하면 이런 재구성 없이 테스트할 수 있다"라고 말했다.

도커는 또 개발자가 '게으름'을 피울 수 있도록 앱 개발 과정의 천편일률적 반복 작업 상당수를 자동화 하는 툴을 제공한다. 도커 설정 작업이 대표적이다. 도커 머신을 이용하면 개발자가 명령 하나로 클라우드에 도커를 구현할 수 있다.

4. 오픈소스 도구의 '매력'
개발자 사이에 도커가 인기 있는 또 다른 이유는 도커가 오픈소스이고 수 많은 조력자와 파트너로 구성된 거대한 공동체를 갖고 있다는 점이다. 개발자 사이에 오픈소스 개발 도구가 인기 있는 이유는 무엇보다 개발 도구에 관심이 많고, 저마다 오픈소스 개발 도구를 개선할 수 있는 고유의 역량과 자격을 갖고 있기 때문이다.

특정 업체의 플랫폼에 종속되는 것을 꺼리는 개발자가 많다는 점도 도커 인기의 또다른 이유이다. 도커는 오픈소스 생태계의 일부이다. 예를 들어, 도커에는 스웜(Swarm)이라는 오케스트레이션 시스템이 있지만, 구글 쿠버네티스(Kubernetes) 같은 다른 오케스트레이션 시스템을 지원한다. 또 오픈 소스이므로 개발자가 원하는 오케스트레이션 시스템을 자유롭게 개발해 사용할 수도 있다.

도커 같은 컨테이너 시스템은 기업 IT 인프라의 기반 중 하나이다. 그리고 오픈소스는 문제 해결과 최적화에 큰 도움이 된다. 개발자가 '블랙박스'를 다루는 것이 아니므로 문제나 예상치 못한 동작이 발생했을 때 도커의 소스 코드를 확인하면 문제와 해결 방법을 파악할 수 있다.

5. 커리어에 대한 투자
개발자가 컨테이너와 도커를 사랑하는 마지막 이유는 '신선'하기 때문이다. 바톨레티는"개발자는 언제나 최신 도구를 경험하고 싶어한다. 커리어에 대한 투자이기 때문이다. 이력서 가장 앞 부분에 50년 된 코볼 경력을 기재하고 싶은 개발자는 많지 않을 것이다. 애자일 개발 기법이나 도커 관련 경험과 경력은 커리어에 큰 도움이 된다"라고 말했다. ciokr@idg.co.kr
2017.04.10

개발자가 컨테이너를 좋아하는 5가지 이유

Paul Rubens | CIO
리눅스 컨테이너가 등장한지 약 10년이 지났다. 그러나 많은 개발자가 이 기술을 본격 이용하기 시작한 것은 도커(Docker)가 나온 4년 전이다. 지금은 곳곳에서 컨테이너를 사용하고 있고, 그 인기가 계속 높아지고 있다.



VM웨어(VMware)와 마이크로소프트(Microsoft) 등 주요 서버 가상화 업체가 이 기술을 수용하면서 컨테이너는 이제 IT 지형의 중요한 일부를 차지하게 됐다. VM웨어는 v스피어(vSphere) 가상화 인프라 관리 시스템 내부에 컨테이너를 배포, 실행, 관리하는 기능을 제공한다. 윈도우 서버에 하이퍼-V 서버 가상화 기술을 통합한 마이크로소프트는 윈도우 서버 컨테이너를 지원하기 위해 도커와 제휴해 윈도우 10 커널에 컨테이너화 관련 기능을 추가했다.

과거 애자일 조직이 원했던 기술은 가상머신(VM)이었다. 그러나 이제는 이런 기업 상당수가 가상화 전략을 재고하고 있으며, VM 대신 혹은 VM에 추가해 컨테이너 기술을 도입하려 하고 있다.

컨테이너에 가장 주목하는 IT 직종 중 하나는 소프트웨어 개발자이다. 도커는 설치와 사용이 쉽고 흔한 작업을 자동화 할 수 있고, 도큐멘테이션과 코드 스니핏(Code snippet)이 유용하며 오픈소스이기 때문이다. 그러나 개발자가 도커를 좋아하는 또 다른 이유가 있다. 이를 다음 5가지로 정리했다.

1. 마이크로서비스의 유행
최근 개발 영역에서는 단일체인 앱 대신 여러 독립적인 구성 요소에서 애플리케이션(또는 서비스)을 구축하는 마이크로서비스 아키텍처 트렌드가 부상하고 있다. 이런 구성 요소는 컨테이너에 적합한 경우가 많다. 포레스터 리서치의 애널리스트 데이브 바톨레티는 "개발자가 컨테이너를 좋아하는 이유는 마이크로서비스 아키텍처로 더 쉽게 옮겨갈 수 있기 때문이다"라고 말했다.

사실 컨테이너와 마이크로서비스 아키텍처의 관계는 '복잡'하다. 시장조사업체 IDC의 소프트웨어 개발 담당 애널리스트 알 질렌에 따르면, 둘은 상호 의존적인 관계이다. 그는 "컨테이너는 마이크로서비스를 지원하고, 마이크로서비스는 컨테이너와 잘 어울린다"라고 말했다. 다시 말해, 개발자는 쉽게 마이크로서비스를 구축할 수 있어 컨테이너를 좋아하고 동시에 컨테이너를 쉽게 구현할 수 있어 마이크로서비스 아키텍처가 인기를 끌고 있다. 즉 '닭이 먼저냐, 달걀이 먼저냐'와 같은 관계이다.

2. 데브옵스(DevOps)의 부상
개발자가 마이크로서비스를 좋아하는 또 다른 이유는 데브옵스이다. 질렌은 "앱을 API(Application Programming Interface)를 통해 상호작용하는 작은 논리 '조각'으로 분리하거나 마이크로서비스를 구축하면 더 쉽게 데브옵스를 구현할 수 있다"라고 말했다.

개발자 대부분은 코드 개발만 신경 쓰고, 애플리케이션 적용 방법은 신경 쓰지 않는다고 생각할 수도 있다. 그러나 데브옵스 프로세스가 더 보편화되고 있으며, 컨테이너화는 이를 더 쉽게 적용(배포)을 할 수 있도록 도와준다. 노트북 컴퓨터에서 데이터센터, 클라우드까지 어떤 환경에서든 컨테이너를 실행시킬 수 있기 때문이다.

도커로 자동화 할 수 있는 데브옵스 작업도 많다. 바톨레티는 "컨테이너 없이도 데브옵스를 구현할 수 있다. 그러나 이 둘은 서로 보완적이다. 컨테이너 인프라에서 데브옵스를 시도하기가 더 쉽다"라고 말했다.


3. 개발자의 '게으름'
프로그래밍 언어인 펄(Perl)을 만든 래리 월은 유능한 프로그래머의 3대 '미덕' 중 하나로 '게으름'을 꼽는다. 나머지 둘은 '성급함'과 '오만'이다. 여기에서 '게으름'이란 개발자가 가능한 한 노동 시간을 줄이는 툴과 자동화 기능을 적극 이용한다는 의미이다. 그리고 컨테이너는 쉽게 '게으름'을 부리도록 도와준다.

바톨레티는 "코드를 개발한 후 테스트를 했는데 문제가 생겼고, 개발자는 리눅스 환경이 바뀐 것이 원인이라는 점을 알게 됐다고 하자. 이 경우 기존에는 테스트 환경을 재구성하는 것이 유일한 방법이었다. 그러나 컨테이너를 이용해 코드를 작성하면 이런 재구성 없이 테스트할 수 있다"라고 말했다.

도커는 또 개발자가 '게으름'을 피울 수 있도록 앱 개발 과정의 천편일률적 반복 작업 상당수를 자동화 하는 툴을 제공한다. 도커 설정 작업이 대표적이다. 도커 머신을 이용하면 개발자가 명령 하나로 클라우드에 도커를 구현할 수 있다.

4. 오픈소스 도구의 '매력'
개발자 사이에 도커가 인기 있는 또 다른 이유는 도커가 오픈소스이고 수 많은 조력자와 파트너로 구성된 거대한 공동체를 갖고 있다는 점이다. 개발자 사이에 오픈소스 개발 도구가 인기 있는 이유는 무엇보다 개발 도구에 관심이 많고, 저마다 오픈소스 개발 도구를 개선할 수 있는 고유의 역량과 자격을 갖고 있기 때문이다.

특정 업체의 플랫폼에 종속되는 것을 꺼리는 개발자가 많다는 점도 도커 인기의 또다른 이유이다. 도커는 오픈소스 생태계의 일부이다. 예를 들어, 도커에는 스웜(Swarm)이라는 오케스트레이션 시스템이 있지만, 구글 쿠버네티스(Kubernetes) 같은 다른 오케스트레이션 시스템을 지원한다. 또 오픈 소스이므로 개발자가 원하는 오케스트레이션 시스템을 자유롭게 개발해 사용할 수도 있다.

도커 같은 컨테이너 시스템은 기업 IT 인프라의 기반 중 하나이다. 그리고 오픈소스는 문제 해결과 최적화에 큰 도움이 된다. 개발자가 '블랙박스'를 다루는 것이 아니므로 문제나 예상치 못한 동작이 발생했을 때 도커의 소스 코드를 확인하면 문제와 해결 방법을 파악할 수 있다.

5. 커리어에 대한 투자
개발자가 컨테이너와 도커를 사랑하는 마지막 이유는 '신선'하기 때문이다. 바톨레티는"개발자는 언제나 최신 도구를 경험하고 싶어한다. 커리어에 대한 투자이기 때문이다. 이력서 가장 앞 부분에 50년 된 코볼 경력을 기재하고 싶은 개발자는 많지 않을 것이다. 애자일 개발 기법이나 도커 관련 경험과 경력은 커리어에 큰 도움이 된다"라고 말했다. ciokr@idg.co.kr
X