OCEL001 – Comércio Eletrônico
Módulo 9_3: OpenShift
Prof. Charles Christian Miers
e-mail: [email protected]
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
(RHEL)
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 (RHEL)
RHEL
RHEL
RHEL
RHEL
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
RHEL
Brokers
RHEL
Nó
RHEL
RHEL
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
RHEL
Broker
Nó
RHEL
RHEL
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 RHEL
RHEL
Broker
Nó
RHEL
RHEL
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
RHEL
Broker
Nó
Desenvolvedor cria uma
nova aplicação 
OpenShift criar uma Gear
RHEL
RHEL
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
RHEL
Broker
Nó
MySQL
Cartridges são como o
OpenShift instala
linguagens & Middleware
RHEL
RHEL
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
RHEL
Broker
Nó
Enviar
Desenvolvedor envia
o código do aplicativo
através do sistema de
gerenciamento de
código fonte Git
RHEL
RHEL
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)
RHEL
Broker
JBoss
Nó
Apache
(HTTP)
MySQL
RHEL
RHEL
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
RHEL
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
RHEL
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
Download

OpenShift