SlideShare uma empresa Scribd logo
1 de 44
Baixar para ler offline
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
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
KEEP CALM 
AND 
BE 
AWESOME
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

Mais procurados

Php Conf08 Enterprise Patterns
Php Conf08 Enterprise PatternsPhp Conf08 Enterprise Patterns
Php Conf08 Enterprise PatternsWildtech
 
WebSphere 8 Intro (pt-BR)
WebSphere 8 Intro (pt-BR)WebSphere 8 Intro (pt-BR)
WebSphere 8 Intro (pt-BR)Juarez Junior
 
Uma Implementação do MPLS para Redes Linux
Uma Implementação do MPLS para Redes LinuxUma Implementação do MPLS para Redes Linux
Uma Implementação do MPLS para Redes LinuxEduardo Nicola F. Zagari
 
15 padrões de mensageria para integração de sistemas
15 padrões de mensageria para integração de sistemas15 padrões de mensageria para integração de sistemas
15 padrões de mensageria para integração de sistemasHelder da Rocha
 
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...tdc-globalcode
 
Introdução a Arquitetura de Sistemas
Introdução a Arquitetura de SistemasIntrodução a Arquitetura de Sistemas
Introdução a Arquitetura de SistemasIgor Takenami
 
Sistemas Distribuidos Java
Sistemas Distribuidos JavaSistemas Distribuidos Java
Sistemas Distribuidos Javalimadavi
 
TDC2016POA | Trilha Arquetetura - Revitalizando aplicações desktop usando Ce...
TDC2016POA | Trilha Arquetetura -  Revitalizando aplicações desktop usando Ce...TDC2016POA | Trilha Arquetetura -  Revitalizando aplicações desktop usando Ce...
TDC2016POA | Trilha Arquetetura - Revitalizando aplicações desktop usando Ce...tdc-globalcode
 

Mais procurados (9)

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

Semelhante a Java integrações ecossistema Fabric8 resgate

Boas Práticas em Aplicações na Nuvem: Twelve-Factor App - Março-2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App - Março-2021Boas Práticas em Aplicações na Nuvem: Twelve-Factor App - Março-2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App - Março-2021Renato Groffe
 
PaaS na terra: Cloud Computing ao alcance de todos - QCON2014
PaaS na terra: Cloud Computing ao alcance de todos -  QCON2014PaaS na terra: Cloud Computing ao alcance de todos -  QCON2014
PaaS na terra: Cloud Computing ao alcance de todos - QCON2014Getup Cloud
 
Flask e Docker - rumo a AWS!
Flask e Docker - rumo a AWS!Flask e Docker - rumo a AWS!
Flask e Docker - rumo a AWS!Ryan Padilha
 
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRJBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRElvis Rocha
 
Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...
Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...
Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...Giovanni Bassi
 
Integração Contínua com Hudson
Integração Contínua com HudsonIntegração Contínua com Hudson
Integração Contínua com HudsonLuis Reis
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasDevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasAmazon Web Services LATAM
 
Open4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourceOpen4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourcetdc-globalcode
 
.NET 2015, ASP.NET 5, C# 6 e tudo mais
.NET 2015, ASP.NET 5, C# 6 e tudo mais.NET 2015, ASP.NET 5, C# 6 e tudo mais
.NET 2015, ASP.NET 5, C# 6 e tudo maisakamud
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018Renato Groff
 

Semelhante a Java integrações ecossistema Fabric8 resgate (20)

Boas Práticas em Aplicações na Nuvem: Twelve-Factor App - Março-2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App - Março-2021Boas Práticas em Aplicações na Nuvem: Twelve-Factor App - Março-2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App - Março-2021
 
Preparando sua arquitetura para microservicos
Preparando sua arquitetura para microservicosPreparando sua arquitetura para microservicos
Preparando sua arquitetura para microservicos
 
DevOps com Python
DevOps com PythonDevOps com Python
DevOps com Python
 
O Futuro do ASP.NET
O Futuro do ASP.NETO Futuro do ASP.NET
O Futuro do ASP.NET
 
PaaS na terra: Cloud Computing ao alcance de todos - QCON2014
PaaS na terra: Cloud Computing ao alcance de todos -  QCON2014PaaS na terra: Cloud Computing ao alcance de todos -  QCON2014
PaaS na terra: Cloud Computing ao alcance de todos - QCON2014
 
Docker para devs .NET
Docker para devs .NETDocker para devs .NET
Docker para devs .NET
 
12 Factor Apps
12 Factor Apps12 Factor Apps
12 Factor Apps
 
Flask e Docker - rumo a AWS!
Flask e Docker - rumo a AWS!Flask e Docker - rumo a AWS!
Flask e Docker - rumo a AWS!
 
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRJBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
 
Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...
Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...
Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...
 
Integração Contínua com Hudson
Integração Contínua com HudsonIntegração Contínua com Hudson
Integração Contínua com Hudson
 
5. rodando containers docker na aws
5. rodando containers docker na aws5. rodando containers docker na aws
5. rodando containers docker na aws
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasDevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
 
.Net Core + Docker
.Net Core +  Docker.Net Core +  Docker
.Net Core + Docker
 
De 0 a DevOps
De 0 a DevOpsDe 0 a DevOps
De 0 a DevOps
 
Flisol 2015
Flisol 2015 Flisol 2015
Flisol 2015
 
Open4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourceOpen4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSource
 
JBoss Fuse Workshop Desenvolvimento - Parte 1
JBoss Fuse Workshop Desenvolvimento - Parte 1JBoss Fuse Workshop Desenvolvimento - Parte 1
JBoss Fuse Workshop Desenvolvimento - Parte 1
 
.NET 2015, ASP.NET 5, C# 6 e tudo mais
.NET 2015, ASP.NET 5, C# 6 e tudo mais.NET 2015, ASP.NET 5, C# 6 e tudo mais
.NET 2015, ASP.NET 5, C# 6 e tudo mais
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018
 

Java integrações ecossistema Fabric8 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!
  • 4.
  • 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...
  • 15.
  • 16.
  • 17. KEEP CALM AND BE AWESOME
  • 18.
  • 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!