2. Christian Posta
Principal Middleware Specialist/Architect
Twitter: @christianposta
Blog: http://blog.christianposta.com
Email: christian@redhat.com
• Committer on Apache Camel, Apache ActiveMQ, Fabric8
• Spent lot of time working with one of the largest Microservices, web-
scale, unicorn companies
• Blogger / speaker about DevOps, open-source, integration, and
microservices
Cloud Native Architectures
4. • Trying to incorporate new technology?
• Trying to copy what others are doing?
• Tactical automation?
• Created a “DevOps” team?
• Exploring cloud services?
• Build/deploy automation?
• OpenSource?
• Piecemeal integration?
How are you keeping up with change?
Cloud Native Architectures
5. Cloud Native Architectures
• Faster software delivery
• Own database (data)
• Faster innovation
• Scalability
• Right technology for the
problem
• Test individual services
• Isolation
• Individual deployments
9. Cloud Native Architectures
Fallacies of distributed computing
• Reliable networking
• Latency is zero
• Bandwidth is infinite
• Network is secure
• Topology doesn’t change
• Single administrator
• Transport cost is zero
• Network is homogenous
https://en.wikipedia.org/wiki/Fallacies_of_distributed_computing
15. Cloud Native Architectures
Apache Camel to the rescue!
• Small Java library
• Distributed-system swiss-army knife!
• Powerful EIPs
• Declarative DSL
• Embeddable into any JVM (EAP, Karaf, Tomcat, Spring
Boot, Dropwizard, Wildfly Swarm, no container, etc)
• Very popular (200+ components for “dumb pipes”)
16. Cloud Native Architectures
Apache Camel to the rescue!
• Automatic retries, backoff algorithms
• Dynamic routing
• Powerful testing/mocking framework
• Circuit breakers
• Backpressure mechanisms
• Beautiful REST DSL with built in Swagger support
18. Cloud Native Architectures
Typical problems developing microservices
• How to run them all locally?
• How to package them (dependency management)
• How to test?
• Vagrant? VirtualBox? VMs?
• Specify configuration
• Process isolation
• Service discovery
• Multiple versions?
19. Cloud Native Architectures
Shared infrastructure platforms headaches
• Different teams
• Different rates of change
• VM sprawl
• Configuration drift
• Isolation / multi-tenancy
• Performance
• Real-time vs batch
• Compliance
• Security
• Technology choices
21. Cloud Native Architectures
Immutable infrastructure/deploys
• “we’ll just put it back in Ansible”
• Avoid chucking binaries / configs together and hope!
• Cattle vs Pets
• Don’t change it; replace it
• System created fully from automation; avoid drift
• Eliminate manual configuration/intervention
22. Cloud Native Architectures
Fuse Integration Services for OpenShift
• Set of tools for integration developers
• Build/package your Fuse/Camel services as Docker
images
• Run locally on CDK
• Deploy on top of OpenShift
• Plugs-in to your existing build/release ecosystem
(Jenkins/Maven/Nexus/Gitlab,etc)
23. Cloud Native Architectures
Fuse Integration Services for OpenShift
• Manage them with Kubernetes/OpenShift
• Flat-class loaders
• Take advantage of existing investment into Karaf with
additional options like “just enough app server”
deployments
• Supports Spring, CDI, Blueprint
25. Cloud Native Architectures
Using FIS on Red Hat CDK
• Small VM run locally by developers
• Full access to Docker, Kubernetes, OpenShift
• Deploy your suite of microservices with ease!
• Uses Vagrant/VirtualBox
• Getting Started on Windows! http://bit.ly/1U5xU4z
26. Cloud Native Architectures
Docker and Kubernetes
• Virtualized, isolated, containerized apps
• Lightweight packaging model (similar to git diffs)
• Immutability built in
• Cluster management
• start/stop/liveness/health, service discovery, dns,
routing
• Deploy applications using “reconciliation of state” vs
step-by-step scripting
27. Cloud Native Architectures
OpenShift
Higher level constructs on top of lower level abstractions
A PaaS built on native Docker/Kubernetes
Adds enterprise-necessary features
security
users/groups/permissions/quotas
source-to-image builds
autoscaling
deployment config
software defined networking out of the box
28. Cloud Native Architectures
Typical problems developing microservices
• How to run them all locally?
• How to package them
• How to test?
• Vagrant? VirtualBox? VMs?
• Specify configuration
• Process isolation
• Service discovery
• Multiple versions?
34. Christian Posta
Principal Middleware Specialist/Architect
Twitter: @christianposta
Blog: http://blog.christianposta.com
Email: christian@redhat.com
Questions
and
Discussion