Vostede é un programador, arquitecto de sistemas ou xestor de TI que busca unha solución para reducir gastos, aumentar a escalabilidade e protexer as súas aplicacións baseadas na nube?
Se este é o caso, entón o multi-inquilino pode ser a túa resposta.
Nesta publicación, analizaremos os conceptos básicos do multi-tenancy, as técnicas alternativas para implementalo e os factores cruciais a ter en conta. Esta guía ofrecerache todo o que necesitas para comezar.
Que é exactamente o multitenancy?
Un só software pode servir a numerosos clientes (inquilinos) baixo o concepto de arquitectura de software multitenencia. Cada inquilino ten os seus propios datos, configuración e interface co usuario e está loxicamente separado dos demais.
Isto implica que os datos de cada inquilino son distintos dos datos doutros arrendatarios e non son accesibles para outros inquilinos. No software baseado na nube, onde numerosos clientes comparten a mesma infraestrutura, úsase con frecuencia a multitenencia.
A multitenencia foi un concepto durante un tempo, pero co crecemento de computación en nube, foi máis coñecido recentemente. No software baseado na nube, a multitenencia é unha técnica poderosa para aforrar gastos, aumentar a escalabilidade e aumentar a flexibilidade.
Por que é importante?
O multi-tenancy ten a súa orixe nos deseños tradicionais de mainframe cando varios programas e usuarios compartían unha única plataforma de hardware de procesamento. Coa introdución da virtualización contemporánea asistida por hardware, a multitenencia experimentou un boom de popularidade.
A capacidade de compartir hardware en numerosas instancias de software, como máquinas virtuais e as súas aplicacións, xurdiu como unha característica crítica no software baseado na nube.
A multitenencia utilízase habitualmente en centros de datos locais e infraestruturas aloxadas, como a colocación e os servizos de TI compartidos, o que permite que varios usuarios compartan unha infraestrutura de hardware restrinxida ou compartida.
Debido á súa capacidade para reducir custos, mellorar a escalabilidade e aumentar a seguridade no software baseado na nube, a multitenencia converteuse nun paradigma de deseño de software esencial.
Como se consegue?
Virtualización, containerización e computación en nube son algúns dos enfoques e tecnoloxías utilizados para realizar multi-tenancy.
A virtualización permite que numerosos ordenadores virtuais ou sistemas operativos funcionen nunha única máquina física, o que permite crear diversos ambientes illados.
A contenerización, por outra banda, permite o desenvolvemento de ambientes lixeiros, illados e portátiles que comparten o mesmo núcleo de sistema operativo.
A computación na nube é unha arquitectura altamente escalable e adaptable que permite a numerosos usuarios compartir un conxunto de recursos informáticos baixo demanda.
Estas tecnoloxías, cando se combinan con diferentes técnicas de xestión e seguridade, permiten o desenvolvemento dun ambiente multi-inquilino que garante o illamento, a seguridade e o rendemento de cada inquilino.
Diferenza entre inquilino único e multi-inquilino
A distinción principal entre ambientes de inquilino único e de varios arrendatarios é que un cliente nun ambiente de inquilino único ten unha instancia dedicada da aplicación e da infraestrutura de apoio, mentres que varios clientes comparten a mesma aplicación e infraestrutura nun ambiente de inquilinos múltiples.
Os datos de cada cliente están separados dos datos doutros clientes nun ambiente de varios arrendatarios, pero comparten a mesma base de código e infraestrutura. Isto reduce os custos do provedor en situacións de varios arrendatarios, xa que poden servir a varios clientes cunha única instancia do programa.
A configuración dun único inquilino, por outra banda, proporciona máis control, personalización e seguridade porque cada cliente ten os seus recursos dedicados e os actos dun cliente non afectan ás accións dos outros.
Beneficios da multitenencia
- Aforro de custos: Dado que a multitenencia permite que numerosos clientes compartan a mesma infraestrutura, tanto o vendedor de software como os clientes poden aforrar cartos.
- Escalabilidade mellorada: A multitenencia permite aos provedores de software simplemente escalar a súa infraestrutura para satisfacer as demandas dos seus clientes sen ter que implantar hardware e software novo para cada cliente.
- Flexibilidade aumentada: A multitenencia dálle máis liberdade tanto ao vendedor de software como aos consumidores. Os clientes poden modificar o seu consumo segundo sexa necesario, mentres que os provedores de software poden ofrecer unha variedade de niveis de servizo e esquemas de prezos.
- Mellor seguridade: Dado que a multitenencia illa os datos de cada inquilino e impide que outros inquilinos accedan a eles, a seguridade aumenta.
- Utilización de recursos mellorada: A multitenencia permite que os provedores de software fagan o mellor uso dos seus recursos de hardware, obtendo un rendemento e eficiencia mellorados.
Aproximacións á multitenencia
Bases de datos separadas
Cada inquilino ten a súa base de datos baixo este enfoque. Esta é a solución máis sinxela e ofrece unha segregación total de datos entre inquilinos. Cada inquilino ten control total sobre a súa base de datos e pode configurala ao seu gusto.
Esta estratexia, con todo, pode ser custosa porque cada inquilino require a súa instancia de base de datos. Ademais, administrar varias bases de datos pode ser complicado e lento.
Base de datos compartida, esquema separado
Todos os inquilinos desta técnica comparten unha única base de datos, pero cada inquilino ten o seu esquema distinto dentro desa base de datos. Dado que todos os inquilinos comparten unha única instancia de base de datos, esta técnica fai un uso eficaz dos recursos.
Tamén facilita a xestión e o mantemento porque só hai unha base de datos para manexar.
Non obstante, pode ser máis difícil de implementar xa que o esquema de cada inquilino debe construírse e manterse coidadosamente para garantir a suficiente separación de datos. Este método é ideal para escenarios nos que os inquilinos teñen comparables estruturas de datos pero requiren separación de datos.
Base de datos compartida, esquema compartido
Todos os inquilinos deste modelo comparten unha única base de datos e un único esquema dentro desa base de datos. Esta é a opción máis eficiente en recursos xa que só require unha instancia de base de datos e un esquema para administrar.
Non obstante, pode ser difícil manter unha segregación de datos suficiente entre os inquilinos. Este método é adecuado para escenarios nos que os inquilinos teñen estruturas de datos idénticas e non requiren un illamento total de datos.
Diferentes consideracións para a multitenencia
Illamento de datos
O illamento de datos é un dos aspectos máis importantes da multitenencia.
Para evitar accesos non desexados, os datos de cada inquilino deben manterse separados e protexidos. Isto conséguese a miúdo mediante o uso de técnicas de separación lóxicas ou físicas como diferentes bases de datos, esquemas ou táboas.
É fundamental asegurarse de que os datos estean separados para salvagardar a privacidade e a seguridade dos datos de cada inquilino.
Incorporación do inquilino
O proceso de introducir un novo inquilino nun sistema multi-inquilino denomínase incorporación de inquilinos. Este procedemento debe ser xestionado coidadosamente para garantir que os novos inquilinos estean correctamente incorporados causando a menor cantidade de interrupcións aos inquilinos actuais.
Isto inclúe a subministración de novos recursos, a creación de novas contas e a configuración do entorno do inquilino.
Un procedemento de incorporación simplificado pode axudar a diminuír os gastos e mellorar a eficiencia da xestión dos inquilinos.
actuación
A multitenencia ten o potencial de degradar o rendemento do sistema, especialmente se os inquilinos comparten recursos como a potencia de procesamento, a memoria ou o almacenamento. Debido ao efecto do veciño ruidoso, as actividades dun inquilino poden ter un impacto no rendemento doutros inquilinos.
A asignación e seguimento coidadosos dos recursos poden axudar a reducir este problema e garantir que o rendemento de cada inquilino non se vexa prexudicado.
Personalización
A capacidade de cada inquilino para personalizar o seu entorno para satisfacer as súas demandas coñécese como personalización. Aínda que a personalización pode aumentar o valor dun sistema multi-inquilino para cada inquilino, tamén pode aumentar a complexidade e o custo da administración.
Conseguir un equilibrio entre a personalización e a estandarización pode axudar a garantir que o sistema sexa escalable e mantido aínda que satisfaga as demandas específicas de cada inquilino.
Exemplos de multi-tenancy
Multitenencia en nube pública
Os clientes en multitenencia na nube pública empregan instancias de recursos e servizos para construír unha arquitectura adecuada para hospedar unha aplicación empresarial.
Todos os recursos ou servizos na nube comparten hardware e capacidade de rede subxacentes, e aínda que esta estratexia pode proporcionar aos consumidores recursos dedicados, é a excepción e non a regra.
Para lograr a multitenencia, os provedores de nube pública empregan unha serie de metodoloxías, incluíndo enfoques baseados en VM e en contedores.
Hardware: máquina virtual e contenedor
Pódense xerar e aloxar varias máquinas virtuais e contedores virtuais nun único servidor mediante a virtualización de hardware, con cada máquina virtual executando unha aplicación ou servizo separado xestionado por unha parte interesada, departamento ou cliente diferente.
A multitenencia de hardware é común en datos modernos centros e ambientes de colocación, e é un habilitador crítico para toda a computación en nube.
Multitenencia SaaS
Dado que os provedores de software como servizo (SaaS) adoitan clasificarse como provedores de nube, esta é unha versión de multitenencia na nube pública.
Por exemplo, un provedor de SaaS pode operar unha instancia do seu programa nunha única instancia dunha base de datos e dar acceso en liña a varios clientes. Neste caso, os datos de cada inquilino están segregados e invisibles para outros arrendatarios.
O multi-tenancy tamén se pode introducir en sistemas multinivel como SAP.
Multi-tenencia en nube privada
Multitenencia nunha nube privada. Unha nube privada é semellante a unha nube pública en termos de multitenencia, pero unha nube privada está dedicada a unha única empresa ou grupo, mentres que unha nube pública atende as necesidades de numerosos clientes ou organizacións.
Multitenencia sen servidor
A informática sen servidor é un servizo na nube que utiliza eventos para cargar e executar o código dun cliente antes de descartar a infraestrutura cando se realiza o código.
Moitos programas poden compartir a mesma función, e a función carga e opera en calquera infraestrutura de hardware compartida dispoñible.
Cales son os posibles inconvenientes?
Unha das principais desvantaxes é a posibilidade de fugas de datos. Dado que varios inquilinos comparten a mesma infraestrutura, un fallo de seguridade na aplicación dun inquilino pode poñer en perigo os datos de todos os demais inquilinos.
Outra desvantaxe é a posibilidade de efectos de veciños ruidosos, nos que os hábitos de uso dun inquilino poden degradar o rendemento das aplicacións doutros arrendatarios.
Ademais, as modificacións e integracións poden ser difíciles de implementar e certos inquilinos poden esixir configuracións distintas ou versións do programa que sexan incompatibles coas doutros inquilinos.
Finalmente, o multi-tenancy pode non ser apropiado para moitas aplicacións, especialmente aquelas que requiren altos niveis de velocidade ou segregación de datos rigorosa.
Orientacións futuras para a multitenencia en software baseado na nube
O futuro da multitenencia parece brillante a medida que o software baseado na nube segue expandíndose e adaptándose. A informática sen servidor, que permite unha asignación e un consumo de recursos máis granulares, é cada vez máis popular.
Isto ten o potencial de mellorar a multitenencia ao permitir un maior illamento e uso de recursos. Os microservizos e os contedores, que proporcionan maior flexibilidade e modularidade, son outra vía para a multitenencia.
Ademais, as tecnoloxías de aprendizaxe automática e intelixencia artificial teñen o potencial de optimizar a asignación de recursos e o rendemento en sistemas multi-tenant.
Finalmente, o futuro da multitenencia no software baseado na nube cambiará como resultado das melloras tecnolóxicas e das demandas empresariais cambiantes.
Deixe unha resposta