OCEL001 Comércio Eletrônico Módulo 9_3: OpenShift Prof. Charles Christian Miers e-mail: charles.miers@udesc.br
OpenShift Solução livre de PaaS da RedHat Aquisição da Makara em 2010 Principais concorrentes: Heroku (2009) VMWare Cloud Foundry (2009) Google App Engine (2008) 2
OpenShift & RedHat Quadrante mágico para plataforma de aplicações Capacidade de execução Desafiantes Fonte: Gartner (Janeiro/2014) Concorrência Completude da visão Líderes Visionários 3
OpenShift: Motivação para uso Robustez: O OpenShift foi desenvolvido sobre as renomadas tecnologias da Red Hat Liberdade: Com o OpenShift é possível trabalhar da maneira que desejar: Escolha da Interface: Console Web, linha de comando (CLI) ou IDE Escolha do Middleware: Java (EE6), Ruby, Node.js, PHP, Python, etc. Escolha do modelo de implantação da nuvem: Nuvem pública, privada ou híbrida Escolha de Elasticidade: escalonamento da aplicação/serviço de forma automatizada e sob demanda Código aberto: Pilha de software de código aberto do OpenShift garante a portabilidade de aplicativos e evita o Vendor Lock-In 4
OpenShift: Arcabouço Camada de Aplicativos / SaaS Ferramentas de desenvolvimento Pacotes de aplicativos Arcabouços / Frameworks Linguagens Cartridges personalizados Middleware Hosting Armazenamento & BackEnd Sistema Operacional Camada de Infraestrutura / IaaS 5
OpenShift: Arcabouço (Cont.) 6
OpenShift: Versões Projeto Open Source Serviço de nuvem pública origin Serviço de nuvem privada 7
OpenShift: Versões Sofware de nuvem privada Serviço de nuvem pública Desenvolvedor controla APPLICAÇÃO PLATFORMA DA APLICAÇÃO (JBOSS, PHP, RUBY, ETC) SISTEMA OPERACIONAL () Operado pela Red Hat Desenvolvedor controla OpenShift Automatiza as operações de controle da TI VIRTUALIZAÇÃO (RHEV) HARDWARE (x86) ARMAZENAMENTO (RHS) Provedores de TI 8
OpenShift: Versão Open Source GitHub: https://github.com/openshift https://openshift.redhat.com/community/open-source Origin-server OSE: enterprise-server Community-cartridges: origin-community-cartridges Tutorias, exemplos, etc. Licença Apache 2.0 Disponível: Códido fonte, RPMs ISO, LiveCD 9
OpenShift: Termos Broker: serviço de corretagem para gerenciamento e orquestração dos nós Nó: Host de computação que contém Gears Gear: Alocação de quantidade fixa de memória, processamento (computação) e armazenamento Cartridge: Uma tecnologia e/ou arcabouço (framework) para construir aplicações Exemplos: PHP, Perl, Java/JEE, Ruby, Python, MySQL, etc. Aplicação: Instância de um Cartridge Ferramentas do cliente: CLI, Eclipse, console web para criar e gerenciar aplicações 10
OpenShift: Termos (Cont.) O Broker é responsável pelo estado, DNS e autenticação 11
OpenShift: Base OpenShift pode ser instalado em Bare Metal ou sobre soluções populares de IaaS: AWS EC2 RackSpace OpenStack RHEV VMWare 12
OpenShift: Funcionamento OpenShify é um PaaS sob uma infraestrutura AWS / CloudForms / OpenStack (IaaS) / RHEV (Virt) / Bare Metal 13
OpenShift: Funcionamento (Cont.) A base do OpenShift é o Red Hat Linux Enterprise OpenShift é construído sob instâncias do Red Hat Enterprise Linux () AWS / CloudForms / OpenStack (IaaS) / RHEV (Virt) / Bare Metal 14
OpenShift: Funcionamento (Cont.) O serviço de corretagem (Broker) gerencia os múltiplos nós OpenShift -Nós são os locais nos quais as aplicações do usuário residem -Brokers mantêm o OpenShift executando Brokers Nó Nó Nó AWS / CloudForms / OpenStack (IaaS) / RHEV (Virt) / Bare Metal 15
OpenShift: Funcionamento (Cont.) A abordagem única do SELinux disponibiliza segurança e suporte multiusuário (multi-tenancy) Políticas do SELinux subdividem de maneira segura as instâncias dos nós Broker Nó Nó Nó AWS / CloudForms / OpenStack (IaaS) / RHEV (Virt) / Bare Metal 16
OpenShift: Funcionamento (Cont.) As aplicações de usuário do OpenShift são executadas em Gears OpenShift As Gears OpenShift representam contêineres seguros no Broker Nó Nó Nó AWS / CloudForms / OpenStack (IaaS) / RHEV (Virt) / Bare Metal 17
OpenShift: Funcionamento (Cont.) Web Console Eclipse IDE Cmd Line Fluxo do desenvolvedor OpenShift Gear Broker Nó Desenvolvedor cria uma nova aplicação OpenShift criar uma Gear Nó Nó AWS / CloudForms / OpenStack (IaaS) / RHEV (Virt) / Bare Metal 18
OpenShift: Funcionamento (Cont.) Web Console Eclipse IDE Cmd Line O OpenShift automatiza a configuração das Gears através de Cartridges JBoss Broker Nó MySQL Cartridges são como o OpenShift instala linguagens & Middleware Nó Nó AWS / CloudForms / OpenStack (IaaS) / RHEV (Virt) / Bare Metal 19
OpenShift: Funcionamento (Cont.) O sistema de Cartridges do OpenShift possibilita o usuário a criar os seus próprios Cartridges Java PHP Python Web Console Eclipse IDE Cmd Line MySQL Postgres Personalizado Etc. Ruby Desenvolvedores podem adicionar, através de Cartridges personalizados, Cartridges padrão as suas versões personalizadas de do OpenShift linguagens, armazenamento de dados ou middleware Etc. AWS / CloudForms / OpenStack (IaaS) / RHEV (Virt) / Bare Metal 20
OpenShift: Funcionamento (Cont.) Codificar e enviar (upload) Protocolo Git / SSH Código Git Repo MySQL JBoss Broker Nó Enviar Desenvolvedor envia o código do aplicativo através do sistema de gerenciamento de código fonte Git Nó Nó AWS / CloudForms / OpenStack (IaaS) / RHEV (Virt) / Bare Metal 21
OpenShift: Funcionamento (Cont.) Automatiza o desenvolvimento, teste e publicação do serviço/ aplicação Maven (Builds) Código Jenkins Git Repo (CI) Broker JBoss Nó Apache (HTTP) MySQL Nó Nó AWS / CloudForms / OpenStack (IaaS) / RHEV (Virt) / Bare Metal 22
OpenShift: Funcionamento (Cont.) Automatiza o escalonamento do serviço/ aplicação HA-Proxy Cod e Cod Código Java e Java MySQL Java Broker Nó Nó Nó AWS / CloudForms / OpenStack (IaaS) / RHEV (Virt) / Bare Metal 23
Interação do desenvolvedor com o OpenShift Integração com IDE de desenvolvimento Console via navegador web Ferramentas CLI APIs REST 24
Ferramentas CLI (OpenShift RHC) 1) Criar uma App rhc app create -a javasample -t jbossas-7 2) Adicionar suporte MongoDB rhc app cartridge add -a javasample c mongodb-2.0 3) Adicionar um arquivo EAR (Enterprise ARchive) ao seu diretório implementações cd javasample cp /path/to/ear/earfilename.ear./deployments 4) Adicionar o arquivo EAR no Git git add./deployments/earfilename.ear 5) Enviar o seu código git push 6) Fim 25
Console via navegador web 26
Console via navegador web (Cont.) Fluxo HTTP / HTTPS 27
Integração com IDE de desenvolvimento: JBoss Dev Studio IDE 28
Comunicação através de API's REST A comunicação de clientes externos pode ocorrer por API REST O Broker se comunica através do serviço de mensagens para nós 29
OpenShift: Arquitetura 30
Cenários Práticos para Desenvolvimento: Múltiplos ambientes, um serviço de PaaS Nós Nós Desenvolvedor G it G it Dev DISTRICT QA DISTRICT Prod DISTRICT G it Brokers Nós QA - Quality Assurance G it Gerência de lançamento / versões 31
Desenvolvedor Nós Nós Nós Dev QA Prod G it G it G it Cenários Práticos para Desenvolvimento: Múltiplos ambientes, vários PaaS QA - Quality Assurance G it Gerência de lançamento / versões 32
Testando o OpenShift: Criando uma conta https://openshift.redhat.com/app/account/new 33
Testando o OpenShift: Login 34
Testando o OpenShift: Criando uma aplicação 35
36
37
38
39
40
41
42
43
Serviço criado já disponível na Internet 44
45
46
47
Leitura recomendada Código fonte, LiveCD e VM's: http://openshift.github.io/ Documentação oficial: Https://www.openshift.com https://www.openshift.com/developers/documentation https://openshift.redhat.com/community/blogs/ REESE, G. Cloud Application Architectures: Building Applications and Infrastructure in the Cloud (Theory in Practice. 1º ed. O Reilly Media, 2009. 48
49