Como a Netflix está arruinando a computação em nuvem

Author Photo
9:19 am - 27 de março de 2013

No último dia 13, a Netflix anunciou um prêmio de 100 mil dólares em dinheiro para os desenvolvedores que conseguirem melhorar suas ferramentas open source para controlar e gerenciar entregas de aplicações na nuvem. Dada a largada, o arquiteto de cloud da Netflix, Adrian Cockcroft, disponibilizou várias ferramentas internas em arquitetura aberta. Atualmente, oito ferramentas específicas de nuvem estão disponibilizadas pela empresa, e Cockcroft tem se mostrado muito aberto ao compartilhar seu conhecimento próprio e o da Netflix.

Na teoria, tudo isso deveria ser uma maravilha. Na realidade, é provável que isso deixe a computação em nuvem com uma ressaca enorme de boas práticas e arquitetura para os próximos anos. A Netflix é a garota propaganda da “Cloud Computing v1.0”, demonstrando tanto seus benefícios quanto seus problemas. A v1.0 é estritamente um caso da Amazon Web Services ? nenhum outro fornecedor tinha as características necessárias para construir aplicações comparáveis (zonas de disponibilidade múltipla, EBS com snapshots e restaurações rápidas). Dessa maneira, faz todo sentido que a Netflix abrace a AWS, pois ela enxergou benefícios enormes na capacidade de implantar e expandir seu serviço usando as interfaces e arquiteturas que eram possíveis quando o serviço da Amazon foi lançado.

Mas a Netflix também sofreu várias vezes nas mãos da Cloud Computing v1.0 com quatro interrupções somente em 2012, o que certamente aponta para a possibilidade de alguma melhora na alta disponibilidade do seu serviço. Como nota, a queda na véspera do Natal talvez seja a mais preocupante do ponto de vista “v1.0”, já que era apenas o resultado da confiança da Netflix em um serviço AWS menos necessário para balanceamento de carga, o que poderia ter sido tratado em diversas formas para aumentar a disponibilidade do servidor.

A razão pela qual essa competição iniciada pela Netflix pode piorar as organizações é porque ela abraça completamente a mentalidade “Cloud Computing v1.0”, tanto de um ponto de vista “AWS-é-o-único fornecedor?, bem como do ponto de vista arquitetônico. Embora seja questionável que ainda não exista outra infraestrutura como serviço de outros fornecedores (IaaS, em inglês) que tenha um conjunto de características completamente testados (a menos que você tenha acabado de sair de um estúdio de tatuagem com um “#AWS” em seu ombro), você sabe que não irá demorar para que concorrentes a altura (ou melhores) apareçam. Além disso, todas as empresas que rodam o AWS deveriam estar ansiosas para o surgimento de outros fornecedores IaaS por duas razões: maior disponibilidade e concorrência de preços.

Todo arquiteto de nuvem deve saber que é apenas uma questão de tempo para que as organizações tenham aplicativos implementados em todo o mundo, em vários fornecedores de infraestrutura, em diferentes centros de dados, com base no volume e localização solicitado, combinados com um mercado onde recursos de computação mudam constantemente. Hoje, limitar-se ao AWS para arquiteturas em nuvem inexploradas, seria o equivalente a tomar a decisão de desenvolver um aplicativo somente para iPhone quando você sabe que vai ter que oferecer o mesmo suporte para iPads, Android e outros no futuro.

Além do concurso da Netflix incomodar do ponto de vista AWS-cêntrico, há um problema mais profundo: algumas das ferramentas da empresa abraçam uma arquitetura de nuvem que estava bem nos dias de Cloud Computing v1.0, mas que irá atrair cada vez mais suspeitas. Eu sei que é difícil deixar de fora códigos e sistemas que estão funcionando bem, principalmente quando eles ainda parecem eficientes ? e, muitas vezes, dar um pouco mais de tempo é a decisão interna correta para uma empresa. Mas, ao invés de apenas espremer os últimos pedaços de valor, a Netflix está aplicando um dinheiro significativo no resto do mundo, pedindo a todos para abraçar e estender suas ferramentas e códigos que não são particularmente boas práticas para futuras arquiteturas de nuvem.

Aliás, um dos melhores exemplos de más práticas da Netflix é o Aminator. A ferramenta ajuda a criar imagens as Amazon Machine Images (AMIs) facilmente, baseadas numa estrutura AMI e empacotada por um código. ?Devo ter produzido cerca de 25 mil AMIs para Ubuntu?, conta um animado early adopter.

Existe apenas um problema: é difícil entender quando esta se torna uma boa ideia. Há vários anos, desovar toneladas de imagens teria sido uma forma pouco aceitável para a implantação de uma versão revisada de um aplicativo (devido ao código do aplicativo, sistema operacional e /ou software do servidor). Mas hoje temos a ampla adoção de ferramentas de gestão de configuração como o Chef and Puppet, que faz a criação massiva de AMI sob boas práticas. A Amazon Web Services lançou recentemente um serviço chamado OpsWorks, o que seria uma maneira muito melhor para lidar com implantação de aplicativos – ela usa o Chef.

Há outras ferramentas não tão ruins, mas muitas possuem a característica de terem que arquitetar em torno de uma série de questões que já foram mais ou menos resolvidas. É parecido com um projeto de código aberto, que depende fortemente de SOAP em vez de ser RESTful. Por exemplo, Edda, que ajuda a descobrir quais recursos de nuvem você está usando no AWS, parecia simplesmente como algo que tinha que ser construído porque ninguém configurava corretamente a maneira como os recursos deveriam ser solicitados e implantados. E o Asgard, uma ferramenta bem legal criada em 2010 para gerenciar uma variedade de aplicações diferentes em AWS, seria dificilmente vendido como a melhor ferramenta da categoria hoje, em comparação com outras opções de código aberto, principalmente o Scalr e o Chef.

Isso não quer dizer que todas as ferramentas de nuvem da Netflix em código aberto se encaixam nesse molde. O denominador é um grande gerenciador de DNS (porque é multinuvem), e o Simian Army é uma ideia inovadora para testar arquiteturas em nuvem (é, infelizmente, apenas AWS).

Há uma possibilidade de que o concurso da Netflix ajude a  guiar o mundo em direção à Cloud Computing v2.0 e além dela, adotando arquiteturas multi-cloud que utilizem orquestração e gerenciamento de configuração de forma ideal. No entanto, eu sou cético quanto ambas as frentes. Comentários públicos de Cockcroft sugerem pouco interesse em usar outros fornecedores de nuvem. Uma boa parte do dinheiro do prêmio é em créditos AWS, e o CTO da Amazon é um juiz, e tudo isso aponta para uma mentalidade muito AWS-cêntrica. Além disso, o fato de que a Netflix acaba de lançar o Aminator indica que a companhia tem o prazer de lançar quaisquer ferramentas que eles construíram, independentemente delas se encaixarem nas boas práticas da arquitetura de nuvem moderna.

Mas, por favor, Netflix, prove que estou errado. Adote uma nuvem menos proprietária, mais disponível e mais padronizada – e coloque o Urs Hölzle (vice-presidente sênior de infraestrutura técnica do Google) na comissão, enquanto estiver nisso.

Newsletter de tecnologia para você

Os melhores conteúdos do IT Forum na sua caixa de entrada.