paas - openshift como plataforma pública
DESCRIPTION
OpenShift por baixo do capo, como funciona, quais os componentes, arquitetura e escalabilidade.TRANSCRIPT
OpenShift Origin como plataforma pública
Mateus [email protected]
@mateuscaruccio
PaaS: Desenvolvendo na nuvem
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
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?
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?
Nuvem talvez seja...
ABSTRAÇÃO
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
Foca no trabalho!
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...
OpenShift Origin é PaaS
Roda sobre (praticamente qualquer) infra-estrutura:
● EC2
● Rackspace
● Bare Metal
● OpenStack
● VMWare
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
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
OpenShift - Aplicação
OpenShift entrega aplicação, não servidor
Composta por- Gear- Cartridge
Tipos- Escalável- Não Escalável
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
OpenShift - Cartridge
Funcionalidade adicionada ao gear
Exemplos:
Apache + mod_php/mod_passengerPython (wsgi)NodeJS (npm)Java (JBoss/Tomcat)
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)
OpenShift - Quickstart
Aplicação com receita pronta: criar e usar
Ex: Wordpress (Cartridge PHP + Cartidge MySql)
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
"\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