MC1 - Desenvolvendo sua primeira
aplicação web na Nuvem com o
Software Livre Openshift
Prof. Me. Stenio Longo
(UESB/IFBA)
Pedro Maioli (UESB)
Week IT IFBA 2014
1
Objetivo
Nesse minicurso serão apresentados
conceitos de sistemas distribuídos e o
desenvolvimento de uma aplicação Web
na Nuvem com o OpenShift.
A Computação em Nuvem é uma
tecnologia que permite acesso remoto a
programas, arquivos e serviços por
meio da internet
OpenShift é uma plataforma como
serviço da Red Hat.
Week IT IFBA 2014
2
Sumário
Sistemas Distribuídos
– Definição
– Metas
– Tipos
Cloud Computing
–
–
–
–
Definição
Características
Vantagens e desvantagens
Modelos de serviço
Openshift
Week IT IFBA 2014
3
Sistemas Distribuídos
Um sistema distribuído é um conjunto
de computadores independentes que se
apresenta a seus usuários como um
sistema único e coerente
Week IT IFBA 2014
4
Sistemas Distribuídos
Week IT IFBA 2014
5
Metas de um SD
Acesso a recursos
Transparênicia de Distribuição
–
–
–
–
–
–
–
Transparência de Acesso
Transparência de Localização
Transparência de Migração
Transparência de Relocação
Transparência de Replicação
Transparência de Concorrência
Transparência de Falha
Week IT IFBA 2014
6
Metas de um SD
Abertura
– Especificação completa e neutra
– Interoperabilidade e portabilidade
Escalabilidade
– Tamanho
– Termos geográficos
– Termos administrativos
Técnicas de escalabilidade
– Ocultar latência de comunicação, distribuição e
replicação (cache)
Week IT IFBA 2014
7
Tipos de SD
Cluster
Redes de Sensores sem fio
Cloud Computing
Week IT IFBA 2014
8
Cluster
Week IT IFBA 2014
9
Redes de Sensores em Fio
Week IT IFBA 2014
10
Cloud Computing
Setor brasileiro de cloud computing
deve movimentar US$ 798 mi em
2014
– Fonte: g1.globo.com
Cloud computing rouba mercado de
hardware
– Fonte: olhardigital.uol.com.br
Week IT IFBA 2014
11
Cloud computing
Week IT IFBA 2014
12
Cloud computing
Week IT IFBA 2014
13
Data Center
Data Center, é o local onde são
armazenados todos os dados e
informações de uma empresa.
O Data Center é desenvolvido para
abrigar diversos Servidores, com
bancos de armazenamento de dados,
os quais processam e mantém uma
enorme quantidade de informação.
Week IT IFBA 2014
14
Data Center
A estrutura é composta por um piso
mais elevado, com espaço para
cabeamento abaixo e sala climatizada
(com ar-condicionado em temperatura
constante), para resfriar os
computadores, que deve ser
totalmente protegida contra incêndio e
qualquer outra eventualidade que
comprometa a integridade dos dados.
Week IT IFBA 2014
15
Data Center
O sistema de detecção inteligente contra
incêndio analisa e capta qualquer tipo de
fumaça, e na possibilidade de um eventual
evento deste porte, é acionado um gás inerte,
que não prejudica os equipamentos.
Todo ambiente é controlado por tecnologia
de Biometria e a famoso Porta-Eclusa, além
de monitorado remotamente 24 horas por dia.
Week IT IFBA 2014
16
Data Center
Para manter um Data Center em
funcionamento, são necessários
geradores de energia de grande
capacidade, cuja energia seja
ininterrupta, chamados de No-Breaks
ou UPS, são equipamentos
especialmente desenvolvidos e
projetados para fornecer energia em
caso de uma eventual queda.
Week IT IFBA 2014
17
Datacenter
Week IT IFBA 2014
18
TI Tradicional
Week IT IFBA 2014
19
Problema do modelo tradicional
Week IT IFBA 2014
20
Escalonamento de recursos na
nuvem
Week IT IFBA 2014
21
Virtualização
Objetivo: fornecer várias máquinas virtuais
sobre a arquitetura de máquina física
subjacente, com cada máquina virtual
executando uma instância separada com
sistema operacional
Motivação: arquiteturas de computadores
modernas têm o desempenho necessário
para suportar uma grande quantidade de
máquinas virtuais e recursos multiplexados
entre elas.
Week IT IFBA 2014
22
Virtualização
Vantagens:
–
–
–
–
Menos máquinas físicas para gerenciar
Mais fácil migrar uma máquina virtual
Ambiente de teste de aplicações
Facilidade de backups
Desvantagens
– Falha em uma máquina física pode derrubar
vários serviços de uma vez
– Se uma das VMs começar a utilizar muitos
recursos, pode afetar as outras VMs
Week IT IFBA 2014
23
Virtualização
Week IT IFBA 2014
24
Cloud Computing
Week IT IFBA 2014
25
Cloud Computing
Definição:
Computação em nuvem é um modelo para
habilitar acesso conveniente, sob
demanda, para um conjunto de recursos
computacionais configuráveis que pode
ser provisionado e liberado rapidamente
com mínimo esforço de gerenciamento ou
interação do provedor de serviço - NIST
Week IT IFBA 2014
26
História
John McCarthy propôs a ideia de
que a computação deveria ser
organizada na forma de um serviço
de utilidade pública,assim como os
serviços de água e energia
Week IT IFBA 2014
27
Características
Pagar pelo que usar
Provisionar as capacidades de TI de acordo
com as necessidades de sua organização
Elasticidade
– Recursos podem ser rapidamente provisionados
(de forma automática ou não) para atender o
aumento de demanda
Auto-atendimento
Computadores com menor capacidade
Week IT IFBA 2014
28
Características
Medição no uso dos serviços
Acesso remoto de dados
– Compartilhar informação
– Trabalho colaborativo
Week IT IFBA 2014
29
Vantagens
Economia com infraestrutura
Economia de energia
Economia de mão de obra
Acessibilidade
Week IT IFBA 2014
30
Problemas
Ataques ao data center corporativo
–
–
–
–
Maior risco à privacidade
Controle de dados por terceiros
Indisponbilidade do servidor
Impacto no négocio de várias organizações
Provedor de computação na nuvem pode não
sobreviver à concorrência
Latência da rede
– Provedor deve ser geograficamente próximo
Week IT IFBA 2014
31
Cloud Computing
Modelos de Serviço
– IaaS (host), PaaS (build),SaaS (consume)
Week IT IFBA 2014
32
Cloud Computing
Week IT IFBA 2014
33
Week IT IFBA 2014
34
SaaS
Aplicação final executando na nuvem
Aplicação mantida no servidor (thin
client)
Usuário controla apenas dados e
configurações da aplicação
Reduz os custos, dispensa a aquisição
de licenças de softwares
Exemplo: Flickr, Google Docs, Dropbox
Week IT IFBA 2014
35
PaaS
Aplicações criadas por usuários ou
adquiridas de terceiros
Aplicações usam APIs, ferramentas e
linguagem de programação suportadas pelo
provedor
PaaS fornece: sistema operacional,
linguagens de programação, ambientes de
desenvolvimento
Usuário controla aplicação, podendo
controlar aspectos de hospedagem da
mesma
Exemplo: Google Apps Engine, force.com
Week IT IFBA 2014
36
Iaas
São fornecidos recursos computacionais
fundamentais (processamento,
armazenamento, rede, etc...)
Suporte para adição de novos equipamentos
de forma simples e transparente
Interface única para administração da
infraestrutura
Exemplo: Amazon EC2/S3, Locaweb Cloud
Server, UOL Cloud Prime
Week IT IFBA 2014
37
Cloud Computing
Modelos de implantação:
– Público
– Privado
– Híbrido
– Comunitário
Week IT IFBA 2014
38
Nuvem Privada
Somente uma entidade usa a nuvem
Tipicamente dentro dos limites da
entidade
Por estar em ambiente terceirazdo e/ou
com gerenciamento terceirizado
Exemplo: Nuvem do IFBA
Week IT IFBA 2014
39
Nuvem Comunitária
Extensão da nuvem privada
Uso compartilhado por diversas
entidades, com foco nas necessidades
da comunidade
Exemplo: Nuvem Acadêmica
Week IT IFBA 2014
40
Nuvem Pública
Uso público
Uma organização é dona da
infraestrutura e vende os serviços de
nuvem
Week IT IFBA 2014
41
Nuvem Híbrida
Infraestrutura é composta de duas ou
mais nuvens interligadas por padrões
e/ou mecanismos proprietários
Week IT IFBA 2014
42
Soluções de Nuvens Abertas
SaaS
– Drupal
• CMS para criar sites
Paas
– Openshift
• Desenvolvida pela Red Hat, é uma solução PaaS
IaaS
– Eucalyptus
• Software para a construção de nuvens privadas e
híbridas
– OpenStack
• Solução paraWeek
criação
nuvens
públicas e privadas
ITdeIFBA
2014
43
Soluções de nuvens abertas
Week IT IFBA 2014
44
OpenShift: Solução em PaaS
#01: sudo criar conta
#01: sudo criar conta
#01: sudo criar conta
#02: login
#03: configurações da conta
Demonstração #1: WordPress
if internetConnection == true {
case webapp {firefox.launch()}
case rhc {terminal.launch()}
}
else {
backupSlide.launch()
}
Demonstração #1: WordPress
Demonstração #1: WordPress
Demonstração #1: WordPress
Demonstração #1: WordPress
Demonstração #1: WordPress
Demonstração #2: PHP
(com rhc)
sudo apt-get install ruby git-core #rhc é baseado em Ruby/Git para mudanças
wget http://production.cf.rubygems.org/rubygems/rubygems-2.2.2.tgz #get
tar -zxvf rubygems-2.2.2.tgz && cd rubygems-2.2.2 #unpack & change dir
ruby setup.rb #instala rubygems
gem install rhc #instala RedHatCloud, command-line processor
rhc app-create -a phptest -t php-5.3 -l [email protected] #cria domínio
rhc git-clone phptest #clona git repo
cd phptest/php/ && edit code** #Programe!
git commit -am “Meu primeiro código” #work the changes
git push #done! :¬)
Demonstração #2: PHP
(com rhc)
<html>
<head>
<title>OpenShift Hello World!</title>
</head>
<body>
<p>Olá Mundo!</p>
<?php
echo phpinfo();
?>
</body>
</html>
Demonstração #2: PHP
(com rhc)
Demonstração #3: Java!
Demonstração #3: Java!
Demonstração #3: Java!
Demonstração #3: Java!
Demonstração #3: Java!
Demonstração #3: Java!
Demonstração #3: Java!
Else?
Openshift é multilinguagem!
PHP, Python, Ruby, Node.js, Java são apenas exemplos dos cartuchos
(cartridges) já disponíveis
Você também pode criar um cartucho e/ou sugerir os próximos a serem
adicionados - contate a comunidade! - https://openshift.com/community
Moodle, Owncloud, WordPress, Kusaba, MediaWiki, Reddit, Drupal, Ghost inifinitas plataformas a serem instaladas - https://openshift.com/quickstarts
Referências
Sistemas Distribuídos Conceitos e
Projeto, Quinta edição, Editora
Bookman.
Week IT IFBA 2014
69