service deployer fisl 2013

37
CHOReOS: CHOReOS: Automatizando a implantação de Automatizando a implantação de web services na nuvem web services na nuvem Nelson Lago Leonardo Alexandre Ferreira Leite Carlos Eduardo Moreira dos Santos CCSL IME/USP FISL – Julho/2012

Upload: choreos

Post on 19-Jun-2015

228 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Service deployer FISL 2013

CHOReOS:CHOReOS:Automatizando a implantação de Automatizando a implantação de

web services na nuvemweb services na nuvem

Nelson LagoLeonardo Alexandre Ferreira Leite

Carlos Eduardo Moreira dos Santos

CCSL IME/USP

FISL – Julho/2012

Page 2: Service deployer FISL 2013

AgendaAgenda

• Web services

• Composições de serviços em larga-escala

• O projeto CHOReOS

• A nuvem

• O middleware

• O Chef

• CHOReOS + Chef

• Dificuldades

Page 3: Service deployer FISL 2013

Web servicesWeb services

Padrão de troca de mensagens (xml)

entre sistemas através da Internet (http)

Page 4: Service deployer FISL 2013

Web servicesWeb services

Padrão de troca de mensagens (xml)

entre sistemas através da Internet (http)

• Aplicações:

• Integração de sistemas heterogêneos

• Acesso a dados abertos• Automação de fluxos de negócio

Page 5: Service deployer FISL 2013

Web servicesWeb services

Padrão de troca de mensagens (xml)

entre sistemas através da Internet (http)

• Aplicações:

• Integração de sistemas heterogêneos

• Acesso a dados abertos• Automação de fluxos de negócio

Page 6: Service deployer FISL 2013

AgendaAgenda

• Web services

• Composições de serviços em larga-escala

• O projeto CHOReOS

• A nuvem

• O middleware

• O Chef

• CHOReOS + Chef

• Dificuldades

Page 7: Service deployer FISL 2013

Computação emComputação emultra-larga escalaultra-larga escala

• Centenas de milhões de usuários

• Dispositivos móveis• Computação ubíqua

• “Internet of things”- Dispositivos “inteligentes” (geladeiras etc.)

• Dezenas de milhares de serviços

• Incluindo a “internet of things”

• Mash-ups “ad-hoc”

Page 8: Service deployer FISL 2013

Composição de serviçosComposição de serviços

Page 9: Service deployer FISL 2013

AgendaAgenda

• Web services

• Composições de serviços em larga-escala

• O projeto CHOReOS

• A nuvem

• O middleware

• O Chef

• CHOReOS + Chef

• Dificuldades

Page 10: Service deployer FISL 2013

O projeto CHOReOSO projeto CHOReOS

• Financiado pela Comissão Europeia

• Parceiros acadêmicos e industriais

• Resultados científicos através da pesquisa

• Possibilidade de novos produtos através da inovação tecnológica

• Parceiros em vários países

• Brasil, França, Grécia, Itália...

• Um dos componentes é o middleware para viabilizar a criação e execução de composições de serviços em larga-escala

• A USP é um dos principais parceiros envolvidos com essa tarefa

Page 11: Service deployer FISL 2013

O projeto CHOReOSO projeto CHOReOS

• Orquestração

• Coreografia

Page 12: Service deployer FISL 2013

AgendaAgenda

• Web services

• Composições de serviços em larga-escala

• O projeto CHOReOS

• A nuvem

• O middleware

• O Chef

• CHOReOS + Chef

• Dificuldades

Page 13: Service deployer FISL 2013

A nuvemA nuvem

• Compartilhamento de recursos

• Pagamento por consumo

• Virtualização

• Provisionamento dinâmico

Page 14: Service deployer FISL 2013

AWS / OpenStack (IaaS)AWS / OpenStack (IaaS)

• Gerência (CRUD) de VMs através de API

• Usuário pode gravar uma imagem de uma VM

e criar várias instâncias

• AWS permite escolher região geográfica

Page 15: Service deployer FISL 2013

AWS / OpenStack (IaaS)AWS / OpenStack (IaaS)

• Gerência (CRUD) de VMs através de API

• Usuário pode gravar uma imagem de uma VM

e criar várias instâncias

• AWS permite escolher região geográfica

• API EC2

• JClouds abstrai EC2 (e outras APIs) para Java

Page 16: Service deployer FISL 2013

AWS / OpenStack (IaaS)AWS / OpenStack (IaaS)

• Gerência (CRUD) de VMs através de API

• Usuário pode gravar uma imagem de uma VM

e criar várias instâncias

• AWS permite escolher região geográfica

• API EC2

• JClouds abstrai EC2 (e outras APIs) para Java

• AWS: nuvem pública

• OpenStack: nuvem privada

Page 17: Service deployer FISL 2013

Google App Engine (PaaS)Google App Engine (PaaS)

• Cliente escreve aplicação web Python/Java

• Engine aloca aplicação na nuvem do Google

• Engine cuida da escalabilidade

Page 18: Service deployer FISL 2013

AgendaAgenda

• Web services

• Composições de serviços em larga-escala

• O projeto CHOReOS

• A nuvem

• O middleware

• O Chef

• CHOReOS + Chef

• Dificuldades

Page 19: Service deployer FISL 2013

O middlewareO middleware

• Oferece serviços REST para automatizar a implantação de web services na nuvem.

• Abstrai diferentes tipos de nuvem (AWS, OpenStack)

• Decide em que nó o serviço fornecido será implantado.

• Diferentes organizações podem definir diferentes políticas de alocação.

• Informa aos serviços recém implantados os endpoints de suas dependências.

Page 20: Service deployer FISL 2013

O middlewareO middleware

Implantação de serviços

Requisição

POST servicedeployer/services<serviceSpec>  <type>WAR</type>  <codeURI>http://ccsl.ime.usp.br/marketservice.war</codeURI>  <port/> <endpointName>market</endpointName> <resourceImpact>   <storage>high</storage>   <mem>low</mem> </resourceImpact></serviceSpec>

Page 21: Service deployer FISL 2013

O middlewareO middleware

Resposta

201 CREATEDlocation = 12514<service>  <id>12514</id> <type>WAR</type> <port>8080</port> <hostname>ccsl534</hostname> <ip>192.168.56.103</ip> <uri>http://192.168.56.103:8080/market</uri>  <codeURI>http://ccsl.ime.usp.br/marketservice.war</codeURI> <file>marketservice.war</file>  <endpointName>market</endpointName> <resourceImpact>...</resourceImpact></service>

Page 22: Service deployer FISL 2013

O middlewareO middleware

Criação de nós

Requisição

POST nodepoolmanager/nodes<node>   <cpus>2</cpus>  <ram>1024</ram>   <storage>100</storage>   <so>Ubuntu 10.4</so></node>

Page 23: Service deployer FISL 2013

O middlewareO middleware

Resposta

201 CREATEDlocation = 534<node>  <id>534</id>   <cpus>2</cpus>  <ram>1024</ram>   <storage>100</storage>   <so>Ubuntu 10.4</so>  <ip>192.168.56.103</ip>  <hostname>ccsl534</hostname></node>

Page 24: Service deployer FISL 2013

O middlewareO middleware

Mas como tudo isso funciona por de baixo dos panos?

Page 25: Service deployer FISL 2013

AgendaAgenda

• Web services

• Composições de serviços em larga-escala

• O projeto CHOReOS

• A nuvem

• O middleware

• O Chef

• CHOReOS + Chef

• Dificuldades

Page 26: Service deployer FISL 2013

O ChefO Chef

• Configuração de nós da nuvem.

• Funciona assim:

• Uma receita descreve como se

instala um software

• Receitas são atribuídas a papéis

• Papéis são atribuídos a nós

• Exemplo:

• Receita 'tomcat' descreve instalação

do tomcat

• Papel 'web' contém receita 'tomcat'

• Nó 192.168.56.103 deve ter papel 'web'

• Não gerencia a instanciação dos nós na nuvem

Page 27: Service deployer FISL 2013

O ChefO Chef

Page 28: Service deployer FISL 2013

Receitas do ChefReceitas do Chef

• DSL Ruby-like

• Armazenadas no Chef-server

• Descrevem dependências

• Exemplo: receita 'tomcat' requer receita 'java'

Page 29: Service deployer FISL 2013

Receita mysql-clientReceita mysql-client

Page 30: Service deployer FISL 2013

Interação com o Chef ServerInteração com o Chef Server

• API REST

• Interface web

• Knife

Page 31: Service deployer FISL 2013

AgendaAgenda

• Web services

• Composições de serviços em larga-escala

• O projeto CHOReOS

• A nuvem

• O middleware

• O Chef

• CHOReOS + Chef

• Dificuldades

Page 32: Service deployer FISL 2013

CHOReOS + ChefCHOReOS + Chef

• Middleware instancia nós na nuvem

(AWS, OpenStack) usando a API Jclouds

• Middleware faz o bootstrap do nó criado

para que ele seja um nó do Chef

• Middleware cria uma receita para cada

serviço que precisa ser implantado

• Middleware usa Chef para aplicar a receita

em um nó escolhido pelo próprio middleware

Page 33: Service deployer FISL 2013

CHOReOS + ChefCHOReOS + Chef

• Problema:

• Não tem como a receita de um serviço A

ser a mesma receita do serviço B

• Solução

• Criação dinâmica de receitas

Page 34: Service deployer FISL 2013

DificuldadesDificuldades

• Web services

• Composições de serviços em larga-escala

• O projeto CHOReOS

• A nuvem

• O middleware

• O Chef

• CHOReOS + Chef

• Dificuldades

Page 35: Service deployer FISL 2013

DificuldadesDificuldades

• Falta de uma API Java pra usar o Chef

• Chamadas concorrentes pelo Knife

• Chamadas concorrentes pela API EC2

• Suporte imaturo do JClouds para o OpenStack

Page 36: Service deployer FISL 2013

ConclusãoConclusão

• O uso do Chef simplificou grandemente o desenvolvimento

• Ponto para o software livre!

• OpenStack e Web Services evitam a dependência de fornecedores/provedores fechados

• Middleware e ferramentas usadas são livres

• Software livre é a base da Internet do Futuro

• Novas pesquisas devem continuar a partir do código desenvolvido• Venha fazer pós conosco!

Page 37: Service deployer FISL 2013

Obrigado!Obrigado!

CCSL IME/USP

• Nosso site:

• http://ccsl.ime.usp.br

• Projeto CHOReOS:

• http://www.choreos.eu

• Código-fonte:

• http://forge.ow2.org/projects/choreos/

• Email de contato:

[email protected]