Se você encontrou esta página pensando que vai ficar rico com algum esquema para enriquecimento rápido, lamento desapontá-lo. Este artigo falará sobre como diminuir suas contas de custos de nuvem em US$ 1 milhão. Ao fazer isso, você basicamente terá gerado um milhão de dólares extras em receita – que poderá gastar comprando meu curso online sobre como ficar rico com a AWS ( link para o curso aqui ).
O custo da nuvem é muitas vezes esquecido e não contabilizado no início dos projetos das empresas. A pesquisa HashiCorp de 2021 descobriu que quase 40% das empresas gastaram demais em custos de nuvem em 2021 [ 1 ]. Em 2023, quase todas as empresas (94%) admitiram que estavam desperdiçando dinheiro na nuvem [ 1 ] e pelo menos 30% dos custos da nuvem foram desperdiçados [ 2 ]. Os gastos com nuvem foram de quase US$ 500 bilhões em 2022 — portanto, estamos falando de US$ 150 bilhões desperdiçados por ano!!
Isto não é apenas uma preocupação de receitas perdidas, mas também de práticas de sustentabilidade deficientes. US$ 150 bilhões em energia desperdiçada!
Essas descobertas envolvem grandes e pequenas empresas, desde a alta maturidade da nuvem até a baixa maturidade da nuvem. Refere-se à AWS, mas os mesmos princípios podem ser aplicados a qualquer outro provedor de nuvem. Portanto, se alguma parte do seu trabalho está na nuvem, este artigo é para você.
Estou falando da perspectiva do engenheiro de dados, mas os mesmos aprendizados podem ser aplicados a outras práticas de engenharia de software.
Vamos mergulhar.
Esse tipo de conta de nuvem geralmente é restrito a empresas muito grandes que operam globalmente com milhões de clientes.
Para se ter uma ideia, uma conta de nuvem de US$ 1 milhão pode resultar de um trabalho Spark ETL processando aproximadamente 1,5 TB por hora, 24 horas por dia, 7 dias por semana, 365 dias por ano. Outro exemplo pode ser um aplicativo que recebe bilhões de solicitações por dia de vários locais do mundo.
Numa grande empresa, existem centenas de aplicações deste tamanho – resultando em contratos de milhares de milhões de dólares com fornecedores de cloud. Por exemplo, o Airbnb se comprometeu a gastar US$ 1,2 bilhão em recursos de nuvem ao longo de cinco anos no final de 2019 [3 ].
Na Expedia, reduzimos os custos de um ETL de processamento de dados que custava US$ 1,1 milhão de dólares por ano, para apenas US$ 100.000 por ano, implementando práticas de otimização. Isso representa uma redução de custos de 91%!!
Nem todas as empresas têm aplicações de tamanho tão grande, mas imagine reduzir o custo da nuvem em 90% apenas para uma única aplicação ou para toda a empresa.
Vá e obtenha uma lista de seus aplicativos mais caros e desafie suas suposições de design .
Todas essas questões remetem à questão mais importante: como o aplicativo será utilizado? Qual é o valor comercial para que isso exista? Como o aplicativo está nos ajudando a atingir um determinado objetivo?
É claro que todas estas respostas muitas vezes não são claras no início de um projeto; mas é por isso que o design deve ser sempre um processo iterativo – permitindo que as mudanças aconteçam da maneira mais integrada possível. Os engenheiros devem abraçar a evolução e a mudança, alinhando o desenvolvimento de aplicações com o impacto.
A segunda etapa consiste em fornecer à aplicação os recursos certos e ajustá-la à infraestrutura certa.
Como engenheiro, esteja ciente de como os custos da nuvem são calculados. Por exemplo, a AWS fornece instâncias spot, onde você pode fazer uma oferta pelo preço do cluster – isso é particularmente útil se você tiver aplicativos flexíveis e tolerantes a falhas. Use-os se puder - a AWS afirma redução de custos de até 90% [ 4 ].
Algumas outras considerações que você pode querer abordar são:
Há pouca ou nenhuma desvantagem na utilização de instâncias AWS Graviton. A AWS investiu pesadamente na criação dos processadores com melhor custo-benefício. Você pode obter uma redução de até 40% nos gastos com nuvem apenas mudando de um processador baseado em Intel para um processador baseado em ARM [ 10 ].
A única ressalva é que seu aplicativo precisa ser compatível com os processadores baseados em ARM nos quais o Graviton é executado. Se você estiver lidando com um serviço gerenciado como RDS ou OpenSearch, não haverá nenhuma complicação na troca - a AWS lida com o sistema operacional subjacente e a compatibilidade do aplicativo. Se você estiver construindo seu próprio aplicativo, talvez seja necessário recompilar o pacote dependendo da linguagem que você está usando — Java e outras linguagens não exigem alterações, enquanto Python requer alguma atenção.
Por último, não se esqueça de continuar monitorando seus custos em busca de picos e surpresas inesperados. O custo no dia 0 do seu aplicativo será diferente do custo no dia 170. Certifique-se de acompanhar as alterações e entender por que a mudança está acontecendo: ela está acumulando custos de armazenamento s3 ou é apenas uma ocorrência única? espinho?
Configure os alertas e guias operacionais necessários !
É importante ressaltar que implemente etiquetas de alocação de custos para rastrear gastos por departamento, projeto ou ambiente. Evite o risco de criar um pântano de dados onde o custo não seja rastreável ou exija uma longa jornada entre diferentes sistemas de log. Deve ser rápido e simples voltar a qualquer custo de aplicação.
Onde quer que você esteja trabalhando, é difícil equilibrar a entrega de novos recursos com a otimização dos atuais. Quem não foi pressionado a entregar novos recursos peculiares na velocidade da luz.
No entanto, é essencial que tanto engenheiros como gestores tomem decisões deliberadas e proativas sobre os seus projetos atuais, gerindo riscos e oportunidades de forma eficaz.