Houve uma agitação crescente sobre computação em nuvem durante o ano passado. Grandes empresas como IBM®, Microsoft® e Amazon anunciaram suas estratégias para computação em nuvem. Empresas menores, até mesmo iniciantes ofereceram seus serviços. Como sempre, quando há grande agitação em torno de alguma coisa, é bom perguntar por que nos preocupamos com isso e quais são os benefícios a serem ganhos pelos clientes. Esta última parcela de Manifesto Arquitetural explora, em um alto nível, a computação em nuvem e suas possibilidades para fornecedores e clientes.
Também chamada de Software as a Service (SaaS), a computação em nuvem às vezes também é denominada de Everything as a service (EaaS). Ela pode incluir os servidores, bancos de dados, software ou qualquer combinação deles. Em Camadas exploraremos as diferentes camadas (ou serviços) que os fornecedores de computação em nuvem podem oferecer. Também discutiremos os riscos dos serviços baseados em nuvem. Primeiro, porém, uma introdução à computação em nuvem.
Em resumo, computação em nuvem significa que as empresas, os usuários dos serviços de TI, podem comprar seus serviços relacionados a TI como um serviço. Em vez de comprar servidores para serviços internos ou externos e ou comprar licenças de software, a empresa pode comprá-los como um serviço. Isso não é nada novo. Os serviços de hospedagem existem há algum tempo, permitindo concentrarmo-nos mais nos negócios do que na infraestrutura de TI. Ainda assim, a computação em nuvem tem algo mais a oferecer.
Imagine que um grande fornecedor está vendendo suas mercadorias por um portal da Web. Ele precisa de acesso a servidores e infraestrutura para suportar os maiores picos de demanda (horas de pico do dia, dias de pico antes de feriados), mas na maior parte do tempo consegue seguir com capacidade menor. Ele começa a pensar se realmente precisa ser proprietário de tanta infraestrutura que não é usada inteiramente a maior parte do tempo. Com um serviço de hospedagem, o grande fornecedor poderia comprar a infraestrutura necessária como um serviço, pagar uma taxa mensal ou anual e preocupar-se menos com a infraestrutura. Ele compraria exatamente a capacidade que precisar, à medida que precisar nos momentos de pico. Com computação em nuvem, pagaria pela capacidade de pico com base no uso. Os benefícios para o cliente são bem óbvios.
Há várias características importantes da computação em nuvem:
- O cliente não precisa conhecer (e comprar) a capacidade total que poderá precisar no horário de pico. A computação em nuvem torna possível escalar os recursos disponíveis ao aplicativo. Uma empresa iniciante não precisa se preocupar se a campanha de propaganda funcionar muito bem e congestionar os servidores.
- O cliente paga somente pelo que usar. Não precisa comprar servidores ou capacidade para suas necessidades máximas. Geralmente isso resulta em economias de custo.
- A nuvem alocará e desalocará automaticamente (ou, em alguns casos, com operações semimanuais) CPU, armazenamento e largura de banda de rede sob demanda. Quando houver poucos usuários em um site, a nuvem usa bem pouco espaço para executar o site e vice-versa.
- Como os datacenters que executam os serviços são enormes e compartilham recursos entre um grande grupo de usuários, os custos de infraestrutura são menores (eletricidade, prédios etc.). Assim, os custos que são repassados ao cliente são menores.
Os clientes recebem os serviços que desejam e pagam somente pelo uso real. Se o seu o Web site receber grande número de visitantes cinco dias por semana, mas ficar quase parado nos fins de semana, eles pagarão pela capacidade que precisarem (e usarem) somente nos dias úteis.
Há várias camadas reconhecidas na computação em nuvem. Os fornecedores nessas camadas têm ofertas de serviços e modelos de operação bastante diferentes. Alguns fornecedores concentram-se na construção e manutenção de um datacenter enorme, enquanto outros concentram-se na construção de um aplicativo simples e fácil de usar e cheio de recursos. As camadas, de baixo para cima, são: infraestrutura, armazenamento, plataforma, aplicativo, serviços e cliente.
- Infraestrutura
- Na base está a infraestrutura do serviço ou a virtualização da plataforma. Você obtém o tipo de ambiente do servidor que desejar. Essa é a oferta básica; os clientes ainda precisam manipular o servidor, toda a instalação de software e a manutenção eles mesmos.
A infraestrutura da computação em nuvem se diferencia dos serviços de hospedagem tradicionais devido à escalabilidade e à precificação de pagar à medida que usar. Uma empresa iniciante poderá estar bastante interessada em obter a escalabilidade e não pagar pelo tempo em que não estiver usando o serviço. É conveniente, principalmente se estiver tentando aumentar o tráfego no seu aplicativo da Web mas não souber em quanto tempo ou em que nível terá sucesso. - Armazenamento
- Com a camada de armazenamento, você obtém um banco de dados ou algo semelhante e paga por gigabyte por mês. A camada de armazenamento não é nada novo ou especial, exceto para a pilha completa de serviços. Ela é, naturalmente, vital.
Existem várias possibilidades de armazenamento. Algumas são bancos de dados relacionais tradicionais e algumas são soluções proprietárias como o Bigtable do Google ou o SimpleDB da Amazon. - Plataforma
- A camada de plataforma tem pilhas de soluções como Ruby on Rails, LAMP ou Python Django. Agora as coisas começam a ficar interessantes. Aquela empresa iniciante fictícia não precisa lidar com toda a instalação do software do servidor ou manter suas versões atualizadas, porque isso vem com o serviço. Ela pode se concentrar em desenvolver e divulgar seu aplicativo.
- Aplicativo
- A camada de aplicativo contém aplicativos que são oferecidos como serviços. Os exemplos mais famosos provavelmente são Salesforce.com e Google Docs, mas existem centenas, se não milhares de aplicativos (reais) que podem ser adquiridos como serviços.
Aplicativos da Web populares como Facebook, Flickr e LinkedIn são serviços em nuvem. Nesses casos, o cliente provavelmente não sabe se o aplicativo é executado em um datacenter escalável, em um serviço de hospedagem comum ou no porão dos provedores de serviços. Mas isso não é preocupação ou problema do cliente que precisa usar o aplicativo. Essa camada provavelmente é a parte mais visível da computação em nuvem. Ela enfatiza os benefícios que podem ser observados pelos clientes. - Serviços
- A camada de serviços contém operações de máquina para máquina interoperáveis pela rede. O exemplo mais prevalecente dessa camada são os serviços da Web. Outros exemplos incluem sistemas de pagamento como Paypal e serviços de mapeamento como Google Maps e Yahoo Maps.
- Cliente
- Na parte superior da pilha está a camada do cliente, que contém os usuários dos sistemas em nuvem. Os clientes são, por exemplo, usuários de desktop (thin client ou thick client) e usuários remotos (Symbian, Android, iPhone).
Como podemos ver, existem amplas oportunidades para os fornecedores oferecerem serviços novos e existentes e para os clientes encontrarem serviços e aplicativos que resolvem seus problemas. No entanto, há alguns riscos que os clientes precisam entender.
Há vários pontos a considerar antes de assinar serviços baseados em nuvem. Não pense nos riscos a seguir como entraves ou falhas primordiais, mas como problemas que devem ser reconhecidos ao se tomar decisões. Você deverá analisar se os serviços baseados em nuvem são certos para as suas necessidades e quais dos serviços disponíveis são certos para você.
- Dependência de um determinado fornecedor
- Certifique-se de que existe uma maneira fácil de tirar os seus dados do serviço. Se estiver usando um serviço de infraestrutura, fazer backup dos arquivos e dos dados deverá ser relativamente fácil. Se estiver usando um aplicativo da Web, tenha certeza de haver um plano para levar seus dados consigo caso precisar mudar para outro fornecedor. Não é necessário sempre mudar todos os dados para o novo aplicativo se você tiver uma maneira de visualizar os dados. Por exemplo, não é necessário mudar todos os dados do aplicativo de rastreamento antigo para o novo se você tiver acesso à sua visualização.
- Confiabilidade
- Se alguma coisa der errado com o provedor de serviços, como os servidores ficarem inativos, o cliente não pode fazer nada. Para situações como essa, é melhor escolher um provedor de serviços que ofereça sites espelhados. Mas às vezes nem isso é suficiente; até mesmo os grandes fornecedores podem ter problemas.
- Segurança de dados
- Não é sempre um risco. Os procedimentos e o conhecimento de segurança do fornecedor poderão ser bem melhores que os de uma empresa iniciante.
O problema a considerar é: quem consegue ver seus dados e quais são as políticas do fornecedor quanto a isso. Por exemplo, se seus dados forem sensíveis para os concorrentes verem, verifique as políticas do fornecedor. - Saindo dos negócios
- Investigue o que aconteceria aos seus dados ou ao aplicativo se o fornecedor for obrigado a sair dos negócios. Esse aspecto negativo pode ser algo raramente mencionado nos materiais de marketing. Se a exportação dos dados for fácil, o possível encerramento do fornecedor não deverá ser tão perigoso. Você ainda enfrentaria o problema de encontrar um novo aplicativo (ou fornecedor) adequado para as suas necessidades comerciais.
Nesta edição você aprendeu sobre a essência da computação em nuvem, as características principais, as camadas e alguns riscos que deverão ser avaliados. Para o cliente médio, computação em nuvem significa obter os serviços que desejar e pagar pelo uso. A computação em nuvem tem muitas características, como escalabilidade, alocação de recursos sob demanda e economia de escala. Há seis camadas na planilha da computação em nuvem, indo da infraestrutura à camada de cliente. Os fornecedores operam e oferecem serviços em uma ou mais das camadas. Você também aprendeu sobre os riscos que os clientes e os futuros fornecedores deverão considerar.
A computação em nuvem não é apenas uma tendência que poderá acontecer algum dia. É uma realidade; os usuários da Web típicos usam serviços em nuvem diariamente, quer saibam ou não. No futuro próximo provavelmente veremos uma tendência mais forte de os serviços e aplicativos corporativos mudarem para as nuvens. Naturalmente, há determinados aplicativos que as corporações prefeririam executar em seus próprios servidores, mas a maior parte dos aplicativos corporativos deveria ser apropriada para a computação em nuvem.
Aprender
- Descubra por que a computação em nuvem é importante, como obter uma introdução e onde aprender mais sobre ela no developerWorks Cloud computing space.
- Leia sobre os planos da IBM de construir dois importantes
centros de computação em nuvem.
-
Computação em nuvem
descreve os planos e as atividades de computação em nuvem da IBM.
- Leia mais sobre autenticação de computação em nuvem da Wikipedia.
-
"Guide
To Cloud Computing" (InformationWeek, junho de 2009) tem mais informações sobre computação em nuvem e os principais participantes.
-
"Computing
Heads for the Clouds" (BusinessWeek, Nov 2007) é um pequeno livro de instruções sobre como a nova tecnologia funciona.
- Localize recursos do desenvolvedor em
developerWorks.
- Aprenda enquanto assiste
Software como Serviço .
Obter produtos e tecnologias
- Acesse os produtos de software IBM no ambiente virtual Amazon Elastic Compute Cloud (EC2) e comece a desenvolver seus aplicativos hoje.
Discutir
- Confira os
blogs do developerWorks e participe da comunidade do
developerWorks.