Entendendo Weblogic de vez

Hoje em dia a maioria das corporações sofre com a proliferação de ambientes, que ocorre por questões de insegurança (ao colocarmos novas aplicações em ambientes já existentes e funcionais) ou por diferença de criticidade. O grande problema dessa proliferação de ambientes é que ela custa caro em termos de mais infraestrutura e pessoal e também aumenta o risco, pois cresce a dificuldade de manter todos esses ambientes atualizados.

A solução para esse cenário é a consolidação das aplicações em um número menor de ambientes, reduzindo a complexidade, demanda sobre o time de operações, riscos, etc. No entanto, tal consolidação nos expõe aos problemas que levam à proliferação, como, por exemplo, a possibilidade de uma aplicação impactar sobre outra. A consolidação com controle sobre o comportamento de cada aplicação e também com isolamento entre elas é o cenário ideal para colocar mais aplicações em um mesmo ambiente e ainda garantir que uma não cause impacto na outra. Isso só pode ser obtido através de uma abordagem Multitenant. Mas, o que é mesmo Multitenant?

Para que seja possível entender o que é uma abordagem Multitenant, por que ela permite a consolidação com controle e, depois, assimilar como isso se aplica ao mundo Java EE, é preciso dar um passo atrás e compreender o significado desse termo. Multitenancy significa “múltiplos inquilinos” e, quando falamos sobre o assunto, estamos tratando de consolidação e compartilhamento de recursos com o objetivo de colocar mais ativos no mesmo ambiente e nos beneficiar dos recursos comuns disponíveis.

No mundo do software, podemos dizer que um software ou plataforma é Multitenant quando uma instância serve a múltiplos consumidores, também conhecidos como tenants. Essa abordagem permite compartilhar o ambiente e tirar proveito de uma série de fatores devido a esse compartilhamento, como veremos ao longo do artigo.

Java EE e o compartilhamento de recursos

Neste momento você pode estar pensando nos projetos Java EE que possui, onde provavelmente já compartilha recursos através da instalação de múltiplas aplicações no mesmo ambiente, não é mesmo? Então, o que de tão interessante tem esse tal de Multitenant que você já não esteja fazendo, visto que na maioria dos servidores de aplicação é possível instalar diversas aplicações na mesma instância e compartilhar os recursos e serviços providos pela plataforma Java EE?

Isso tudo é verdade, mas até certo ponto. O Java EE realmente é uma plataforma que permite o compartilhamento de recursos. Você pode instalar múltiplas aplicações na mesma JVM, fazendo com que todas elas compartilhem memória, poder de processamento, conexões com a base de dados, adaptadores JCA, recursos JMS (filas, tópicos, connection factories), entre outros.

Porém, nem tudo é perfeito nesse cenário. O problema começa quando você precisa compartilhar o ambiente e a infraestrutura, mas ao mesmo tempo necessita de um isolamento forte entre os ‘tenants’. Os tenants podem ser aplicações Java EE, ou conjuntos delas, que demandam isolamento umas das outras. A motivação desse isolamento pode ser, por exemplo, a criticidade ou o fato de ser uma aplicação nova, não madura e que não se tem confiança sobre o impacto que pode causar no ambiente.

Isolamento é importante quando o assunto é compartilhamento

Já que multitenancy significa multi-inquilinato, podemos fazer uma analogia com o mundo real para exemplificar a importância do isolamento em cenários de compartilhamento de recursos. Por exemplo, ao pensar em um edifício de apartamentos, fica mais clara a demanda por compartilhamento com controle. Nesse cenário, podemos assumir que os usuários irão compartilhar algumas das facilidades do edifício, como elevadores, áreas comuns, piscinas, garagens, entre outros. No entanto, vão demandar também políticas de isolamento. Os apartamentos deverão ser isolados fisicamente uns dos outros por questões de segurança e privacidade. Será necessário também ...

Fim do trecho gratuito • continue abaixo
CONTEÚDO EXCLUSIVO

Desbloqueie toda a DevMedia

  • +2000 artigos e vídeos
  • +40 trilhas sobre Front-end, Back-end, IA e muito mais
  • +5000 exercícios práticos
  • Mentorias ao vivo individuais
até 50% OFF
A partir de
R$ 69 /mês
Assinar agora