MC1 - Desenvolvendo sua primeira aplicação web na Nuvem com o Software Livre Openshift. Prof. Me. Stenio Longo (UESB/IFBA) Pedro Maioli (UESB) - PDF
Download "MC1 - Desenvolvendo sua primeira aplicação web na Nuvem com o Software Livre Openshift. Prof. Me. Stenio Longo (UESB/IFBA) Pedro Maioli (UESB)"
Neuza Penha Minho
1 MC1 - Desenvolvendo sua primeira aplicação web na Nuvem com o Software Livre Openshift Prof. Me. Stenio Longo (UESB/IFBA) Pedro Maioli (UESB) 1
2 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. 2
3 Sumário Sistemas Distribuídos Definição Metas Tipos Cloud Computing Definição Características Vantagens e desvantagens Modelos de serviço Openshift 3
4 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 4
5 Sistemas Distribuídos 5
6 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 6
7 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) 7
8 Tipos de SD Cluster Redes de Sensores sem fio Cloud Computing 8
10 Redes de Sensores em Fio 10
11 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 11
14 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. 14
15 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. 15
16 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. 16
17 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. 17
18 Datacenter 18
19 TI Tradicional 19
20 Problema do modelo tradicional 20
21 Escalonamento de recursos na nuvem 21
22 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. 22
23 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 23
24 Virtualização 24
25 Cloud Computing 25
26 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 26
27 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 27
28 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 28
29 Características Medição no uso dos serviços Acesso remoto de dados Compartilhar informação Trabalho colaborativo 29
30 Vantagens Economia com infraestrutura Economia de energia Economia de mão de obra Acessibilidade 30
31 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 31
32 Cloud Computing Modelos de Serviço IaaS (host), PaaS (build),saas (consume) 32
33 Cloud Computing 33
35 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 35
36 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 36
37 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 37
38 Cloud Computing Modelos de implantação: Público Privado Híbrido Comunitário 38
39 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 39
40 Nuvem Comunitária Extensão da nuvem privada Uso compartilhado por diversas entidades, com foco nas necessidades da comunidade Exemplo: Nuvem Acadêmica 40
41 Nuvem Pública Uso público Uma organização é dona da infraestrutura e vende os serviços de nuvem 41
42 Nuvem Híbrida Infraestrutura é composta de duas ou mais nuvens interligadas por padrões e/ou mecanismos proprietários 42
43 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
44 Soluções de nuvens abertas 44
45 OpenShift: Solução em PaaS
46 #01: sudo criar conta
47 #01: sudo criar conta
48 #01: sudo criar conta
49 #02: login
50 #03: configurações da conta
51 Demonstração #1: WordPress if internetconnection == true { case webapp {firefox.launch()} case rhc {terminal.launch()} } else { backupslide.launch() }
52 Demonstração #1: WordPress
53 Demonstração #1: WordPress
54 Demonstração #1: WordPress
55 Demonstração #1: WordPress
56 Demonstração #1: WordPress
57 Demonstração #2: PHP (com rhc) sudo apt-get install ruby git-core #rhc é baseado em Ruby/Git para mudanças wget #get tar -zxvf rubygems tgz && cd rubygems #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 #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! : )
59 Demonstração #2: PHP (com rhc) <html> <head> <title>openshift Hello World!</title> </head> <body> <p>olá Mundo!</p> <?php echo phpinfo();?> </body> </html>
60 Demonstração #2: PHP (com rhc)
61 Demonstração #3: Java!
62 Demonstração #3: Java!
63 Demonstração #3: Java!
64 Demonstração #3: Java!
65 Demonstração #3: Java!
66 Demonstração #3: Java!
67 Demonstração #3: Java!
68 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! - Moodle, Owncloud, WordPress, Kusaba, MediaWiki, Reddit, Drupal, Ghost inifinitas plataformas a serem instaladas -