카라 스피넬리(Kara Spinelli) 하시코프 고객 참고 관리자

[아이티데일리] 로블록스(Roblox)는 어린이와 10대 청소년에게 가장 인기 있는 게임 업체로서, 글로벌 온라인 엔터테인먼트 플랫폼을 제공하는 것은 물론, 젊은 층의 사랑을 받는 4천 만 개의 게임을 개발한 4백 만 개발자들과 커뮤니티를 형성했다. 로블록스는 회사가 빠르게 성장하면서 하시코프의 ‘노마드(Nomad)’를 활용해 글로벌 게임 플랫폼을 쉽고 안정적으로 확장하고 있다.

 로블록스의 게이머 플랫폼 이미지
로블록스의 게이머 플랫폼 이미지

로블록스 현황

◼1억명: MAU(Monthly Active Users) 200여 개 국가의 월간 실 게이머 수
◼8분미만: 애플리케이션 설치 시간
◼400명의 개발자: 노마드에 애플리케이션을 배포하는 개발자 수
◼11,000개 노드 및 카운팅: 베어메탈 및 AWS 상의 20개 노마드 클러스터에 걸쳐
◼200% 리소스 활용도: 동일 하드웨어에서 게임 서버 2배 증가
◼4명의 SRE: 노마드 관리


당면 과제

2017년, 로블록스는 빠르게 성장했으며 월간 실사용자 수(MAU, Monthly Active Users)는 3천만 명을 넘어섰다. 내부 엔지니어링 팀 역시 확대됐으며, 이에 따른 리소스 사용량과 용량 수요 및 변경 빈도가 크게 늘었다.

롭 카메론(Rob Cameron) 로블록스 인프라 담당 기술 디렉터는 이러한 회사 성장세에 맞춰 인프라를 확장해 나가는 것이 어렵다는 사실을 깨달았다. 전용 서버로 인해 리소스가 낭비되고 있었으며, 수작업 워크 플로우와 자체 개발한 툴로 인해 심각한 생산성 병목 현상이 발생했다. ‘노마드(Nomad)’를 도입하기 전, 로블록스는 다음과 같은 과제에 직면하고 있었다.

◼신규 애플리케이션 배포에 최대 8주 소요: 레거시 툴을 통한 수동 스케줄링
◼리소스 용량 추가에 최대 12주 소요: 수동으로 약 1만 대 온프레미스 서버 관리
◼연간 5백만 달러 이상의 윈도우(Windows) 라이선스 비용: 컨테이너화되지 않은 윈도우 애플리케이션 실행. 추후 리눅스로 마이그레이션 및 컨테이너화한다는 목표

롭 카메론은 로블록스가 대규모로 리소스 관리와 효율적인 스케줄링, 컨테이너 채택 및 개발자의 속도(Developer Velocity)를 수행할 수 있도록 돕는 툴, 즉 자사 인프라를 현대화하는 오케스트레이터가 필요하다는 사실을 깨달았다. 롭 카메론은 “거의 매 주말마다 로블록스의 역대 최대 주말 기록을 경신하면서, 회사 인프라가 예전 방식으로 애플리케이션 배포를 처리할 수 없는 한계 상황에 도달했다”고 인터뷰에서 밝혔다.


왜 노마드를 선택해야 하는가?

로블록스는 쿠버네티스(Kubernetes), DC/OS, 도커 스웜(Docker Swarm), 하시코프 노마드(HashiCorp Nomad) 등을 고려했다. 노마드는 다음과 같은 기준에서 가장 높은 평가를 받았다. 평가와 관련, ‘노마드는 단일 오케스트레이터로서 설치할 수 있기 때문에 마이그레이션 이전, 도중, 이후에 윈도우 및 리눅스 워크로드 모두를 원활하게 배포할 수 있었다’는 반응도 있었다.

 하시코프 ‘노마드’ 구축 개요도
하시코프 ‘노마드’ 구축 개요도

운영 단순성

‘노마드’의 단순성을 통해 로블록스는 단 4일 만에 작업 클러스터를 설정하고 베어메탈에 애플리케이션을 배포할 수 있었다. 전직 컨설턴트로서 롭 카메론은 시간 경과에 따른 유지보수 비용을 적절하게 평가하지 않고 최신 기술을 채택하는 경우에 초래되는 숨겨진 비용에 대해 경험적으로 알고 있었다. 인프라 팀은 여러 프로젝트들(컨테이너로의 마이그레이션 포함)을 수행하고 있기 때문에, 롭 카메론은 쿠버네티스와 같은 복잡한 오케스트레이터보다는 ‘노마드’의 운영 용이성과 간편한 유지보수를 높이 평가했다.

관리형 서비스가 눈길을 끌기도 했지만, 많은 소프트웨어 업체들로 인해 발생하는 클라우드 비용은 실로 엄청나며 총 매출의 50% 또는 그 이상에 달할 수 있었다. 인프라 비용을 확인하지 않았다면, 수익성 달성을 어렵게 만드는 심각한 장애 요인으로 작용했을 것이다. 로블록스는 최소한의 예산으로 자체적으로 운영하고 비용 절감에 중점을 둘 수 있는 오케스트레이터를 원했다. 노마드는 운영 담당자에게 익숙한 UX, 사용 용이성, 그리고 경량의 단일 바이너리로서 베어메탈 및 클라우드에 배포할 수 있는 기능 등을 높이 평가받았다.

유연한 워크로드 지원

로블록스의 연간 윈도우 라이선스 비용은 수천만 달러로 증가했다. 비용을 낮추기 위해 롭 카메론은 궁극적으로 회사의 윈도우 애플리케이션 부분을 마이그레이션 해야 할 것으로 예측했다. ‘노마드’의 퍼스트클래스(firstclass) 워크로드 지원은 로블록스가 32비트 윈도우에서 64비트 리눅스로 마이그레이션하는 전략에 큰 도움이 됐다.

로블록스는 리눅스로 마이그레이션함으로써 개발자 생산성을 높이고 보다 세분화된 운영 제어를 수행할 수 있게 됐다. ‘노마드’는 단일 오케스트레이터로서 설치할 수 있기 때문에 마이그레이션 이전, 도중, 이후에 윈도우 및 리눅스 워크로드 모두를 원활하게 배포할 수 있었다.


결과

현재, 로블록스는 베어메탈 및 클라우드 전반에서 20개 클러스터, 11,000개 이상의 노드에 노마드를 배포했으며 200여 개 국가의 1억 명의 MAU를 99.995%의 가동시간으로 지원하고 있다.

생산성 향상

로블록스는 추가 인원에 과도하게 의존하지 않으면서 대규모 플랫폼의 성능을 유지하기를 원했다. 노마드의 운영 단순성은 신속한 채택과 높은 생산성을 가능하게 하는 핵심 요인이다. 노마드를 통해 로블록스는 인프라를 습득하고 디버깅하며 수정하는 데 소요되는 시간을 줄일 수 있으며, 따라서 엔지니어들은 핵심 게임 업무에 더 많은 시간을 할애할 수 있게 되었다. 노마드 기술은 쉽게 습득할 수 있기 때문에, 인프라 그룹 내 다른 팀들이 노마드 배포의 관리를 지원할 수 있다.

◼8분 내에 환경 전반에 애플리케이션 배포
◼30분 내에 신규 개발자를 온보딩하여 노마드에 애플리케이션을 배포할 수 있도록 지원
◼22개 클러스터, 11,000개 이상의 노드를 위해 노마드, 컨설 및 볼트를 관리하는 4명의 SRE, 420명 이상의 내부 개발자 지원

처음 시스템 관리자가 된 직원들도 애플리케이션 배포, 컨테이너 빌드, 노마드 유지 관리 등을 수행하고 있다. IT 헬프 데스크에서 8년 간 근무한 경력의 직원이 스스로 전체 클러스터를 업그레이드했다. 이것이 바로 사람들이 이해하기를 바라는 시장 가치다.

비용 절감

올바른 기술을 이용하고 집중함으로써 로블록스는 컨테이터화 전략을 성공적으로 구현했으며 이를 통해 예산과 인력을 효율적으로 확장할 수 있었다. 레거시 게임 엔진을 컨테이너화하고, 64비트 리눅스 CPU로 업그레이드하며, 노마드를 단일 오케스트레이션 플랫폼으로 채택함으로써, 로블록스는 다음과 같은 성과를 달성했다.

◼150-200%의 리소스 활용도 - 동일한 하드웨어에서 2배의 워크로드 실행
◼마이그레이션 도중, 로블록스는 윈도우 라이선스 비용을 1천만 달러 이상 절감했다.
◼중단 없이 온프레미스 환경에서 AWS로 애플리케이션 배포 마이그레이션

아울러 어떤 추가 작업도 요구되지 않는다. 노마드를 도입함으로써 데이터센터를 AWS와 온프레미스 환경으로 분산시켰으며, AWS의 컴퓨팅을 늘리고 로컬 데이터센터의 컴퓨팅을 줄였다. 개발자들은 그 어떤 것도 이해할 필요 없이 노드에 노마드를 설치하고 애플리케이션/작업을 온프레미스에서 AWS로 조용하게 마이그레이션하고 있다.

로블록스는 컨테이너화를 추진하는 여정을 거치면서, 기술 선택의 관건은 비즈니스 가치를 극대화하고 엔지니어들이 올바른 문제를 해결할 수 있도록 역량을 부여하는 것이라는 점을 인식했다. 노마드를 도입함으로써 로블록스는 운영 오버헤드를 추가하지 않고 1억 MAU로 빠르게 확장할 수 있었다. 노마드를 구현한 플랫폼을 통해 로블록스는 전 세계 게이머들에게 서비스를 지속적으로 제공할 수 있게 됐다.

원하는 작업을 수행하기 위해 프로젝트의 코드 기여자가 돼야 할 정도로 고도의 전문성을 필요로 하지 않아 노마드는 매우 쉽게 도입할 수 있다. 컨테이너와 마이크로서비스에 대해 이해하는 개발자들에게, 노마드는 우리가 미래를 향해 나아갈 수 있도록 하는 최고의 툴이다.


기술 스택

◼인프라: 대부분 온프레미스(베어메탈), AWS, GCP, 애저
◼워크로드 유형: 리눅스, 윈도우
◼컨테이너 런타임: 도커
◼오케스트레이터: 노마드
◼CI/CD - 젠킨스, 팀시티, 서클CI, 드론
◼데이터 서비스: 콕롯DB, 몽고DB, 인플럭스DB, 엘라스틱서치, 비티스, MS SQL
◼스토리지: 포트웍스, EBS
◼버전 제어: 깃랩, 깃허브, 깃허브 엔터프라이즈
◼네트워킹: 컨설, HA프록시, 트래픽
◼프로비저닝: 테라폼
◼보안 관리: 볼트

저작권자 © 아이티데일리 무단전재 및 재배포 금지