Ciclo 2 - Relatório final » History » Version 17

Beraldo Leal, 27 Apr 2012 15:33

1 1 Beraldo Leal
h1. Ciclo 2 - Relatório final
2 2 Beraldo Leal
3 2 Beraldo Leal
h2. Resumo
4 2 Beraldo Leal
5 3 Beraldo Leal
O conceito de computação em nuvem (em inglês, cloud computing) refere-se à utilização da memória, capacidade de armazenamento e poder computacional dos computadores interligados por meio da Internet, seguindo o princípio da computação em grade. Com a subutilização destes recursos computacionais em equipamentos modernos, surgiu a necessidade de compartilhar recursos de forma isolada, tornando assim uma máquina física em várias máquinas virtuais, cada uma servindo para um determinado propósito e com seus recursos bem definidos, tentando obter o máximo de aproveitamento dos recursos computacionais.
6 2 Beraldo Leal
7 3 Beraldo Leal
Prover uma infraestrutura de máquinas virtuais para clientes de forma escalável é hoje uma necessidade mundial e um desafio tecnológico. Este relatório tem por objetivo exibir as características e requisitos necessários para instalar e configurar uma infraestrutura de Cloud para prover máquinas virtuais aos usuários do projeto EduCloud.
8 4 Beraldo Leal
9 4 Beraldo Leal
h2. Introdução
10 4 Beraldo Leal
11 9 Beraldo Leal
O projeto EduCloud é uma iniciativa da Universidade Estadual Paulista - UNESP, em parceria com a secretaria de educação do estado de São Paulo, Intel e ACCEPT. Esta iniciativa visa fornecer uma infraestrutura de computação em nuvem para hospedar sistemas de apoio ao ensino para as Universidades e Escolas públicas do Brasil.
12 5 Beraldo Leal
13 8 Beraldo Leal
A maior vantagem da computação em nuvem é a possibilidade de utilizar softwares sem que estes estejam instalados no computador. Mas há outras vantagens[1]:
14 5 Beraldo Leal
15 5 Beraldo Leal
* na maioria das vezes o usuário não precisa se preocupar com o sistema operacional e hardware que está usando em seu computador pessoal, podendo acessar seus dados na "nuvem computacional" independentemente disso;
16 5 Beraldo Leal
* as atualizações dos softwares são feitas de forma automática, sem necessidade de intervenção do usuário;
17 5 Beraldo Leal
* o trabalho corporativo e o compartilhamento de arquivos se tornam mais fáceis, uma vez que todas as informações se encontram no mesmo "lugar", ou seja, na "nuvem computacional";
18 5 Beraldo Leal
* os softwares e os dados podem ser acessados em qualquer lugar, bastando que haja acesso à Internet, não estando mais restritos ao ambiente local de computação, nem dependendo da sincronização de mídias removíveis.
19 5 Beraldo Leal
* o usuário tem um melhor controle de gastos ao usar aplicativos, pois a maioria dos sistemas de computação em nuvem fornece aplicações gratuitamente e, quando não gratuitas, são pagas somente pelo tempo de utilização dos recursos. Não é necessário pagar por uma licença integral de uso de software;
20 5 Beraldo Leal
* diminui a necessidade de manutenção da infraestrutura física de redes locais cliente/servidor, bem como da instalação dos softwares nos computadores corporativos, pois esta fica a cargo do provedor do software em nuvem, bastando que os computadores clientes tenham acesso à Internet;
21 1 Beraldo Leal
* a infraestrutura necessária para uma solução de cloud computing é bem mais enxuta do que uma solução tradicional de hosting ou collocation, consumindo menos energia, refrigeração e espaço físico e consequentemente contribuindo para preservação e uso racional dos recursos naturais.
22 1 Beraldo Leal
23 8 Beraldo Leal
Para implementar uma infraestrutura de nuvem, o Núcleo de Computação Ciêntifica - NCC, da UNESP pesquisou as principais ferramentas livres[2] do mercado para que juntas, executem esta tarefa. 
24 8 Beraldo Leal
25 8 Beraldo Leal
Para prover uma infraestrutura de nuvem, precisamos atender as seguintes necessidades:
26 8 Beraldo Leal
27 8 Beraldo Leal
# Disponibilizar máquinas virtuais de acordo com a demanda de forma automática e rápida, com diferentes configurações de memória, disco e cpu;
28 8 Beraldo Leal
# Disponibilizar para estas máquinas virtuais, unidades de armazenamento de dados;
29 8 Beraldo Leal
# Ter um controle de acesso de usuários e grupos que podem utilizar estes recursos, bem como, uma "quota" de recursos por usuário/grupo;
30 8 Beraldo Leal
# Armezar as máquinas virtuais e os dados de forma descentralizada, permitindo assim escalar facilmente;
31 1 Beraldo Leal
32 9 Beraldo Leal
Alguns softwares existem para suprir estas necessidades. No capítulo 1 falaremos sobre o projeto OpenStack[3], responsável por disponibilizar uma infraestrutura de máquinas virtuais e unidades de armazenamento para as máquinas virtuais. No capítulo 2 falaremos sobre o projeto Hadoop[4], responsável por *[preencher aqui]*. No capítulo 5, falaremos sobre os balanceadores de conexões e de máquinas virtuais, fundamental para balancear a carga da nuvem entre os nós "workers", no capítulo 6 falaremos sobre o OCCI[5], uma interface de comunicação entre os serviços de cloud.
33 1 Beraldo Leal
34 10 Beraldo Leal
h2. OpenStack
35 9 Beraldo Leal
36 10 Beraldo Leal
O OpenStack é uma coleção de projetos "open source" que servem para executar uma infraestrutura de computação em nuvem e armazenamento distribuído. A empresa Rackspace[6] e a NASA[7] são os principais contribuidores do conjunto de projetos. Hoje o consórsio possui mais de 100 membros, dentre as principais temos: rackspace, AT&T, NASA, DreamHost, Safew Labs, Citrix, Dell, AMD, Intel, Canonical, Yahoo e HP. O projeto mantém uma página[8] com uma lista dos principais contribuidores do projeto.
37 10 Beraldo Leal
38 10 Beraldo Leal
No OpenStack, existem 3 principais componentes:
39 10 Beraldo Leal
40 10 Beraldo Leal
* Compute Infrastructure (Nova)
41 10 Beraldo Leal
42 10 Beraldo Leal
Nova é um controlador de poder computacional para o OpenStack. Todas as atividades necessárias durante o ciclo de vida de uma instância (uma máquina virtual sendo executada) com o OpenStack são gerenciadas pelo Nova. Isto faz do Nova uma plataforma de gerenciamento que gerencia recursos computacionais, rede, autorização e escabilidade. O Nova não provê nenhuma funcionalidade de virtualização por si só; ele usa a interface libvirt[9] para interagir com os hypervisors[10] suportados.
43 10 Beraldo Leal
44 10 Beraldo Leal
* Storage Infrastructure (Swift)
45 10 Beraldo Leal
46 14 Beraldo Leal
O Swift provê um armazenamento para os objetos (dados) de forma distribuída. Ele é análogo ao serviço da Amazon: Simple Storage Service (S3)[11]. O Swift é capaz de armazenar bilhões de objetos distribuindos entre os nós. Ele possui um mecanismo de redundância e failover e é capaz de armazenar e transmitir os dados. É extremamente escalável em termos de tamanho (petabytes) e capacidade (número de objetos).
47 14 Beraldo Leal
48 10 Beraldo Leal
* Imaging Service (Glance)
49 10 Beraldo Leal
50 15 Beraldo Leal
O Glance é um sistema de busca e recuperação de imagens de máquinas virtuais. Ele é responsável por gerenciar as imagens das máquinas virtuais, mas armazena elas no sistema de arquivos local ou via o OpenStack Object Store - Swift.
51 14 Beraldo Leal
52 11 Beraldo Leal
Outros componentes, como um front end web (Horizon) e um serviço de autenticação (keystone), também fazem parte do projeto. O OpenStack está disponível no site do projeto[10] e está dispobilizado sobre a licença Apache[11].
53 11 Beraldo Leal
54 12 Beraldo Leal
O OpenStack atende as necessidades do projeto EduCloud por se tratar de um conjunto de ferramentas que permitem montar uma infra estrutura de cloud utilizando ferramentas livres. Cada subprojeto do OpenStack tem suas próprias caracterias, mas de modo geral as principais vantagens do openstack são:
55 12 Beraldo Leal
56 13 Beraldo Leal
* Comunidade ativa;
57 13 Beraldo Leal
* Licenca Livre;
58 13 Beraldo Leal
* API com suporte a REST nativo;
59 13 Beraldo Leal
* Projeto com apoio de grande empresas;
60 13 Beraldo Leal
* API com "rate limite";
61 13 Beraldo Leal
* VNC proxy via web browser;
62 12 Beraldo Leal
63 12 Beraldo Leal
As principais desvantagens são:
64 12 Beraldo Leal
65 13 Beraldo Leal
* Documentação dispersa;
66 13 Beraldo Leal
* Muitos subprojetos;
67 13 Beraldo Leal
* Difícil de implementar;
68 12 Beraldo Leal
69 16 Beraldo Leal
h3. Tecnologias alternativas
70 16 Beraldo Leal
71 16 Beraldo Leal
Várias tecnologias podem ser utilizadas para provêr uma infraestrutura de máquinas virtuais. Algumas delas na forma de solução livre, podendo ser instalada em infraestrutura própria, e outras na forma de serviço web, sendo executada na infraestrutura da empresa que a provê.
72 16 Beraldo Leal
73 16 Beraldo Leal
Entre as tecnologias livres mais conhecidas, temos:
74 16 Beraldo Leal
75 17 Beraldo Leal
# abiquo (Sua versão community);
76 17 Beraldo Leal
# nimbus;
77 17 Beraldo Leal
# openstack;
78 17 Beraldo Leal
# opennebula;
79 17 Beraldo Leal
# eucalyptus;
80 16 Beraldo Leal
81 16 Beraldo Leal
Entre as tecnologias funcionando como serviço web, temos:
82 16 Beraldo Leal
83 17 Beraldo Leal
# Amazon Web Service;
84 17 Beraldo Leal
# Linode;
85 17 Beraldo Leal
# Rackspace;
86 17 Beraldo Leal
# Gogrid;
87 16 Beraldo Leal
88 16 Beraldo Leal
Estas são apenas as principais alternativas que atendem os requisitos do projeto, levando em consideração popularidade, quantidade de downloads/mês e nível de maturidade do projeto.
89 16 Beraldo Leal
90 6 Beraldo Leal
h2. Referências
91 6 Beraldo Leal
92 6 Beraldo Leal
# "O que é computação em nuvem?":http://www.infowester.com/cloudcomputing.php
93 1 Beraldo Leal
# "Definição de software livre":http://www.gnu.org/philosophy/free-sw.html
94 9 Beraldo Leal
# http://www.gnu.org/philosophy/free-sw.html
95 9 Beraldo Leal
# "Projeto Hadoop":http://hadoop.apache.org/
96 9 Beraldo Leal
# "Open Cloud Compute Interface - OCCI":http://occi-wg.org/
97 10 Beraldo Leal
# "Rackspace":http://rackspace.com/
98 10 Beraldo Leal
# "Nasa":http://www.nasa.gov/
99 10 Beraldo Leal
# "OpenStack - Empresas Participantes":http://www.openstack.org/community/companies/
100 10 Beraldo Leal
# "The virtualization API":http://libvirt.org/
101 10 Beraldo Leal
# "Hypervisor":http://en.wikipedia.org/wiki/Hypervisor
102 11 Beraldo Leal
# "Projeto OpenStack":http://openstack.org/
103 11 Beraldo Leal
# "Apache License":http://www.apache.org/licenses/LICENSE-2.0
104 14 Beraldo Leal
# "Amazon Simple Storage Service":http://aws.amazon.com/s3/