integrações e o ecossistema java - fabric8 ao resgate!
DESCRIPTION
Apresentação sobre o projeto Fabric8TRANSCRIPT
![Page 1: Integrações e o ecossistema Java - Fabric8 ao Resgate!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/1.jpg)
Integrações e o ecossistema Java
Fabric8 ao
Resgate!
![Page 2: Integrações e o ecossistema Java - Fabric8 ao Resgate!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/2.jpg)
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!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/3.jpg)
Integração
![Page 4: Integrações e o ecossistema Java - Fabric8 ao Resgate!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/4.jpg)
![Page 5: Integrações e o ecossistema Java - Fabric8 ao Resgate!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/5.jpg)
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!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/6.jpg)
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!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/7.jpg)
Soluções comerciais?
![Page 8: Integrações e o ecossistema Java - Fabric8 ao Resgate!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/8.jpg)
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!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/9.jpg)
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!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/10.jpg)
Exemplo
![Page 11: Integrações e o ecossistema Java - Fabric8 ao Resgate!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/11.jpg)
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!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/12.jpg)
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!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/13.jpg)
Componentes
• ActiveMQ
• CXF
• File
• FTP
• jclouds
• JPA
• MyBatis
•JDBC
•Bean
•Spring WS
•FTP
•HTTP
•Gmail
•AMQP
•etc...
![Page 14: Integrações e o ecossistema Java - Fabric8 ao Resgate!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/14.jpg)
Complexidade
![Page 15: Integrações e o ecossistema Java - Fabric8 ao Resgate!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/15.jpg)
![Page 16: Integrações e o ecossistema Java - Fabric8 ao Resgate!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/16.jpg)
![Page 17: Integrações e o ecossistema Java - Fabric8 ao Resgate!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/17.jpg)
KEEP CALM
AND
BE
AWESOME
![Page 18: Integrações e o ecossistema Java - Fabric8 ao Resgate!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/18.jpg)
![Page 19: Integrações e o ecossistema Java - Fabric8 ao Resgate!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/19.jpg)
• 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!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/20.jpg)
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!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/21.jpg)
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!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/22.jpg)
• Profiles
• Runtime Registry
• Repositório de configuração
• Monitoramento
Arquitetura do Fabric8
![Page 23: Integrações e o ecossistema Java - Fabric8 ao Resgate!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/23.jpg)
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!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/24.jpg)
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!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/25.jpg)
• 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!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/26.jpg)
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!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/27.jpg)
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!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/28.jpg)
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!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/29.jpg)
• É 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!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/30.jpg)
• 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!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/31.jpg)
• 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!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/32.jpg)
Docker
•Open Source
•Lightweight
•Linux Containers(LXC)
•Portável
•Versionamento
•Reutilizável
•Compartilhamento
![Page 33: Integrações e o ecossistema Java - Fabric8 ao Resgate!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/33.jpg)
• 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!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/34.jpg)
Como usar tudo isso?
![Page 35: Integrações e o ecossistema Java - Fabric8 ao Resgate!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/35.jpg)
Containers, Profiles e Git
Container GitProfileProfile
Profile
1.0recupera
profiles
![Page 36: Integrações e o ecossistema Java - Fabric8 ao Resgate!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/36.jpg)
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!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/37.jpg)
Como gerencio tudo isso?
![Page 38: Integrações e o ecossistema Java - Fabric8 ao Resgate!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/38.jpg)
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!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/39.jpg)
Hawtio
• Extensão Chrome
• Vários plugins disponíveis:
fabric8, camel, activemq etc.
![Page 40: Integrações e o ecossistema Java - Fabric8 ao Resgate!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/40.jpg)
Hawtio
![Page 41: Integrações e o ecossistema Java - Fabric8 ao Resgate!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/41.jpg)
Hawtio
![Page 42: Integrações e o ecossistema Java - Fabric8 ao Resgate!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/42.jpg)
no código!
![Page 43: Integrações e o ecossistema Java - Fabric8 ao Resgate!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/43.jpg)
Perguntas?
![Page 44: Integrações e o ecossistema Java - Fabric8 ao Resgate!](https://reader031.vdocuments.mx/reader031/viewer/2022013121/548531b75806b5cc588b46e7/html5/thumbnails/44.jpg)
Obrigado!
Leandro O. Gomes blog.leandrogomes.com @leandro_gomes github.com/logol