integrações e o ecossistema java - fabric8 ao resgate!

44
Integrações e o ecossistema Java Fabric8 ao Resgate!

Upload: leandro-gomes

Post on 07-Dec-2014

79 views

Category:

Technology


0 download

DESCRIPTION

Apresentação sobre o projeto Fabric8

TRANSCRIPT

Page 1: Integrações e o ecossistema Java - Fabric8 ao Resgate!

Integrações e o ecossistema Java

Fabric8 ao

Resgate!

Page 2: Integrações e o ecossistema Java - Fabric8 ao Resgate!

Quem sou eu?

Leandro O. Gomes blog.leandrogomes.com

@leandro_gomes

7 anos de estrada Arquiteto de Software na Owse no Rio de Janeiro Apaixonado por desenvolvimento de software!

Page 3: Integrações e o ecossistema Java - Fabric8 ao Resgate!

Integração

Page 4: Integrações e o ecossistema Java - Fabric8 ao Resgate!
Page 5: Integrações e o ecossistema Java - Fabric8 ao Resgate!

O que é uma integração?

Promover interação entre os sistemas para que juntos possam executar alguma função do negócio

"“

Page 6: Integrações e o ecossistema Java - Fabric8 ao Resgate!

Porque integração é difícil?

• Diferentes plataformas

• Produtos de terceiros? Feitos em "casa"?

• Formatos de dados, protocolos

• "Timing"

Page 7: Integrações e o ecossistema Java - Fabric8 ao Resgate!

Soluções comerciais?

Page 8: Integrações e o ecossistema Java - Fabric8 ao Resgate!

Apache Camel

• Open-source

• Framework Lightweight de integração

• Domain specific language

• Enterprise Integration Patterns

• Componentes

• Funciona em qualquer container e até

stand alone

Page 9: Integrações e o ecossistema Java - Fabric8 ao Resgate!

Não é um ESB

• Framework de integração

• Routing

• Mediation

• DSL

• Opções baseados em Camel

• Jboss Fuse

• Talend

• WSO2

• Não está vinculado à um fornecedor!

Page 10: Integrações e o ecossistema Java - Fabric8 ao Resgate!

Exemplo

Page 11: Integrações e o ecossistema Java - Fabric8 ao Resgate!

Rotas Camel

• Pode ser definida em várias DSLs

• Java, Scala, Xml, Groovy

• Processamento passo-a-passo da mensagem

• Consumers

• Processors/filters

• Producers

Page 12: Integrações e o ecossistema Java - Fabric8 ao Resgate!

Java DSL!public class DocumentoProcessorRouteBuilder extends RouteBuilder {

@Override public void configure() throws Exception { from(“activemq:docs”) .choice() .when(header(“tipo”).isEqualTo(“notaFiscal”)) .to(“activemq:notasFiscais”) .otherwise() .to(“ftp://user@host/docs”) .end() .log(“Documento recebido ${body.id}”) .to(“ibatis:salvarDocs?statementType=Insert”);}

Page 13: Integrações e o ecossistema Java - Fabric8 ao Resgate!

Componentes

• ActiveMQ

• CXF

• File

• FTP

• jclouds

• JPA

• Twitter

• MyBatis

•JDBC

•Bean

•Spring WS

•FTP

•HTTP

•Gmail

•AMQP

•etc...

Page 14: Integrações e o ecossistema Java - Fabric8 ao Resgate!

Complexidade

Page 15: Integrações e o ecossistema Java - Fabric8 ao Resgate!
Page 16: Integrações e o ecossistema Java - Fabric8 ao Resgate!
Page 17: Integrações e o ecossistema Java - Fabric8 ao Resgate!

KEEP CALM

AND

BE

AWESOME

Page 18: Integrações e o ecossistema Java - Fabric8 ao Resgate!
Page 19: Integrações e o ecossistema Java - Fabric8 ao Resgate!

• ServiceMix foi o início de tudo há mais de 9

anos

• Introduzido no Fuse ESB como Fuse Fabric

• Grande foco no runtime

• Projeto community open source para o

Fuse Fabric

Fabric8

Page 20: Integrações e o ecossistema Java - Fabric8 ao Resgate!

Fabric8

• É uma plataforma de integração

• Open source

• Simplifica o deployment e gerenciamento

• Aproxima-se de uma PaaS

• Provê recursos de clusterização e coordenação

• Provê ferramentas para gerenciamento

centralizado

Page 21: Integrações e o ecossistema Java - Fabric8 ao Resgate!

Fabric8Web services

soap, restful, http

Mensageria JMS, STOMP, MQTT, pubsub

Container provisionamento, gerenciamento de recursos, deployment,

segurança

Gerenciamento Monitoramento

status, métricas, console

Apache  CXF

Apache  ActiveMQ

Framework de integração

EAI patterns, transformação, mediation

Apache  Camel

Apache  Karaf  +  Fuse  FabricHawt.io

Page 22: Integrações e o ecossistema Java - Fabric8 ao Resgate!

• Profiles

• Runtime Registry

• Repositório de configuração

• Monitoramento

Arquitetura do Fabric8

Page 23: Integrações e o ecossistema Java - Fabric8 ao Resgate!

Rutime registry

• Baseado no Apache Zookeeper

• Consistência sequencial

• Atomicidade

• Sincronização

• Ideal para coordenação de sistemas

distribuídos

Page 24: Integrações e o ecossistema Java - Fabric8 ao Resgate!

Rutime registry

• Usado para dados que não são de configuração

• Status do container

• Serviços do container

• Endereços de conexões dos containers etc.

• Locks distribuídos

• Leader Election

• Service Discovery

Page 25: Integrações e o ecossistema Java - Fabric8 ao Resgate!

• Armazena todas as configurações

• Versionamento

• Histórico para auditoria

• Fácil acesso por clients externos

• Alta disponibilidade

Repositório de configuração

Page 26: Integrações e o ecossistema Java - Fabric8 ao Resgate!

Profiles

• Um grupo configurações que podem

ser aplicados à um container

• Hierárquico

• Reusável

• Versionado

Page 27: Integrações e o ecossistema Java - Fabric8 ao Resgate!

Profiles

• Define o código para

execução(bundles, wars, features

etc.)

• Define a configuração(properties,

arquivos Xml, Json, OSGi config)

• DRY!

Page 28: Integrações e o ecossistema Java - Fabric8 ao Resgate!

Suporte à vários tipos de containers providers:

Containers

Karaf Container

Java Container

Process Container

Spring Boot Container

Kubernetes

Docker

SSH Containers

Cloud Containers

Page 29: Integrações e o ecossistema Java - Fabric8 ao Resgate!

• É a forma de provisionar um

processo da JVM

• Ideal para trabalhar com micro

serviços

• Nenhum jar do Fabric8 é

necessário dentro da JVM

Java Containers

Page 30: Integrações e o ecossistema Java - Fabric8 ao Resgate!

• Criação de containers via SSH

• Não é necessário ter o Fabric8

no host remoto

• Login/senha

• Public key authentication

SSH Containers

Page 31: Integrações e o ecossistema Java - Fabric8 ao Resgate!

• Usa Apache JClouds para criar

containers em nuvens privadas

ou públicos

• AWS, Rackspace, OpenStack

• Registre seu cloud provider no

Fabric8

Cloud Containers

Page 32: Integrações e o ecossistema Java - Fabric8 ao Resgate!

Docker

•Open Source

•Lightweight

•Linux Containers(LXC)

•Portável

•Versionamento

•Reutilizável

•Compartilhamento

Page 33: Integrações e o ecossistema Java - Fabric8 ao Resgate!

• Fabric8 pode utilizar o Docker para criar

novos containers

• Containers são criados via Docker Remote

Api

• Com o Docker Container é possível

executar serviços como MongoDB,

Cassandra, ElasticSearch etc.

Docker Container

Page 34: Integrações e o ecossistema Java - Fabric8 ao Resgate!

Como usar tudo isso?

Page 35: Integrações e o ecossistema Java - Fabric8 ao Resgate!

Containers, Profiles e Git

Container GitProfileProfile

Profile

1.0recupera

profiles

Page 36: Integrações e o ecossistema Java - Fabric8 ao Resgate!

Containers, Profiles e Git

Container

Git

ProfileProfileProfile

1.0

Container

1.0

recupera

profiles

Provisionamento

Container

1.0

Container

1.0

Container

1.0 Container

1.0

Container

1.0

Container

1.0

Page 37: Integrações e o ecossistema Java - Fabric8 ao Resgate!

Como gerencio tudo isso?

Page 38: Integrações e o ecossistema Java - Fabric8 ao Resgate!

Hawtio

• Open source

• Console Web HTML5

• Desenvolvido com AngularJS

• Usa Jolokia no servidor para

acessar JMX via HTTP/JSON

Page 39: Integrações e o ecossistema Java - Fabric8 ao Resgate!

Hawtio

• Extensão Chrome

• Vários plugins disponíveis:

fabric8, camel, activemq etc.

Page 40: Integrações e o ecossistema Java - Fabric8 ao Resgate!

Hawtio

Page 41: Integrações e o ecossistema Java - Fabric8 ao Resgate!

Hawtio

Page 42: Integrações e o ecossistema Java - Fabric8 ao Resgate!

no código!

Page 43: Integrações e o ecossistema Java - Fabric8 ao Resgate!

Perguntas?

Page 44: Integrações e o ecossistema Java - Fabric8 ao Resgate!

Obrigado!

Leandro O. Gomes blog.leandrogomes.com @leandro_gomes github.com/logol