완벽한 데스옵스를 위한 7가지 유용한 도구

InfoWorld

과거에는 개발자와 서비스 운영자의 관계가 좋지 않은 경우가 다반사였다. 프로덕션 코드는 개발자가 원하는 만큼 빨리 업데이트되는 법이 없었고, 원화한 서버 운영을 책임지는 관리자는 절차를 생략하고 서버 요청을 쌓아 올리는 개발자의 성급함에 짜증을 내기 일쑤였다.

그러나 데브옵스(Devops)의 등장 이후 둘 사이의 간극을 메꾸고 구성 관리부터 애플리케이션 이식성에 이르는 다양한 서비스를 제공하는 도구가 나오면서 개발자와 운영자는 더 이상 반목할 필요가 없어졌다. 데브옵스를 포용하는 조직이라면 마땅히 관심을 가져야 할 유용한 도구들을 살펴보고자 한다. editor@itworld.co.kr

Credit: iStockphoto

아틀라스(Atlas) 하시코프(HashiCorp)가 새로 출시한 아틀라스는 구성 관리와 서비스 검색 외에 서버와 컨테이너, 가상 머신을 포함한 인프라 대한 시야를 제공한다. 하시코프의 오픈 소스 프로젝트인 베이그랜트(Vagrant), 패커(Packer), 서프(Serf), 컨설(Consul), 테라폼(Terraform)을 기반으로 하는 사유 폐쇄형 소스 프로젝트인 아틀라스는 AWS, 구글 컴퓨트 엔진, 애저, 오픈스택을 포함한 다양한 클라우드 서비스에서 데브옵스를 가능하게 해주며 애플리케이션 개발, 배포, 유지관리를 위한 대시보드를 제공한다. 리튬 테크놀로지스(Lithium Technologies)의 수석 운영 엔지니어인 저스틴 프랭크는 베이그랜트 사용자로, 현재 고객 참여(customer engagement) 플랫폼용으로 아틀라스를 고려 중이다. 프랭크가 관심을 가진 아틀라스의 용도는 지속적인 통합과 배포다. 프랭크는 “젠킨스(Jenkins), 트래비스(Travis), 뱀부(Bamboo) 등 많은 도구가 있지만 이러한 도구들은 최종 과정인 배포를 처리할 수 없다”고 말했다. PC용 아틀라스는 올해 상반기 중에 출시될 전망이다.

셰프(Chef) 셰프는 ‘레시피’라는 짧고 반복 가능한 스크립트를 통해 인프라 구축, 배포, 관리를 자동화하는 시스템 및 클라우드 인프라 프레임워크다. 그러나 셰프의 진정한 위력은 플러그 형태 ‘쿡북(cookboos)’이라는 구성 모듈에 있다. 셰프 커뮤니티에는 이러한 모듈이 무려 2,000개 가까이 있다. 유명한 셰프 사용 기업인 페이스북은 최근 테스트 프레임워크인 테이스트 테스터(Taste Tester), 깃(Git)과 같은 소스코드 저장소를 모니터링하고 로컬 셰프 서버를 동기화 상태로 유지하는 그로서리 딜리버리(Grocery Deliver)를 포함한 자체 셰프 쿡북의 일부를 오픈소스화했다. 펜실베이니아 대학 와튼 스쿨 역시 셰프를 사용한다. 이 대학의 기술 이사인 산제이 모디는 셰프 웹 사이트에 있는 사례 연구에서 “셰프는 다른 방법을 사용할 경우 시간과 리소스가 많이 소모될 복잡한 작업을 자동화해준다. 더 중요한 점은 이를 통해 혁신과 서비스 품질 개선에 집중할 수 있게 된다는 것”이라며, “또한 조직 전반에 걸쳐 협업과 효율성 제고의 기회도 넓어진다”고 말했다. 와튼 스쿨은 셰프를 사용하여 아마존 EC2 리소스, 리눅스 노드, 로컬 가상 머신을 위한 구성 관리를 자동화한다.

도커(Docker) 도커는 애플리케이션이 여러 플랫폼 사이를 오갈 수 있는 독립적인 유닛으로 실행되는 컨테이너화 기술을 통해 애플리케이션에 이식성을 부여한다. 도커는 가벼운 런타임 및 패키징 도구인 도커 엔진과 애플리케이션 공유 및 워크플로 자동화를 위한 클라우드 서비스인 도커 허브로 구성된다. 도커 웹 사이트에 올라온 사례 연구에서 옐프(Yelp)의 엔지니어링 이사인 샘 이튼은 “도커는 옐프의 차세대 테스트 및 서비스 관리 인프라에서 핵심적인 역할을 해왔다”며, “컨테이너의 종속성 격리와 빠른 가동 덕분에 개발 주기가 단축되고 테스트 속도가 4배 이상 빨라졌다”고 밝혔다.

퍼펫(Puppet) 퍼펫 랩스(Puppet Labs)의 퍼펫 엔터프라이즈(Puppet Enterprise)는 기기와 소프트웨어의 구성/관리를 자동화하는 데이터 센터 오케스트레이션 기능을 제공한다. 최신 3.7 버전의 특징은 IT 자동화를 위한 전용 애플리케이션인 퍼펫 앱이다. 여기에는 변경이 잦은 다수의 시스템 관리를 위한 노드 매니저(Node Manager)도 포함된다. 퍼펫 오픈소스 버전도 있다. 퍼펫 웹 사이트에 있는 동영상 추천사에서 스탠포드 대학의 베스 새들러는 “스탠포드 대학은 퍼펫 오픈 소스 버전을 사용해서 새로운 종류의 디지털 도서관 서비스를 구축하기 위한 소프트웨어 개발 작업과, 이러한 서비스의 높은 성능을 유지하기 위한 시스템 관리 작업 사이의 간극을 연결한다”고 말했다. 새들러에 따르면 개발자는 시스템 관리에, 시스템 관리자는 소프트웨어 개발에 더 관여하게 됨으로써 더 빠른 애플리케이션 개발이 가능해졌다고 한다.

솔트스택(SaltStack) 솔트스택은 데이터 자동화, 서버 프로비저닝, 클라우드 구축, 애플리케이션 구성을 위한 시스템 관리 기능을 제공한다. 이벤트 중심의 클라우드 인프라 자동화 도구로서 데브옵스 워크플로 내에서 작업을 자동화할 수 있다. 데저렛 디지털 미디어(Deseret Digital Media)는 200개의 가상 머신으로 프로덕션 및 스테이징 환경을 운영하는데, 2년 전부터 솔트스택을 사용해 이를 자동화하고 있다. 데저렛 디지털의 개발 이사인 저스틴 카모니는 “솔트스택을 통해 개발자들의 운영 접근성이 훨씬 더 높아졌다”고 말했다. 데저릿 디지털에는 3명의 운영 담당자와 30명의 개발자가 있다. 이들은 솔트스택을 통해 신규 서버 프로비저닝과 같은 운영에 참여할 수 있다. 카모니는 “이전에는 운영자와 개발자의 사이가 항상 좋지 않았다”고 말했다. 솔트스택은 서버 관리를 위한 공통적인 방법과 공통적인 언어를 제공함으로써 이 두 그룹 사이의 간극을 연결해준다.

스크립트록 가드레일(ScriptRock GuardRail) 가드레일은 구성 모니터링 기능을 제공하며 기기 구성 상태를 지속적으로 감시한다. 사용자는 이를 통해 프로덕션 환경이 QA, 테스트, 개발 환경과 동일한지 확인할 수 있다. 에자일 프로젝트 관리 플랫폼을 만드는 버전원(VersionOne)은 구성 드리프트(configuration drift)와 자동화라는 과제에 직면한 후 가드레일을 선택했다. 한 사례 연구에서 버전원 제품 관리자인 이안 부캐넌는 “개발자들은 자동화를 더 쉽게 구현하기 위해 지름길을 사용했다. 즉, 새 에이전트에서 빌드를 실행하기 위해 다른 빌드에서 작동하던 부분들을 변경했다. 여러 빌드 에이전트를 사용하여 가능한 여러 가지 일들이 인프라의 불안정함으로 인해 제약을 받았다”며 “가드레일을 통해 이제 모든 빌드 에이전트가 어떻게 구성되는지 파악할 수 있으므로 에이전트를 필요한 만큼 안정적으로 확장할 수 있다”고 말했다. 버전원은 구성 드리프트에 대한 시야를 확보했으며 기대 사항을 문서화하고 사람이 판독할 수 있는 테스트를 구축했다. 결과적으로는 정규직으로 고용한 테스터 한 명에 해당하는 비용을 절감하고 있다.

스플렁크(Splunk) 스플렁크는 애플리케이션 라이프사이클 전반에 걸쳐 실시간으로 문제를 찾고 해결하기 위한 도구다. 개발자는 프로덕션 시스템에 접근하지 않고도 프로덕션 환경의 데이터를 시각화할 수 있다. 스플렁크는 지속적인 통합 및 배포를 포함한 데브옵스 프로세스를 도입하는 데 도움된다. 배전소 운영업체용 에너지 인텔리전스 소프트웨어를 제공하는 엔터NOC(EnterNOC)는 5년째 스플렁크를 사용하고 있다. 엔터NOC의 수석 엔지니어인 제임스 니콜은 “스플렁크는 프로덕션 시스템을 운영하는 방식을 근본적으로 바꿔놓았다”며 “기술직과 비기술직 사람들 모두 복잡한 시스템에 대한 선명한 시야를 확보할 수 있게 됐다. 지금은 VP, 개발 관리자, 헬프데스크 운영자가 대시보드와 알림을 설정하고 데이터를 살펴본다. 스플렁크가 없다면 불가능한 일”이라고 말했다.