paas - openshift como plataforma pública

19
OpenShift Origin como plataforma pública Mateus Caruccio [email protected] @mateuscaruccio PaaS: Desenvolvendo na nuvem

Upload: getup-cloud

Post on 18-Dec-2014

550 views

Category:

Technology


1 download

DESCRIPTION

OpenShift por baixo do capo, como funciona, quais os componentes, arquitetura e escalabilidade.

TRANSCRIPT

Page 1: PaaS - OpenShift como plataforma pública

OpenShift Origin como plataforma pública

Mateus [email protected]

@mateuscaruccio

PaaS: Desenvolvendo na nuvem

Page 2: PaaS - OpenShift como plataforma pública

Quem souMateus Caruccio, Master of Puppets @ Getup Cloud (.com)

Linux User #183552

Programador backend com passagens por- Terra Networks- GPARC (PUC-RS)- T&T Engenheiros Associados (HP Brasil)

Pythonista por opção

DevOps desde 11/2012

Page 3: PaaS - OpenShift como plataforma pública

Nuvem pra todo lado

Termo um tanto vago - mais falado do que o rei do camarote

Meu pai adora "mandar essas fotos pra nuvem"

Eu já fazia FTP em 1997!

Afinal, o que é nuvem?

Page 4: PaaS - OpenShift como plataforma pública

Nuvem é...

...ninguém sabe ao certo.

Usar o gmail/facebook/twitter/whatever é nuvem?

Subir arquivo no dropbox?

Contratar uma VPS (locaweb, kinghost, etc)?

Comprar e montar sua infra na amazom?

Page 5: PaaS - OpenShift como plataforma pública

Nuvem talvez seja...

ABSTRAÇÃO

Page 6: PaaS - OpenShift como plataforma pública

Menos é mais

Se eu uso webmail, não quero saber como o software funcionaEu quero enviar e receber emails!

Se eu ofereço webmail, não quero configurar firewall/balanceador/SO/etcEu quero programar meu software!

Se eu provisiono infra-estrutura, não quero manter a usina elétrica

Page 7: PaaS - OpenShift como plataforma pública

Foca no trabalho!

Page 8: PaaS - OpenShift como plataforma pública

Known your *aaS

SaaS - Software-as-a-Service - Produto final, usuário

PaaS - Platform-as-a-Service - Ambiente para o dev = fácil, ágil, flexível

IaaS - Infrastructure-as-a-Service - VM, SO, rede, roteador, firewal...

Page 9: PaaS - OpenShift como plataforma pública

OpenShift Origin é PaaS

Roda sobre (praticamente qualquer) infra-estrutura:

● EC2

● Rackspace

● Bare Metal

● OpenStack

● VMWare

Page 10: PaaS - OpenShift como plataforma pública

OpenShift Origin - Projeto

● 100% Open Source: github.com/openshift/origin-server

● No lock-in - portabilidade entre diferentes implementações

● Projeto maduro - 1˚ commit em 20/12/2010 - 14634 commits (29/11/2013)

● 8a organização mais ativa no github* (06/2013) - 72 contribs

● Agnóstico a linguagens e frameworks

● Mantido principalmente pela Red Hat

* twitter.com/gnurag/status/348777656004800512

Page 11: PaaS - OpenShift como plataforma pública

OpenShift Origin - Repositório e Releases

Branch master - commits frenéticos*, desenvolvimento de features

Branch openshift-origin-release-X - versão estável e ciclo definido (~3 meses)

* github.com/openshift/origin-server/graphs/commit-activity

Page 12: PaaS - OpenShift como plataforma pública

OpenShift - Aplicação

OpenShift entrega aplicação, não servidor

Composta por- Gear- Cartridge

Tipos- Escalável- Não Escalável

Page 13: PaaS - OpenShift como plataforma pública

OpenShift - Gear

Aplicação é composta por 1 ou + gears

Unidade básica computational: RAM + CPU + Disco

Isolamento via labels SELinux

Provisionamento de recursos via cgroups

Cada gear é um usuário Linux

Page 14: PaaS - OpenShift como plataforma pública

OpenShift - Cartridge

Funcionalidade adicionada ao gear

Exemplos:

Apache + mod_php/mod_passengerPython (wsgi)NodeJS (npm)Java (JBoss/Tomcat)

Page 15: PaaS - OpenShift como plataforma pública

OpenShift - Cartridge

Fácil de escrever - conjunto de scripts + software opcional

Repositório público (github está cheio de exemplos)

Formato:metadata/manifest.yml Spec do cartridge (nome, versão, url, vendor, etc)bin/ Scripts de Instalação, configuração e atualizaçãohooks/ Scripts de troca de mensagem entre cartridges (env vars)env/ Env vars exportadas para o gearversions/ Arquivos específicos do cartridge (binários, configs, etc)template/ Repo git inicial do da aplicação (cartridges de linguagens)

Page 16: PaaS - OpenShift como plataforma pública

OpenShift - Quickstart

Aplicação com receita pronta: criar e usar

Ex: Wordpress (Cartridge PHP + Cartidge MySql)

Page 17: PaaS - OpenShift como plataforma pública

OpenShift - ArquiteturaBroker

- Provisiona apps (gear, DNS, storage, …)- Autenticação- Bilhetagem- Interface REST para clientes (RHC, Web Console, curl, etc)

MongoDB- Autenticação- Info de apps (nome, qtd gears, etc)- Usage stats

Node hospeda os gears

Page 18: PaaS - OpenShift como plataforma pública
Page 19: PaaS - OpenShift como plataforma pública

"\x4f\x62\x72\x69\x67\x61\x64\x6f\x00";

Mateus Caruccio - Master of [email protected]@mateuscaruccio

http://www.slideshare.net/getupcloud

Getup Cloudhttp://getupcloud.com@getupcloud