튠위키는 현재 1,000,000,000개 이상의 서비스를 위한 문서를 Couchbase에 저장하여 Couchbase의 확장성과 성능을 다시 한 번 입증했습니다. 이제 사용자가 걱정해야 할 일이 한결 줄어들었습니다. 자세히 알아보려면 이 블로그를 읽어보세요...
얼마 전 Couchbase를 사용하여 만든 멋진 앱인 TuneWiki의 공동 창립자이자 CTO인 Chad Kouse를 만날 기회가 있었습니다. 튠위키 는 음악 애호가들이 좋아하는 음악, 가사, 사진을 친구들과 공유할 수 있는 기회를 제공하는 소셜 음악 경험에 혁명을 일으키고 있습니다. 세계 최대 규모의 스크롤 가사 데이터베이스를 갖춘 Spotify의 #1 앱으로, 탁월한 노래방 스타일의 청취 경험을 제공합니다.
10억 개가 넘는 데이터 개체를 보유하고 있으며 계속 성장하고 있는 TuneWiki는 전 세계 수백만 명의 사용자에게 가사를 제공하기 위해 Couchbase Server를 사용합니다. 저는 이 블로그에서 Chad와 나눈 대화를 통해 TuneWiki 팀이 왜 Couchbase Server를 선택했는지, Couchbase를 통해 무엇을 하고 있는지, 그리고 TuneWiki의 증가하는 사용자 기반을 지원하는 Couchbase Server의 기능에 대해 확신하는 이유를 설명하고 싶었습니다.
Chad, 애플리케이션에서 Couchbase를 어떻게 사용하는지 자세히 설명해 주시겠어요?
튠위키에서는 데이터 캐싱과 저장을 위해 카우치베이스를 사용합니다. 멤캐시드를 대체할 수 있는 솔루션을 찾던 중 Couchbase를 발견했습니다. 멤캐시드 노드가 갑자기 실패하거나 클러스터에 새로운 멤캐시드 노드를 추가하면 앱 전체가 느려질 수 있었습니다. MySQL은 이를 따라잡을 수 없었습니다. 또한 캐시에서 항목을 만료하고 MySQL을 캐싱 계층과 동기화 상태로 유지하려면 추가적인 노력이 필요했습니다.
Couchbase를 사용하면 데이터 저장소가 두 개가 아니라 하나의 데이터 저장소만 있으면 됩니다. 설정, 사용, 관리도 쉬웠습니다. Couchbase API는 멤캐시와 호환되었기 때문에 멤캐시 코드를 그대로 두고 모든 MySQL 호출을 Couchbase로 대체하기만 하면 되었습니다. Couchbase는 앱에 필요한 예측 가능한 성능을 제공했습니다. 또한 클러스터를 확장하는 것에 대해 걱정할 필요가 없었습니다. 노드를 추가하면 항상 성능 저하 없이 필요한 만큼의 성능 향상을 얻을 수 있었습니다. Couchbase Server를 사용하면서 백엔드 아키텍처가 크게 간소화되었습니다.
카우치베이스에서 앱 스토어는 정확히 어떤 기능을 제공하나요?
저희는 기본적으로 앱에 필요한 모든 것을 Couchbase에 저장합니다. 여기에는 가사, 타임라인, 사용자 작업을 빠르게 검증하기 위한 API 키 및 OAuth 토큰이 포함됩니다. 튜위키에는 사진과 가사를 친구들과 공유하는 것과 같은 소셜 요소가 있습니다. 이 기능을 사용하는 경우 공유한 항목은 Couchbase에 저장됩니다.
앱 워크로드에 대해 알려주세요.
현재 10억 개 이상의 개체가 Couchbase에 저장되어 있으며, 시스템은 초당 10,000회 이상의 작업 속도로 실행되고 있습니다. 전체 데이터의 약 80%를 RAM에 보관하도록 클러스터의 크기를 조정했습니다. 예를 들어, 카운터를 사용하여 API 사용량을 모니터링하고 이 카운터를 기반으로 클라이언트를 조절합니다. 관계형 데이터베이스에서는 상상할 수 있듯이 이 작업을 쉽게 수행할 수 없습니다. Couchbase를 사용하면 별도의 애플리케이션 코드를 작성할 필요 없이 이 카운터가 전체 API 서버 클러스터에서 자동으로 공유됩니다. 저희는 원자 증분 API를 사용하여 메모리에서 카운터를 증분하여 히트를 추적합니다. 모든 것이 메모리에 있기 때문에 가볍고 디스크로 이동할 필요가 없습니다. 속도 저하도 없고 병목 현상도 없습니다.
다른 카우치베이스 사용자들에게 어떤 조언을 해주시겠어요?
소규모 프로젝트로 시작하는 경우에도 Couchbase는 훌륭한 옵션입니다. 개발 중에는 1~2개의 노드로 실험해보고 프로덕션에 들어갈 준비가 되면 클러스터에 더 많은 노드를 쉽게 프로비저닝하여 확장할 수 있습니다. 또한 Couchbase로부터 훌륭한 지원을 받았으며, 사용자들에게도 카우치베이스 Google 그룹 및 Couchbase 사이트에 있는 기타 자료.
다음 단계는 무엇인가요? Couchbase Server 2.0으로 새로운 기능이나 새로운 앱을 구축할 계획이 있나요?
Couchbase Server 2.0의 뷰는 멋진 기능입니다. 저희는 데이터의 일반적인 관리와 앱 기능 개선을 위해 Couchbase Server의 보기를 사용할 계획입니다. 키-값 저장소를 사용하면 데이터의 술어를 지원할 수 없으므로 필요한 키를 알아야만 했습니다. 이를 위해서는 데이터 전체를 스캔하여 어떤 키가 관련성이 있고 어떤 키가 관련성이 없는지 파악해야 했습니다. Couchbase에 10억 개의 개체가 있다면 얼마나 지루할지 상상할 수 있습니다.
예를 들어, 더 이상 필요하지 않은 OAuth 키가 많은 경우 보기를 사용하여 목록을 가져와서 정리할 수 있도록 하면 좋을 것입니다. 보기가 없으면 키에 만료 시간을 설정할 수 있지만 만료 시간 값을 설정하는 것을 잊어버리면 키가 영원히 살아있게 됩니다.
카우치베이스 사용 방법에 대한 자세한 내용은 어디에서 확인할 수 있나요?
카우치베이스 사용자는 블로그 를 클릭해 자세히 알아보세요.