Computação em Nuvem: algumas perguntas sobre desafios em projetos

Olá pessoal, tudo certo?

Essa semana, fiz uma apresentação sobre Computação em Nuvem e recursos do Windows Azure na FAAP - Fundação Armando Alvares Penteado (https://www.faap.br/). Foi muito bom falar com o professor Túlio Marin, o prof. Rodrigo e o prof. Dr. Francisco Paletta sobre os desafios da Cloud, momentos antes do evento. Na sequência da apresentação sobre Azure tivemos uma sessão com Cezar Taurion, gerente de novas tecnologias na IBM, que trouxe a visão sobre a cloud segundo a empresa.

Ao longo do encontro, tivemos boas perguntas sobre aspectos importantes e desafios na cloud. Sobre esses desafios, destaco abaixo algumas perguntas frequentes que tenho visto em outros debates, veja: 

Com um êxodo massivo de capacidades de TI para a nuvem, o que acontecerá com os profissionais de TI, que atuam sobre datacenters locais (on-premise)?

Comentário: essa questão é tão importante quanto constante. O Markus sempre fala: “olá todo mundo, o mundo mudou!”. Com certeza, teremos mudanças nas tarefas do dia-a-dia do IT Pros, do DBA, do administradores de rede, etc. Mas não teremos uma ruptura da noite para o dia. O que deveremos assitir ao longo do tempo é uma composição de capacidades, ora local, ora na nuvem, capacidades essas que serão administradas de forma centralizada, através de ferramentas consolidadas no on-premise.

Por exemplo, um DBA que opera sobre SQL Server Management Studio 2008 continuará administrando o servidor SQL local e com a mesma ferramenta, irá administrar os servidores contratados no SQL Azure. O mesmo deve acontecer na combinação de outras capacidades do enterprise, como hospedagem de serviços (com o AppFabric local e na nuvem, por exemplo), o controle de acesso, o single sign-on (com CBA – Claim-based Authenticaion), etc.

Mas a recomendação permanece: mantenha-se atento as essas novas oportunidades de infraestrutura híbrida, pois essa combinação em TI’s deverá acontecer realmente.

Mover para a nuvem provoca o lock-in de plataforma? É possível migrar aplicações entre nuvens?

Comentário: quando pensamos em cloud computing temos diferentes níveis de abstração disponíveis, como vemos abaixo:

image

Sobre os datacenters de um provedor de nuvem encontramos ofertas de Infraestrutura como Serviços (IaaS – Infrasctructure as a Service), Plataforma como Serviço (PaaS – Platform as a Service) e Software como Serviço (SaaS – Software as a Service). Quando mais alto nas camadas, maior o nível de abstração e menor o controle. Quando mais baixo, maior o controle e menor a abstração.

Portanto, se você contrata uma solução de IaaS, você contrata uma infraestrutura capaz de executar e hospedar seu software sobre o sistema operacional que você escolher, instalar, administrar e gerenciar. Maior controle = maior responsabilidade. Por isso, mudar de provedor IaaS deve oferecer um impacto menor em sua dependência de plataforma, pois você pode migrar apenas sua imagem de solução, por exemplo.

Ao mesmo tempo, contratar uma solução SaaS exige o menor envolvimento sobre desenvolvimento, gerenciamento ou administração da solução. Porém, você irá depender do software e funcionalidades oferecidas pela solução SaaS, o que deve oferecer um impacto em caso de mudança do provedor contratado. Por exemplo, contratar uma solução SaaS CRM da SalesForce.com é diferente de contratar uma solução SaaS CRM da Microsoft, via o Dynamic CRM OnLine. Fique atento e reconheça o tipo de serviço de nuvem que você está contratando. Reconhecer quais funcionalidades são únicas de cada provedor é importante e deve esclarecer seu grau de dependência com a solução contratada.

Outro aspecto importante na contratação de um provedor é a facilidade de integração com sua plataforma local (on-premise). A maioria dos provedores de nuvem oferecem API’s para consumo de recursos através de interfaces Web. O Windows Azure, por exemplo, oferece suporte para todos os protocolos internet e W3C para consumo de suas API’s, como HTTP, SSL, SOAP, REST, XML, etc, o que garante total interoperabilidade da nuvem Azure com outras plataformas, assim como sua infraestrutura on-premise (local).

O que acontece se você conecta aplicações LOB locais com aplicações SaaS e o provedor de Utility/APaaS/SaaS fica fora de operação?

Comentário: sem dúvida, se o link cair, sua operação estará fora do ar; se o provedor cair, sua aplicação também estará fora do ar. Por isso, procure identificar quais serviços serão consumidos da nuvem, quais são os níveis de serviço (SLA’s) oferecidos pelo provedor, quais funcionalidades da solução podem estar parcialmente conectadas, com suporte a momentos off-line, etc. Esse tipo de análise é muito importante!

Com dados e processamento na nuvem, a transferência de dados torna-se crítica. Como projetar pensando em transferências para evitar gastos?

Comentário: pense que entre os vários modelos de contratação na nuvem pagamos também pelos tráfego de entrada e saída de dados na nuvem. No Windows Azure, por exemplo, pagamos pelos dados de entrada e saída no SQL Azure, assim como numa Table do Azure Storage. Portanto, ao projetar sua solução para a nuvem procure avaliar o tráfego que será gerado nas fronteiras da cloud. O uso de bons patterns de software fará a diferença no final do mês.

Vimos aqui apenas algumas perguntas sobre desafios de um projeto na cloud. O que você achou? Outras perguntas ainda existem? Fique a vontade para seus comentários.

Por enquanto é só! Até o próximo post :)

Waldemir.