Rafael Suguihara é arquiteto sênior de Cloud Solutions da GFT

Quantas vezes não ouvimos o famoso “Cloud é mais barato que on-premises”? Apesar de ser uma afirmação verdadeira, um longo caminho é percorrido até chegar nesse ponto. Entre as preocupações, estão os provedores de nuvem que serão utilizados, design da landing zone (local onde servidores, aplicações e dados serão posicionados), a segurança de todas essas fronteiras pelas quais falamos sobre matriz de acesso, serviços de SingleSignOn (SSO), segregação de ambientes, chaves de criptografia para serviços específicos, ambientes preparados para recuperação de desastres, planos de continuidade de negócio (estão saturados deste assunto?), tecnologias de bancos de dados, de programação, tipos de carga de trabalho – sejam elas em servidores, contêineres, serverless, monitoramento, e a lista só cresce!

Com todos esses requisitos, é muito comum que a gestão dos custos fique em segundo plano, principalmente pelos prazos, muitas vezes mais curtos do que o necessário para a execução das tarefas. Isso é um problema porque os custos podem facilmente superar as estimativas iniciais. Nos casos em que a plataforma ou solução já nasce na nuvem, há sempre a possibilidade de otimização de uso, com ajuste fino de tamanho de servidor para determinada carga de trabalho ou agendamento de desligamento de instâncias quando há a redução de utilização.

Nas situações em que há migração de um ambiente on-premises para a nuvem, a atenção deve ser intensificada porque existem mais detalhes a serem considerados. Um exemplo é se determinada carga de trabalho deve ser abandonada, mantida em ambiente on-premises, migrada em seu estado atual, se deve ser remodelada (reescrita de código) ou se deve mudar sua plataforma (SaaS).

As experimentações de todos esses cenários devem ser rápidas para que novas direções sejam tomadas, tendo como vantagem o modelo de contratação de nuvem e sua cobrança, em alguns casos, por segundo.

Como FinOps pode ajudar nessa equação?

FinOps é um novo modelo de operação da nuvem. É a convergência entre as áreas de negócios, tecnologia e finanças. Reúne as exigências do negócio, o direcionamento tecnológico e a preocupação com os custos. Essa mudança é cultural em uma companhia, passando pelas áreas de operações, arquitetura de sistemas, arquitetura de soluções executivas e pelos responsáveis por compras.

Em 2019, foi fundada a FinOps Foundation (F2), uma instituição sem fins lucrativos criada por praticantes de FinOps que decidiram se juntar para trocar experiências e sugestões de melhores práticas. O assunto está em alta no momento, tanto que entre 10 e 12 de setembro de 2019 será sediado, em São Francisco (EUA), a CloudyCon, conferência para tratar especificamente do tema.

Cada peça desse quebra-cabeça tem uma importância ímpar na composição de uma estratégia de governança das cargas de trabalho na nuvem, sendo:

Operações

São os olhos e ouvidos dos ambientes. Tudo deve ser monitorado. Estado atual de utilização de servidores, bancos de dados, funções serverless, quantidade de uso de chaves de criptografia, acessos aos consoles, acesso às instâncias, possíveis paradas em produção, registros de tráfego de rede, registros de ameaças, registros de chamadas de APIs (Application Program Interfaces) e seus métodos, tempo de resposta de aplicações, etc. Esse conjunto de registros será base para os times de Arquitetura de sistemas e de soluções basearem as mudanças do ambiente.

Arquitetura de sistemas

A partir dos insumos fornecidos pelo time de operações e o uso de APMs (Application Performance Management), a equipe de arquitetura de sistemas consegue identificar assertivamente possíveis pontos de melhoria: pesquisas em bancos de dados que estão levando uma quantidade maior de tempo que o esperado, grandes volumes de informação trafegadas dentro de uma mesma requisição, chamadas da mesma carga para fazer uma única operação e/ou tokens de autenticação com tempo de vida muito curto.

Nesse momento pode haver a necessidade de reescrita de código, alinhamento com o setor de negócios e consulta ao time de arquitetura de soluções. Para esse time, é mandatório o mantra: testar, testar, testar. Com isso, é possível identificar a capacidade de cada recurso usado na nuvem de acordo com o sistema criado ou migrado.

Arquitetura de soluções

A área de Arquitetura de soluções deve olhar para a de operações, sugerindo ferramentas para o monitoramento de tudo, como o rotacionamento dos logs de maneira mais efetiva; e para o time de Negócios, entendendo as melhores maneiras de adaptar o requerido para o cenário da nuvem. Para a equipe de Sistemas, são sugeridos serviços gerenciados, estratégias de backup e para escalada e diminuição do tamanho dos recursos de infraestrutura (contêineres, servidores, réplicas de leitura de bancos de dados, nós memória cache), agendamento de tarefas, roteamento automático de cargas para determinados serviços, entre outras atribuições.

Dito isso, FinOps se trata, basicamente, da sinergia entre áreas e é, cada vez mais, um elemento essencial para estratégias de sucesso.

Para iniciar essa jornada, os provedores de nuvem têm recursos que podem alavancar adoção dessa cultura, como o AWS Trusted Advisor, o Microsoft Azure Cost Management e o Google Cost Management. Ferramentas de terceiros também podem ajudar, caso do Cloud8 e do CleanCloud, ambos nacionais.

Como melhores práticas no gerenciamento da nuvem voltado para custos, temos:

  • Identificação de todos os recursos com tags, que podem conter: o produto em desenvolvimento, o dono do projeto, o centro de custo, o nome da aplicação e o ambiente. Com isso, a granularidade dos relatórios é aumentada dando mais visibilidade;
  • Compra de capacidade computacional de maneira adiantada. Os provedores praticam diferentes preços no caso de um comprometimento por parte do cliente em um período pré-estabelecido. Como exemplo temos as Instâncias Reservadas da AWS (chamadas de RI), as Instâncias de Máquinas Virtuais Reservadas do Azure e as Instâncias de VM Preemptivas do Google Cloud. Com um bom planejamento é possível economizar até 60% do custo total comparando com uma compra sob demanda de poder computacional;
  • Estabelecer metas de orçamento. Crie alertas de uso para determinados recursos. Por exemplo: enviar um e-mail quando o consumo de armazenamento chegar a 100 dólares em um mês, entre outras;
  • Realizar detalhadamente um cálculo de TCO (Total Cost of Ownership). Com esse cálculo, é possível realizar um panorama realista de quanto uma empresa teria de despesas com data centers físicos e qual o ganho utilizando a nuvem. Amazon Web Services e Azure têm sua própria ferramenta para a realização desse cálculo.

Por último, mas não menos importante: experimente! Em um campo aberto de possibilidades, seja para a criação ou migração de uma carga de trabalho, teste exaustivamente as opções disponíveis. Aproveite-se da facilidade e larga oferta de produtos e serviços que os provedores oferecem.