À medida que a poeira da onda de hype da nuvem assenta, mais equipes de tecnologia descobrem os efeitos colaterais das infraestruturas de nuvem, normalmente mantidas sob o radar.
Tão promissores quanto a escalabilidade sob demanda, o menor tempo de gerenciamento de serviços locais e outros benefícios, eles são muitas vezes contrabalançados por uma desvantagem significativa – picos nos custos de infraestrutura em sistemas de alta carga.
Ao discutir os custos de infraestrutura, o foco em sistemas de alta carga é substancial: dificilmente existe uma alternativa mais flexível e barata à nuvem para empresas menores.
No entanto, à medida que o QPS atinge centenas de milhares, as taxas dos fornecedores que parecem pequenas não são mais sustentáveis.
Como uma empresa de desenvolvimento de software especializada na construção e otimização de sistemas de alta carga para AdTech, exploramos diversas práticas usadas pelas equipes para evitar o aumento dos custos de infraestrutura. Com mais de 15 anos de experiência, Xenoss ajudou a apoiar projetos como Activision Blizzard, Verve Group, Smartly, Voodoo, Inmar Intelligence e outros para construir infraestruturas robustas, porém ágeis.
Nesta postagem, gostaríamos de compartilhar nossa experiência e conhecimento sobre desafios de infraestrutura relevantes para plataformas de alta carga e explorar formas de racionalizar custos. Para ilustrar as táticas mostradas na postagem, usaremos um setor onde velocidade e escala não são negociáveis: AdTech.
Também temos uma postagem no blog que aborda a otimização de custos de infraestrutura com mais detalhes, apresentando dicas de especialistas e comentários de nossos arquitetos de software e um estudo de caso de uma redução de vinte vezes nos custos de infraestrutura.
Plataformas de alta carga permitem vários setores, como bancário, saúde e muito mais. A publicidade programática, embora muitas vezes não seja vista como um feito técnico a desenvolver, pode rivalizar com outros sistemas complexos, uma vez que os seus requisitos operacionais muitas vezes ultrapassam os limites da concepção de infra-estruturas.
Vamos recapitular rapidamente por que as plataformas AdTech (SSP, DSP e assim por diante) são uma lente excelente para explorar a otimização de custos de infraestrutura .
As plataformas AdTech estão presas em um cabo de guerra constante entre a necessidade de alto volume de tráfego e baixa latência.
Por um lado, precisam de lidar com a enorme quantidade de tráfego gerado pela publicidade online (que, segundo Wayne Bloodwell , CEO da TPA Digital, equivale a 950 mil milhões de impressões por dia).
Além da carga, a natureza em tempo real do ecossistema adiciona uma nova camada de complexidade.
A alta latência nas plataformas AdTech, ou seja, um atraso entre uma solicitação de lance e uma resposta, faz com que os anunciantes percam inventários de alta qualidade, pois seus lances não são processados a tempo.
A alta latência cria uma dificuldade para preencher espaços de anúncios para os editores, levando a receitas mais baixas no longo prazo.
Um período de tempo padrão para processamento de propostas gira em torno de 80-120 ms, que é o período médio em que o setor opera.
O processamento de dados em tempo real é outro desafio recorrente para projetos AdTech devido aos seguintes desafios:
Necessidade de recuperar dados rapidamente (menos de 100 ms) para tomar decisões em tempo real, como modelagem de preços de lances.
A coleta de dados de público de diversas fontes aumenta a complexidade dos pipelines e expande o conjunto de ferramentas necessário para processar vários tipos de dados.
Preocupações com a qualidade dos dados: dados errados podem fazer com que os anunciantes tomem decisões de lances erradas. As verificações de qualidade dos dados para cada estágio do pipeline (ingestão, processamento, consumo) são essenciais.
O clipe abaixo ilustra a complexidade e as operações críticas da análise de dados em tempo real
https://www.youtube.com/watch?v=uaRzovqK3t0
A indústria AdTech é cíclica, com períodos de altos e baixos económicos que levam a flutuações na procura de serviços de publicidade. Os aumentos do mercado pressionam as plataformas AdTech a implementar capacidades de escalabilidade dinâmica.
Juntamente com o aumento do SPO, os fornecedores de AdTech sentem a pressão para ajustar com segurança sua capacidade para cima ou para baixo em resposta às mudanças na demanda. Assim, eles precisam de capacidade e recursos para lidar com picos de tráfego sem sacrificar o desempenho ou a confiabilidade (e para reduzi-lo para se ajustar às flutuações do mercado).
O uso de dados brutos é fundamental para o sucesso das plataformas AdTech. Esses sistemas coletam muitos dados agregados – informações demográficas, histórico de navegação, comportamento do usuário, etc. Esses insights são integrados de várias fontes e ajudam a impulsionar a segmentação e a personalização.
Antes que os dados brutos estejam prontos para uso, eles precisam passar pelas etapas de ETL: extração, transformação e carregamento. No entanto, a manutenção de múltiplos pipelines torna-se um desafio de engenharia à medida que os sistemas escalam e os volumes de dados aumentam exponencialmente.
A menos que as equipes de tecnologia prestem muita atenção aos custos de infraestrutura, eles rapidamente sairão do controle. A modelagem e o armazenamento de dados ineficientes, a falta de seletividade na dependência de serviços e a falta de planejamento e combate às ameaças antecipadamente tornam as infraestruturas imprevisíveis, lentas, caras e difíceis de manter.
Cortar custos de infraestrutura não é tarefa fácil, mas munido do conhecimento do ecossistema e da sua plataforma, você pode obter reduções significativas com alguns ajustes.
Aqui está uma lista de diversas práticas de redução de infraestrutura que as equipes de tecnologia da Xenoss usam para ajudar nossos clientes a obter infraestruturas mais enxutas.
Em projetos em estágio inicial, não se pensa muito em projetar uma infraestrutura de nuvem ideal. As equipes de tecnologia normalmente escolhem uma de duas maneiras;
Na AdTech, a flexibilidade e a capacidade de escalar dinamicamente são vitais. O controlo total sobre os custos de infraestrutura e a capacidade de reforçar a segurança são igualmente importantes. O primeiro é normalmente associado à nuvem, enquanto o último é comumente citado como um benefício para o local.
Na Xenoss, reconhecemos os benefícios de ambas as infraestruturas, e é por isso que utilizamos ambas nos projetos dos clientes. A combinação de nuvem e local é frequentemente chamada de “nuvem híbrida”, embora mais combinações se enquadrem no termo. Combinar uma nuvem pública e privada ou duas nuvens públicas (também conhecidas como multinuvem) também se enquadra no conceito.
De acordo com o relatório Data Pipelines publicado pela DZone , 33% das organizações pesquisadas usam uma combinação de infraestrutura em nuvem e local. O número sobe para 42% se considerarmos apenas as organizações empresariais (mais de 1000 funcionários).
O modelo híbrido oferece às equipes AdTech maior flexibilidade financeira, permitindo que as plataformas AdTech mesclem o controle das configurações locais com a escalabilidade dinâmica das plataformas em nuvem.
A segurança é outra vantagem significativa; os projetos podem manter padrões rigorosos de proteção de dados, mantendo dados confidenciais no local e usando a nuvem para tarefas menos críticas.
Outra razão pela qual preferimos e defendemos uma abordagem híbrida é a sua capacidade de evitar a dependência do fornecedor. Manter infraestruturas críticas no local dá às empresas a margem de manobra para diversificar a sua pilha de tecnologia sem depender de um fornecedor de nuvem.
Além disso, uma abordagem híbrida permite que as equipes de produto sejam mais intencionais na construção de infraestruturas específicas para cargas de trabalho.
Algumas tarefas na AdTech, como lances de anúncios em tempo real ou operações de dados sujeitas a estrita conformidade regional, são mais adequadas para execução no local.
Ao mesmo tempo, outros fluxos de trabalho (análise de campanha, hospedagem distribuída de conteúdo de anúncios ou design colaborativo de anúncios) podem migrar perfeitamente para a nuvem.
Em nossa experiência, apenas a otimização do armazenamento pode reduzir significativamente os custos de infraestrutura. Na AdTech, bancos de dados SQL e NoSQL são usados para gerenciar dados estruturados e não estruturados. Vamos recapitular as principais diferenças entre os dois tipos de bancos de dados, bem como seus casos de uso em AdTech.
Para adicionar mais contexto à discussão, vamos recapitular as diferenças entre os dois.
Benefícios do banco de dados relacional | Benefícios do banco de dados NoSQL |
---|---|
Alta fiabilidade | Alta performance |
Alta consistência de dados | Alta escalabilidade |
Esquema padronizado | Armazenamento otimizado para grandes volumes de dados |
Conformidade com ÁCIDO | Alta agilidade e customização |
Agora, vamos dar uma olhada no banco de dados preferido das principais plataformas AdTech e suas abordagens para armazenamento de dados.
Pubmática
Pubmatic SSP ajuda os editores a capturar públicos amplos e maximizar a receita de publicidade com parcerias de demanda exclusivas, análises avançadas e ferramentas de otimização criativa.
Desafio: a empresa precisava de um banco de dados robusto para lidar com grandes conjuntos de dados e resolver problemas complexos. A empresa queria uma ferramenta testada em batalha que fosse, acima de tudo, confiável e eficaz.
Solução: MySQL
Impacto: a equipe de qualidade de anúncios da PubMatic usa MySQL como fonte de dados primária. O banco de dados da plataforma armazena até cem milhões de registros. Conhecido por sua confiabilidade e robustez, o MySQL permite que o PubMatic processe milhões de criativos por dia e mantenha cargas de dados de 2 a 10 vezes.
AdGreetz
AdGreetz é uma plataforma de personalização que distribui criativos publicitários personalizados em vários canais: mídia social, CTV/OTT, no aplicativo e muito mais.
Desafio: os fluxos de trabalho da organização exigem muitos dados, exigindo soluções de gerenciamento de banco de dados que dariam suporte a milhões de registros de usuários.
Base de dados escolhida: ClickHouse
Impacto: Para a equipe de engenharia da AdGreetz, Clickhouse revelou-se uma solução econômica e de alto desempenho. A empresa conseguiu reduzir o tempo de consulta de segundos para menos de segundos em computação pequena.
Cera de abelha
Beeswax é uma plataforma RTB gerenciada que permite aos anunciantes agilizar as operações programáticas. A empresa oferece uma solução Bidder-as-a-Service que processa milhões de consultas por segundo e consome 125 GB de dados por minuto.
Desafio: Escalabilidade rápida que garantiria a entrega eficiente de anúncios, necessidade de distribuição igual de carga em toda a máquina da organização.
Banco de dados NoSQL escolhido: Aerospike rodando no Amazon EC2.
Impacto: a cera de abelha pode processar milhões de consultas por segundo com uma latência de leitura final de 2 milissegundos.
Goma Goma
GumGum oferece uma plataforma para segmentação contextual habilitada por uma plataforma proprietária de aprendizado de máquina, Verity.
Desafio: A empresa queria processar grandes volumes de dados relacionados com publicidade (impressões, visualizações, cliques, conversões) com latência mínima – embora os dados não fossem processados em tempo real, o objetivo era manter a lacuna ao mínimo.
Banco de dados NoSQL escolhido: ScyllaDB
Impacto:
Moloco
Moloco é uma plataforma de público móvel que ajuda os anunciantes a adquirir, envolver e comercializar públicos móveis. A plataforma depende fortemente de modelos de aprendizado de máquina para otimização de campanhas e análises preditivas.
Desafio: A pressão para processar milhões de buscas de lances por segundo com um limite de latência estrito (abaixo de 100 ms).
Banco de dados NoSQL escolhido: Google Cloud BigTable
Impacto:
Nossos anos de experiência no desenvolvimento de plataformas AdTech nos mostraram que não existe uma abordagem padronizada para escolher o banco de dados adequado para a infraestrutura de armazenamento de dados AdTech. Há muita variedade sob o guarda-chuva do banco de dados – é preciso experiência, conhecimento do produto e pesquisa completa para encontrar o ajuste certo.
Às vezes, alternar entre dois bancos de dados NoSQL pode fazer muita diferença. GumGum, apresentado acima, confiou no Cassandra antes de mudar para o ScyllaDB. Vimos reduções significativas de custos operacionais no caso de um cliente (DSP móvel) após a migração do MongoDB para o Aerospike.
Outras maneiras de otimizar o armazenamento de dados
A implementação de técnicas de compactação e desduplicação de dados é outra maneira de reduzir o espaço de armazenamento necessário, gerando economia de custos.
A compressão implica uma redução no tamanho dos dados, o que leva a uma transmissão mais rápida e a custos de armazenamento reduzidos. As equipes de dados podem empregar técnicas como GZIP.
A desduplicação , como o nome sugere, elimina cópias redundantes de dados. É fundamental na AdTech, onde perfis de usuários repetidos ou conjuntos de dados semelhantes são comuns.
O armazenamento frio é uma forma econômica de armazenar dados raramente acessados (métricas de campanha antigas) sem repercussões no desempenho.
Navegar pelos serviços em nuvem requer escolhas inteligentes. Se você não prestar atenção, é fácil usar pacotes de serviços que agregam custos de infraestrutura, mas não agregam valor à plataforma.
No clipe abaixo, Vova Kyrychenko, CTO da Xenoss, explica como a “armadilha do dinheiro grátis” pode resultar em altos custos de infraestrutura à medida que as plataformas AdTech aumentam.
https://www.youtube.com/watch?v=q_57WdKDJI0
Nossa recomendação crucial aos fornecedores de AdTech é dissecar os preços dos serviços premium para identificar custos ou economias ocultas.”
Além disso, como novas ferramentas podem tornar a plataforma mais lenta, é razoável testá-las em pequena escala antes de colocar um novo serviço em produção.
Ficar de olho em projetos de terceiros ou de código aberto é outra alternativa às caras ofertas gerenciadas. Plataformas gratuitas ou de baixo custo podem oferecer melhor desempenho do que os principais fornecedores de nuvem.
Ao adotar essa abordagem em um projeto de cliente, os engenheiros da Xenoss ajudaram a reduzir os custos de infraestrutura em 20 vezes.
No infográfico abaixo ilustramos a infraestrutura antiga do cliente e a versão modernizada projetada por nossos arquitetos.
Como mencionamos há algum tempo, as plataformas AdTech não operam sob cargas estáveis - em um momento, uma plataforma pode atingir um pico repentino e, no seguinte, tem mais recursos computacionais do que sabe o que fazer.
Como os engenheiros da Xenoss acreditam que o tráfego eficiente e o balanceamento de carga são essenciais para os sistemas AdTech, vamos nos aprofundar nesses conceitos.
O balanceamento de carga significa distribuir uniformemente as solicitações recebidas em vários servidores, garantindo que nenhum servidor fique sobrecarregado. Dentro desta estrutura, os arquitetos da Xenoss priorizam processos de missão crítica – tarefas essenciais que, se interrompidas, interromperão a funcionalidade principal do sistema (licitações de anúncios em tempo real ou processamento de dados do usuário).
Ao dar precedência a estes processos, protegemos as operações vitais de potenciais lentidão ou falhas.
Um ditado famoso diz: “O fracasso faz parte de todo plano”, alertando concisamente as equipes de produtos da AdTech para se protegerem contra ameaças e tempos de inatividade.
Para esse fim, pedimos aos fornecedores e às equipes técnicas internas que utilizem ferramentas de monitoramento que monitorem a integridade do sistema, garantindo operações ininterruptas. Se você configurar alertas para quaisquer anomalias, as equipes poderão ser alertadas imediatamente, agir rapidamente e garantir que pequenos contratempos não se transformem em grandes colapsos.
Aprimorar essa abordagem com insights baseados em IA oferece ainda mais granularidade. Algoritmos de detecção de anomalias, como Isolation Forest ou One-Class SVM, são adequados para identificar padrões de dados incomuns, que podem indicar ameaças ou vulnerabilidades do sistema.
Sugerimos novamente a implantação de redes neurais recorrentes de memória de longo e curto prazo para analisar dados de séries temporais.
Os grandes modelos de linguagem também podem contribuir para a detecção de ameaças, analisando logs e mensagens do sistema para detectar anomalias, dando sentido a dados textuais que, de outra forma, poderiam ser ignorados.
A otimização de custos de infraestrutura é um eixo para empresas de todos os setores que buscam eficiência e lucratividade.
AdTech é um excelente playground para explorar os desafios e soluções alternativas de trabalhar com altos volumes de dados e cargas de tráfego, já que a necessidade de lidar com milhares de consultas em um período de milissegundos leva os limites do desenvolvimento de infraestrutura ao limite.
A boa notícia é que equipes tecnológicas experientes desenvolveram, muitas vezes por tentativa e erro, um manual para manter baixos os custos de infraestrutura, mesmo para sistemas de alta carga. O equilíbrio entre soluções locais e na nuvem, o aproveitamento da IA para detecção de ameaças e o refinamento contínuo das estratégias de armazenamento de dados ajudam as equipes de produtos a garantir operações robustas sem comprometer o orçamento.
Manter-se ágil e informado neste domínio é uma medida de redução de custos e uma vantagem competitiva no cenário dinâmico da AdTech.