레딧 아키텍쳐 관련 글 입니다.
상당히 긴 역사를 가진 레딧이니 만큼, 서비스 인프라 확장 및 변화 과정도 다이나믹 하네요.
현재의 레딧은 월 12억명 MAU 를 가진 세계에서도 손에 꼽는 사용자수와 사용시간을 가진 거대한 웹사이트가 되었습니다.
그리고 2023년 한해에만 4억 68백만개의 게시물이 올라올 정도로 수많은 글이 올라옵니다.
이러한 거대한 유저수, 사용시간, 사용시간을 어떻게 커버하는지 살펴볼 수 있는 귀중한 자료!
Reddit 는 2005년 12월 Python으로 개발되었습니다. (현재 레딧 오픈소스로 공개되어 있어서 알 수 있죠.) 또한 2009년 리팩터링 과정에서 AWS 클라우드로 서버를 옮겼다고 합니다.
기본적으로 Load Balancer 에서 요청을 적절한 서버로 라우팅하게 됩니다.
각 라우팅을 받는 애플리케이션 서버는 동일한 코드가 여러 서버에서 실행되고 있다고 하구요. 단, 각 서버별로 역할이 다양한데요.
- 비용이 많이드는 job 은 MQ 비동기로 넘기는 애플리케이션
- 핵심 데이터 모델 Postgres 사용 (앞단에 부담을 줄이기 위한 Memcache)
- 새로운 기능에서 카산드라를 상당히 많이 사용
이후 2017년 GraphQL 도입을 시작해서 4년에 걸쳐 2021년 초 클라이언트 앱도 GraphQL 로 전환을 시작했다고 하며, 서버는 Golang 으로 마이크로서비스 화 시켰다고.
2022년 GraphQL 팀은 서브레딧 및 댓글 등 핵심 적인 부분까지 GraphQL 로 전환하였으며 이 과정에서 마이그레이션을 안정적으로 하기 위해 Blue/Green 방식으로 로드밸런서를 통해 DGS 처리비율을 점진적으로 늘려나가는 방식을 채택했다고 합니다..
DB 데이터 복제 지원을 위해 스트리밍 CDC 솔루션을 도입했습니다.
대규모 타사 미디어 콘텐츠 게시물에 대해 메타데이터를 통한 자산 관리가 중요해졌으나 이를 통합 관리할 수 없는 상태였으며, 메타데이터 저장소를 별도로 구축했습니다.
이외에도 이글에서는 피드 최적화를 위한 개선사항, 통신 인터페이스 등 상당히 많은 부분에 대해 언급해주었습니다. 👍👍👍
레딧 아키텍쳐 관련 글 입니다. 상당히 긴 역사를 가진 레딧이니 만큼, 서비스 인프라 확장 및 변화 과정도 다이나믹 하네요. 현재의 레딧은 월 12억명 MAU 를 가진 세계에서도 손에 꼽는 사용자수와 사용시간을 가진 거대한 웹사이트가 되었습니다. 그리고 2023년 한해에만 4억 68백만개의 게시물이 올라올 정도로 수많은 글이 올라옵니다. 이러한 거대한 유저수, 사용시간, 사용시간을 어떻게 커버하는지 살펴볼 수 있는 귀중한 자료! Reddit 는 2005년 12월 Python으로 개발되었습니다. (현재 레딧 오픈소스로 공개되어 있어서 알 수 있죠.) 또한 2009년 리팩터링 과정에서 AWS 클라우드로 서버를 옮겼다고 합니다. 기본적으로 Load Balancer 에서 요청을 적절한 서버로 라우팅하게 됩니다. 각 라우팅을 받는 애플리케이션 서버는 동일한 코드가 여러 서버에서 실행되고 있다고 하구요. 단, 각 서버별로 역할이 다양한데요. - 비용이 많이드는 job 은 MQ 비동기로 넘기는 애플리케이션 - 핵심 데이터 모델 Postgres 사용 (앞단에 부담을 줄이기 위한 Memcache) - 새로운 기능에서 카산드라를 상당히 많이 사용 이후 2017년 GraphQL 도입을 시작해서 4년에 걸쳐 2021년 초 클라이언트 앱도 GraphQL 로 전환을 시작했다고 하며, 서버는 Golang 으로 마이크로서비스 화 시켰다고. 2022년 GraphQL 팀은 서브레딧 및 댓글 등 핵심 적인 부분까지 GraphQL 로 전환하였으며 이 과정에서 마이그레이션을 안정적으로 하기 위해 Blue/Green 방식으로 로드밸런서를 통해 DGS 처리비율을 점진적으로 늘려나가는 방식을 채택했다고 합니다.. DB 데이터 복제 지원을 위해 스트리밍 CDC 솔루션을 도입했습니다. 대규모 타사 미디어 콘텐츠 게시물에 대해 메타데이터를 통한 자산 관리가 중요해졌으나 이를 통합 관리할 수 없는 상태였으며, 메타데이터 저장소를 별도로 구축했습니다. 이외에도 이글에서는 피드 최적화를 위한 개선사항, 통신 인터페이스 등 상당히 많은 부분에 대해 언급해주었습니다. 👍👍👍
Reddit's Architecture: The Evolutionary Journey
The comprehensive developer resource for B2B User Management (Sponsored) Building an enterprise-ready, resilient B2B auth is one of the m…