Por: Boris Kuszka

O modelo de computação em nuvem é uma tendência sem volta: a melhoria da eficiência em TI, o aumento de produtividade e a automatização que o modelo traz é inegável e as empresas já perceberam que a mudança é inevitável e que precisam adotar essa tecnologia, pois o mercado exige que qualquer projeto de TI vinculado ao negócio do cliente (e estamos vendo cada vez mais a TI criando diferencias de competitividade) precisa ter um ciclo do desenvolvimento até entrar em produção cada vez menor.

Mas o caminho para adoção de computação em nuvem a partir do modelo atual precisa de cuidados e é necessário fazer certas escolhas com sapiência e evitar algumas armadilhas que estão aparecendo no mercado com a promessa de resolver essa transição com uma abordagem unificada e isso não é possível, infelizmente.
A TI tradicional está baseada em uma infraestrutura virtualizada, cuja origem está relacionada diretamente no hardware, ou seja, veio de uma arquitetura de sistemas que tinha como premissa ter o servidor inteiro à sua disposição e isso se reflete nas aplicações legadas: caso precise atender mais usuários, dedica-se mais processadores e memória para aumentar a performance. Chamamos isso de escalabilidade vertical.

A próxima geração de aplicações seguem outras premissas em que a principal é a adequação para uma arquitetura de nuvem e isso exige uma escalabilidade horizontal: caso precise atender mais usuários, coloca-se mais uma instância dessa aplicação para atender o aumento da demanda. Coloca-se duas, três, quantas instâncias forem necessárias para garantir a alta performance da aplicação e elimina-se as instâncias quando a quantidade de usuários atendidos diminui. Isso é o que chamamos de elasticidade: característica básica da computação em nuvem.

É exatamente por causa dessa mudança de paradigma, na qual as características das aplicações tradicionais se distinguem das características da nova geração de aplicações, que não podemos ter uma infraestrutura unificada para tratar os dois tipos de abordagens. O modelo de uma nuvem única para executar e gerenciar todos os aplicativos e que englobe os ambientes privado e público parece, inicialmente, uma ideia atraente.

Porém, acredito que ela seja fundamentalmente falha na hora de implementar, pois suas cargas de trabalho são distintas, são o que chamamos de workload tradicional e workload de nuvem (cloud-native) e eles requerem infraestruturas diferentes. Na tentativa de mesclar os dois mundos, vejo como resultado apenas uma nuvem limitada e sem otimização para executar nenhum dos dois processos.

Na minha visão, um dos pontos falhos nesse modelo é tentar resumir a plataforma aberta OpenStack (um dos padrões de maior destaque para infraestrutura de computação em nuvem, ou IaaS) como um conjunto de APIs para desenvolvedores. As APIs do OpenStack não são criadas para esses profissionais, que estão mais interessados em construir aplicativos na nuvem e preferem tecnologias como OpenShift ou FeedHenry para isso. As APIs do OpenStack são criadas para gestores de nuvem que querem essencialmente um gerenciamento operacional ágil, escalabilidade horizontal e elasticidade.

Outra falha é o paradigma relacionado à escalabilidade. O OpenStack é otimizado para esta arquitetura e workloads na nuvem. Na verdade, é esperado que apps de nuvem tenham a capacidade de adicionar e reduzir a elasticidade sem impactar a performance da infraestrutura. Ao escolher esses processos em uma plataforma vertical, pode-se atingir o limite do cluster e isso limitará a capacidade das aplicações. No fim, tanto os workloads tradicionais quanto os de nuvem não irão performar adequadamente.

É por isso que acredito que a melhor abordagem seja uma nuvem híbrida e aberta. Esse modelo oferece suítes nativos para workloads específicos e a capacidade de construir uma ponte entre os ambientes. A característica aberta (open source) confere à nuvem uma evolução sem restrições (block-in) e a híbrida permitirá uma experiência integrada entre as aplicações.

Em outras palavras, uma nuvem híbrida e aberta consiste em uma infraestrutura de virtualização tradicional baseada em padrões abertos para tratar dos workloads tradicionais e outra infraestrutura baseada no OpenStack para a nova geração de workloads. Já o gerenciamento das duas arquiteturas é feito por um orquestrador que permite inclusive provisionar também recursos em nuvem pública. Com isso, temos uma ferramenta única gerenciando tanto os dois tipos de workloads quanto as nuvens, permitindo uma transição segura e paulatina para as novas demandas que estão sendo exigidas pelo mercado.

Boris Kuszka é gerente dos arquitetos de soluções da Red Hat no Brasil