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