Momento migra o cache do objeto como um serviço para Ampere Altra – SitePoint


Instantâneo

Organização

A infraestrutura de cache do MOMEO para aplicativos em nuvem é complexa e demorada. As soluções tradicionais de cache requerem esforço significativo em replicação, gerenciamento de falhas, backups, restauração e gerenciamento do ciclo de vida para atualizações e implantações. Essa carga operacional desvia os recursos das principais atividades de negócios e desenvolvimento de recursos.

Solução

O MOMEO fornece uma solução de cache sem servidor, utilizando instâncias do Google Tau T2A baseadas em amperes, que automatizam o gerenciamento e otimização de recursos, permitindo que os desenvolvedores integrem um cache rápido e confiável sem se preocupar com a infraestrutura subjacente. Com base no projeto de código aberto do Apache Pelikan, o Cache sem servidor do MOMPONO elimina a necessidade de provisionamento manual e tarefas operacionais, oferecendo uma API confiável para resultados perfeitos.

Principais recursos

  • Arquitetura sem servidor: nenhum servidor para gerenciar, configurar ou manter.
  • Configuração zero: otimização contínua da infraestrutura sem intervenção manual.
  • Alto desempenho: mantém um objetivo de nível de serviço do tempo de ida e volta de 2ms para solicitações de cache em P99.9, garantindo latências baixas da cauda.
  • Escalabilidade: usa nós de armazenamento com vários threads e fixação de núcleo para lidar com cargas altas com eficiência.
  • Serviços adicionais: o conjunto de produtos expandido inclui ônibus de mensagens de sub-sub-sub.

Inovações técnicas

Otimização de comutação de contexto: redução da sobrecarga de desempenho, fixando encadeamentos em núcleos específicos e dedicando núcleos para E/S de rede, alcançando mais de um milhão de operações por segundo em uma instância de 16 núcleos.

Impacto

O serviço de cache sem servidor da Mommone, alimentado pelo Google Tau T2A, baseado em ampere, acelera a experiência do desenvolvedor, reduz o ônus operacional e cria um sistema de alto desempenho e econômico para aplicativos de nuvem modernos.

Antecedentes: Quem e o que é Momento?

Momento é a ideia dos co -fundadores Khawaja Shams e Daniela Miao. Eles trabalharam juntos por vários anos na AWS como parte da equipe do DynamoDB, antes de iniciar o Momento no final de 2021. O princípio de direção da empresa é que a infraestrutura de aplicativos comumente usada deve ser mais fácil do que é hoje.

Devido à sua extensa experiência com o Object Cache na AWS, a equipe do Momento se estabeleceu em armazenamento em cache para o produto inicial. Desde então, eles expandiram sua suíte de produtos para incluir serviços como barramentos de mensagens de sub-sub-sub. O cache sem servidor MOMPE, com base no projeto de código aberto Apache Pelikan, permite que seus clientes automatizem o gerenciamento de recursos e o trabalho de otimização que vem com a execução de um cache de valor-chave.

Todos os aplicativos em nuvem usam o cache de uma forma ou de outra. Um cache é uma loja de baixa latência para objetos comumente solicitados, o que reduz o tempo de serviço para os serviços mais usados. Para um site, por exemplo, a página inicial, imagens ou arquivos CSS servidos como parte das páginas da web popular ou os itens mais populares em uma loja da web podem ser armazenados em um cache para garantir um tempo de carregamento mais rápido quando as pessoas os solicitam.

A operacionalização de um cache envolveu gerenciar coisas como replicação, falha quando um nó primário falha, backups e restauração após interrupções e gerenciamento do ciclo de vida para atualizações e implantações. Todas essas coisas exigem esforço, exigem conhecimento e experiência e afastem -se do que você deseja fazer.

Como empresa, a Momento considera sua responsabilidade libertar seus clientes deste trabalho, fornecendo uma API confiável e confiável que você pode usar em seus aplicativos, para que você possa se concentrar em fornecer recursos que geram valor comercial. Da perspectiva da equipe do Momento, o “provisionamento” não deve ser uma palavra no vocabulário de seus usuários de cache-o objetivo final é ter um cache rápido e confiável disponível quando você precisar, com todas as preocupações de gerenciamento cuidadas para você.

A implantação: facilidade de portabilidade ao processador de ampere

Inicialmente, a decisão da MOMEO de implantar sua solução de cache sem servidor nas instâncias do Google T2A, movida a ampere, foi motivada pelas vantagens de preço/desempenho e eficiência.

Projetados desde o início, as VMs TAU T2A baseadas em amperes oferecem escalabilidade previsível de alto desempenho e linear que permitem que os aplicativos de expansão sejam implantados rapidamente e superem o X86 VMs existentes em mais de 30%.

No entanto, durante uma entrevista recente, Daniela Miao, co-fundadora do MOMEO e CTO, também observou a flexibilidade oferecida com a adoção de Ampere, pois não era uma proposta tudo ou nada: “Não é uma porta de mão única (…) Você pode executar em um modo misto, se deseja garantir que seu aplicativo seja portátil e flexível, você pode executar parte do seu aplicativo no ARM64 e alguns em x86 ”

Além disso, a experiência de migração para as CPUs da Ampere foi muito mais suave do que a equipe esperava inicialmente.

“A portabilidade para as instâncias de Tau T2A baseadas em Ampere foi realmente incrível-não tínhamos que fazer muito e funcionou”

Confira a entrevista em vídeo completa para ouvir mais de Daniela enquanto ela discute o que o Momento faz, com o que seus clientes se preocupam, como trabalhar com Ampere os ajudou a agregar valor real aos clientes, bem como algumas das otimizações e mudanças de configuração que eles fizeram para espremer desempenho máximo de suas instâncias de amperes.

Os resultados: como a ampere ajuda o momento entrega um produto melhor

Momento assiste de perto as latências da cauda – A métrica principal é o tempo de resposta P99.9 – o que significa 99,9% de todas as chamadas de cache retornam ao cliente nesse período. Seu objetivo é manter um objetivo de nível de serviço do tempo de ida e volta de 2ms para solicitações de cache em P99.9.

Por que se preocupar tanto com as latências da cauda? Para algo como um cache, carregar uma página da web pode gerar centenas de solicitações de API nos bastidores, que por sua vez podem gerar centenas de solicitações de cache – e se você tiver uma degradação no tempo de resposta do P99, isso pode acabar afetando quase todos os seus usuários . Como resultado, o P99.9 pode ser uma medida mais precisa de como seu usuário médio experimenta o serviço.

“Marc Brooker, que seguimos religiosamente aqui no Momento, tem uma ótima postagem no blog que visualiza o efeito de suas latências de cauda em seus usuários”, diz Daniela Miao, CTO. “Para muitos aplicativos e empresas de sucesso, provavelmente 1% de suas solicitações afetarão quase todos os seus usuários. (…) Nós realmente nos concentramos em latências para P três nove (P99.9) para nossos clientes. ”

Otimização de comutação de contexto

Como parte do processo de otimização, o MOMEO identificou a sobrecarga de desempenho devido à troca de contexto em certos núcleos. A mudança de contexto ocorre quando um processador para de executar uma tarefa para executar outra e pode ser causada por:

  • Interrupções do sistema: o kernel interrompe os aplicativos do usuário para lidar com tarefas como processar o tráfego de rede.
  • Contenção do processador: sob alta carga, os processos competem por tempo limitado de computação, levando a ocasionais “troca” de tarefas.

No Momento Divive nesse tópico, eles explicam que os interruptores de contexto são caros porque o processador perde a produtividade enquanto salva o estado de uma tarefa e carrega outro. É como os humanos experimentam uma perda de produtividade quando interrompidos por um telefonema ou reunião enquanto trabalham em um projeto. Leva tempo para alternar as tarefas e, em seguida, mais tempo para recuperar o foco e se tornar produtivo novamente.

Ao minimizar a comutação de contexto, o Momento aprimorou a eficiência do processador e o desempenho geral do sistema.

Introdução ao Momento

O MOMEO se concentra no desempenho, especialmente nas latências da cauda, ​​e seleciona manualmente todos os SDKs do lado do cliente no Github para impedir problemas de incompatibilidade de versão.

  1. Inscreva -se: Visite Site do Mommo para se inscrever.
  2. Escolha um SDK: selecione um SDK com curado manual para a sua linguagem de programação preferida.
  3. Crie um cache: use a interface simples do console para criar um novo cache.
  4. Armazene/recupere os dados: utilize o conjunto e obtenha funções no SDK para armazenar e recuperar objetos do cache.

Arquitetura de Mommo

A arquitetura do MOMEO separa a funcionalidade do gateway da API dos threads de dados nos nós de armazenamento. A API Gateway rotula solicitações para o nó de armazenamento ideal, enquanto cada nó de armazenamento possui vários threads de trabalhador para lidar com operações de cache.

  • Escalabilidade: Em uma VM de 16 núcleos T2A-Standard-16, duas instâncias de Pelikan são executadas com 6 threads cada.
  • Pinning central: Os threads são fixados em núcleos específicos para evitar interrupções de outras aplicações à medida que a carga aumenta.
  • Otimização de E/S de rede: Quatro filas RX/TX (Receba/Transmissão) são fixadas em núcleos dedicados para evitar interruptores de contexto causados ​​pelas interrupções do kernel. Embora seja possível ter mais E/S de rede de processos de núcleos, eles descobriram que, com quatro pares de filas, eles conseguiram dirigir seu cache do Momento com carga de 95%, sem a taxa de transferência de rede se tornar um gargalo.

Recursos adicionais

Para saber mais sobre a experiência do Momento com instâncias Tau T2A
Alimentado por CPUs Ampere, confira “Cache de Pelikan turboalimentado
VMs T2A mais recentes baseadas em braço do Google Cloud
”.

Para encontrar mais informações sobre como otimizar seu código nas CPUs Ampere,
Confira o nosso guias de ajuste no Ampere Developer Center. Você pode
Obtenha também atualizações e links para um excelente conteúdo como esse, inscrevendo -se
para o nosso mês Newsletter de desenvolvedor.

Por fim, se você tiver dúvidas ou comentários sobre este estudo de caso, aí
é uma comunidade inteira de usuários de amperes e fãs prontos para responder em
Comunidade de desenvolvedores de amperes. E não se esqueça de se inscrever nosso
Canal do youtube
Para mais conteúdo focado no desenvolvedor no futuro.

Referências:



Source link