As instituições financeiras precisam de processar uma enorme quantidade de transacções por segundo. Uma vez que estas transacções contêm normalmente dados altamente sensíveis, necessitam de normas de segurança, latência e consistência ainda mais rigorosas do que o habitual. Têm de garantir que todas as transacções, quer se trate de compras por comércio eletrónico ou de transferências bancárias diretas, são instantâneas, seguras e isentas de erros. Consegue imaginar o pagamento de um cliente a ficar preso no limbo porque o seu sistema não consegue acompanhar? As taxas de frustração e de abandono seriam altíssimas. Então, como é que se constrói um sistema altamente distribuído, de baixa latência e globalmente consistente?
Os altos riscos do desempenho do processamento de pagamentos
Recentemente, um dos nossos clientes, um grande banco nacional, viu-se confrontado com este problema exato de processamento de dados. Este banco lida com um volume impressionante de transacções online todos os dias - milhões e milhões de pagamentos, transferências de dinheiro e registos de cartões, que são canalizados através dos seus sistemas por clientes de todos os Estados Unidos. Estas transacções tinham de ser mantidas em sincronia.
Precisavam de ser capazes de receber e processar estas transacções, quer viessem de Nova Iorque, Los Angeles ou de qualquer outro local. Mesmo o mais pequeno atraso ou inconsistência poderia levar a pagamentos falhados ou a violações de segurança. Por isso, pode imaginar o nível de desempenho e consistência de dados que exigiam. Este era um verdadeiro sistema de missão crítica do qual dependia todo o seu negócio.
Este banco precisava de tempos de resposta rápidos porque um atraso superior a cinco segundos pode reduzir significativamente a satisfação do cliente. De acordo com a Kissmetrics, 47% dos clientes esperam que as transacções sejam concluídas em menos de dois segundos. Uma latência elevada e tempos de espera frequentes não só frustram os utilizadores, como também conduzem ao abandono da transação. De acordo com um estudo da Harris Interactive, 66% dos utilizadores de serviços bancários móveis afirmaram ter abandonado uma transação devido a problemas durante o processo de checkout, com 36% a citar especificamente os tempos de carregamento lentos como principal razão para o abandono, o que realça a necessidade crítica de velocidade e fiabilidade nos serviços bancários digitais. Por conseguinte, minimizar a latência e evitar os tempos de espera não eram apenas desafios técnicos para este cliente, mas também essenciais para manter a confiança dos seus próprios clientes.
Garantir um processamento de pagamentos rápido e fiável com a Akamai
Os requisitos do banco eram claros: eles queriam construir um sistema altamente distribuído e de baixa latência que pudesse fornecer um desempenho consistentemente rápido. Eles também precisavam ter consistência global de dados, juntamente com roteamento inteligente de solicitações para garantir que cada consulta atingisse o nó mais próximo e de melhor desempenho. Eles precisavam de uma solução que pudesse receber esse enorme fluxo de dados confidenciais, mantê-los em sincronia e, em seguida, servi-los rapidamente com latência mínima e disponibilidade máxima.
Para o conseguir, utilizaram o sistema de mensagens inteligente Global Traffic Management e o rapidíssimo sistema de mensagens NATS.io da Akamai. O NATS.io é um sistema de mensagens de alto desempenho otimizado para ambientes nativos da nuvem, permitindo a distribuição e a sincronização eficientes de dados.
Vejamos a arquitetura de referência acima que implementámos para este cliente, que utiliza a NATS.io e a Akamai para obter consistência global e elevado desempenho para sistemas de pagamento digital.
No Passo 1 acima apresentado, um utilizador inicia uma transação através da sua aplicação de pagamento digital e a aplicação envia os dados da transação para o DNS.
Em seguida, o DNS direciona a transação para a região de computação da Akamai mais próxima. Os dados da transação são então enviados para o agente NATS.io na região selecionada por meio do gateway HTTPS/NATS. O cluster NATS.io garante que esses dados sejam propagados para todas as outras regiões do sistema com menos de 100 milissegundos de latência, mantendo a consistência global. Todos os dados necessários (por exemplo, saldo do utilizador, histórico de transacções) são rapidamente recuperados e actualizados em todas as regiões. Depois de a transação ser processada, é enviada uma resposta ao utilizador através do gateway HTTPS/NATS. O DNS assegura que a resposta é encaminhada de forma optimizada, fornecendo ao utilizador um feedback em tempo real sobre o estado da transação.
Esta arquitetura é altamente benéfica por duas razões: melhora o desempenho e a escalabilidade. Ela usa o balanceamento de carga DNS baseado em desempenho e a propagação de alta velocidade do NATS.io para fornecer respostas de baixa latência que são essenciais para o processamento de pagamentos em tempo real. A natureza distribuída das regiões de computação da Akamai garante que o sistema permaneça disponível mesmo que uma ou mais regiões tenham problemas.
À medida que o volume de transações cresce, regiões de computação adicionais e corretores NATS.io podem ser facilmente integrados ao sistema. Esta abordagem de escalonamento horizontal permite que o sistema lide com o aumento da carga sem uma reengenharia significativa. Ao distribuir a carga por várias regiões, a arquitetura pode suportar um maior número de transacções simultâneas, mantendo uma baixa latência e um elevado desempenho. Outro aspeto fundamental da escalabilidade desta arquitetura é a sua capacidade de lidar eficazmente com picos de carga. Durante períodos de elevada procura, como épocas festivas de compras ou grandes eventos de vendas, o sistema pode atribuir dinamicamente mais recursos para gerir o aumento das transacções. Isto garante aos utilizadores um desempenho consistente, independentemente do volume de transacções.
Balanceamento de carga inteligente baseado em DNS para um desempenho ótimo
Depois de arquitectarmos esta solução, testámo-la para o cliente. Criámos um conjunto de dados de amostra de 100 milhões de chaves e carregámo-lo num cluster NATS.io altamente disponível numa das nossas principais regiões de computação.
O núcleo era um cluster NATS.io de 3 nós implantado em uma região de computação primária da Akamai, fornecendo redundância e alta disponibilidade, mostrada acima. Em seguida, adicionamos máquinas NATS.io de nó único implantadas em 10 locais de computação separados da Akamai em toda a América do Norte. Ao distribuir os nós NATS.io pela rede de borda global da Akamai, os dados podem ser aproximados dos usuários finais, reduzindo a latência.
Cada um desses nós NATS distribuídos tinha gateways HTTPS seguros implantados ao lado, permitindo que seus aplicativos fizessem interface com esse pipeline de dados de alta velocidade usando protocolos da Web padrão. Não são necessárias integrações complexas. Mas a verdadeira magia reside na forma como utilizámos a nossa rede global de ponta e as capacidades de equilíbrio de carga. Quando um dos seus clientes efectua um pagamento ou regista um novo cartão, o Global Traffic Management da Akamai utiliza o balanceamento de carga inteligente baseado em DNS para encaminhar os utilizadores para a região de computação da Akamai mais próxima e com melhor desempenho.
Isto garante que os utilizadores estão sempre ligados ao nó disponível mais próximo, minimizando a latência e proporcionando uma elevada disponibilidade. O balanceamento de carga considera factores como a localização do utilizador, as condições da rede e a saúde do nó para tomar decisões de encaminhamento. Assim, em vez de ter de atravessar a Internet e vários saltos para chegar a uma base de dados centralizada, o cliente está a chegar a essa instância NATS distribuída a apenas alguns milissegundos de distância, com os dados já preparados e prontos para serem utilizados localmente. Essa solução de baixa latência garante que os dados sejam trazidos para mais perto dos usuários finais por meio dos nós NATS.io distribuídos, e o roteamento inteligente garante que as solicitações atinjam o nó disponível mais próximo. Além disso, o sistema de mensagens NATS.io sincroniza os dados em todos os nós dentro de uma janela estreita de 100 ms, proporcionando consistência global dos dados.
O resultado final
Essa poderosa solução integrou a rede de borda distribuída globalmente da Akamai, o gerenciamento inteligente de tráfego e o sistema de mensagens NATS.io para um desempenho superior, independentemente do tráfego. Depois que o banco mudou para a Akamai, eles cumpriram consistentemente a janela de SLA de 60 milissegundos com seu provedor de pagamento digital, eliminando a variabilidade e acelerando o fluxo de trabalho. Essa mudança não apenas melhorou a conformidade com o SLA rigoroso do provedor de pagamento digital, mas também aprimorou a experiência geral do cliente, fornecendo um processamento de transações confiável e rápido. Este caso de utilização realça o papel crítico da escolha da infraestrutura correta para suportar soluções de pagamento digital e o impacto significativo que pode ter na manutenção da confiança do cliente.
Se pretende implementar um sistema de baixa latência, gostaríamos de falar consigo! Ou você pode solicitar até US$ 5.000 em créditos para migrar sua infraestrutura atual para a Linode.
Comentários