다중 테넌트 응용 프로그램은 정확히 무엇입니까?


16

온라인에서 사용할 수있는 정의에 따르면 " 멀티 테넌시는 소프트웨어 응용 프로그램의 단일 인스턴스가 여러 고객에게 서비스를 제공하는 아키텍처 "입니다. 그것은 식당 또는 학교 웹 사이트를 가지고 있으며 학교 관리 제품을 구매 한 후에 제공 한 자격 증명을 사용하여 다른 식당이나 학교에 액세스하여 자신의 데이터로 내 응용 프로그램을 사용할 수 있도록합니다. 내 웹 사이트가 schoolmanagement.com 과 같고 school1.schoolmanagement.comschool2.schoolmanagement.com 과 같은 다른 학교 고객에게 다른 하위 도메인을 제공 하지만 코드는 두 하위 도메인의 뒤에서 동일합니다. 두 학교는 각각 다른 데이터베이스에 따라 기능이나 주제가 다릅니다. 그래서 제공해야합니다로그인을위한 schoolmanagement.com 및 로그인 자격 증명을 기반으로 한 내 고객 로그인은 school1.schoolmanagement.com과 같은 해당 URL로 리디렉션됩니다 .

이것은 다중 테넌트 애플리케이션에 대한 나의 이해입니다. 내 이해가 맞습니까? 통과 할 수있는 온라인 다중 테넌트 응용 프로그램이 있습니까?


1
"통과 할 수있는 온라인 다중 테넌트 응용 프로그램이 있습니까?"는 무슨 뜻입니까? 소스를 얻거나 테넌트로 시도하거나 호스트로 실행 하시겠습니까? 알다시피 도메인 호스팅은 대규모 및 소규모 호스트 회사 모두에게 공통적 인 다중 테넌트 예입니다. Google Apps for Business (또는 현재 브랜딩이 무엇이든)는 상당히 광범위한 멀티 테넌트 앱입니다.
Kristian H

1
지금까지는 올바른 길을 가고 있습니다. 멀티 테넌시는 데이터 소유권과 관련이 있습니다. 데이터는 테넌 (소유자)별로 분류됩니다. 규모의 경제라는 간단한 이유로 응용 프로그램이 동일하게 사용됩니다. 데이터 스토리지도 동일하거나 테넌마다 다를 수 있습니다. 데이터는 테넌트간에 공유 가능하지 않습니다 (또는 일반적으로 아는 것은 아닙니다).
Laiv

@KristianH 도메인 호스팅 예제에 감사드립니다.
노미 알리

@Laiv 그래서 우리는 각자의 별도 구성으로 각 클라이언트마다 다른 데이터베이스를 가질 수 있습니까?
노미 알리

2
예. 이것이 바람직한 방법입니다. 그러나 그것은 또한 비싼 것입니다. 다른 데이터베이스를 말할 때 a) 동일한 RDBMS 내의 다른 스키마 또는 db 인스턴스 또는 b) 완전히 다른 RDBMS 일 수 있습니다.
Laiv

답변:


10

맞어 그거야. 그러나 위키 백과의 정의 는 충분하지 않습니다. 다 계층 아키텍처 나 SOA 또는 마이크로 서비스와 같은 새로운 형태의 아키텍처는 다루지 않습니다.

다중 테넌시소프트웨어 시스템데이터 격리에 관한 것 입니다. 몇 가지 예 :

  • 고유 한 데이터베이스가있는 다중 계층 시스템은 다중 테넌트 일 수 있습니다. 예 : SAP 시스템은 데이터베이스 백엔드와 확장 가능한 방식으로 웹 서비스를 제공하는 두 개의 웹 애플리케이션 서버로 구성됩니다. 다중 테넌트 : 실행중인 소프트웨어 설치를 변경하지 않고 새 고객을 추가 할 수 있으며 여러 고객이 서로에 대해 알지 않고도 시스템을 사용할 수 있습니다. 데이터는 완전히 격리되어 있습니다 (독점 기술).
  • 시스템은 서로 다른 도메인 이름을 통해 다른 고객에게 노출되는 웹 서비스를 실행하는 하나 이상의 프로세스로 구성됩니다 (그러나 서버에서 시스템을 실행하는 프로세스는 여전히 동일합니다). 데이터 분리는 별도의 데이터베이스를 통해 이루어집니다. 확실히 멀티 테넌트입니다.
  • 마이크로 서비스 시스템은 각각 고유 한 마이크로 데이터베이스를 사용하여 느슨하게 연결된 여러 웹 서비스 세트를 유사하게 실행할 수있다. 확장을 위해 필요한 경우 동일한 마이크로 서비스의 새 복제본을 시작할 수 있으며 일부 등록 기능을 통해 피어를 찾아 자동으로 연결하여 사용자에게 단일 응용 프로그램의 동작을 제공합니다. 그런 다음 가능한 두 가지 시나리오가 있습니다.
    • 새 고객에게 서비스를 제공하려는 경우 새로운 별도의 마이크로 서비스 세트를 시작하고 한 고객의 마이크로 서비스가 동일한 고객과 관련된 마이크로 서비스에만 연결되도록 구성해야합니다 (단일 테넌트).
    • 그러나 실행중인 인스턴스를 사용하여 새로운 고객에게 서비스를 제공 할 수 있다면 (그리고 새로운 마이크로 서비스는 성능에만 필요합니다), 다중 테넌트입니다

1

예, 당신의 이해는 기본적으로 맞습니다. 응용 프로그램은 여러 고객이 공유하며 각 고객 데이터는 데이터베이스에서 제공됩니다. 동일한 데이터베이스에서 다른 고객의 데이터를 가져 오지 않고 동일한 코드를 공유하는 것은 다중 테넌트로 간주되지 않을 것입니다.


2
@NomiAli 아니요, 그 다중 테넌트는 고려하지 않습니다. 각 고객마다 별도의 환경을 구축하고 있습니다. 멀티 테넌트의 이점 중 하나는 데이터베이스와 소프트웨어가 모든 고객에 대해 동시에 업그레이드된다는 것입니다. 한 번의 배포로 모든 사람이 최신 버전을 사용합니다. 당신이 말하는 것은 모든 고객이 그들 자신의 분리 된 설치를 가지고 있다는 것입니다. 공유 코드베이스는 있지만 다른 데이터베이스를 가질 수 있다고 생각하지만 DB 변경에 대해주의해야하므로 더 비싸므로 멀티 테넌트의 목적을 상실하기 때문에 어리석은 일입니다.
Andy

1
@NomiAli 고객 당 스키마는 고객 당 데이터베이스보다 훨씬 많은 단점이 있으며 스키마 이름 만 변경하면 동일한 스크립트를 실행해야하기 때문에 관리하기가 훨씬 어렵습니다. 다시 말하지만 불가능하지는 않지만 다중 테넌트 응용 프로그램의 요점은 소프트웨어 공급 업체의 비용을 줄이는 것입니다. 당신이 요구하는 것들을 다시 밀어 올리십시오.
Andy

2
그렇다면 모든 테넌트가 충돌하거나 타협되는 저의 외로운 데이터베이스라면 ... 비용 절감은 어디입니까? 그리고 모든 테넌트가 서로 다른 리소스와 성능 요구를 가질 때 어떻게됩니까? 데이터 스토리지에 액세스하려면 어떻게해야합니까? ... 예. 테넌마다 다른 데이터 저장소와 다른 스키마는 다중 테넌시입니다. 여기서 고객에게 제공하고자하는 비즈니스 전략과 서비스는 구현 세부 사항보다 중요합니다. 다중 테넌시는 기능, 차등 값입니다. 고객의 요구에 가까울수록 좋습니다.
Laiv

2
당신은에 관심이있을 것이다 softwareengineering.stackexchange.com/q/340531/222996
Laiv

4
다중 데이터베이스 측면을 약간 과장합니다. 여러 데이터베이스는 단지 디자인 결정입니다. 여러 데이터베이스가 동일한 스키마를 공유하고 스크립트를 사용하여 모두 동시에 업데이트 할 수 있습니다. 모든 다중 테넌트 애플리케이션은 각 고객의 데이터를 다른 고객과 분리해야합니다. 이 작업을 수행하는 메커니즘은 구현 세부 사항이며 원하는 분리 정도 등과 같은 요소에 따라 달라집니다.
Robert Harvey

0

다중 테넌시는 소프트웨어 응용 프로그램 의 단일 인스턴스 가 여러 고객에게 서비스를 제공 하는 아키텍처입니다 . 각 고객을 테넌트라고합니다. 테넌트는 UI (사용자 인터페이스) 색상 또는 비즈니스 규칙과 같은 응용 프로그램의 일부를 사용자 지정할 수 있지만 응용 프로그램의 코드를 사용자 정의 할 수는 없습니다.

다중 테넌트 아키텍처에서 응용 프로그램의 여러 인스턴스는 공유 환경에서 작동합니다. 이 아키텍처는 각 테넌트가 물리적으로 통합되어 있지만 논리적으로 분리되어 있기 때문에 작동 할 수 있습니다. 즉, 소프트웨어의 단일 인스턴스가 하나의 서버에서 실행 된 다음 여러 테넌트를 지원합니다. 이러한 방식으로 다중 테넌트 아키텍처의 소프트웨어 응용 프로그램은 구성, 데이터, 사용자 관리 및 기타 속성의 전용 인스턴스를 공유 할 수 있습니다.

자세한 내용은 https://whatis.techtarget.com/definition/multi-tenancy 를 참조하십시오 .

귀하의 경우와 마찬가지로, 귀하의 사이트를 구독하는 모든 학교 구성원은 임차 역할 및 권한에 따라 권한을 부여받으며 동일한 응용 프로그램을 통해 해당 데이터베이스에 액세스 할 수 있습니다. 다중 데이터베이스에 연결된 단일 응용 프로그램입니다. 모든 학교에 대해 하위 도메인을 만들면 동일한 단일 테넌시 모델로 돌아갑니다.

이것이 귀하의 질문에 답변되기를 바랍니다.


1
소프트웨어 공학에 오신 것을 환영합니다 ! 제발 편집 에 대한 참조를 포함하는 답변을 소스를 ; 지금은 표절 의 경우입니다 .
Glorfindel
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.