Conheça a principal novidade do novo Magic xpa 4.9: um novo orquestrador para o sistema de mensageria.
A nova versão (4.9) do Magic xpa já está disponível e traz uma série de novidades e recursos.
Mas nesta publicação, vamos focar naquela que certamente é a mais impactante: o novo orquestrador de mensagens e processos, InMemoryMiddleware (IMM).
Estão saindo de cena (presentes desde a versão 3.0 até a 4.8.1):
e chegando para assumir a orquestra (a partir da versão 4.9):
O InMemoryMiddleware (IMM) é um produto (tecnologia) próprio da Magic Software, que combina as soluções destacadas acima e objetiva além de acompanhar as mais avançadas tecnologias atuais, continuar evoluindo o Magic xpa em robustez e escalabilidade.
*Nota: Importante: Tudo isso se refere a substituição do GigaSpaces pelo IMM. Quando se escolhe trabalhar com o Magic xpa Broker (que segue disponível), as mudanças a seguir não afetam em nada (não são relevantes).
Não dá para falar com justiça de todas os novos recursos da versão nova do Magic xpa 4.9 em um único post.
Por isso vamos destacar a partir de agora o primeiro impacto dessa mudança: o processo de instalação com o IMM.
A partir desta versão 4.9 conseguimos ver este processo claramente separado em 3 fases distintas:
- Pré-Instalação
- Instalação
- Pós-Instalação
Pré – Instalação
Embora o Magic xpa Studio e o Magic xpa Server sigam disponíveis também na versão Windows (Microsoft), que é o SO onde o Magic xpa predomina desde sempre, o InMemoryMiddleware (IMM) obrigatoriamente requer um ambiente Linux (por conta do Docker/Kubernetes).
Pode ser um servidor real ou servidor virtual (VMWare, VirtualBox, WSL2).
*Nota: Se o Linux ainda é um desconhecido para você, reserve um tempo para conhecê-lo.
Focando na praticidade do desenvolvedor (que usa primariamente o Magic xpa Studio no Windows), neste post vamos abordar a opção de uso do WSL2 (que é mais prático para os usuários Windows).
Mas como o nosso foco aqui é o Magic xpa e o IMM, nossa passagem sobre o Linux será superficial. Ele não é a nossa estrela.
Por isso, necessitando de mais detalhes sobre Linux, Docker ou Kubernetes, boas fontes de referência: OpenAI e/ou Google.
Para começar, você precisará ter:
- Windows 10 ou Windows 11
- Recurso do “Hyper-V” ativado no seu Windows
- Recurso do “WSL2” instalado no seu Windows
*Nota: aqui, um detalhe muito importante: precisa ser a opção de WSL2 da "Microsoft Store", e não o que está nos "Programas e Recursos" do Windows. Isso porque essa 1ª tem suporte ao systemd, e a segunda, não tem.
Uma vez que estas instalações/configurações iniciais foram concluídas com sucesso, basta abrir o prompt do DOS como “Admistrador” e digitar:
wsl -l -o
para ver que opções (versões) do Linux estarão disponíveis na web (Microsoft):
Nós não faremos a instalação manual de um ambiente WSL2.
Em vez disso, nós vamos usar o Docker for Windows Desktop:
Esse instalador já cria e configura automaticamente todo o ambiente WSL2 (Linux) e Docker nele:
wsl -l -v
Abrindo a aplicação (ícone no desktop) Docker for Windows:
Nós teremos (após um breve cadastramento de uma conta com eles) uma tela inicial como esta:
E vemos assim que até aqui foi completado com sucesso.
Nossa segunda instalação precisa ser do Kubernetes.
Para isso, nesta mesma interface vamos até a opção: Settings > Kubernetes:
marcar os dois checkboxes e clicar em “Apply & Restart“.
Depois de algum tempo, nossa tela inicial ficará como esta:
E vemos novamente que até aqui foi completado com sucesso.
Podemos também conferir que já foi criado o arquivo %USERPROFILE%\.kube\config, que define as regras de acesso ao Kubernetes.
Em seguida, vamos instalar o Chocolatey, rodando este comando no Windows PowerShell (como “Administrador“):
powershell Set-ExecutionPolicy Bypass -Scope Process -Force;[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
Uma vez que ele esteja instalado (estará na pasta %ProgramData%\chocolatey), podemos conferir com o comando abaixo:
%ProgramData%\chocolatey\bin\choco
Na sequência precisamos instalar o “kubernetes-cli” e o “kubernetes-helm“. Isso é feito com estes dois comandos:
%ProgramData%\chocolatey\bin\choco install -y kubernetes-cli
%ProgramData%\chocolatey\bin\choco install -y kubernetes-helm
À continuação, adicionamos a pasta %ProgramData%\chocolatey\bin no PATH do Windows e podemos rodar os comandos:
kubectl version --client --output=yaml
helm version
E vemos que estão OK o Kbernetes-Cli/Helm-Cli.
Se executarmos os comandos:
kubectl config view
kubectl cluster-info
Podemos confirmar que nosso arquivo de confirmação no Windows está devidamente reconhecido e permite a comunicação com o Kubernetes no Linux..
Podemos rodar também o comando:
kubectl get pod --all-namespaces
e veremos o output dos pods Kubernetes (no Linux ).
Com estas etapas, finalizamos nossa pré-instalação (preparação dos pré-requisitos).
Instalação
Esta fase é tranquila e satisfatoriamente simples. Não há muitas mudanças em relação as versões anteriores:
Finalizada esta parte, haverá uma pequena alteração nos serviços instalados do lado do Windows.
Não existe mais o serviço do “Magic xpa GSA” (lembre-se que o GigaSpaces não faz mais parte do Magic xpa).
Com estas etapas, finalizamos nossa instalação.
Pós – Instalação
Também bastante tranquila, nesta fase nós precisamos entrar na pasta %XPA_HOME%\InMemoryMiddleware\deploy:
usando o prompt do DOS (como “Administrador“). E nela, executar o comando:
deploy-imm.bat ..\\..\\InMemoryMiddleware\\config\\projectsStartup.json
e agora ao executarmos novamente o comando:
kubectl get pod --all-namespaces
podemos confirmar os pods do Magic xpa já disponíveis.
*Nota: ..\\..\\InMemoryMiddleware\\config\\projectsStartup.json é o arquivo que contém a lista dos projetos que queremos que sejam iniciados (semelhante ao GigaSpaces-xpa\config\projectsStartup.xml anteriormente).
Se executarmos este comando, por exemplo, podemos ver o conteúdo da pasta $HOME (~/) do pod:
kubectl -n <namespace> exec <pod> -- ls -lart ./
Para finalizar, precisamos ir até a pasta %XPA_HOME%\InMemoryMiddleware\deploy e iniciar o IMM-Agent:
O IMM Agent é o módulo/componente do lado Windows que vai iniciar e executar o Magic xpa Server, e coordenar a comunicação dele com o InMemoryMiddleware que está lá no Linux .
Quando o Magic xpa Server inicia a executar um projeto de integração/automação, ele inicia como um subprocesso do IMM Agent:
*Nota: Em um ambiente de produção/homologação, você provavelmente vai preferir registrar o IMM-Agent como um serviço do SO para início automático.
Uma vez publicados os pods Kubernetes (no Linux) do Magic xpa, podemos acesso o endereço web:
http://kubernetes.docker.internal:5118/
e teremos então acesso ao novo Magic xpa Monitor (web), que substitui o antigo Monitor do GigaSpaces.
E pronto. Conclui-se assim a instalação do novo Magic xpa 4.9.
Fique ligado no Blog MagicBR, para mais dicas.
Para receber os artigos do Blog Magic Brasil em primeira mão no seu email, registre-se aqui