서버 자동화 관리에 오픈소스 바람

일반입력 :2013/04/02 08:54    수정: 2013/04/02 09:00

오픈소스 기반의 클라우드와 빅데이터 환경을 구축하는 노력이 국내서도 실현 가능성 측면에서 주목받는 추세다. 클라우드 구축 플랫폼 '오픈스택'이나 분산처리기술 '하둡' 환경을 구성한 사례가 일부 알려졌지만 구체적인 관리전략까지 공개되진 않았다.

해외서는 이런 오픈소스 기반의 대규모 서버인프라를 구성하고 효율적으로 관리하는 방법으로 또다른 오픈소스 기술을 활용하는 방안이 화두로 떠올랐다. 이에 오픈소스 시스템 관리 프레임워크 '셰프(Chef)'와 '퍼펫(Puppet)'이 주목된다.

그 핵심 용도는 규모를 가리지 않고, 혼재된 서버 플랫폼을 넘나들며, 사전정의된 구성을 자동 적용하고, 그 정보를 재사용 가능한 관리체제를 마련하는 것에 있다. 예측과 실행 결과를 대조, 추적가능하며 문제 해결에 필요한 시간을 줄이고 미세조정하는 것까지 포함한다.

퍼펫랩스의 퍼펫과 옵스코드의 셰프는 같은 오픈소스지만 비즈니스모델은 좀 다르다.

옵스코드는 셰프 오픈소스 기술과 별개로, 회사 인프라에 20노드까지 구성할 수 있는 호스팅 환경을 월 120달러에 제공한다. 퍼펫랩스는 엔터프라이즈 버전 퍼펫을 써야만 그래픽유저인터페이스(GUI)로 활용할 수 있고 10노드 이상 환경에서 쓰려면 비용이 들어간다. 공짜로 쓸 수 있는 퍼펫 기술은 커맨드라인 기반이다.

■옵스코드 셰프

셰프는 인프라 관리 자동화 솔루션업체 '옵스코드(Opscode)'에서 만들었다. 물리적이거나 가상화된 인프라 또는 클라우드 영역에 서버 구축과 애플리케이션 배포 작업을 자동화시킬 수 있게 해준다. 셰프를 통해 1대 이상의 워크스테이션과 각각의 서버와 모든 노드에 대한 구성 및 유지관리가 이뤄진다.

셰프 정식판은 지난 2009년 1월 처음 공개됐다. 만 3년이 지난 현재 온라인 프리젠테이션 업체 프레지(Prezi), 실시간 기계데이터 처리소프트웨어 업체 스플렁크 등 국내에도 이름이 알려진 글로벌업체 수십곳이 상용 서비스에 활용중이다.

셰프는 올초 오픈스택 클라우드 인스턴스 관리를 자동화할 수 있는 기술로 소개된데 이어, 소셜네트워크서비스(SNS)업체 페이스북에서 쓰는 중이라 밝혀 유명세를 탔다. 서버 몇대나 수십대 정도의 중소규모 환경뿐 아니라 수천 내지 수만대 가량의 '서버군(Farm)'을 관리하기에도 쓸만한 것으로 알려졌다.

옵스코드는 지난 2월 페이스북이 웹영역 인프라의 수천대 서버 관리와 구성을 자동화하기 위해 유료서비스 '프라이빗셰프'를 도입했다고 밝혔다. 페이스북 인프라팀이 이를 써서 관리자와 개발자 수천명에 연결되는 접근 권한과 서버 구성을 통합 관리할 수 있게 했다는 설명이다.

그보다 앞서 지난 1월 '주문형 오픈스택 인스턴스'를 쓰기 위한 시범 기술 '테스트키친' 0.7.0 버전을 공개하기도 했다. 테스트키친은 셰프에 쓰이는 '쿡북(cookbook)'을 만드는 개발자들이 그 정보를 실제 인프라에 적용하기 전에 검증하기 위한 도구다.

쿡북은 그에 포함되는 '레시피(recipes)'와 함께, 셰프로 구성된 인프라에서 실제 관리 작업을 수행하기 전에 각 노드가 어떻게 구성돼야 하는지 알려주는 정보를 담는다. 레시피는 자원이 관리되는 순서를 포함한다. 레시피, 메타데이터, 라이브러리, 템플릿을 묶어놓은 것이 쿡북이다.

셰프 환경은 서버, 인덱서, 클라이언트, 3가지로 구성된다. 모든 노드에 설치된 클라이언트는 노드 인증, 쿡북 동기화와 컴파일 및 실행을 담당한다. 셰프 서버는 노드 인증과 설정, 노드에 쿡북을 배치하는 작업, 인덱스 기능 사용을 맡는다.

■퍼펫랩스 퍼펫

퍼펫은 IT자동화 소프트웨어업체 '퍼펫랩스(Puppet Labs)'에서 만들었다. 특정 운영체제(OS)에 종속된 명령어 대신 자체 시스템 구성 언어를 써서 각 사용자, 서비스, 패키지를 관리하는 모델기반의 IT자동화 도구로 묘사된다. 유명 리눅스 배포판 저장소에서 'APT'나 'YUM' 패키지 형태로 내려받아 쓸 수 있다.

퍼펫은 오픈소스 버전과 그에 기반한 엔터프라이즈 버전 형태로 제공된다. 오픈소스판은 지난 2005년 공개된 첫 버전부터 2.7.0 버전까지는 GPL 기반으로, 그뒤부터 지난달 4일 공개된 3.1.0 버전까지는 아파치2.0 라이선스로 제공된다. 엔터프라이즈버전은 지난 2011년 2월 첫선을 보였다.

퍼펫랩스 설명에 따르면 퍼펫이 구동되는 환경은 모든 주요 리눅스 배포판, 솔라리스와 HP-UX와 AIX같은 주요 유닉스플랫폼, 마이크로소프트(MS) 윈도를 아우른다. 물리적인 인프라 뿐아니라 클라우드와 하둡 기반 환경도 다룰 수 있다. 아마존EC2에 특화된 이미지 '리눅스AMI'에도 퍼펫이 포함돼 있다.

퍼펫을 쓰면 인프라에 필수패키지를 자동적으로 설치한 뒤 연관 서비스를 시작하고 관리자가 의도한 상태로 통제할 수 있다. 일례로 구글은 서비스운영단을 제외한 사내 모든 리눅스 및 맥OS 기반 데스크톱, 노트북, 서버 인프라를 퍼펫으로 관리한다. 이밖에 트위터, 징가, 델, 뉴욕증권거래소 등이 사용중이다.

퍼펫은 목표 인프라 상태를 '정의'하고, 변화를 실제 인프라에 적용하기 전에 구성 내용을 '모의 수행'하고, 이후 그 설정을 자동으로 '적용'하고, 그 결과와 당초 의도한 상태간의 차이를 '보고'하는 방식으로 작동한다. 업그레이드, 아카이브설치, 파일구성변경, 서비스재시작이 필요한 노드를 알려 준다.

퍼펫랩스는 '퍼펫포지'라는 온라인 장터를 운영한다. 여기서 사용자들이 내려받을 수 있는 사전정의된 서버구성정보 모듈 900여개를 제공한다. 사용자들은 1번 정의한 구성을 물리, 가상, 클라우드 환경에 재사용할 수 있다. 몇몇 모듈을 통합해 공통구성을 공유하는 완전한 애플리케이션 구성스택을 짤 수 있다.

지난 2010년 1월 퍼펫랩스는 어도비와 함께 하둡 관리용 모듈을 내놓기로 협력한다고 밝혔다. 당시 어도비 컴퓨터과학자 크리스천 이바스쿠는 하둡을 관리하기 위해 수작업보다 퍼펫을 쓰는 방향을 진지하게 고려중이라 언급했다.

■클라우드의 최전선 '디봅스'

지난달초 한 리눅스 전문미디어는 이 2가지 기술을 '엔터프라이즈IT 분야 트렌드를 이끄는 인프라 관리 자동화 프레임워크'라 묘사하며 이를 활용해 IT운영시 더 빠르고 원만하게 소프트웨어와 서비스를 배포할 수 있다고 전했다.

그에 따르면 오픈소스 운영기술을 쓰는 것은 클라우드 플랫폼 확산에 따라 중요성이 커진 '개발 운영 병행체제(Devops)'에 알맞은 해법으로 인식되고 있다. 셰프와 퍼펫 모두 기존 데이터센터나 가상화 환경, 퍼블릭 및 프라이빗클라우드 자원을 다루기 위해 더 현대적이며 더 자동화된 시스템 관리 기법을 찾는 조직이 무난하게 시작할 수 있는 수준으로 성숙됐다는 평가다.

해외서는 2가지 기술의 중요성을 뒷받침하는 몇가지 근거를 꼽는다. 어떤 인프라든 점차 다양한 언어, 프레임워크, 데이터베이스(DB), 도구로 구성돼 단일 언어로 프로그래밍하기 어렵다. 이런 여러 기술 요소를 아우르는 전략이 현업 개발과 IT운영부문의 애플리케이션을 만드는 영역에 절실한 분위기다.

관련기사

즉 HP, IBM, BMC소프트웨어, CA테크놀로지스같은 상용 솔루션 업체들도 개발과 운영을 병행하는 고객사를 지원하기 위해, 기존 제품을 셰프와 퍼펫 또는 다른 오픈소스 관리도구와 통합하거나 함께 지원하고 또는 자체 기술을 개발하는 것을 넘어 특화 기술 보유업체를 인수하는 움직임을 보인다는 것이다.

반면 국내서는 상용 솔루션 업체들이 개발과 운영을 병행하는 해외 트렌드에서 이들 오픈소스 기술이 중요하게 대두되고 있다는 점을 알리는 데 소극적인 편이다. 사실 셰프와 퍼펫 모두 국내서 많이 쓰이진 않는 프로그래밍 언어 '루비' 기반이라 이를 전문적으로 다룰 수 있는 개발자를 찾기 어려울 수도 있다.