desenvolvimento em nuvem

35
DESENVOLVIMENTO EM NUVEM André Lisiane Marcelo Vinissios Vitor

Upload: vitor-savicki

Post on 18-Dec-2014

143 views

Category:

Education


3 download

DESCRIPTION

Apresentação organizada para a disciplina de Engenharia de Software II, sob orientação do professor Luiz Clivatti.

TRANSCRIPT

Page 1: Desenvolvimento em Nuvem

DESENVOLVIMENTO EM NUVEM

André

Lisiane

Marcelo

Vinissios

Vitor

Page 2: Desenvolvimento em Nuvem

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 de vários usuários em um único centro.

1

Page 3: Desenvolvimento em Nuvem

BENEFÍCIOS DO DESENVOLVIMENTO NA NUVEM

Um menor consumo de energia.

Configuração e manutenção mais simples.

Atualizações 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

Page 4: Desenvolvimento em Nuvem

MODELOS DE SERVIÇOPOR 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

Page 5: Desenvolvimento em Nuvem

OS MODELOS DE SERVIÇO1

Page 6: Desenvolvimento em Nuvem

SOFTWARE COMO SERVIÇO (SAAS)

Proporciona softwares com propósitos específicos.Acessíveis 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

Page 7: Desenvolvimento em Nuvem

PLATAFORMA COMO SERVIÇO (PAAS)

Infraestrutura de alto nível de integração.O usuário não administra ou controla a infraestrutura

subjacenteFornece 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

Page 8: Desenvolvimento em Nuvem

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 sistemas operacionais,

armazenamento e aplicativos implantados. 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

Page 9: Desenvolvimento em Nuvem

PAPÉIS NA COMPUTAÇÃO EM NUVEM1

Page 10: Desenvolvimento em Nuvem

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

Page 11: Desenvolvimento em Nuvem

PRIVADO

A infraestrutura de nuvem é utilizada exclusivamente para uma organização.

São empregados políticas de acesso aos serviços

1

Page 12: Desenvolvimento em Nuvem

PÚBLICO

A infraestrutura de nuvens é disponibilizada para o público em geral.

Não podem ser aplicadas restrições de acesso.

1

Page 13: Desenvolvimento em Nuvem

COMUNIDADE

Compartilhamento por diversas empresas de uma nuvem.

Este tipo modelo de implantação pode existir localmente ou remotamente e pode ser administrado por alguma empresa da comunidade ou por terceiros.

1

Page 14: Desenvolvimento em Nuvem

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

Page 15: Desenvolvimento em Nuvem

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

Page 16: Desenvolvimento em Nuvem

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

Page 17: Desenvolvimento em Nuvem

ARQUITETURA DA COMPUTAÇÃO EM NUVEM2

Page 18: Desenvolvimento em Nuvem

TECNOLOGIAS DE COMPUTAÇÃO EM NUVEME SEUS MODELOS DE PROGRAMAÇÃO

A computação em nuvem envolve uma grande quantidade de conceitos e tecnologias.

Empresas 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

Page 19: Desenvolvimento em Nuvem

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

Page 20: Desenvolvimento em Nuvem

3

Page 21: Desenvolvimento em Nuvem

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

Page 22: Desenvolvimento em Nuvem

3

Page 23: Desenvolvimento em Nuvem

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

Page 24: Desenvolvimento em Nuvem

3

Page 25: Desenvolvimento em Nuvem

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

Page 26: Desenvolvimento em Nuvem

4

Page 27: Desenvolvimento em Nuvem

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.

4

Page 28: Desenvolvimento em Nuvem

4

Page 29: Desenvolvimento em Nuvem

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

Page 30: Desenvolvimento em Nuvem

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.

4

Page 31: Desenvolvimento em Nuvem

O serviço de armazenamento do Windows Azure pode ser acessado por aplicativos do Windows Azure ou por aplicativos executados em outros lugares.

4

Page 32: Desenvolvimento em Nuvem

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

Page 33: Desenvolvimento em Nuvem

Arquitetura do CloudAV

5

Page 34: Desenvolvimento em Nuvem

DESAFIOS DO DESENVOLVIMENTO EM NUVEM

SegurançaGerenciamento de DadosAutonomiaDisponibilidade de ServiçosEscalabilidade e DesempenhoDescrição, Descoberta e Composição de ServiçosLicenciamento de SoftwareIntegração de ServiçosAvaliação de Nuvem

5

Page 35: Desenvolvimento em Nuvem

REFERENCIAS

http://msdn.microsoft.com/pt-br/ff380142.aspx

http://www.microsoft.com/pt-br/cloud/developer/

http://www.intel.com/content/www/br/pt/cloud-computing/cloud-builders-provide-proven-advice.html?cid=sem155p5323&gclid=CIzMo93Xp7cCFVES7AodpxIAUw

http://nuvemscript.org/

http://www.windowsazure.com/pt-br/home/features/what-is-windows-azure/

https://appengine.google.com/

http://www.manjrasoft.com/aneka_architecture.html

http://www.eucalyptus.com/

http://aws.amazon.com/pt/ec2/