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...
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, p...
Soluções comerciais?
Apache Camel 
• Open-source 
• Framework Lightweight de integração 
• Domain specific language 
• Enterprise Integration P...
Não é um ESB 
• Framework de integração 
• Routing 
• Mediation 
• DSL 
• Opções baseados em Camel 
• Jboss Fuse 
• Talend...
Exemplo
Rotas Camel 
• Pode ser definida em várias DSLs 
• Java, Scala, Xml, Groovy 
• Processamento passo-a-passo da mensagem 
• ...
Java DSL 
! 
public class DocumentoProcessorRouteBuilder extends RouteBuilder { 
@Override 
public void configure() throws...
Componentes 
• ActiveMQ 
• CXF 
• File 
• FTP 
• jclouds 
• JPA 
• Twitter 
• MyBatis 
•JDBC 
•Bean 
•Spring WS 
•FTP 
•HT...
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 n...
Fabric8 
• É uma plataforma de integração 
• Open source 
• Simplifica o deployment e gerenciamento 
• Aproxima-se de uma ...
Fabric8 
Web services 
soap, restful, http 
Framework de 
integração 
transformação, mediation 
Apache 
Camel 
Mensageria ...
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 co...
Rutime registry 
• Usado para dados que não são de configuração 
• Status do container 
• Serviços do container 
• Endereç...
Repositório de 
configuração 
• Armazena todas as configurações 
• Versionamento 
• Histórico para auditoria 
• Fácil aces...
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 X...
Containers 
Suporte à vários tipos de containers 
providers: 
Karaf Container 
Java Container 
Process Container 
Spring B...
Java Containers 
• É a forma de provisionar um 
processo da JVM 
• Ideal para trabalhar com micro 
serviços 
• Nenhum jar ...
SSH Containers 
• Criação de containers via SSH 
• Não é necessário ter o Fabric8 
no host remoto 
• Login/senha 
• Public...
Cloud Containers 
• Usa Apache JClouds para criar 
containers em nuvens privadas 
ou públicos 
• AWS, Rackspace, OpenStack...
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 Remot...
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 
Provisionamen...
Como gerencio tudo isso?
Hawtio 
• Open source 
• Console Web HTML5 
• Desenvolvido com AngularJS 
• Usa Jolokia no servidor para 
acessar JMX via ...
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!
Integrações e o ecossistema Java - Fabric8 ao Resgate!
Integrações e o ecossistema Java - Fabric8 ao Resgate!
Integrações e o ecossistema Java - Fabric8 ao Resgate!
Integrações e o ecossistema Java - Fabric8 ao Resgate!
Próximos SlideShares
Carregando em…5
×

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

396 visualizações

Publicada em

Apresentação sobre o projeto Fabric8

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
396
No SlideShare
0
A partir de incorporações
0
Número de incorporações
5
Ações
Compartilhamentos
0
Downloads
11
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

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

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

×