GN⁺: 트위터 규모의 Mastodon 구축 비용을 100배 줄인 방법
(blog.redplanetlabs.com)- Red Planet Labs가 약 10,000 줄의 코드만으로 Twitter 규모의 Mastodon 인스턴스를 처음부터 개발
- 이는 Twitter가 원래 제품을 구축하는 데 사용한 약 1M라인의 코드에 비해 100배 더 적음
- Mastodon 인스턴스는 Rama라는 새로운 플랫폼 위에 구축
- Rama는 계산과 저장을 통합하는 모델로, 100배 더 적은 코드로 어떤 규모의 백엔드도 구축 가능
- 순수 Java API로 프로그래밍되는 애플리케이션 백엔드 구축을 위한 범용 플랫폼
- 구축에 9인/월(person-month)가 들었음. 트위터는 ~200인/년, Threads는 25인/년이 들은데 비해 훨씬 빠르게
- Mastodon 공식 구현체보다도 훨씬 작지만, 트위터 규모로 스케일 가능함
- Red Planet Labs는 일주일 내에 누구나 다운로드하고 사용할 수 있는 Rama 버전을 출시할 것이며, 두 주 후에는 Mastodon 구현을 완전히 오픈 소스화할 예정
- 회사는 곧 Rama의 전체 버전에 대한 접근 권한을 제공하는 프라이빗 베타를 시작할 예정
Red Planet의 Mastodon 인스턴스
- https://mastodon.redplanetlabs.com에서 호스팅되며, Mastodon의 모든 기능을 포함합니다.
- 인스턴스의 규모를 보여주기 위해, Red Planet Labs는 지속적으로 상태, 답글, 부스트, 즐겨찾기를 게시하는 100M의 봇 계정을 운영중
- Mastodon 인스턴스는 초당 3,500번 게시하는 100M의 봇을 처리할 수 있어, 그 규모성을 입증
Rama
- 4개의 컨셉으로 구성
- Depot : 분산 복제 데이터 저장소
- ETL : 마이크로 배치 스트리밍
- PStates(Partitioned State): 유니버설 인덱싱
- Query : 쿼리 토폴로지
- Rama는 선형적으로 확장 가능하며, 필요에 따라 리소스를 추가할 수 있고, 모든 데이터를 복제하고 자동 장애 전환을 구현함으로써 장애 허용성을 달성
"We’ve implemented every feature of Mastodon from scratch, including:"
마스토돈이 아닌 것 같네요. 설명만으로는 자체 클론인 것 같습니다. Cloudflare의 "Wildebeest" 나, 오픈소스 구현체인 GoToSocial 과 비슷한 "호환되는" 의 포지션인 것 같습니다. 소스는 공개 예정이구요...
프론트는 soapbox네요
Mastodon gGmbH 에서 태클 들어오지 않을까 싶네요
이거 요약해 보려다가 이해를 못 해서 결국 패스했는데...
나중에라도 시간을 내서 천천히 이해를 해보면 좋겠다 싶더라고요.
근데 저게 돈이 될지는 잘 모르겠어요.
저도 뒷부분 좀 자세히 읽어보려고 했는데, 글이 잘 안 읽히더라고요.
기술과 별도로 문서화는 잘 못하는 듯한 느낌이 듭니다.
중요한 컨셉 4개부터 설명이 뭔가 어? 하게 되어서 ㅠ
코드 라인수로 비교하는건 좀 무리인듯 한데.. 어그로는 확실히 끌었네요.
Rama 플랫폼 및 자신들 인스턴스의 내부구현에 대해서 굉장히 장황한 설명이 붙어있습니다.
실제로 나와봐야 알 것 같아요.
Hacker News 의견
- 기사는 Mastodon이라는 소셜 네트워크를 Twitter 규모로 100배 확장할 때 비용과 코드 복잡성 감소에 대해 논의한다.
- 일부 독자들은 Mastodon의 1만 줄의 코드와 Twitter의 약 100만 줄의 코드 비교에 의문을 제기하며, 기능 수가 훨씬 적고 대규모 분산 실시간 비디오 지원과 같은 기능을 추가하면 코드베이스가 크게 증가할 것이라 주장한다.
- 100M의 봇이 초당 3,500번 게시하여 규모를 보여주는 주장에 대한 회의론이 있으며, 일부 독자들은 이것이 충분하지 않다고 제안하고 이것이 봇당인지 총합인지 의문을 제기한다.
- 일부 독자들은 게시물의 기술적 세부 사항을 이해하는 데 어려움을 겪으며, 게시물이 공유된 지식 기반을 가정하고 더 명확한 설명과 비교가 필요하다고 제안한다.
- "Twitter 규모"의 측정이 초당 트윗 수로 이루어지는 것에 대해 의문을 제기하며, 일부 독자들은 트윗을 팔로우하는 최종 사용자에게 초당 업데이트 수가 더 현실적인 측정치라고 제안한다.
- 게시물은 자세한 통찰력과 현대 앱 개발 복잡성을 데이터 구조 혼합으로 축소하는 추상화에 대해 칭찬받는다.
- 일부 독자들은 개발자들이 변경이나 중단의 위험을 감수하면서 모든 기능에 대해 스타트업의 폐쇄 소스 플랫폼에 의존하는 제안에 대해 우려를 표현한다.
- Rama 플랫폼을 구축하는 데 걸린 10년이 기술 데모 개발에 소요된 시간에 포함되어야 하는지에 대한 혼란이 있다.
- 일부 독자들은 곧 출시될 Rama에 대한 문서화에 대해 흥분을 표현하지만, 새로운 프로그래밍 패러다임 제안에 대한 우려도 표현한다.
- 예시로 든 Mastodon 인스턴스의 성능은 응답성이 좋다는 점에서 칭찬을 받지만, 사용자가 태그되지 않는 한 전체 텍스트 검색을 구현하지 않는다는 점이 지적된다.