새로 출범한 다음카카오에서 카카오 서비스 개발자들 사이에 오픈스택 플랫폼이 자리를 잡아가는 모습이다. 내부 개발 프로세스와 오픈스택간 궁합이 잘 맞아 활용하는 개발자들이 크게 늘었다고 한다. 이렇게 운영 노하우가 쌓인다면 실제 서비스에 적용할 날도 머지않아 보인다.
오픈스택은 요즘 주목받는 오픈소스 기반 클라우드 컴퓨팅 플랫폼이다. 많은 기업들이 클라우드 기술을 소화하고 비용을 절감하기 위해 오픈스택 도입에 관심을 보여왔다. 그러나 오픈스택을 제대로 쓰고 있다는 사례는 드물다는 지적이다.
오픈스택을 다루기가 만만치 않다는 이유에서다. 이를 감안하면 다음카카오같은 대형 인터넷서비스 업체가 오픈스택 기반 서비스를 상용화한다는 건 의미가 큰 일일 수 있다.
최근 지디넷코리아 주최로 서울 잠실 롯데호텔에서 열린 ‘제5회 클라우드프론티어’ 행사에서 다음카카오 공용준 개발자는 카카오에서의 오픈스택 활용사례를 공유했다.
2013년 초, 당시 카카오는 왜 오픈스택을 선택했고 어떻게 1년 반만에 정착시킬 수 있었을까? 공용준 개발자에 따르면 '프로그래머블 인프라가 적합한 개발문화'에 답이 있다.공용준 개발자는 먼저 프로그래머블은 개발자가 마음대로 무언가 해 볼 수 있게 해주는 것이라고 나름의 정의를 내렸다. 프로그래머블 인프라는 이를 사용하는 개발자가 자유롭고 편하게 접근하고 필요한 컴퓨팅 리소스를 생성·삭제·추가할 수 있는 환경이다.
그의 설명에 따르면 카카오에는 이런 인프라가 적합한 개발문화가 있다.
카카오에는 4명이 두 달 동안 프로토타입을 만들어봐서 성과가 있다고 판단되면 좀 더 해보고 아니면 빨리 접는 프로토타입 개발 룰이 있습니다. 인터넷 서비스들은 일단 해보기 전에 알 수 없는 것들이 많기 때문에 일단 빨리 만들어보는 것이 중요하죠.
인터넷 서비스 개발 특성상 사이클이 짧고 빠르게 돌아가는 것이 카카오 개발문화의 특징이라는 설명이다.
이런 측면에서 개발자들이 IT운영쪽에 전화로 요청할 필요 없이 마음대로 서버를 만들고 지울 수 있는 오픈스택은 카카오 개발문화와 궁합이 잘 맞는 인프라다.
프로그래머블한 인프라를 구축할 다른 대안도 있다. 하지만 카카오는 오픈스택이 아파치 라이선스로 프로젝트가 성공해 서비스에 들어간다 해도 부담이 없고, 오픈스택 커뮤니티가 크고 안정적이며 오픈스택 기저에 깔려 있는 KVM에 개발자들이 친숙하다”는 점 등을 이유로 오픈스택을 선택했다.
공용준 개발자는 카카오가 현재 구성하고 있는 오픈스택 아키텍처도 소개했다. 현재 사용하고 있는 리소스는 vCPU 약 2000, 메모리 2테라바이트(TB), 디스크 26.7TB 정도이다.
카카오는 오픈스택 아이스하우스 스테이블 릴리즈2 버전을 사용중이다. 베이스 OS로는 지난해 우분투12.04 버전을 적용했다. 대부분의 서버가 여기에서 돌아간다. 하지만 최근 도입한 것들은 우분투 14.04 버전에 기반한다.
그는 14.04를 쓸 때 베이스 이미지에 있는 커널은 KVM에 버그가 있기 때문에 상위 버전 커널을 사용해야 안전하게 운영할 수 있다고 조언했다.
컴퓨팅 관련 아키텍처를 좀 더 자세히 살펴보면 하이퍼바이저로는 KVM을 쓰고 있다. VM 루트 디스크로 로컬 디스크를 사용중이다. 구성돼 있는 서버에 평균 하이퍼바이저 CPU는 8.5개다. 6개부터 12개 까지 다양한 서버군들이 있다고 한다. 평균 하이퍼바이저의 메모리는 20GB가 좀 넘는다.
네트워크는 뉴트론, 스토리지는 신더와 백엔드로 솁(Cehp)을 사용하고 있다. 컨피규레이션 코드 자동화를 위해 셰프(Chef)도 사용하고 있다. VM관리는 레거시 시스템과 동일한 모니터 및 메니지먼트 시스템을 사용해 관리 편의성을 높였다.
그의 설명에 따르면 다음카카오에서 오픈스택을 활용한 개발 프로세스는 이제 제법 자리를 자리잡았다. 올해 초와 비교하면 오픈스택을 프로토타입 서비스 개발에 사용하는 경우가 2배 정도 늘었다.
처음에는 작게 시작해서 두 달을 해보고 성공하면 리사이즈를 하거나 인스턴스를 더 많이 늘려서 서비스를 강화하는 형태로 쓰고 있습니다. 만들어 봤더니 생각했던 것과 완전 다르다고 판단되면 프로젝트도 덮는 거고 가상머신(VM)도 지워버리면 됩니다.
API를 활용하는 고급 사용자들도 늘었다. 처음으로 오픈스택을 사용할 때는 호라이즌이라는 대시보드에 들어와서 VM을 만드는 식으로 사용했는데, 개발자들이 API가 있다는 사실을 알게 되면서 API를 통해서 쉽게 VM을 만들고 인스턴스를 생성하고 프로비저닝을하고 있습니다. 인스턴스를 생성하는 J클라우드, 로컬에서 개발하다 오픈스택으로 바로 올릴 수 있게 해주는 베이그런트, 인메모리기반 프로비저닝을 위해 쓰는 셰프 제로 등을 대표적으로 활용하고 있습니다.”
지난 2월에만 해도 오픈스택 한국커뮤니티가 주최한 세미나에서 카카오 최정대 엔지니어는 오픈스택 API를 쓰는 고급 유저는 국내 별로 없다, 오픈스택에서 테스트를 자동화 시키는 일도 해보고 싶다고 도입 초기 상황을 설명한 바 있다. (☞관련기사)
관련기사
- 레드햇, 리눅스에서 오픈스택으로 중심 이동2014.10.06
- 한국HP, 7월 1일 오픈스택 고객 세미나2014.10.06
- 카카오도 오픈스택 도입?…전담팀 꾸려2014.10.06
- 오픈스택의 혁신파워? "사용자 참여를 보라"2014.10.06
다음카카오가 빠르게 오픈스택을 받아 들일 수 있었던 이유는 빠르게 진행되는 개발문화 이면에 실패에 대한 부담을 주지 않는 분위기가 회사 전체에 깔려 있기 때문이다.
공용준 개발자는 실수를 하면 물론 책임을 져야 하지만 실수를 해도 괜찮다는 문화를 바탕으로 오픈스택을 받아들이게 됐다고 말했다.