![Usar JWTs para autenticar serviços desvenda gateways de API](https://optimuscloud.com.br/wp-content/uploads/2024/01/1706081263_Usar-JWTs-para-autenticar-servicos-desvenda-gateways-de-API-150x150.jpg)
Usar JWTs para autenticar serviços desvenda gateways de API
24 de janeiro de 2024![Dell apresenta novos produtos Edge, IA generativa, nuvem e Zero Trust](https://optimuscloud.com.br/wp-content/uploads/2024/01/1706081525_Dell-apresenta-novos-produtos-Edge-IA-generativa-nuvem-e-Zero-150x150.jpg)
Dell apresenta novos produtos Edge, IA generativa, nuvem e Zero Trust
24 de janeiro de 2024Kubernetes e microsserviços. Geralmente andam de mãos dadas, embora um não dependa do outro. Você pode desenvolver um microsserviço sem orquestração do Kubernetes e usar o Kubernetes para construir aplicativos para diferentes arquiteturas. No entanto, quando usadas em conjunto, essas tecnologias são uma combinação poderosa e amplamente utilizada para desenvolvimento de software e implantação de uma camada de dados persistente para qualquer aplicação.
Quando os arquitetos começam a trabalhar em uma aplicação, há diversas considerações para o modelo arquitetural, que incluem segurança, custos, eficiência operacional e integração com outros serviços e aplicações. Um aspecto crucial a considerar é a escalabilidade e a confiabilidade da camada de dados, simplesmente porque a camada de dados consome grandes quantidades de recursos e afeta o desempenho de todo o aplicativo mais do que outros componentes.
A ascensão dos dados em tempo real
Há muito tempo, os sistemas em tempo real eram o domínio dos romances de ficção científica. Nos últimos anos, as empresas começaram a desenvolver sistemas caros e específicos que pudessem fornecer suporte em tempo real para trabalhos especializados. No entanto, com o surgimento de plataformas de dados em tempo real, os arquitetos de software podem projetar sistemas que incorporem a capacidade de mover dados para dentro e para fora de seus bancos de dados em poucos milissegundos, usando componentes de uso geral, o que significa que qualquer aplicativo, local ou na nuvem, podem fornecer respostas de consulta em tempo real, sem a necessidade de hardware especializado e caro.
Esse novo recurso permite incorporar novas experiências do cliente em seus serviços, o que se torna um diferencial ou vantagem competitiva em relação a outras aplicações.
Alguns casos de uso comuns incluem:
- Personalização. Aplicativos que fornecem recomendações individualizadas e ofertas personalizadas são considerados a norma na era pós-pandemia e já existiam antes disso no setor de varejo online ou em qualquer sistema que faça ajustes com base no comportamento do usuário.
- Tomando uma decisão. Os sistemas que utilizam dados em tempo real para tomar decisões são extremamente valiosos nos mercados financeiro, industrial e de saúde para executar negociações, minimizar riscos e melhorar os resultados dos pacientes.
- Sistemas de monitoramento. Podem ser sistemas de controle industrial ou de ameaças cibernéticas que permitem aos administradores responder a sinais variáveis para reduzir o tempo de inatividade ou melhorar a segurança, identificando fraudes ou padrões anômalos que, de outra forma, levariam muito tempo.
- Colaboração em tempo real. As pessoas precisam de tempos de resposta rápidos em ambientes colaborativos remotos. A pandemia enfatizou a necessidade de oferecer conferências, acesso e edição de documentos em tempo real para empresas de qualquer tamanho.
- Aplicativos de IA/ML. Bancos de dados vetoriais e armazenamentos de recursos on-line fornecem dados em tempo real para modelos de aprendizado de máquina, incluindo modelos de linguagem grande (LLMs), que alimentam chatbots, assistentes virtuais e pesquisa de documentos.
Qualquer uma dessas implementações de dados em tempo real pode fornecer uma vantagem competitiva por meio de insights que costumavam levar dias para serem realizados e análises que podem ajudar as empresas a tomar melhores decisões e melhorar os resultados dos clientes. Todos os setores e todos os segmentos se beneficiarão de uma camada de dados em tempo real.
A Cloud Native Computing Foundation (CNCF) hospeda componentes críticos de pilhas de software nativo da nuvem, incluindo Kubernetes e Prometheus. CNCF serve como sede neutra para colaboração e reúne os principais desenvolvedores, usuários finais e fornecedores do setor.
Saber mais
As últimas novidades da CNCF
$(document).ready(function() { $.ajax({ método: ‘POST’, url: ‘/no-cache/sponsors-rss-block/’, headers: { ‘Cache-Control’: ‘no- cache, no-store, must-revalidate’, ‘Pragma’: ‘no-cache’, ‘Expires’: ‘0’ }, dados: { patrocinadorSlug: ‘cncf’, numItems: 3 }, sucesso: função (dados) { if (data.startsWith(‘ERROR’)) { console.log(data); $(‘.sponsor-note-rss’).hide(); } else { $(‘.sponsor-note-rss-items -cncf’).html(dados); } } }); });
As plataformas em tempo real oferecem oportunidades incríveis, mas também apresentam um novo conjunto de desafios relacionados com a operacionalização e eficiência da camada de dados.
Qual é o significado de eficiência?
Tempo de atividade? Taxa de transferência? Escalabilidade? Custo? Existem muitas respostas. Como você pode ver, este é um problema multidimensional com dois componentes principais: desempenho e operacionalização.
Desempenho refere-se à rapidez com que o serviço de dados responde. A segunda dimensão, operacionalização, é o quão flexível, responsivo e fácil de administrar é o seu sistema. Juntos, eles formam a base de uma camada eficiente de dados em tempo real.
Nos sistemas interconectados e de ritmo acelerado de hoje, os usuários esperam respostas imediatas das interações com sistemas digitais. Mesmo pequenos atrasos causam interrupções e prejudicam a experiência do cliente, resultando na perda de negócios e numa reputação negativa. Esses atrasos causados pela latência tornaram-se críticos para jogos, videoconferências, transações on-line e muitos outros aplicativos.
Os usuários abandonam aplicativos e sites que consideram lentos. Atrasos, mesmo de alguns segundos, afetam significativamente a experiência do usuário.
Você pode estar pensando: “Qual é o impacto de um banco de dados tradicional versus uma plataforma em tempo real?” E como isso se relaciona com microsserviços?”
Que bom que você perguntou.
Em uma arquitetura de microsserviços, você tem um grupo de serviços pequenos e independentes, muitas vezes fracamente acoplados, projetados para executar um conjunto mínimo de funções, daí seu nome, “microsserviços”. Esses microsserviços são conectados por meio de APIs leves para trocar mensagens, receber e enviar solicitações ou respostas. A carga útil dessas mensagens são os dados que você precisa para mover entre elas, sua camada de dados.
Quais são os pontos a considerar ao projetar uma arquitetura de microsserviços com plataforma de dados em tempo real?
A resposta simples é planejar esses dois aspectos principais:
- Desempenho
- Operacionalização
Desempenho
Imagine que o “serviço de autenticação” do seu aplicativo esteja lento porque o banco de dados não consegue lidar com uma tempestade de logins ou com usuários se conectando de locais remotos. A resposta lenta prejudica o restante do seu aplicativo e as mensagens ficarão na fila aguardando respostas.
Alguns microsserviços acionarão um processo de “nova tentativa”, causando mais tráfego. Quando os usuários não conseguem fazer login no seu serviço, você perde clientes e receita.
Você deve projetar sua arquitetura de microsserviços considerando todas as coisas que podem afetar o desempenho da sua camada de dados, como,
- Modelos de dados. Seu aplicativo requer múltiplas representações de dados? Strings, listas ou JSON?
- Replicação de dados. Você deseja que várias cópias dos seus dados melhorem a disponibilidade?
- Banco de dados ativo-ativo. Se você tiver usuários remotos, precisará de dados distribuídos geograficamente?
- Escalabilidade. Seu aplicativo e camada de dados estão prontos para reagir à demanda inesperada ou sazonal?
Ao compreender esses requisitos e projetar sua arquitetura em torno deles, você pode otimizar sua camada de dados em tempo real e construir um aplicativo escalável e de alto desempenho.
O próximo ponto a considerar é como você operará essa arquitetura complexa.
Operacionalização
As aplicações distribuídas, inclusive aquelas em ambientes de nuvem, possuem uma complexidade herdada que expõe os administradores a inconsistências no gerenciamento dos diferentes componentes da solução. Neste caso, o Kubernetes fornece a camada de orquestração, a ferramenta de gestão que, combinada com uma arquitetura de microsserviços, divide sistemas grandes e complexos em componentes menores e mais gerenciáveis, com escalabilidade previsível e administração consistente.
Considere configurar e gerenciar toda a solução enquanto monitora, dimensiona e soluciona problemas de cada microsserviço. Normalmente, os provedores de plataformas de dados oferecem ferramentas para esse fim, chamadas de operadores para Kubernetes.
Resumindo
Depois de selecionar uma plataforma de dados em tempo real que se adapte aos seus modelos de dados e forneça o nível de replicação necessário, você poderá usar o Kubernetes para fornecer alta disponibilidade e replicação geográfica ativa para esses aplicativos distribuídos.
Pesquise os recursos da plataforma de dados. Se oferecer uma operadora para Kubernetes, você se agradecerá por isso.
Junte-se a nós na KubeCon + CloudNativeCon North America em novembro. 6–9 em Chicago para saber mais sobre Kubernetes e o ecossistema nativo da nuvem.
A postagem Mais fácil, mais rápido, melhor: microsserviços em tempo real apareceu pela primeira vez em The New Stack.