ESTE ARTIGO EM 5 SEGUNDOS:
- O Azure Spring Cloud é um serviço totalmente gerido para aplicações Spring Boot que lhe permite concentrar-se na construção e execução das aplicações que operam o seu negócio;
- Existem inúmeros benefícios de implementar uma solução deste tipo no seu negócio, entre as quais: ter uma gestão simplificada de infraestruturas; Gestão integrada do ciclo de vida da aplicação; Monitorização fácil de aplicações.
A arquitetura cloud-native é um conceito já estabelecido no mundo das TI. Existem inúmeras razões para optar por um ambiente cloud-ready, planeado por projeto. Para exemplificar algumas das razões, podemos analisar características, tais como:
- Escalabilidade – onde podemos escalar cada serviço com base na carga;
- Alta disponibilidade – criar sistemas mais resilientes;
- Velocidade – entrega contínua, autonomia da equipa e release trains desagregados;
- Custo e eficiência – pode ser assoberbante gerir infraestruturas baseadas num ambiente “on-premise“. Atualização de hardware, manutenção e avaliação de custos são muito mais concisas e fáceis de gerir num ambiente cloud-based.
Entre os utilizadores de cloud como a GCP, Amazon, Oracle entre outros, a Microsoft Azure está a aumentar o seu esforço para viabilizar uma arquitetura cloud-native para negócios, através de uma parceria com a Pivotal, trazendo o seu serviço Spring Cloud para o centro das atenções. Uma vez que Java é uma linguagem bastante importante para a Microsoft, e a Spring Boot é uma tecnologia estabelecida no mercado, foi feita uma integração entre estas duas plataformas para lidar com os desafios da arquitetura dos microsserviços.
Desafios comuns para aplicações Spring na arquitetura de microsserviços
Imagem: Microsoft
É necessário muito esforço para gerir uma infraestrutura cloud para aplicações Spring Boot, construídas sobre uma infraestrutura dinâmica escalável.
Os ciclos de vida das aplicações tornam-se num processo complexo e doloroso. Considerando a natureza complicada dos microsserviços, é difícil criar, desenvolver, testar, e implementar sem problemas. Cada aplicação Spring deve ter em conta a configuração do sistema do ambiente e de como aceder a cada serviço da cloud.
O troubleshooting pode ser bastante desafiante devido à grande variedade de recursos, tais como registos de aplicações, bases de dados, message brokers, cloud functions, serviços de autenticação, etc. É difícil monitorizar e identificar as necessidades de escalabilidade num sistema complexo em crescimento.
O Azure Spring Cloud
O Azure Spring Cloud é um serviço totalmente gerido para aplicações Spring Boot que lhe permite concentrar-se na construção e execução das aplicações que operam o seu negócio, sem o incómodo de gerir também a infraestrutura.
O Azure Spring Cloud fornece todas as funcionalidades de que necessita para gerir o ciclo de vida da aplicação, versionamento, implementação, escalabilidade, desempenho, e capacidades de rastreio. Os clientes podem, simplesmente, implementar os seus JARs ou código, e o Azure Spring Cloud irá automaticamente conectar as suas aplicações com o tempo de execução do serviço Spring. Uma vez implementados, podem facilmente monitorizar o desempenho da aplicação, corrigir erros e melhorar rapidamente as aplicações. Está integrado no ecossistema Azure e pronto a ser utilizado pelas empresas.
Além disso, se um cliente já estiver a utilizar aplicações Spring, não são necessárias alterações de código para migrar essas aplicações de outro ambiente para o ASC. Os clientes só precisam de orquestrar os apontadores para interagir com os dados, cache, mensagens, e serviços de diretório na cloud Azure.
Não há necessidade de configurar a integração entre serviços, uma vez que o Azure Spring Cloud fornece uma funcionalidade de service discovery totalmente automatizada.
O Azure Spring Cloud facilita as ligações de serviço com todos os componentes da cloud, tais como DB, message brokers, e UI gateways. As alterações de configuração são externalizadas e efetuadas através de controlos de configuração do Azure Spring Cloud. Assim, também não existe necessidade de refazer um processo de implantação.
Os registos e os diagnósticos são centralizados. Os proprietários podem consultar qualquer registo específico através do portal utilizando todas as capacidades que uma ferramenta como o ELK pode fornecer. Podem até configurar a integração com uma ferramenta de diagnóstico externa, tal como New Relic, App Dynamics ou Dynatrace.
O serviço é desenvolvido, operado e apoiado conjuntamente pela Microsoft e VMware.
Azure Spring Cloud em detalhe
Imagem: Microsoft
Começando no painel de controlo, o Azure Spring Cloud inclui todo o processo de gestão de aplicações Spring num ecossistema de microsserviços Azure. Tudo é centralizado e fácil de utilizar para o proprietário. Mais concretamente, o middleware da Spring Cloud possui os seguintes componentes:
- Gestão do ciclo de vida: Programar, Construir,e Implementar
O utilizador tem a opção de integrar o seu próprio processo de desenvolvimento através do serviço de construção Pivotal e do registo do Azure Container. Pode também gerir e construir o código através de um determinado sistema CI/CD com base nas suas próprias preferências, implantando os artefactos construídos diretamente nos containers, ou gerando imagens de containers no registo de containers do Azure.
- Configuração
Cada configuração da aplicação Spring é externalizada, utilizando as capacidades do servidor de configuração Azure, onde o proprietário pode configurar todos os parâmetros, tais como endereços de servidor, ligações a bases de dados e, até, diferentes perfis para isolar ambientes como desenvolvimento, montagem e produção. Para fazer alterações à configuração, é apenas necessário efetuar modificações através do repositório git, e depois reiniciar as aplicações relacionadas com a alteração desejada.
- Service Discovery
As aplicações Spring podem tirar partido de um discovery service como o Eureka, para assegurar a sensibilização e garantir a conetividade entre essas aplicações.
- Serviço do Gateway
O ASC fornece recursos de entrada para expor o API para os clientes. Estes API gateway asseguram que o processo é feito com segurança e fiabilidade, poupando quaisquer outras configurações de rede específicas.
- Rastreio e Diagnóstico
Há componentes disponíveis tais como o Azure Monitor, o Azure Log Analytics, e o Azure Insights, que desempenham um papel muito importante como ferramentas de diagnóstico. O cliente pode analisar os registos para extrair mais detalhe dos problemas de tempo de execução, analisar vestígios de aplicações distribuídas e monitorizar o desempenho das aplicações para compreender melhor as causas de raiz de qualquer bug e mau funcionamento, ou onde se encontram os congestionamentos de comunicação.
Todas as features disponíveis têm um papel importante na facilitação das operações quotidianas em todos os níveis de responsabilidade.
? Do ponto de vista do desenvolvimento:
O service discovery e a ligação de componentes são facilitados, uma vez que existe um ecossistema para centralizar todas as operações de gestão num único painel de controlo.
? Do ponto de vista do programador:
O fácil desenvolvimento, configuração, testagem e implementação da aplicação dão às suas equipas bastante eficiência de tempo até à entrega, desde projetos de baixo orçamento a ecossistemas de microsserviços mais complexos. Não há necessidade de compreender os detalhes das infra-estruturas que se encontram por baixo do sistema. Apenas precisa de se concentrar no desenvolvimento de aplicações. Mesmo a ligação e integração de aplicações podem ser delegadas ao serviço de integração de cloud devido ao registo de serviços da Spring Cloud.
? Do ponto de vista do suporte:
Os registos são centralizados, fornecendo um poderoso painel para consultar entradas de registo para aplicações, bases de dados, message brokers ou outros componentes. O rastreio e mapeamento de aplicações simplifica a compreensão da arquitetura do microsserviço.
Pensamentos Finais
É seguro dizer que o Azure Spring Cloud traz vários benefícios aos clientes que queiram otimizar a forma como gerem os seus negócios.
Gestão simplificada de infraestruturas:
- Executar as aplicações Spring Boot;
- Infraestrutura global escalável;
- Reduzir o tempo de paragem e os riscos no deployment.
Gestão integrada do ciclo de vida da aplicação:
- Componentes Spring Cloud disponíveis;
- Implementar o código fonte ou construir artefactos;
- Ligar automaticamente a sua aplicação com a infraestrutura Spring Cloud.
Monitorização fácil de aplicações:
- Monitorizar facilmente os congestionamentos de desempenho;
- Obter conhecimentos sobre as dependências das aplicações usando o Azure Monitor;
- Agregar métricas.
Se pretende saber mais sobre este tipo de tecnologia e/ou como implementar esta solução no seu negócio, entre em contacto connosco através do e-mail: [email protected]
Technical Project Manager – Xpand IT