Redis와 같은 데이터베이스 회사가 Databaseless(DBless) 아키텍처에 대해 이야기하는 이유는 무엇입니까? 그리고 이것은 무엇입니까? 당연하지만 세부 사항에 대해 알아보기 전에 이 새로운 아키텍처 이면의 새로운 사고 방식을 살펴보겠습니다.
그러기 위해 저는 잠시 우회하여 제1원칙 사고라는 것에 대해 이야기하고 싶습니다. 그것은 당신이 스스로 생각하고 전통을 따르지 않고 모든 것에 의문을 제기하도록 강요합니다.
제1원칙의 요지는 중력의 법칙과 같은 자연법칙을 보지 않는 한 모든 시스템이나 개념은 사람이 만든 것이며 비효율적일 수 있다는 것입니다. 거기에 더해 시간의 흐름이나 기술 혁신은 그 개념이 쓸모없다는 것을 증명했을 수도 있습니다. 즉, 기존 시스템이나 개념에 정기적으로 질문하고 더 나은 것을 구축할 수 있는지 확인해야 합니다.
이러한 비효율성을 찾으려면 근본적인 진실에 도달하기 위해 더 작은 조각으로 나누는 체계적이고 과학적인 접근 방식을 취해야 합니다. 그런 다음 시간의 경과나 새로운 기술의 발명으로 인해 이러한 조각이 쓸모 없게 되었는지 확인하십시오. 그렇다면 더 새롭고 더 나은 시스템을 구축할 기회가 있는 것 같습니다.
기본적으로 사람들이 알든 모르든 사회, 기술, 경제적 변화의 대부분은 제1원칙으로 생각하고 전통에 도전하는 사람들 덕분에 일어난 일입니다.
위의 비디오에서 Elon Musk는 배터리의 원자재를 조사하여 $700에서 $70로 비용을 절감할 수 있었던 방법을 설명합니다.
생각의 첫 번째 원칙은 가솔린 자동차 vs. 전기 자동차가 설명하기 더 쉽기 때문에 다른 예를 들어 보겠습니다.
가솔린 자동차 대 전기 자동차
우리 모두는 전기 배터리를 사용하여 자동차를 움직일 수 있다는 것을 알고 있습니다.
그러나 가솔린 자동차에는 배터리가 있지만 자동차를 운행하는 데 사용되지는 않습니다. 엔진 시동, 에어컨, 오디오 시스템, 조명, 센서, 잠금 장치 등에 배터리를 사용하지만 자동차를 운행하는 데는 사용하지 않습니다. 대신 내연 기관(ICE)에 의존하여 자동차를 운행합니다.
ICE 자동차는 매우 비효율적입니다. 생성된 동력의 16~25%만이 실제로 바퀴에 전달됩니다. 반면에 전기 자동차는 바퀴에 약 90%의 동력을 제공합니다! 전기차는 환경, 수리비 등의 면에서도 큰 장점이 있습니다.
이를 제1원칙의 관점에서 본다면, 오늘날까지 만들어지는 대부분의 자동차는 가솔린 자동차지만 근본적인 사실은 비효율적인 시스템을 사용하고 있다는 것입니다.
이제 전기 자동차를 보면 이러한 비효율성을 제거하여 새로운 유형의 자동차를 만들 수 있습니다. 이 경우 복잡하고 비효율적인 엔진을 단순히 제거하고 대형 배터리와 모터로 교체하여 바퀴를 직접 회전시킵니다.
따라서 제1원칙 사고가 어떻게 비효율성을 식별하고 더 새롭고 더 나은 시스템을 만드는지 알 수 있습니다.
이제 이러한 아이디어를 살펴보고 새로운 자동차 회사를 차린다면 휘발유 자동차를 만드시겠습니까 아니면 전기차를 만드시겠습니까?
기어를 바꾸고 데이터베이스 세계로 전환하여 해당 분야에 동일한 첫 번째 원칙을 적용할 수 있는지 알아보겠습니다.
기존 아키텍처 대 DBless 아키텍처
먼저 전통 건축을 살펴보겠습니다.
기존 아키텍처에는 기본 데이터베이스(Postgres, MongoDB 등)와 보조 데이터베이스 또는 캐시(예:Redis 또는 Memcached)가 있습니다. 기본 DB는 모든 데이터를 저장하고 CRUD 작업을 지원하는 데 사용됩니다. 캐싱 DB는 캐싱, 세션 저장, 비율 제한, IP 허용 목록, Pub/Sub, 대기열 및 기타 여러 작업에 사용됩니다.
생각해보면 캐시 적중이 있더라도 CRUD 작업의 일부로 보조 DB도 사용하고 있습니다. 그러나 우리는 여전히 이를 기본 데이터베이스로 완전히 활용하지 못하고 있습니다.
이것은 가솔린 자동차의 문제를 생각나게 합니까? 자동차를 움직이는 것 외에는 여러 가지에 전원을 공급하기 위해 배터리를 가지고 다니는 것처럼 기존 아키텍처는 기본 DB를 제외하고 모든 것에 Redis와 같은 것을 사용합니다.
유사점이 보이십니까?
전기 자동차가 한 일을 생각하면서 첫 번째 원칙을 사용하면 어떻게 될까요? EV가 엔진을 없앤 것처럼 느리고 비효율적인 기본 데이터베이스를 없애고 캐시 DB를 기본 데이터베이스로 사용하면 어떨까요?
Databaseless(DBless) 아키텍처를 소개합니다.
데이터베이스리스(DBless) 아키텍처:
이 아키텍처에서는 기본 DB를 제거하므로 이름이 DBLess입니다. 대신 이전의 보조/캐시 DB를 새 기본 데이터베이스로 사용합니다.
Redis 또는 기타 유사한 캐싱 데이터베이스를 기본 데이터베이스로 사용하기 시작했고 기본 DB(예:Postgres, Mysql, MongoDB 등)를 완전히 제거했다고 가정해 보겠습니다.
중요 사항: 이것은 단지 아키텍처 토론입니다. DBLess 아키텍처는 Redis 또는 Redis Enterprise로 제한되는 독점 아키텍처가 아니며 모든 Redis 유사 시스템에서 작동합니다. 또한 Redis는 OSS 프로젝트이므로 직접 구축하거나 Redis에서 호스팅하는 다른 클라우드 제공업체에서 구축할 수 있습니다.
이 아키텍처를 사용하는 사람이 있습니까?
예, 확실히. 상상할 수 있듯이 우리는 매일 수천 명의 고객과 협력합니다. Redis는 여전히 보조 데이터베이스로 주로 사용되지만 지난 몇 년 동안 이 새로운 DBLess 아키텍처가 등장하기 시작했습니다. Redis 자체가 기능이 더 풍부해지고 강력해지고 더 많은 사람들이 성공을 거두면서 더 많은 추진력을 얻기 시작했습니다. Request Metrics와 같이 고객이 아닌 많은 사람들이 이 아키텍처를 기반으로 전체 스타트업을 구축했으며 매우 성공적인 결과를 얻었습니다.
이제 이것이 진짜라는 것을 알았으니 무엇이 이것을 가능하게 하는지 봅시다.
기술적으로 말하자면 기존 기본 DB와 비교하면 어떻습니까?
Redis Enterprise를 예로 들어 기존의 기본 DB와 비교해 보겠습니다.
보시다시피, 짧은 대답은 정말 잘 어울리고 실제로 일부 기존 기본 DB보다 더 나을 수 있다는 것입니다.
참고로 Redis OSS 또는 다른 Redis 경쟁업체를 사용하여 이 아키텍처를 사용할 수 있습니다. 얼마나 잘 작동하는지 보려면 비슷한 비교표를 작성하면 됩니다.
하지만 Redis가 실제로 이것을 할 수 있습니까? 그냥 캐시인 줄 알았는데?
당신이 올바른지. 약 10년 전에 캐시 저장소로 시작했으며 여전히 그 목적에 적합합니다.
그러나 Redis와 Redis Enterprise는 기존 DB의 거의 모든 기능을 통합하고 핵심 Redis와 함께 기본적으로 실행되는 모듈 에코시스템을 보유함으로써 수년에 걸쳐 크게 확장되었습니다.
RedisJSON을 사용하십시오(시장 리더보다 10배 빠름). 이를 사용하고 본질적으로 실시간 문서와 같은 데이터베이스를 갖거나 RediSearch 모듈(4배에서 100배 더 빠름)을 사용하고 Elastic Search 또는 Algolia와 같은 실시간 전체 텍스트 검색을 구현할 수 있습니다.
그리고 이러한 모듈을 Redis OSS의 일부로 사용하고 직접 호스팅할 수 있습니다.
이것이 정말 미래인가요?
우리는 전기차가 미래라는 의미에서 이 아키텍처가 미래라고 굳게 믿습니다. 그리고 전기차는 전체 자동차의 1% 미만을 차지하지만 미래입니다. 우리는 이것이 기술의 자연스러운 진화라고 생각합니다. 많은 고객의 성공을 보면서 더 많은 사람들이 그것에 대해 알수록 더 많은 사람들이 이를 시도하고 채택할 것이라고 생각합니다.
이름에 무엇이 들어 있나요?
기본 DB를 없애고 "상태 비저장", "서버리스", "NoSQL" 및 "소프트웨어 없음"의 라인을 따라 재미있고 기발한 이름이라고 생각하기 때문에 DBLess라고 합니다.
시작하는 방법
수십만 명의 Redis 사용자 중 하나라면 운이 좋은 것입니다. 지금 바로 개념 증명을 할 수 있습니다! 우리는 당신에게 새로운 것을 추가하라고 요구하는 것이 아니라 대신 비효율적인 것을 제거하도록 요구합니다.
방법은 다음과 같습니다.
새 시스템이나 새 기능을 구축하는 경우 이 아키텍처를 사용하여 시작하는 것이 간단합니다. 또는 최소한 개념 증명을 수행하고 그것이 효과가 있는지 확인하십시오.
이미 기본 DB가 있는 경우 많은 고객이 수행하는 작업을 수행하고 하이브리드 접근 방식을 사용합니다. 그들은 기존 아키텍처를 계속 사용하지만 이미 Redis 또는 새로운 기능에 크게 의존하고 있는 곳과 같이 제품의 일부를 새로운 아키텍처로 마이그레이션합니다. 그리고 느리지만 확실하게, 완전히 마이그레이션될 때까지 모든 기능을 마이그레이션합니다.
요약:제1원칙 사상가 되기
우리는 당신이 제1원칙 사상가가 되기를 요청합니다. 어떤 것이 전통적으로 사용되었다고 해서 그것이 완벽하고 맹목적으로 따라야 한다는 것을 의미하지는 않습니다. 우리는 당신에게 전통적인 사고에 의문을 제기하고, 그것을 비판적으로 검토하고, 대안을 시도할 것을 요청하고 있습니다. 그리고 그렇게 하면 자신과 다른 사람들에게 유용한 것을 발명할 수 있습니다.
DBLess 아키텍처는 전통적인 사고에 대한 대안을 제공합니다. 작동 여부를 궁금해하는 대신 개념 증명을 시도하십시오. 당신을 놀라게 할 수도 있습니다!
참조
- 일론 머스크의 첫 번째 원칙