Roblox가 하는 모든 일의 미래를 주도하는 인프라스트럭처 그룹
-
Roblox의 인프라스트럭처 그룹은 글로벌 Roblox 플랫폼을 지원하는 기본 스토리지, 컴퓨팅, 네트워킹, 보안, 엔지니어링 생산성 시스템을 설계하고, 구축하고, 운영합니다.
-
이러한 시스템들은 135,000개 이상의 서버에서 7천770만 명*의 일일 활성 사용자 수, 엑사바이트 단위의 전송 콘텐츠, 2억 5천만 건 이상의 동시 연결을 지원하는 규모로 운영되고 있습니다.
-
인프라스트럭처 그룹이 하는 모든 일은 시스템의 안전성과 효율성을 극대화하고 엔지니어들의 생산성을 최대한 높이는 것을 목표로 합니다.
Roblox의 프로덕트 엔지니어들은 매일 매초 Roblox의 글로벌 내부 클라우드 인프라에서 실행되는 2,000개 이상의 서비스를 활용할 수 있습니다. Roblox 플랫폼은 수백만 건의 읽기 및 쓰기 작업을 지원하고, 테라바이트 단위의 처리량을 관리하며, 수천만 건의 HTTP 요청을 처리합니다. 7천770만 명*의 일일 활성 사용자는 2억 5천만 건 이상의 동시 연결을 통해 Roblox를 방문합니다.
Roblox의 기술 시스템은 이렇듯 거대한 규모로 운영되며, 이 영역을 담당하는 곳이 인프라스트럭처 그룹입니다. ‘인프라’라고도 불리는 이 그룹은 Roblox의 데이터 센터뿐만 아니라 스토리지, 컴퓨팅, 네트워킹, 보안, 엔지니어 생산성 시스템을 설계하고, 구축하고, 운영합니다. 인프라 그룹의 목표는 확장 가능하고, 신뢰할 수 있으며, 사용하기 쉬운 시스템을 제공하는 것입니다. 인프라 그룹은 무엇보다 다음의 세 가지 지표를 중요하게 생각합니다.
-
가용성: 시스템의 안정성
-
서비스 비용: 시스템의 효율성
-
생산성: 인프라를 기반으로 구축하는 Roblox 엔지니어의 생산성 증대
엔지니어링 부문 부사장이자 인프라 그룹의 리더인 맥스 로스(Max Ross)는 이렇게 표현했습니다. “저희가 하는 모든 일의 목표는 가용성, 서비스 비용, 생산성의 세 가지 요소 중 하나 또는 몇 가지 조합을 발전시키는 것입니다.”
매일 새로운 문제를 해결하는 인프라 그룹
백만 명이 넘는 사용자가 대규모 업데이트 이후 인기 Roblox 체험에 몰려들어 ‘선더링 허드(Thundering Herd)’라 불리는 현상이 일어나도 Roblox의 크리에이터들은 걱정할 필요가 없습니다. Roblox 프로덕트 엔지니어들이 사용자에게 가장 안정적이고 최상의 경험을 제공하는 플랫폼을 구축할 수 있도록 지원하는 것이 인프라 그룹의 역할이기 때문입니다. 이 말은 인프라팀이 매일매일 복잡한 시스템을 다루고 새로운 문제를 해결해야 한다는 뜻입니다.
왜일까요? Roblox는 수천만 명의 DAU(일일 활성 사용자)를 중앙 집중식 트랜잭션 처리 위치로 연결하고 있지 않기 때문입니다. 이러한 방식에는 흔히 알려진 문제가 수반됩니다. 대신에 Roblox는 전 세계의 사용자들을 실시간으로 상호 연결하고 있습니다. 인프라 그룹이 관리하는 수천 개의 서비스는 두 개의 코어 데이터 센터, 전 세계의 수많은 엣지 데이터 센터 그리고 일부 퍼블릭 클라우드 제공업체를 모두 합쳐 135,000개 이상의 서버에서 운영되고 있습니다.
가용성: 시스템의 안정성
Roblox의 성공 배경에 있는 주요 요인은 사용자가 Roblox에 머무는 시간으로, 안정적인 인프라와 사용자의 접속 시간 사이에 직접적인 관계가 있다는 것을 저희는 잘 알고 있습니다.
Roblox의 목표는 매월 99.99퍼센트의 사용자 가동 시간을 달성하는 것입니다. 이는 시스템이 참여 시간을 0.01퍼센트 이상 방해해서는 안 된다는 뜻입니다. 또한 Roblox의 프로덕트 엔지니어들은 내부 클라우드 인프라가 최소한 퍼블릭 클라우드만큼 잘 작동하기를 기대합니다. 기술 이사 대니 위안(Danny Yuan)은 이렇게 말했습니다. “Roblox의 인프라는 최대한 원활하게 실행되어야 합니다. 그래야 다른 엔지니어들이 사용자들을 만족시킬 수 있는 제품을 개발할 수 있죠.”
Roblox가 이를 추구하는 한 가지 방법은 Roblox 체험을 구동하는 애플리케이션에 관찰 가능성과 네트워크 연결성을 더 가까이 가져오는 것입니다. 모든 서비스 인스턴스 옆에 Envoy 프록시 사이드카를 배치하고 프록시와 외부 서비스 간의 기본 연결 상태를 관찰하기 위해 eBPF를 실험적으로 사용하고 있습니다. 기술 이사 롭 캐머런(Rob Cameron)은 이 방법이 패킷 드롭을 이해하는 데 도움이 되고, 무엇보다 패킷 드롭 감소에도 중요한 역할을 한다고 설명합니다.
핼러윈 접속 장애 사태
안정성을 위한 인프라 그룹의 노력 중 많은 부분은 73시간에 걸쳐 이어진 2021년의 접속 장애를 겪으면서 얻은 교훈을 바탕에 두고 있습니다. 몇 년 전의 그 시간은 복원력 있는 인프라를 구축하고 장기 계획과 단기 계획을 모두 수립하는 데 있어 결정적인 변화를 주는 계기가 되었습니다. 이에 대해 로스는 다음과 같이 말했습니다. “‘모든 것을 멈춰야 했던 순간’이었고, Roblox를 이용하는 모두에게 다시는 이런 일이 일어나지 않을 것이라는 확신을 줄 수 있을 때까지 우리가 집중해야 할 것은 오직 하나였습니다.”
단일 모놀리스에서 34개의 셀로 개선
서비스 비용(효율성)
요즘에는 퍼블릭 클라우드 제공업체가 네트워킹, 플리트 관리 등과 같은 필수 도구를 제공하기 때문에 기술 기업이 자체 클라우드 인프라를 구축하는 경우는 거의 없습니다.
하지만 Roblox의 규모와 분산된 특성을 고려하면 프라이빗 클라우드를 관리하는 것이 비용면에서 효율이 높습니다. Roblox는 이와 같은 복잡한 시스템을 직접 관리할 때 발생하는 문제들을 항상 파악하고 극복하고 있습니다.
원하는 비용 절감 효과를 얻으려면 시스템 설계에 신중을 기해야 합니다. Roblox의 크리에이터와 사용자 커뮤니티에 더 많은 투자를 할 수 있으려면 글로벌 프라이빗 클라우드의 효율성에 세심한 주의를 기울여야 합니다.
인프라 그룹은 프로덕트 엔지니어들이 큰 규모에도 불구하고 효율적으로 실행되는 기능을 쉽게 구축할 수 있도록 노력하고 있습니다. 그와 동시에 소규모 팀이 대규모의 인프라를 운영할 수 있는 간소화된 제작 도구 체계도 개발하고 있습니다. 기술 이사 마이클 울프(Michael Wolf)는 이렇게 말했습니다. “인프라 그룹 외부의 사람들은 우리가 인프라의 거의 모든 부분을 완전히 재창조하고 있다는 걸 잘 알지 못할 수도 있습니다.”
이는 베어메탈 구성에서 코어 및 엣지 데이터 센터 모두에 공통된 컨트롤 플레인을 갖춘 Linux 기반의 컨테이너화된 아키텍처로 진화하고 있다는 의미입니다. 결과적으로 Roblox 엔지니어들은 오픈 소스 소프트웨어 도구의 방대한 새 저장소를 활용할 수 있게 될 겁니다. 게다가 동일한 머신에서 여러 작업을 동시에 실행하는 것도 쉬워집니다.
기술 이사 앤디 윌콕스(Andy Wilcox)는 인프라 그룹이 최근 새로운 텔레메트리, 컴퓨팅, 배포 스택으로 전환한 것을 언급하며 이렇게 말했습니다. “우리는 큰 과제를 해결하는 것이 두렵지 않습니다. 엔지니어링 조직으로서 도전하고자 하는 의지가 있었기에 해결할 수 있었던 기본 과제들이죠.”
하룻밤 사이에 이루어지지는 않을 것입니다. Roblox를 단순히 재부팅할 수 없기 때문입니다. 머신들을 계속 가동해야 하기에 수년이 걸릴 겁니다. 그러려면 소프트웨어를 다시 작성하고 새로운 도구에 맞게 적용하는 수동적인 프로세스가 필요합니다. 이를 두고 울프는 다음과 같이 표현했습니다. “고속도로를 달리고 있는 자동차의 타이어를 교체하는 일과 비슷합니다.”
생산성
엔지니어링팀은 매일 규모가 큰 문제들을 효율적으로 해결하고 시스템을 최대한으로 활용합니다.
이를 위해 Roblox는 엔지니어들의 생산성과 관련된 양적, 질적 데이터를 정기적으로 수집합니다. 이렇게 하면 제삼자 솔루션이나 자체 맞춤형 도구로 개선할 수 있는 걸림돌을 파악할 수 있습니다.
엔지니어들이 코드 검토 프로세스에서 겪는 고충을 해결하기 위해 3월에 출시한 대시보드가 하나의 예시입니다. 이 대시보드는 엔지니어들이 Roblox가 정의한 수많은 기준을 바탕으로 검토가 필요하다고 여겨지는 PR을 추적하는 데 도움이 됩니다. 또한 코드 검토 작업을 통합하고 알림을 예약할 수도 있습니다. 대시보드를 광범위하게 도입한 이후 PR 병합 시간이 P75 기준 30퍼센트 감소했습니다.
물론 엔지니어링 생산성을 높이는 결정적인 요소는 구축의 기반이 되는 안정적이고 확장 가능한 인프라이므로 Roblox는 저수준 시스템에 대한 장기적인 투자를 계속하고 있습니다.
여기에는 두 가지 핵심 Roblox 가치가 반영되어 있습니다. 멀리 보는 것과 필요한 작업을 완수하는 것입니다. 인프라 그룹은 고객을 중심에 두기 때문에 고객의 성공과 생산성 향상을 위해 실리적인 방식을 취합니다. 만일 Roblox가 관리형 서비스로 제공하지 않는 것이 고객에게 필요할 경우, 프라이빗 클라우드의 내부 도구와 함께 공급업체의 솔루션을 통합하는 방안을 고려합니다.
‘최소한의 조건만 충족하는’ 단기적인 방안이 유혹적으로 다가올 수 있지만 미래 지향적인 엔지니어링과 균형을 이루어야 합니다.
생산성을 극대화하면 회사에 이익이 되는 동시에 사업 목표 달성에 필요한 프로젝트를 완수할 수 있습니다.
탐험을 장려하는 문화
매너 및 안전으로 10억 명의 사람들을 연결하고자 하는 Roblox의 목표에는 언제나 해결해야 할 주요 기술적 과제들이 동반될 것입니다. 이미 지금까지 많은 과제들을 해결했고, 많은 것을 배웠습니다. 하지만 Roblox는 시스템의 복잡성을 줄이기 위해 노력하면서도 더욱 확장 가능한 인프라를 바라보고 있습니다.
이렇게 상반되는 목표는 앞으로 수년간 수많은 새로운 교훈을 안겨줄 것이며, 특히나 AI 작업이 증가함에 따라 더욱 그렇게 될 것입니다. 또한 목표를 달성하려면 시간이 지날수록 인프라 그룹의 시스템이 크게 발전해야 한다는 것도 잘 알고 있습니다.
인프라 그룹의 엔지니어들에게는 매 프로젝트가 회사의 잠재적 변환점이며, 모두의 일이 중요합니다. 울프는 이렇게 말했습니다. “인프라 그룹은 Roblox와 사용자들에게 실질적인 영향을 미치는 훌륭한 일을 할 수 있는 조직이자 한계를 모르는 조직입니다.”
고객 중심의 마인드
인프라 그룹의 최종 목표는 다른 Roblox 엔지니어들이 지금도, 앞으로도 더 효과적으로 일할 수 있도록 돕는 것이며, 신속하게 교훈을 얻고, 거기에서 도출된 솔루션을 제공하는 것입니다.
인프라 그룹은 그 도전에 정면으로 맞서고 있습니다. 로스는 이렇게 말했습니다. “저희가 오늘, 이번 분기, 이번 연도의 Roblox에 가치를 제공할 수 있도록 하고 싶습니다. 또한, 향후 5~10년 동안 저희가 유리한 위치에 설 수 있는 기반도 반드시 구축하고 싶습니다.”
* 2024년 3월 31일로 종료된 3개월 기준