Integration in the age of DevOps

32
Integration in the Age of DevOps Albert Wong [email protected]

Transcript of Integration in the age of DevOps

Page 1: Integration in the age of DevOps

Integration in the Age of DevOps

Albert [email protected]

Page 2: Integration in the age of DevOps

Cloud Native Architectures

Page 3: Integration in the age of DevOps

• Trying to incorporate new technology?• Trying to copy what others (Netflix, Amazon) 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

Page 4: Integration in the age of DevOps

Cloud Native Architectures

• Faster software delivery• Own database (data)• Faster innovation• Scalability• Right technology for the

problem• Test individual services• Isolation• Individual deployments

Microservices helps solve the problem of “how do we decouple our services and teams to move quickly at scale to deliver business value”

Page 5: Integration in the age of DevOps

• If my services are isolated at the process level, I’m doing #microservices

I’m doing microservices if…

• If I use REST/Thrift/ProtoBuf instead of SOAP, I’m doing #microservices

• If I use JSON, I’m doing #microservices

• If I use Docker / SpringBoot / Dropwizard / embedded Jetty, I’m doing #microservices

Page 6: Integration in the age of DevOps
Page 7: Integration in the age of DevOps

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

Page 8: Integration in the age of DevOps

Cloud Native ArchitecturesIf we have to take into account the network, do we still need integration?

Page 9: Integration in the age of DevOps

Cloud Native ArchitecturesWe’ll just do reactive, event-driven distributed systems… still need integration?

Page 10: Integration in the age of DevOps

Cloud Native Architectures

Yes; we need reliable integration!• REST, RPC• Messaging (ActiveMQ, JMS, AMQP, STOMP, Kafka,

etc)• Legacy (SOAP, mainframe, file processing,

proprietary)• Managed file processing• Streaming• Message transformation• EIPs

Page 11: Integration in the age of DevOps

Heavy Lifting: Apache Camel for Microservices

Page 12: Integration in the age of DevOps

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”)

Page 13: Integration in the age of DevOps

• “Smart endpoints, dumb pipes”• Endpoint does one thing well • Metadata used for further routing• Really “dynamic” with rules engine (eg,

Drools/BRMS)

Apache Camel features easy to use visual editorDynamic Routing

Page 14: Integration in the age of DevOps

Apache Camel features easy to understand configREST DSLpublic class OrderProcessorRouteBuilder extends RouteBuilder {

@Override public void configure() throws Exception {

rest().post(“/order/socks”).description(“New Order for pair of socks”).consumes(“application/json”).route()

.to(“activemq:topic:newOrder”) .log(“received new order ${body.orderId}”)

.to(“ibatis:storeOrder?statementType=Insert”); }}

Page 15: Integration in the age of DevOps

Cloud Native Architectures

Page 16: Integration in the age of DevOps

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?

Page 17: Integration in the age of DevOps

Cloud Native ArchitecturesShared 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

Page 18: Integration in the age of DevOps
Page 19: Integration in the age of DevOps

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

Page 20: Integration in the age of DevOps

Docker / Linux Containers

Page 21: Integration in the age of DevOps

Kubernetes

Page 22: Integration in the age of DevOps

• Developer focused workflow• Enterprise ready• Higher level abstraction above containers for

delivering technology and business value• Build/deployment triggers• Software Defined Networking (SDN)• Docker native format/packaging• CLI/Web based tooling

OpenShift

Page 23: Integration in the age of DevOps

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)

• Manage them with Kubernetes/OpenShift

• Flat class loader JVMs• Take advantage of existing

investment into Karaf with additional options like “just enough app server” deployments

• Supports Spring, CDI, Blueprint

• 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 Linux,

Mac or Windows!

http://bit.ly/1U5xU4z

Page 24: Integration in the age of DevOps

Cloud Native Architectures

Page 25: Integration in the age of DevOps

RED HAT JBOSS FUSE

Development and tooling

Develop, test, debug, refine, deploy

JBoss Developer Studio

Web services frameworkWeb services standards, SOAP,

XML/HTTP, RESTful HTTP

Integration frameworkTransformation, mediation, enterprise

integration patterns

Management and monitoring

System and web services metrics, automated discovery,

container status, automatic updates

JBoss Operations Network

+ JBoss Fabric

Management Console (hawtio)

Apache CXF Apache Camel

Reliable MessagingJMS/STOMP/NMS/MQTT, publishing-subscribe/point-2-point, store and forward

Apache ActiveMQ

ContainerLife cycle management, resource management, dynamic deployment,

security and provisioning

Apache Karaf + Fuse Fabric

RED HAT ENTERPRISE LINUXWindows, UNIX, and other Linux

Page 26: Integration in the age of DevOps

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?

Page 27: Integration in the age of DevOps

Cloud Native Architectures

Page 28: Integration in the age of DevOps

Cloud Native Architectures

Quick Demo?

Page 29: Integration in the age of DevOps

• Trying to incorporate new technology?• Trying to copy what others (Netflix, Amazon) 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

Page 30: Integration in the age of DevOps

• 100% open source, ASL 2.0• Technology agnostic (java,

nodejs, python, golang, etc)• Built upon decades of

industry practices• 1-click automation• Cloud native (on premise,

public cloud, hybrid)• Complex build/deploy

pipelines (human workflows, approvals, chatops, etc)

• Comprehensive integration inside/outside the platform

What if you could do all of this right now with an open-source platform?

Page 31: Integration in the age of DevOps

• Docker native, built on top of Kubernetes API

• Out of the box CI/CD, management UI

• Logging, Metrics• ChatOps• API Management• iPaaS/Integration• Chaos Monkey• Lots and lots of

tooling/libraries to make developing cloud-native applications easier

http://fabric8.io

Page 32: Integration in the age of DevOps

Cloud Native Architectures

Quick Demo?