모바일 및 에지 컴퓨팅 솔루션용 Couchbase Lite 및 Sync Gateway를 포함하는 Couchbase Mobile 3.1의 정식 버전을 발표하게 되어 기쁘게 생각합니다. 이번 릴리스는 자체 관리형 배포를 위한 Couchbase Mobile의 범위 및 컬렉션에 대한 클라우드-엣지 지원을 도입하는 중요한 릴리스입니다. 다음에서 출시 카우치베이스 서비스 7.0범위 및 컬렉션은 데이터를 논리적으로 분리하고 여러 수준의 세분화된 독립적인 앱 수명 주기 관리를 시행할 수 있는 기능을 제공합니다.
3.1 버전의 Couchbase Lite 및 동기화 게이트웨이를 통해 개발자는 모바일 및 에지 앱 내에서 범위 및 컬렉션의 이점을 활용할 수 있습니다. 이 글에서는 몇 가지 일반적인 사용 사례의 맥락에서 범위 및 컬렉션을 사용할 때의 이점에 대해 설명하겠습니다. 이 게시물은 3.1 릴리스의 주요 기능에 초점을 맞추고 있지만, 다른 개선 사항과 버그 수정에 대해 알아보려면 플랫폼별 릴리스 노트를 읽어보세요.
이 게시물은 Couchbase Mobile의 기본 사항을 잘 알고 있다고 가정합니다. Couchbase Mobile을 처음 사용하시는 경우 다음을 확인하세요. 개요.
오늘 다운로드하세요!
Couchbase Lite 및 Sync Gateway 3.1의 새로운 기능을 평가하는 방법은 다음과 같습니다:
범위 및 컬렉션 사용 사례
실제 사용 사례의 맥락에서 범위와 컬렉션의 이점을 논의하는 것이 가장 좋을 것입니다. 논의되는 각 사용 사례에 대해 버킷/데이터베이스 수준 솔루션을 살펴본 다음 범위와 컬렉션을 사용하는 솔루션을 소개합니다.
간소화된 데이터 구성
개발자가 관계형 데이터베이스의 테이블과 유사하게 버킷 내부에 데이터를 구조화하여 관련 데이터를 별도의 컨테이너에 함께 그룹화할 수 있는 기능으로, 관계형 환경에서 마이그레이션하는 개발자에게 특히 유용합니다.
다음은 다음과 같습니다. 두 가지 예 를 사용하여 문제를 설명합니다:
예
다음을 고려하십시오. 제품 관련 데이터 및 주문 관련 데이터가 포함된 현장 주문 앱. . 두 개의 카우치베이스 라이트 지원 모바일 앱, 하나는 제품용이고 다른 하나는 주문용입니다. 제품 관련 문서 은 제품 모바일 앱에 동기화됩니다.와 주문 관련 문서가 주문 모바일 앱. 제품 모바일 앱의 앱 사용자는 제품 관련 데이터만 읽을 수 있지만 주문 모바일 앱의 앱 사용자는 주문 관련 데이터를 읽고 쓸 수 있습니다.
솔루션: 버킷 기반
-
- 제품 및 주문 데이터는 다음과 같습니다. 를 하나의 버킷에 담았습니다.
- 버킷에는 12가지 문서 유형이 있습니다. A doc_type 필드는 논리적으로 그룹화하는 데 사용됩니다. 제품 관련 및 주문 관련 문서.
- 앱 사용자는 버킷 수준에서 정의됩니다.
- 동기화 기능은 버킷 수준에서 정의되며 복잡합니다.. 액세스 제어 규칙은 다음을 기반으로 합니다. doc_type 그리고 채널 에 정의된 doc_type 어떤 사용자가 어떤 문서 하위 집합에 액세스할 수 있는지 제어합니다.
- 제품 앱에는 당겨만 제품 문서에 대한 복제, 주문 앱에는 푸시-풀 주문 관련 문서에 대한 복제를 지원합니다.
솔루션 범위/컬렉션 기반
범위와 컬렉션을 사용하여 데이터를 정리하고 액세스 제어 정책을 간소화하세요.
- 분리 제품 및 주문 관련 문서를 하나의 버킷에 두 개의 범위가 있습니다.
- 대신 doc_type 필드에 입력합니다, 특정 유형의 문서를 자체 컬렉션으로 논리적으로 그룹화합니다.
- 그런 다음 앱 사용자를 범위별로 분리합니다, 따라서 제품 범위에 있는 사용자는 제품 문서에만 액세스하고 주문 범위에 있는 사용자는 주문 문서에만 액세스할 수 있습니다.
- 동기화 기능이 단순화됩니다. 설정하여 컬렉션 수준에서.
- 제품 앱에는 당겨만 제품 범위에 대한 복제 및 주문 앱에는 푸시-풀 주문 범위에 대한 복제를 설정합니다.
예
다음을 고려하십시오. 30개 카테고리의 데이터를 제공하는 건강 관리 앱입니다, 환자, 방문, 시술, 보험사, 질병, 진단 등을 포함합니다.
환자는 카우치베이스 라이트 모바일 앱을 통해 자신의 의료 기록에 액세스할 수 있습니다.. 일부 문서(예: 보험금 청구서)는 모바일 앱에 동기화할 수 없습니다. 일부 문서(예: 프로필)는 환자가 모바일 앱을 통해 업데이트할 수 있지만 일부 문서(예: 진단서)는 읽기 전용입니다.
솔루션: 버킷 기반
-
- 건강 관리 앱에 해당하는 데이터는 해당 버킷에 보관됩니다.
- 버킷에는 30개 이상의 문서 유형이 있습니다. 그리고 doc_type 필드는 관련 문서를 논리적으로 그룹화하는 데 사용됩니다..
- 동기화 기능은 버킷 수준에서 정의되며 복잡합니다.. 액세스 제어 규칙은 다음을 기반으로 합니다. doc_type 에 대해 정의된 채널 doc_type 어떤 사용자가 어떤 문서 하위 집합에 액세스할 수 있는지 제어합니다.
가져오기 필터는 버킷 수준이며 복잡합니다.. 사용 doc_type 조건을 설정하여 동기화할 필요가 없는 문서를 필터링할 수 있습니다.
솔루션 범위/컬렉션 기반
범위와 컬렉션을 사용하여 데이터를 정리하고 액세스 제어 정책을 간소화하세요.
- 대신 doc_type 필드에 입력합니다, 특정 유형의 각 문서를 자체 컬렉션으로 논리적으로 그룹화합니다..
- 동기화 기능은 컬렉션 수준에서 단순화되고 정의됩니다.. 모든 컬렉션은 암시적으로 채널과 연결되어 있으므로 컬렉션에 대한 읽기/쓰기 액세스를 지정하는 것이 훨씬 간단합니다.
- 가져오기 필터 기능이 단순화되어 컬렉션 수준에서 정의됩니다. 가져올 필요가 없는 문서 모음을 필터링하세요.
확장 가능한 멀티 테넌트 애플리케이션
엄격한 리소스 격리가 필요하지 않지만 여전히 독립적인 데이터 수명 주기 관리가 필요한 멀티테넌트 애플리케이션을 지원하는 기능입니다.
예
다음을 고려하십시오. 20개 기업 테넌트를 위한 이벤트 애플리케이션을 호스팅하는 ISV. 모든 테넌트에는 테넌트에 속한 이벤트 데이터를 동기화할 수 있는 Couchbase Lite 앱. 모든 테넌트에는 테넌트별 데이터에 액세스할 수 있는 고유한 앱 사용자 집합이 있습니다. 인증된 앱 사용자는 해당 테넌트에 해당하는 Couchbase Lite 앱을 통해 데이터를 동기화할 수 있습니다. 테넌트는 엄격한 리소스 격리가 필요하지 않습니다.
솔루션: 버킷 기반
- 모든 테넌트의 데이터는 자신의 버킷을 만들 수 있습니다.
- 각 버킷에는 수십 가지의 문서 유형이 있습니다. 버킷의 doc_type 필드는 관련 문서를 논리적으로 그룹화하는 데 사용됩니다.
- 솔루션이 다음과 같이 확장됨에 따라 더 많은 테넌트, 더 많은 버킷 를 추가하고 이후 더 많은 클러스터를 추가합니다. 이것은 비싼 확장할 수 없습니다.
- 모든 테넌트에는 버킷 수준에서 등록된 앱 사용자 집합이 따로 있습니다.
- 카우치베이스 라이트 클라이언트 복제는 해당 테넌트의 버킷에서 데이터를 동기화하도록 설정됩니다.
솔루션 범위/컬렉션 기반
범위 및 컬렉션 멀티테넌트 앱 지원을 위한 확장 가능한 대안을 제공합니다. 독립적인 데이터 수명 주기 관리가 가능합니다.
- 각 테넌트에는 고유한 범위가 있습니다.에 포함된 이벤트 버킷.
- 각 테넌트의 클라이언트 애플리케이션 데이터 동기화 와 관련된 테넌트의 범위.
- 각 테넌트에는 별개의 앱 사용자 집합이 있습니다. 범위 수준에서 등록됩니다.
- 언제 테넌트가 추가되거나 제거되고, 범위가 버킷에 추가되거나 버킷에서 제거됩니다.. 다른 테넌트에 영향을 주지 않고 테넌트를 오프라인 상태로 전환할 수 있습니다.
엣지에서의 높은 애플리케이션 밀도
이는 엣지에서 여러 애플리케이션을 사용하여 대규모 클라우드-엣지 배포를 지원할 수 있는 기능입니다. 각 엣지는 마이크로서비스 기반 애플리케이션 아키텍처를 사용하여 제공됩니다. 마이크로서비스는 독립적으로 개발, 배포 및 확장할 수 있도록 느슨한 결합이 필요합니다. 마이크로서비스에 특정한 데이터는 마이크로서비스에 비공개입니다.
예
다음을 고려하십시오. 20척의 선박에서 각각 카우치베이스 모바일 클러스터를 실행하는 선박-해안 간 앱 배포및 클라우드의 Couchbase Mobile 클러스터입니다. 각 선박의 Couchbase Mobile 클러스터 50개 애플리케이션 지원. 각 애플리케이션은 마이크로서비스 아키텍처를 사용하여 구축. 각 선박에서 실행 중인 애플리케이션은 항해 및 선박 관련 문서를 해안 클러스터와 동기화합니다. 사용 동기화 게이트웨이 간 복제. 각 앱에는 고유한 사용자 집합이 있습니다.
솔루션: 버킷 기반
- 각 마이크로서비스 실행 중인 50개의 엣지 애플리케이션에 해당하는 각 선박의 버킷에는. 클러스터에서 제공하는 애플리케이션의 수는 클러스터의 버킷 수에 의해 제한됩니다.
- 버킷 간 동기화 게이트웨이 복제 의 온-쉽 클러스터와 해당 클라우드 클러스터는 선박과 해안의 동기화를 유지합니다. 그 결과 각 마이크로서비스에 대해 최소 하나의 선박에서 해안까지 복제.
- 각 선박의 설정은 다음과 같습니다. 비싼. 비용은 다음과 같습니다. 에 선박 수를 곱한 값 확장성이 떨어집니다.
솔루션 범위/컬렉션 기반
범위와 컬렉션을 통해 버킷을 통합하고 버킷 기반 솔루션보다 확장 가능하고 비용 효율적인 대안을 마련할 수 있습니다.
- 각 앱은 범위와 연결됩니다. 그리고 각 마이크로서비스는 자체 컬렉션과 연결됩니다. 그 결과 몇 개의 클러스터에서 많은 수의 애플리케이션을 호스팅할 수 있습니다.
- 선박 내 클러스터와 해당 클라우드 클러스터의 범위 간 동기화 게이트웨이 복제를 통해 선박과 해안을 동기화 상태로 유지합니다. 각 마이크로서비스에 대한 복제 대신 앱 수준에서 복제를 설정할 수 있습니다..
Couchbase Lite의 데이터 구성 및 격리
개발자가 단일 Couchbase Lite 데이터베이스 인스턴스 내에서 데이터를 구성하고 논리적으로 격리할 수 있는 기능입니다.
예
카우치베이스 라이트 고려하기 필드 앱 의 직원이 사용하는 유틸리티 회사가 현장에 있을 때 작업을 관리할 수 있습니다. 현장 앱은 동기화 게이트웨이를 통해 프로젝트, 인프라 맵 등의 데이터를 정기적으로 동기화합니다. 그리고 필드 앱에는 "스크래치 패드"와 같은 기능이 있습니다. 를 사용하면 직원들이 다른 문서에 영향을 주지 않고 지울 수 있는 빠른 메모를 작성할 수 있습니다. 이러한 메모는 임시적이며 로컬 전용이므로 원격 서버에 동기화해서는 안 됩니다..
솔루션: 버킷 기반
- 버킷 기반 솔루션에는 두 가지가 필요합니다. 앱 내에 별도의 Couchbase Lite 데이터베이스를 생성합니다.; 하나는 로컬 전용 데이터용이고 다른 하나는 동기화된 데이터용입니다.
- 복제기는 동기화할 데이터를 보관하는 Couchbase Lite 데이터베이스로 설정됩니다.
- 데이터베이스 격리 수준은 다음을 의미합니다. 로컬 전용 및 동기화 데이터에 대한 쿼리는 불가능합니다.
솔루션 범위/컬렉션 기반
범위 및 컬렉션을 사용하면 단일 Couchbase Lite 데이터베이스 내에서 논리적 데이터 격리가 가능합니다.
- 두 개의 Couchbase Lite 데이터베이스 대신 다음에서 사용 사례를 지원할 수 있습니다. 범위로 변경할 수 있습니다, 를 사용하여 로컬 전용 데이터는 한 범위에 있고 동기화할 수 있는 데이터는 다른 범위에 있습니다.
- 데이터는 논리적으로 서로 격리되어 있으며 애플리케이션은 로컬에서 쿼리하고 데이터를 동기화할 수 있습니다.
- 쿼리 간소화 를 사용하면 범위에 적용할 수 있으므로 필터를 사용할 필요가 없습니다. 또한 필요에 따라 로컬 범위의 모든 문서를 쉽게 제거할 수 있습니다.
- 리플리케이터는 다음과 관련된 데이터를 동기화하도록 구성됩니다. 동기화 범위를 동기화 게이트웨이를 통해 설정합니다.
동기화 게이트웨이 메타데이터 격리
내부 운영을 위해 동기화 게이트웨이에서 관리하는 시스템 메타데이터에서 버킷의 애플리케이션 데이터를 분리하는 기능입니다.
예
다음을 고려하십시오. 매장 점원이 매장 재고 데이터를 가져올 수 있는 재고 관리 매장 애플리케이션 를 임베디드 모바일 앱에서 사용할 수 있습니다. 스토어 관리자는 Couchbase Server 기반의 백엔드 웹 애플리케이션을 사용합니다. 인벤토리 데이터 관리를 위해 Couchbase Server와 인터페이스하는 SDK.
웹 앱을 통한 모든 업데이트는 Couchbase Lite 모바일 앱에 동기화됩니다.
솔루션: 버킷 기반
- 동기화 메타데이터는 버킷 기반 접근 방식을 사용하여 애플리케이션 데이터에서 분리할 수 없습니다.
- 동기화 게이트웨이는 애플리케이션 데이터와 함께 동기화 메타데이터 및 기타 데이터베이스 구성을 버킷에 유지합니다. 이 데이터는 동기화 게이트웨이가 작업을 위해 독점적으로 사용하도록 되어 있습니다.
- 다음이 있습니다. 동기화 메타데이터에 대한 액세스를 제한하는 RBAC 제어 없음 는 위험합니다. 이렇게 하면 SDK 기반 앱이 동기화 메타데이터를 수정하지 않도록 해야 하는 부담이 증가합니다.
- 쿼리 앱 데이터를 적절히 필터링하여 동기화 메타데이터를 제거해야 합니다. SDK 앱의 복잡성이 증가합니다.
솔루션 범위/컬렉션 기반
범위 및 컬렉션은 동기화 게이트웨이 메타데이터를 격리하는 유일한 옵션입니다.
- 시스템 데이터 동기화 게이트웨이에서 사용하는 것은 기본 범위/컬렉션, 애플리케이션 데이터와 논리적으로 격리되어 있습니다. 를 사용자 정의 범위/컬렉션에 추가할 수 있습니다.
- SDK 기반 앱이 실수로 동기화 메타데이터를 삭제할 위험을 제거합니다. 범위 RBAC 컨트롤을 사용하여 _기본 범위에 대한 액세스를 제한합니다. 동기화 메타데이터를 포함합니다.
- SDK 기반 앱이 간소화되었습니다. 시스템 메타데이터를 자체 범위로 분리하면 쿼리에 필터가 필요하지 않고 앱 데이터의 수명 주기를 더 쉽게 관리할 수 있어 구현이 간단해집니다.
범위 및 컬렉션에 대한 클라우드 투 엣지 지원
이번 릴리스에서는 전체 범위와 컬렉션을 엔드투엔드에서 사용할 수 있습니다. 카우치베이스 모바일 스택을 사용합니다. 자세한 내용은 문서.
아래 그림은 요약한 것입니다:
-
-
- 카우치베이스 서버의 데이터는 범위 및 컬렉션 내에서 구성됩니다.
- 동기화 게이트웨이 데이터베이스는 단일 범위와 연결됩니다. 데이터베이스는 범위 내의 모든 컬렉션을 포함하여 범위 내의 하나 이상의 컬렉션과 연결될 수 있습니다.
- 카우치베이스 라이트 클라이언트는 하나 이상의 동기화 게이트웨이 데이터베이스 엔드포인트에 하나 이상의 복제를 설정할 수 있습니다. 각 복제본은 해당 범위와 연결된 하나 또는 모든 컬렉션을 동기화할 수 있습니다.
- Couchbase Lite 클라이언트는 원격 동기화 게이트웨이에 동기화되지 않은 범위의 데이터를 로컬로 유지할 수도 있습니다.
- 동기화 게이트웨이 클러스터는 다음을 통해 하나 이상의 범위를 다른 동기화 게이트웨이 클러스터에 동기화할 수 있습니다. 동기화 게이트웨이 간 복제 프로토콜을 사용합니다.
- CouchBase Lite 클라이언트는 다음을 통해 로컬 네트워크를 통해 하나 이상의 범위를 다른 CouchBase Lite 클라이언트와 직접 동기화할 수 있습니다. 카우치베이스 라이트 피어 투 피어 프로토콜을 사용합니다. 클라우드 기반 컨트롤 포인트 없이도 이 작업을 수행할 수 있습니다.
-
호환성
v3.1로 업그레이드하는 Couchbase Mobile 배포는 범위 및 컬렉션으로 업그레이드할 준비가 될 때까지 버킷 기반 모델을 계속 사용할 수 있습니다. 또한 기존 앱에는 버킷 기반 모델을 계속 사용하면서 새 앱에는 범위 및 컬렉션의 이점을 활용할 수 있습니다.
리소스
하지만 그게 다가 아닙니다. 릴리스 노트에 설명된 다른 개선 사항과 API 변경 사항도 있습니다. 다음은 몇 가지 유용한 리소스에 대한 직접 링크입니다. 자세한 내용은 새로운 기능 페이지로 이동합니다.
백서
릴리스 정보
-
- 카우치베이스 라이트 3.1
- 동기화 게이트웨이 3.1
카우치베이스의 엔지니어 부사장인 웨인 카터가 카우치베이스 모바일의 범위와 컬렉션에 대해 설명하는 것을 들어보세요:
질문이나 피드백이 있으시면 아래에 댓글을 남기거나 다음을 통해 언제든지 저에게 연락해 주세요. 트위터 또는 이메일 나.