Mais estabilidade e desempenho com escalonamento aprimorado
Temos o prazer de anunciar algumas atualizações em que trabalhamos nas últimas semanas. Esperamos que essas mudanças ajudem a estabilizar ainda mais a plataforma e a deixá-la ainda mais rápida.
Vamos lá!
Escalonar automaticamente os servidores de upload é um pouco mais difícil do que escalonar os
encoders, porque, quando um grande volume de uploads chega até nós, esses uploads ficam presos a
determinadas máquinas. Isso significa que qualquer escalonamento que façamos em resposta não terá
efeito sobre os uploads que já estão em andamento. Por isso, ocasionalmente observamos uma alta
demanda de I/O quando chegavam grandes ondas de uploads, depois das quais muitos drones de
codificação eram escalonados e trocavam arquivos de entrada e saída com poucos servidores de upload.
Agora substituímos 2 servidores de upload c1.medium por 3
m1.xlarge. Logo de cara, isso nos dá 6 vezes a
vazão de I/O que tínhamos antes, e isso tem funcionado muito bem para absorver esses picos de upload
sem nenhum problema. Também estamos considerando outras estratégias para reduzir ainda mais o I/O
nas nossas máquinas de upload, como enviar imediatamente todos os arquivos recebidos para o Amazon
S3 e deixar que os drones os baixem de lá. Também estamos estudando formas de distribuir e escalonar
automaticamente as responsabilidades de upload. E estamos de olho também
naquelas máquinas com SSD.
Manteremos você informado sobre tudo isso!
Reescrevemos o nosso Autoscaler. Esta versão nova e aprimorada agora é capaz de analisar uma fila e decidir quantas máquinas precisa iniciar (em paralelo) para dar conta dela. Ela também escalona de forma muito mais agressiva agora. O resultado é uma redução drástica nos tempos de fila. Por exemplo, na última semana e meia, não tivemos um tempo de fila de /image/resize superior a 5 minutos nem um tempo de fila de /video/encode superior a 18 minutos. E esse caso de 18 minutos de fila só aconteceu porque dois dos nossos maiores clientes fizeram suas importações de vídeo em lote ao mesmo tempo, o que resultou em uma fila de vídeo de 130 GB. Nesse período, passamos de 2 para 39 máquinas de codificação com oito núcleos em menos de 20 minutos.
Mas isso não é tudo! Agora você também pode conferir os tempos de fila atuais de redimensionamento de imagens e de codificação de vídeo na nossa página de status.
Além disso, também reescrevemos o código responsável pela lista/busca de Assembly no site. O resultado é um grande ganho de desempenho. Isso também significa que timeouts não devem mais resultar em páginas vazias, um problema que alguns dos nossos clientes vinham relatando. Por fim, agora direcionamos consultas pesadas (mas menos críticas) para réplicas somente leitura, para garantir que a produção não seja afetada por buscas, análises ou relatórios pesados.
Conte para nós o que você acha de todas essas mudanças. Estamos muito felizes em oferecer a você um produto cada vez mais estável e com melhor desempenho. Pode ter certeza de que temos muitas outras melhorias bacanas a caminho, incluindo alguns novos recursos! 😄
