O documento discute integrações e o ecossistema Java Fabric8. Apresenta o framework Apache Camel para integração e medição e a plataforma Fabric8 para simplificar o gerenciamento de integrações distribuídas. Fabric8 utiliza Apache Karaf, Zookeeper, Git e Hawtio para orquestrar containers e fornecer monitoramento.
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!
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!
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
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
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.