O documento discute o desenvolvimento em nuvem, definindo-o como computação remota acessada pela internet. Apresenta os principais modelos de serviço (SaaS, PaaS e IaaS), tecnologias como MapReduce, Amazon EC2, Eucalyptus e plataformas como Google App Engine e Microsoft Azure. Por fim, discute aplicações, desafios e referências sobre computação em nuvem.
2. O QUE É O DESENVOLVIMENTO EM NUVEM ?
Refere-se
computadores e aplicativos que são executados
remotamente e acessados pela Internet.
Máquinas
virtuais são executadas em grandes datacenters
em substituição aos PCs e servidores físicos.
Agregar
as necessidades computacionais
usuários em um único centro.
de
vários
1
3. BENEFÍCIOS DO DESENVOLVIMENTO NA NUVEM
Um
menor consumo de energia.
Configuração
Atualizações
e manutenção mais simples.
de capacidade e desempenho mais fáceis.
Vários aplicativos podem continuar em execução sem
passar por alterações à medida que você os reimplanta a
partir de desktops locais ou servidores na nuvem.
1
4. MODELOS DE SERVIÇO
POR QUE SÃO IMPORTANTES ?
Em
ambientes de computação em nuvem podem-se ter
três
modelos
de
serviços.
Estes
modelos
são
importantes, pois eles definem um padrão arquitetural
para soluções de computação em nuvem.
1
6. SOFTWARE COMO SERVIÇO (SAAS)
Proporciona
Acessíveis
softwares com propósitos específicos.
a partir de vários dispositivos do usuário.
O
usuário não administra ou controla a infraestrutura
subjacente.
O
desenvolvedores se concentram em inovação e não na
infraestrutura.
Novos
recursos podem ser incorporados automaticamente.
Reduz os custos, pois é dispensada a aquisição de
licenças de softwares.
Exemplo
Google Docs.
1
7. PLATAFORMA COMO SERVIÇO (PAAS)
Infraestrutura
de alto nível de integração.
O
usuário não administra ou controla a infraestrutura
subjacente
Fornece
um sistema operacional, linguagens de
programação e ambientes de desenvolvimento para as
aplicações.
Os
desenvolvedores dispõem de ambientes escaláveis.
Como exemplo de PaaS podemos destacar o Google
App Engine.
1
8. INFRAESTRUTURA COMO SERVIÇO (IAAS)
É
a parte responsável por prover toda a infraestrutura necessária
para a PaaS e o SaaS.
Tornar
mais fácil e acessível o fornecimento de recursos.
Tem
como características interface única para administração da
infraestrutura.
O
usuário
tem
controle
sobre
os
operacionais, armazenamento e aplicativos implantados.
sistemas
Pode
escalar dinamicamente, aumentando ou diminuindo os
recursos de acordo com as necessidades das aplicações.
Exemplos
são o
Amazon EC2 (Elastic Cloud Computing) e o
Eucalyptus (Elastic Utility Computing Architecture Linking Your
Programs To Useful.
1
10. MODELO DE IMPLANTAÇÃO
Tratando-se
do acesso e disponibilidade de ambientes de
computação em nuvem, tem-se diferentes tipos de
modelos de implantação.
A
restrição ou abertura de acesso depende do processo
de negócios, do tipo de informação e do nível de visão
desejado.
Os modelos de implantação da computação em nuvem
podem ser divididos em: público, privado, híbrido e
comunidade.
1
13. COMUNIDADE
Compartilhamento
Este
por diversas empresas de uma nuvem.
tipo modelo de implantação pode existir localmente
ou remotamente e pode ser administrado por alguma
empresa da comunidade ou por terceiros.
1
14. HÍBRIDO
Existe
uma composição de duas ou mais nuvens, que
podem ser privadas, comunidade ou pública e que
permanecem como entidades únicas e ligadas por uma
tecnologia padronizada ou proprietária que permite a
portabilidade de dados e aplicações.
1
15. ESCALABILIDADE DE NUVENS
Pode-se
identificar pelo menos duas dimensões de
escalabilidade: a horizontal e a vertical.
Uma
nuvem escalável horizontalmente possui a
capacidade de conectar e integrar múltiplas nuvens para
o trabalho como uma nuvem lógica.
Uma
nuvem escalável verticalmente pode melhorar a
própria capacidade, incrementando individualmente seus
nós existentes.
2
16. ARQUITETURA DE COMPUTAÇÃO EM NUVEM
A
arquitetura de computação em nuvem é baseada em
camadas.
Uma
camada é uma divisão lógica de componentes de
hardware e software.
Camada
de mais baixo nível.
Camada
de middleware.
Camada
acima da middleware.
Camada
das aplicações de computação em nuvem.
2
18. TECNOLOGIAS DE COMPUTAÇÃO EM NUVEM
E SEUS MODELOS DE PROGRAMAÇÃO
A
computação em nuvem envolve
quantidade de conceitos e tecnologias.
Empresas
uma
grande
e corporações como a Amazon, Google e
Microsoft estão publicando serviços computacionais
seguindo a lógica da infraestrutura de computação em
nuvem, sendo a Amazon a pioneira em disponibilizar e
comercializar infraestrutura deste tipo.
3
19. MAPREDUCE/HADOOP
Modelo de programação que visa o processamento de grandes volumes de
dados, onde o usuário especifica sua aplicação através da sequência de
operações.
Cada operação é composta por duas funções.
Gerencia o processamento através de um processo master, cuja função é de
orquestrar o processamento e gerenciar o processo de agrupamento de e distribuir
os blocos de forma equilibrada.
Possui
como
principais
características:
sistemas
de
armazenamento
distribuído, arquivos particionados em grandes blocos e distribuídos nos nós do
sistema, blocos replicados para lidar com falha de hardware e um local para
dados temporários.
3
21. AMAZON EC2
Fornece aos desenvolvedores ferramentas para construir aplicações escaláveis.
Permite um controle completo de suas instâncias, sendo possível acessar e
interagir com cada umas destas, de forma similar a máquinas convencionais.
Fornece confiabilidade e escalabilidade ao enfileirar e armazenar mensagens
que estão sendo trocadas entre os recursos computacionais.
Os desenvolvedores podem, de maneira simples, mover dados entre os recursos
distribuídos das aplicações entre diferentes domínios com garantia de entrega.
3
23. EUCALYPTUS
É uma infraestrutura de código aberto, e permite aos usuários experimentarem a
computação em nuvem.
Tem como objetivo auxiliar a pesquisa e o desenvolvimento de tecnologias para
computação em nuvem.
Tem como características: instalação e implantação simples usando ferramentas
de gerenciamento de clusters, apresenta um conjunto de políticas de alocação
extensível de nuvem, sobreposição de funcionalidade que não requer nenhuma
modificação em ambiente Linux, ferramentas para administrar e auxiliar a gestão
do sistema e dos usuários e capacidade de configurar vários clusters, cada um
com endereços privado de rede interna em uma única nuvem.
Esse sistema permite aos usuários iniciar, controlar o acesso e gerenciar todas as
máquinas virtuais.
3
25. GOOGLE APP ENGINE
É
uma plataforma para o desenvolvimento de aplicações Web
escaláveis que são executados na infraestrutura do Google.
Fornece
um conjunto de APIs e um modelo de aplicação que
permite aos desenvolvedores utilizarem serviços adicionais
fornecidos pelo Google, como o e-mail, armazenamento, entre
outros.
Os
desenvolvedores podem criar aplicações Java e Python e
podem
utilizar
diversos
recursos
tais
como:
armazenamento, transações, ajuste e balanceamento de carga
automáticos, ambiente de desenvolvimento local e tarefas
programadas.
4
27. 4
ANEKA
É
uma plataforma para a implementação de aplicações em
computação em nuvem baseada em .NET.
Fornece
aos desenvolvedores um rico conjunto de APIs para
explorar esses recursos de forma transparente e expressar a lógica
de negócio das aplicações usando as abstrações de
programação.
Possui
um SDK (Software Development Kit) que permite aos
desenvolvedores criarem aplicações no contexto de nuvens em
qualquer linguagem suportada pelo.NET runtime e um conjunto de
ferramentas para rápida criação de nuvens.
29. MICROSOFT AZURE
Tem
três partes principais: um serviço de Computação
que executa aplicativos, um serviço de Armazenamento
que armazena dados e uma Malha que suporta os
serviços de Computação e Armazenamento.
Desenvolvedor
cria um aplicativo no Windows que pode
ser escrito usando C# e o .NET Framework, usando C++ e
as APIs do Win32 ou de alguma outra maneira.
Fornece
seus próprios mecanismos baseados em nuvem
para armazenar e recuperar dados. A plataforma oferece
três opções de armazenamento, todas acessadas via HTTP
GETs, PUTs e DELETEs padrão.
4
30. 4
Os aplicativos baseados no serviço de Computação do Windows Azure podem
consistir em instâncias de função da Web, função do Trabalhador ou nas duas.
31. 4
O serviço de armazenamento do Windows Azure pode ser acessado por aplicativos do
Windows Azure ou por aplicativos executados em outros lugares.
32. APLICAÇÕES DE COMPUTAÇÃO EM NUVEM
Diversos tipos de aplicações baseadas em computação em nuvem estão
disponíveis. Serviços de webmail, sites, softwares como serviços em geral são
alguns exemplos.
O jornal NY Times usou EC2 e S3 da Amazon para converter 15 milhões de artigos
de notícias para PDF (4 TB), para distribuição online, em uma questão de minutos.
A bolsa de valores eletrônica Nasdaq usa S3 para disponibilizar informações sobre
o histórico de ações, sem onerar sua própria infraestrutura de TI.
Financeiras e seguradoras usam a nuvem para executar a avaliação de risco e
calcular custo dos empréstimos. Neste tópico apresentamos uma aplicação
executada em nuvem para detecção de arquivos maliciosos e indesejados
O CloudAV é um novo modelo para detecção de vírus em máquinas baseado no
fornecimento de um antivírus como um serviço de computação em nuvem.
5
34. DESAFIOS DO DESENVOLVIMENTO EM NUVEM
Segurança
Gerenciamento
de Dados
Autonomia
Disponibilidade
Escalabilidade
Descrição,
e Desempenho
Descoberta e Composição de Serviços
Licenciamento
Integração
Avaliação
de Serviços
de Software
de Serviços
de Nuvem
5