Ambiente de gerenciamento versus plano de aplicação
O diagrama anterior fornece uma visão conceitual dos principais conceitos da arquitetura SaaS. Agora, vamos nos aprofundar nisso e definir melhor como seu ambiente SaaS se decompõe em camadas distintas. Ter essa imagem mais clara dos limites entre os conceitos de SaaS facilitará a descrição das partes móveis de uma solução SaaS.
O diagrama a seguir divide seu ambiente SaaS em dois planos distintos. Do lado direito, fica o ambiente de gerenciamento. Esse lado do diagrama inclui todas as funcionalidades e serviços usados para integrar, autenticar, gerenciar, operar e analisar um ambiente multi-inquilino.
Esse ambiente de gerenciamento é fundamental para qualquer modelo SaaS multi-inquilino. Toda solução SaaS, independentemente do esquema de implantação e isolamento do aplicativo, deve incluir os serviços que oferecem a capacidade de gerenciar e operar seus inquilinos por meio de uma experiência única e unificada.
Dentro do ambiente de gerenciamento, dividimos ainda mais isso em dois elementos distintos. Os principais serviços aqui representam o conjunto de serviços usados para orquestrar sua experiência multilocatária. Incluímos alguns exemplos comuns de serviços que normalmente fazem parte do núcleo, reconhecendo que os serviços principais podem variar um pouco para cada solução SaaS.
Você também notará que mostramos um aplicativo de administração separado. Isso representa o aplicativo (um aplicativo web, uma interface de linha de comando ou uma API) que pode ser usado por um provedor de SaaS para gerenciar seu ambiente multi-inquilino.
Uma ressalva importante é que o ambiente de gerenciamento e seus serviços não são, na verdade, multi-inquilinos. A funcionalidade não está fornecendo os atributos funcionais reais do seu aplicativo SaaS (que precisa ser multi-inquilino). Se você examinar qualquer um dos serviços principais, por exemplo, não encontrará o isolamento do inquilino e as outras estruturas que fazem parte da funcionalidade do seu aplicativo multi-inquilino. Esses serviços são globais para todos os inquilinos.
O lado esquerdo do diagrama faz referência ao plano de aplicação de um ambiente SaaS. É aqui que reside a funcionalidade multilocatária do seu aplicativo. O que aparece no diagrama precisa permanecer um pouco vago, porque cada solução pode ser implantada e decomposta de forma diferente com base nas necessidades de seu domínio, na área de cobertura de sua tecnologia e assim por diante.
O domínio do aplicativo é separado em dois elementos. Existe o aplicativo SaaS que representa a experiência/aplicativo do inquilino para sua solução. Essa é a superfície que os inquilinos tocam para interagir com seu aplicativo SaaS. Depois, há os serviços internos que representam a lógica de negócios e os elementos funcionais de uma solução SaaS. Eles podem ser microsserviços ou algum outro pacote de seus serviços de aplicativos.
Você também notará que apresentamos o provisionamento. Isso é feito para destacar o fato de que qualquer provisionamento de recursos para inquilinos durante a integração faria parte desse domínio do aplicativo. Alguns poderiam argumentar que isso pertence ao ambiente de gerenciamento. No entanto, nós o colocamos no domínio do aplicativo, porque os recursos que ele deve provisionar e configurar estão mais diretamente conectados aos serviços criados e configurados no plano do aplicativo.
Dividir isso em planos distintos torna mais fácil pensar no cenário geral de uma arquitetura SaaS. Mais importante ainda, ele destaca a necessidade de um conjunto de serviços que estão totalmente fora do escopo da funcionalidade do seu aplicativo.