GN⁺: Redis 자리를 차지하기 위한 대체제 경쟁
(lwn.net)- 2024년 3월 21일, Redis Ltd.는 Redis "인메모리 데이터 스토어" 프로젝트가 Redis 7.4부터 비자유, 소스-사용 가능 라이선스로 출시될 것이라고 발표
- 이 소식은 불쾌하지만 전혀 예상치 못한 것은 아니었으며, 특이한 점은 Redis 대체제로 선택할 수 있는 옵션이 여러 개 있다는 것
- 무료 소프트웨어를 계속 사용하고자 하는 사용자들은 기존의 포크인 KeyDB와 리눅스 재단이 새롭게 발표한 Valkey 프로젝트를 포함한 최소 네 가지 옵션 중에서 선택할 수 있음
Redis의 간략한 역사
- Redis는 Salvatore Sanfilippo(별명 "antirez")가 MySQL이 충족시키지 못하는 요구 사항을 가진 실시간 로그 분석 애플리케이션 LLOOGG를 사용하기 위해 시작한 프로젝트임
- 관계형 데이터베이스 대신 간단한 사전 데이터베이스로 설계되었으며, 이름은 "remote dictionary server"의 약어
- Redis는 NoSQL 운동의 일부로 빠르게 인기를 얻었으며, 2010년 VMware에 의해 개발을 위해 고용되었음
- Redis는 Twitter와 Pinterest 등 고객사를 통해 인기를 얻었고 리눅스 배포판에 포함되기 시작했으며, 2013년에는 AWS의 ElastiCache 서비스에 추가됨
클라우드 대 오픈소스
- SSPL과 Redis의 RSAL과 같은 사용 제한 라이선스를 지지하는 사람들은 이것을 AWS와 같은 거대 클라우드 제공업체와 오픈소스 간의 전투로만 제시하려고 함
- Redis의 기여자 목록을 살펴보면, Redis 회사 외에도 다양한 기업들이 기여하고 있음을 알 수 있음
배포 모델 변경
- Redis는 벤처 투자를 받은 회사로, 오픈소스에서 벗어나 더 많은 수익을 창출하려는 계산을 한 것으로 보임
- MongoDB의 사례를 보면, SSPL로 이동한 후에도 계속 성장하고 있으며, 많은 기업들이 서비스를 직접 호스팅하기보다는 사용에 대해 지불하는 것을 선호함
포크와 대안들
- Redis 라이선스 변경 후 몇 일 만에 Valkey라는 직접적인 포크가 생겼으며, AWS, Google Cloud, Oracle, Ericsson, Snap 등이 이 노력을 지원함
- KeyDB는 기술적 이유로 2019년에 만들어진 포크이며, Snap에 인수된 후 전체 코드베이스가 3-clause BSD 라이선스로 완전히 오픈소스가 됨
- SourceHut의 창립자 Drew DeVault는 LGPLv3를 사용하여 Redict라는 포크를 만듦
- Microsoft의 Garnet은 Redis와 호환되는 원격 캐시 스토어로, MIT 라이선스로 출시됨
대체제에 대한 경쟁
- 리눅스 배포판은 Redis를 대체할 소프트웨어를 찾아야 하는 문제에 직면함.
- Fedora, openSUSE, Debian 등의 커뮤니티는 Redis의 대체제로 KeyDB, Redict, Valkey 등을 고려하고 있음.
앞으로 갈 길
- 하나 이상의 포크가 상당한 견인력을 얻을지 여부를 예측하기에는 너무 이르지만 Valkey가 신뢰할 수 있는 대안이 될 가능성이 높음
애초에 redis도 memcached의 대체제였죠.
그런데 어떤 기술의 대체제가 이런식의 캠패인(?)으로 결정되는 걸 본적이 없네요.
Only time will tell.
Hacker News 의견
-
Redis 커뮤니티 에디션은 계속 무료로 사용 가능하며, 지원 및 유지보수가 이루어지고 개선될 예정임.
- 개발자들은 SaaS 애플리케이션과 웹 기반 소프트웨어에서 Redis를 대체할 필요가 없음.
- 이는 AWS가 Redis를 서비스로 제공하면서 Redis 개발자에게 보상을 지불하지 않는 것을 방지하기 위함임.
-
Neal Gompa는 Fedora 개발 목록에서 라이선스 변경에 대해 논의를 시작하고, Redis를 Fedora에서 제거할 필요성을 지적함.
- Gompa는 openSUSE의 Factory 토론 목록에서도 이 문제를 제기함.
- Docker가 단계적으로 제거된 후, 여러 배포판이 Docker의 대체제로 Podman을 채택함. Redis에 대해서도 비슷한 상황이 전개될 것으로 보임.
-
Apache Kvrocks(Flash 기반의 Redis 대안)의 커미터 Binbin Wang이 새로운 Redis 버전에 대한 커밋의 거의 25%를 기여함을 처음 알게 됨.
- Binbin Wang의 기여는 다음 링크에서 확인할 수 있음:
-
AGPL 라이선스가 점점 인기를 얻고 있는 이유는, 저작권 소유자를 제외한 모든 사람이 매우 엄격한 규칙을 따라야 하지만, 핵심 소프트웨어가 오픈소스로 남아 커뮤니티가 여전히 혜택을 받기 때문임.
- 특히 BSD 라이선스는 비즈니스를 운영하기에 특히 나쁜 방법으로 보임.
-
AWS는 ElasticSearch를 "OpenSearch" DBaaS로 포크함. 이로 인해 이전 직장에서 특정 버전의 NEST .NET 라이브러리에 제한되어 새로운 기능을 사용할 수 없었던 문제가 발생함. 기술 발전에 비추어 볼 때 잘못된 방향으로 가는 것 같음.
-
MIT 라이선스를 사용하고 지원을 통해 수익을 창출하는 것이 이러한 문제뿐만 아니라 다른 잠재적 문제에 대한 쉬운 해결책임.
-
Reddit에 대한 커밋의 약 40%가 중국 회사(Tencent 24.8%, Alibaba 6.8%, Huawei 5.2%, Bytedance 2%)에서 나옴이 흥미로움.
-
현재 시점에서는 저작권 라이선스가 더 유리해 보임. 미래의 모든 릴리스에 동일한 라이선스가 적용될 것이라는 보장이 없다면, 더 자유롭고 비즈니스 친화적인 라이선스의 가치는 무엇인가? 이는 미끼와 전환 정책처럼 보임.
-
Redis는 개발자들에게 트로이 목마처럼 보임. 처음에는 간단한 키-값 데이터베이스로 보이지만, 캐시로도 사용할 수 있고, 모든 것을 캐시하는 것이 멋져 보임. 하지만, 각 프로그램이 잘하는 한 가지 일에 집중해야 한다는 오래된 Unix 원칙과 대조됨. 10년이 지나면 올바른 캐싱 결정을 내리기 위해 Redis의 엔터프라이즈 백서를 다운로드해야 함.
- Redis가 데이터베이스와 캐시로 다른 포트에서 사용되는 프로젝트에서 일한 경험에서 비롯됨. 대부분의 개발팀이 Redis가 "간단하고 잘 작동한다"고 해서 매뉴얼을 읽지 않았고, 여러 문제가 발생했지만, 생존을 위해 분투하는 스타트업에서는 이를 정리할 시간이 없음.
-
Andrew Kelley의 관점에 동의함: Redis 프로젝트를 Redict로 이름을 바꾸고, 현재 "Redis"라고 불리는 프로젝트를 Redict의 이상한 상업적 포크로 간주함.