- 2023년 7월에 런칭한 Threads는 첫 5일간 1억명 가입
- 소규모의 민첩한 엔지니어 팀이 단 5개월의 기술 작업을 통해 Thread를 구축
- 많은 사람이 가입하는 과정에서 경험한 무리 없는 확장은 10년 이상의 인프라 및 제품 개발 노력의 결과임
- Threads를 위해 특별히 구축된 인프라가 아니라, 메타의 수많은 제품을 위해 이미 구축된 인프라를 활용함
- 실제로는 엄청난 수의 인프라가 사용되지만, 가장 중요한 분산 키밸류 스토어 ZippyDB와 비동기 서버리스 함수 플랫폼 Async를 소개
ZippyDB: Threads를 위한 Keyspace 확장
- ZippyDB는 메타의 인프라를 활용하여 처음부터 구축된 분산 키/밸류 데이터베이스로, 엔지니어들이 이를 기반으로 구축할 수 있는 완전 관리형 서비스
- ZippyDB에 호스팅된 키스페이스는 상대적으로 쉽게 확장 및 축소가 가능하며, 다수의 데이터 센터에 유연하게 배치될 수 있음.
- 소셜 그래프 저장소로는 MySQL 기반의 TAO(The Associations and Objects)가 사용됨
- ZippyDB는 MySQL에 대응하는 키/밸류 데이터베이스로, 카운터, 피드 순위/상태, 검색 등에 사용
ZippyDB 최적화 및 제품 출시
- ZippyDB의 리샤딩 프로토콜을 통해 클라이언트에 영향을 주지 않고 완전한 일관성과 정확성을 유지하면서 ZippyDB 사용 사례의 샤딩 요소를 신속하게 증가시킬 수 있음
- 새로운 물리적 샤드 세트를 프로비저닝하고 클라이언트에 새로운 논리적-물리적 샤드 매핑을 라이브 구성 변경을 통해 설치함으로써, 다운타임 없이 리샤딩을 수행
- 리샤딩 작업을 수평적으로 확장 가능하게 설계하여, Threads 출시와 같은 필요 시 리샤딩 속도를 높일 수 있음
- 갑작스러운 사용 사례 성장을 쉽게 처리할 수 있는 일련의 비상 운영자 도구를 개발함
Async: Threads를 위한 워크로드 실행 확장
- Async(또는 XFaaS)는 서버리스 함수 플랫폼으로, 엔지니어가 솔루션 개념부터 생산 배포까지의 시간을 단축할 수 있게 해줌
- Async는 현재 하루에 수조 개의 함수 호출을 처리하며, HackLang, Python, Haskell, Erlang 등 다양한 프로그래밍 언어를 지원
- 배포, 큐잉, 스케줄링, 확장, 재해 복구 및 준비의 세부 사항을 추상화하여 개발자가 핵심 비즈니스 로직에 집중할 수 있게 함
- Async는 사용자 경험을 방해하지 않고 몇 초에서 몇 시간 후에 수행할 수 있는 작업에 주로 사용됨
- Threads에서 사용자가 Instagram에서 이미 팔로우하는 사람들을 Threads에서도 팔로우할 수 있게 함으로써 커뮤니티 구축을 빠르게 지원하는 데 중요한 역할을 함
- 5일 동안 1억 명의 사용자를 처리하기 위해 상당한 처리 능력이 필요했으며, Async는 증가된 부하를 우아하게 흡수하고 제어된 실행을 위해 큐잉함
인프라와 문화의 만남
- 단 5개월의 기술 작업 기간 내에 Threads의 신속한 개발은 메타의 인프라와 엔지니어링 문화의 강점을 잘 보여줌
- 메타의 제품은 오랜 시간 테스트를 견뎌욘 공유 인프라를 활용하여 제품 팀이 빠르게 움직이고 성공적인 제품을 신속하게 확장할 수 있게 함
- 이 인프라는 자동화 수준이 높아, 단기간에 용량을 확보하는 노력을 제외하고는 작업 부하의 자동 재분배, 로드 밸런싱 및 확장이 원활하고 투명하게 이루어짐
- 메타는 빠르게 움직이는 엔지니어링 문화를 추구하며, 엔지니어들은 강한 소유권을 가지고 협력하여 대규모 공동 목표를 효율적으로 달성함