SlideShare uma empresa Scribd logo
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!
Integração
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 "
Porque integração é difícil? 
• Diferentes plataformas 
• Produtos de terceiros? Feitos em "casa"? 
• Formatos de dados, protocolos 
• "Timing"
Soluções comerciais?
Apache Camel 
• Open-source 
• Framework Lightweight de integração 
• Domain specific language 
• Enterprise Integration Patterns 
• Componentes 
• Funciona em qualquer container e até 
stand alone
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!
Exemplo
Rotas Camel 
• Pode ser definida em várias DSLs 
• Java, Scala, Xml, Groovy 
• Processamento passo-a-passo da mensagem 
• Consumers 
• Processors/filters 
• Producers
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”); 
}
Componentes 
• ActiveMQ 
• CXF 
• File 
• FTP 
• jclouds 
• JPA 
• Twitter 
• MyBatis 
•JDBC 
•Bean 
•Spring WS 
•FTP 
•HTTP 
•Gmail 
•AMQP 
•etc...
Complexidade
Integrações e o ecossistema Java - Fabric8 ao Resgate!
Integrações e o ecossistema Java - Fabric8 ao Resgate!
KEEP CALM 
AND 
BE 
AWESOME
Integrações e o ecossistema Java - Fabric8 ao Resgate!
Fabric8 
• 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 
• É 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
Fabric8 
Web services 
soap, restful, http 
Framework de 
integração 
transformação, mediation 
Apache 
Camel 
Mensageria 
EAI patterns, 
JMS, STOMP, MQTT, pubsub 
Container 
provisionamento, gerenciamento de recursos, deployment, 
segurança 
Gerenciamento 
Monitoramento 
status, métricas, 
console 
Apache 
CXF 
Apache 
ActiveMQ 
Apache 
Karaf 
+ 
Fuse 
Fabric 
Hawt.io
Arquitetura do Fabric8 
• Profiles 
• Runtime Registry 
• Repositório de configuração 
• Monitoramento
Rutime registry 
• Baseado no Apache Zookeeper 
• Consistência sequencial 
• Atomicidade 
• Sincronização 
• Ideal para coordenação de sistemas 
distribuídos
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
Repositório de 
configuração 
• Armazena todas as configurações 
• Versionamento 
• Histórico para auditoria 
• Fácil acesso por clients externos 
• Alta disponibilidade
Profiles 
• Um grupo configurações que podem 
ser aplicados à um container 
• Hierárquico 
• Reusável 
• Versionado
Profiles 
• Define o código para 
execução(bundles, wars, features 
etc.) 
• Define a configuração(properties, 
arquivos Xml, Json, OSGi config) 
• DRY!
Containers 
Suporte à vários tipos de containers 
providers: 
Karaf Container 
Java Container 
Process Container 
Spring Boot Container 
Kubernetes 
Docker 
SSH Containers 
Cloud Containers
Java Containers 
• É a forma de provisionar um 
processo da JVM 
• Ideal para trabalhar com micro 
serviços 
• Nenhum jar do Fabric8 é 
necessário dentro da JVM
SSH Containers 
• Criação de containers via SSH 
• Não é necessário ter o Fabric8 
no host remoto 
• Login/senha 
• Public key authentication
Cloud Containers 
• Usa Apache JClouds para criar 
containers em nuvens privadas 
ou públicos 
• AWS, Rackspace, OpenStack 
• Registre seu cloud provider no 
Fabric8
Docker 
•Open Source 
•Lightweight 
•Linux Containers(LXC) 
•Portável 
•Versionamento 
•Reutilizável 
•Compartilhamento
Docker Container 
• 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.
Como usar tudo isso?
Containers, Profiles e Git 
Container Git 
PPrroofifliele Profile 
1.0 
recupera 
profiles
Containers, Profiles e Git 
Container 
Git 
1.0 
PPrroofifliele Profile 
Container 
1.0 
recupera 
profiles 
Provisionamento 
Container 
1.0 
Container 
1.0 
Container 
1.0 Container 
1.0 
Container 
1.0 
Container 
1.0
Como gerencio tudo isso?
Hawtio 
• Open source 
• Console Web HTML5 
• Desenvolvido com AngularJS 
• Usa Jolokia no servidor para 
acessar JMX via HTTP/JSON
Hawtio 
• Extensão Chrome 
• Vários plugins disponíveis: 
fabric8, camel, activemq etc.
Hawtio
Hawtio
no código!
Perguntas?
Leandro O. Gomes 
blog.leandrogomes.com 
@leandro_gomes 
github.com/logol 
Obrigado!

Mais conteúdo relacionado

PDF
Padrões essenciais de mensageria para integração de sistemas
PPTX
Enteprise Integration Patterns
PDF
Padrões de Integração de Sistemas com Spring Integration
PDF
Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...
PDF
Facilitando a implementação de mensageria em aplicações Java
PPTX
Lync Server 2010 - Arquitetura
PPS
Web Sphere Application Server
PPT
Treinamento WebSphere 6.1 Administration
Padrões essenciais de mensageria para integração de sistemas
Enteprise Integration Patterns
Padrões de Integração de Sistemas com Spring Integration
Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...
Facilitando a implementação de mensageria em aplicações Java
Lync Server 2010 - Arquitetura
Web Sphere Application Server
Treinamento WebSphere 6.1 Administration

Mais procurados (9)

PDF
Php Conf08 Enterprise Patterns
PDF
WebSphere 8 Intro (pt-BR)
PDF
Uma Implementação do MPLS para Redes Linux
PDF
15 padrões de mensageria para integração de sistemas
PPTX
Hornet - 1.Conceitos de Mensageria
PDF
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
PDF
Introdução a Arquitetura de Sistemas
PPTX
Sistemas Distribuidos Java
PDF
TDC2016POA | Trilha Arquetetura - Revitalizando aplicações desktop usando Ce...
Php Conf08 Enterprise Patterns
WebSphere 8 Intro (pt-BR)
Uma Implementação do MPLS para Redes Linux
15 padrões de mensageria para integração de sistemas
Hornet - 1.Conceitos de Mensageria
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
Introdução a Arquitetura de Sistemas
Sistemas Distribuidos Java
TDC2016POA | Trilha Arquetetura - Revitalizando aplicações desktop usando Ce...
Anúncio

Semelhante a Integrações e o ecossistema Java - Fabric8 ao Resgate! (20)

PDF
JBoss Fuse Workshop Desenvolvimento - Parte 1
PDF
12 Factor APPS, docker na cloud e outras buzzwords
PDF
12 Factor APPS Docker na Cloud e outras buzzwords
PDF
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
PDF
12 factor app. Melhor com Docker
PDF
GDG ABC Meetup #5 - Tendências 2015
ODP
Introdução ao JBoss Fuse 6.x: criação e implantação de um serviço CXF
PPTX
DevOps - Aula 5 - Docker, Kubernetes e Outras Plataformas de Orquestração.pptx
PDF
Fundamentos em Containers
ODP
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
PDF
Estamos trabalhando melhor com dependências e ambientes usando containers?
PDF
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...
PDF
12 Factor App Docker na Cloud e outras buzzwords
PDF
O que move a web atualmente?
PDF
Front end architecture
PDF
Introdução a Microservices com Node.JS
PPTX
Cloud Native Microservices - Rumo a uma Arquitetura de Microsserviços Nativos...
PDF
O poder dos microsserviços com Docker e Kubernetes
PDF
Java EE no ambiente corporativo: primeiros passos WebLogic 12c
PDF
Containers, Kubernetes e porque estamos falando tanto disso…
JBoss Fuse Workshop Desenvolvimento - Parte 1
12 Factor APPS, docker na cloud e outras buzzwords
12 Factor APPS Docker na Cloud e outras buzzwords
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
12 factor app. Melhor com Docker
GDG ABC Meetup #5 - Tendências 2015
Introdução ao JBoss Fuse 6.x: criação e implantação de um serviço CXF
DevOps - Aula 5 - Docker, Kubernetes e Outras Plataformas de Orquestração.pptx
Fundamentos em Containers
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
Estamos trabalhando melhor com dependências e ambientes usando containers?
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...
12 Factor App Docker na Cloud e outras buzzwords
O que move a web atualmente?
Front end architecture
Introdução a Microservices com Node.JS
Cloud Native Microservices - Rumo a uma Arquitetura de Microsserviços Nativos...
O poder dos microsserviços com Docker e Kubernetes
Java EE no ambiente corporativo: primeiros passos WebLogic 12c
Containers, Kubernetes e porque estamos falando tanto disso…
Anúncio

Último (11)

PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
PPTX
Arquitetura de computadores - Memórias Secundárias
PPTX
Viasol Energia Solar -Soluções para geração e economia de energia
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PPTX
Eng. Software - pontos essenciais para o início
PPTX
Utilizando code blockes por andre backes
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Manejo integrado de pragas na cultura do algodão
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Mecânico de Manutenção de Equipamentos.pptx
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Arquitetura de computadores - Memórias Secundárias
Viasol Energia Solar -Soluções para geração e economia de energia
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Eng. Software - pontos essenciais para o início
Utilizando code blockes por andre backes
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Manejo integrado de pragas na cultura do algodão
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Mecânico de Manutenção de Equipamentos.pptx
Termos utilizados na designação de relação entre pessoa e uma obra.pdf

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

  • 1. Integrações e o ecossistema Java Fabric8 ao Resgate!
  • 2. 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!
  • 5. O que é uma integração? Promover interação entre os sistemas para que juntos possam executar “alguma função do negócio "
  • 6. Porque integração é difícil? • Diferentes plataformas • Produtos de terceiros? Feitos em "casa"? • Formatos de dados, protocolos • "Timing"
  • 8. Apache Camel • Open-source • Framework Lightweight de integração • Domain specific language • Enterprise Integration Patterns • Componentes • Funciona em qualquer container e até stand alone
  • 9. 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!
  • 11. Rotas Camel • Pode ser definida em várias DSLs • Java, Scala, Xml, Groovy • Processamento passo-a-passo da mensagem • Consumers • Processors/filters • Producers
  • 12. 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”); }
  • 13. Componentes • ActiveMQ • CXF • File • FTP • jclouds • JPA • Twitter • MyBatis •JDBC •Bean •Spring WS •FTP •HTTP •Gmail •AMQP •etc...
  • 17. KEEP CALM AND BE AWESOME
  • 19. Fabric8 • 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
  • 20. 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
  • 21. Fabric8 Web services soap, restful, http Framework de integração transformação, mediation Apache Camel Mensageria EAI patterns, JMS, STOMP, MQTT, pubsub Container provisionamento, gerenciamento de recursos, deployment, segurança Gerenciamento Monitoramento status, métricas, console Apache CXF Apache ActiveMQ Apache Karaf + Fuse Fabric Hawt.io
  • 22. Arquitetura do Fabric8 • Profiles • Runtime Registry • Repositório de configuração • Monitoramento
  • 23. Rutime registry • Baseado no Apache Zookeeper • Consistência sequencial • Atomicidade • Sincronização • Ideal para coordenação de sistemas distribuídos
  • 24. 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
  • 25. Repositório de configuração • Armazena todas as configurações • Versionamento • Histórico para auditoria • Fácil acesso por clients externos • Alta disponibilidade
  • 26. Profiles • Um grupo configurações que podem ser aplicados à um container • Hierárquico • Reusável • Versionado
  • 27. Profiles • Define o código para execução(bundles, wars, features etc.) • Define a configuração(properties, arquivos Xml, Json, OSGi config) • DRY!
  • 28. Containers Suporte à vários tipos de containers providers: Karaf Container Java Container Process Container Spring Boot Container Kubernetes Docker SSH Containers Cloud Containers
  • 29. Java Containers • É a forma de provisionar um processo da JVM • Ideal para trabalhar com micro serviços • Nenhum jar do Fabric8 é necessário dentro da JVM
  • 30. SSH Containers • Criação de containers via SSH • Não é necessário ter o Fabric8 no host remoto • Login/senha • Public key authentication
  • 31. Cloud Containers • Usa Apache JClouds para criar containers em nuvens privadas ou públicos • AWS, Rackspace, OpenStack • Registre seu cloud provider no Fabric8
  • 32. Docker •Open Source •Lightweight •Linux Containers(LXC) •Portável •Versionamento •Reutilizável •Compartilhamento
  • 33. Docker Container • 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.
  • 34. Como usar tudo isso?
  • 35. Containers, Profiles e Git Container Git PPrroofifliele Profile 1.0 recupera profiles
  • 36. Containers, Profiles e Git Container Git 1.0 PPrroofifliele Profile Container 1.0 recupera profiles Provisionamento Container 1.0 Container 1.0 Container 1.0 Container 1.0 Container 1.0 Container 1.0
  • 38. Hawtio • Open source • Console Web HTML5 • Desenvolvido com AngularJS • Usa Jolokia no servidor para acessar JMX via HTTP/JSON
  • 39. Hawtio • Extensão Chrome • Vários plugins disponíveis: fabric8, camel, activemq etc.
  • 44. Leandro O. Gomes blog.leandrogomes.com @leandro_gomes github.com/logol Obrigado!