Slide 1

Slide 1 text

Kai Wähner Technology Evangelist [email protected] LinkedIn / Xing @KaiWaehner www.kai-waehner.de April 2016 – JPoint Moscow, Russia Microservices and Containers in the Middleware World

Slide 2

Slide 2 text

© Copyright 2000-2016 TIBCO Software Inc. •  A cloud-native architecture enables flexible and agile development •  Modern middleware leverages containers and Microservices •  Just using Jenkins and Docker is not enough Key Takeaways

Slide 3

Slide 3 text

© Copyright 2000-2016 TIBCO Software Inc. 1)  Digital Transformation 2)  Middleware 3)  Microservices and Containers 4)  A Cloud-Native Architecture 5)  Cloud Native Middleware 6)  Live Demo Agenda

Slide 4

Slide 4 text

© Copyright 2000-2016 TIBCO Software Inc. 1)  Digital Transformation 2)  Middleware 3)  Microservices and Containers 4)  A Cloud-Native Architecture 5)  Cloud Native Middleware 6)  Live Demo Agenda

Slide 5

Slide 5 text

© Copyright 2000-2016 TIBCO Software Inc. The Digital Transformation cannot be stopped!

Slide 6

Slide 6 text

© Copyright 2000-2016 TIBCO Software Inc. Evolving Demands from the Business AGILITY & SPEED REDUCED CYCLE TIMES WEB SCALE LOWER COST FAIL FAST

Slide 7

Slide 7 text

© Copyright 2000-2016 TIBCO Software Inc. 1)  Digital Transformation 2)  Middleware 3)  Microservices and Containers 4)  A Cloud-Native Architecture 5)  Cloud Native Middleware 6)  Live Demo Agenda

Slide 8

Slide 8 text

© Copyright 2000-2016 TIBCO Software Inc. “Middleware is computer software that provides services to software applications beyond those available from the operating system. It can be described as "software glue”. Middleware makes it easier for software developers to implement communication and input/output, so they can focus on the specific purpose of their application.” Wikipedia ( https://en.wikipedia.org/wiki/Middleware) Middleware

Slide 9

Slide 9 text

© Copyright 2000-2016 TIBCO Software Inc. •  Keywords PAST: Application Integration, EAI, Broker, Process, Application, Integration, Enterprise, Hub and Spoke, Backbone, Scalability, Platform, Batch •  Keywords PRESENT: Service Integration, Bus, SOA, BPM, Service, ESB, Flexibility, Distribution, Events, EDA, Real Time, Event Correlation, Open, Standards, Extensibility •  Keywords FUTURE: Integration of Everything, Gateway, iBPMS, Cloud, IoT, Microservice, API, Continuous Delivery, Self-Service, Prediction Middleware - Buzzwords

Slide 10

Slide 10 text

© Copyright 2000-2016 TIBCO Software Inc. „... ESB frameworks are generally characterized as heavyweight – complex, centralized and difficult...“ “Electronic Services: Concepts, Methodologies, Tools and Applications, Information“ - Science Reference (15. Juli 2010) Middleware – The Double Burden?

Slide 11

Slide 11 text

© Copyright 2000-2016 TIBCO Software Inc. Middleware Example: Enterprise Service Bus (ESB) An enterprise service bus (ESB) is a software architecture model used for designing and implementing communication between mutually interacting software applications in a service- oriented architecture (SOA). Its primary use is in enterprise application integration (EAI) of heterogeneous and complex landscapes. http://en.wikipedia.org/wiki/Enterprise_service_bus (Wikipedia, 2016)

Slide 12

Slide 12 text

© Copyright 2000-2016 TIBCO Software Inc. Is the ESB dead? #NoESB Gartner https://www.gartner.com/user/registration/webinar?resId=2855231&commId=128383&channelId=5500&srcId=null Akana (former SOA Software) https://blog.soa.com/noesb/

Slide 13

Slide 13 text

© Copyright 2000-2016 TIBCO Software Inc. •  Integration •  Orchestration and Choreography •  APIs and Business Services •  Messaging •  Independent Deployments •  Scalable Platform •  Automation ESB in 2016

Slide 14

Slide 14 text

© Copyright 2000-2016 TIBCO Software Inc. 1)  Digital Transformation 2)  Middleware 3)  Microservices and Containers 4)  A Cloud-Native Architecture 5)  Cloud Native Middleware 6)  Live Demo Agenda

Slide 15

Slide 15 text

© Copyright 2000-2016 TIBCO Software Inc. Microservices •  Suite of small services running in its own process •  Communication via lightweight mechanisms •  Built around business capabilities •  Independently deployable, written in different languages and using different data stores •  Bare minimum of centralized management à Shorter time to results and increased flexibility

Slide 16

Slide 16 text

© Copyright 2000-2016 TIBCO Software Inc. Various Forms of Microservices Integration Service Monolith application SOA Integration Service Service Service Service Service API Gateway SaaS Service BPM Service

Slide 17

Slide 17 text

© Copyright 2000-2016 TIBCO Software Inc. == The Momentum of Containers How to deploy independent Microservices? Garden / Warden

Slide 18

Slide 18 text

© Copyright 2000-2016 TIBCO Software Inc. A [Docker] container, unlike a virtual machine, does not require or include a separate operating system. Container use the resource isolation features of the Linux kernel such as kernel namespaces (isolates an application's view of the operating environment including process trees, network, user IDs and mounted file systems) and cgroups (provides resource limiting, including the CPU, memory, block I/O and network), and a union-capable filesystem such as aufs and others to allow independent "containers" to run within a single Linux instance, avoiding the overhead of starting and maintaining virtual machines. Key advantage for middleware: Lightweight and flexible development and deployment. Container 101

Slide 19

Slide 19 text

© Copyright 2000-2016 TIBCO Software Inc. Why Containers? http://www.slideshare.net/andersjanmyr/docker-the-future-of-devops

Slide 20

Slide 20 text

© Copyright 2000-2016 TIBCO Software Inc. “Build, Ship, and Run Any App, Anywhere” http://www.slideshare.net/ andersjanmyr/ docker-the-future-of-devops

Slide 21

Slide 21 text

© Copyright 2000-2016 TIBCO Software Inc. An Open Standard for Containers... https://www.opencontainers.org/

Slide 22

Slide 22 text

© Copyright 2000-2016 TIBCO Software Inc. 1)  Digital Transformation 2)  Middleware 3)  Microservices and Containers 4)  A Cloud-Native Architecture 5)  Cloud Native Middleware 6)  Live Demo Agenda

Slide 23

Slide 23 text

© Copyright 2000-2016 TIBCO Software Inc. •  scalable services •  resiliency •  automatic load balancing and failover •  DevOps •  usage public cloud platforms, but also private or hybrid •  vendor-agnostic deployment •  shorter time to results and increased flexibility à Focus on business problems Cloud Native enables...

Slide 24

Slide 24 text

© Copyright 2000-2016 TIBCO Software Inc. Cloud-Native Architecture Microservices and Containers are just the Foundation!

Slide 25

Slide 25 text

© Copyright 2000-2016 TIBCO Software Inc. •  Microservices and Containers [as discussed…] •  Continuous Integration and Continuous Delivery •  Scripting / Automatic Test and Deployment •  Service Discovery •  Dynamic Distributed Configuration Management •  Scalability and Failover •  Cluster Management (Scheduling and Orchestration) •  Load Balancing (Server-side and Client-side) •  Resilience Design Patterns •  Cloud Native Platform •  Self-Service Agile Infrastructure •  Private / Public / Hybrid PaaS Requirements for a Cloud-Native Architecture

Slide 26

Slide 26 text

© Copyright 2000-2016 TIBCO Software Inc. Continuous Integration and Continuous Delivery http://en.wikipedia.org/wiki/Continuous_delivery BENEFITS •  Accelerated Time to Market •  Building the Right Product •  Improved Productivity and Efficiency •  Reliable Releases •  Improved Product Quality •  Improved Customer Satisfaction Build Management •  Ant, Maven, Gradle, … Continuous Integration •  Jenkins, Bamboo, … Continuous Delivery •  Chef, Puppet, Salt, … Scripting / Automatic Test and Deployment

Slide 27

Slide 27 text

© Copyright 2000-2016 TIBCO Software Inc. Continuous Integration and Continuous Delivery Internal Service Discovery for a Scalable Runtime https://docs.pivotal.io/spring-cloud-services/service-registry/ Service Registry •  Eureka •  Apache Zookeeper •  Consul •  Etcd Cluster Frameworks with implicit Service Registry •  Kubernetes •  Mesos Marathon •  Amazon AWS ELB PaaS Cloud Platforms reusing an existing Service Registry •  Pivotal Cloud Foundry is based on Eureka

Slide 28

Slide 28 text

© Copyright 2000-2016 TIBCO Software Inc. Continuous Integration and Continuous Delivery External Service Discovery for an “Open API” Examples for API Management: JBoss apiman, Apigee, Akana, Layer7, TIBCO Mashery

Slide 29

Slide 29 text

© Copyright 2000-2016 TIBCO Software Inc. Continuous Integration and Continuous Delivery But: “BfF can become an anti-pattern if you have too many distinct consumers to please, especially if you’ve got only a small team to take care of all those front ends. Be sure to do the math! http://www.infoq.com/articles/api-facades, Guillaume Laforge http://samnewman.io/patterns/architectural/bff , Sam Newman API Management – Backends for Frontends (BfF)

Slide 30

Slide 30 text

© Copyright 2000-2016 TIBCO Software Inc. Continuous Integration and Continuous Delivery Dynamic Distributed Configuration Management Features •  Effect changes dynamically at runtime •  Change multi-dimensional properties based on a complex request or deployment context •  Enable / disable features based on request context Examples •  Netflix’ Archaius •  Spring Cloud Config Spring Cloud http://www.infoworld.com/article/2925047/application-development/ build-self-healing-distributed-systems-with-spring-cloud.html

Slide 31

Slide 31 text

© Copyright 2000-2016 TIBCO Software Inc. Scalability and Failover Cluster Management (Scheduling and Orchestration) Features •  Orchestrate container scheduling and managing hosts •  Applying rules and constraints to hosts •  Designed to be fault-tolerant and scalable Examples •  Swarm (Docker-native) •  Fleet (CoreOS’ low-level framework) •  Kubernetes (open source’d by Google) •  Adopted by others (IBM, Red Hat, Microsoft …) •  Mesos’ Marathon (powerful, but complex) •  For large scale; multi-use (e.g. Containers, Hadoop) https://www.oreilly.com/ideas/swarm-v-fleet-v-kubernetes-v-mesos https://www.digitalocean.com/community/tutorials/the-docker-ecosystem-an-introduction-to-common-components

Slide 32

Slide 32 text

© Copyright 2000-2016 TIBCO Software Inc. Scalability and Failover Server-side and Client-side Load Balancing (LB) Features •  Distributes network or application traffic across a number of servers •  Increase capacity and reliability of applications •  Why Client-Side LB? à Inter-Service-Communication (1 instead of 2 hops) Examples •  F5 (Server-side LB) •  AWS ELB (Server-side LB) •  Netflix’ Ribbon (Client-side LB) www.devcentral.f5.com http://www.javaworld.com/article/2927920/cloud-computing/build-self-healing-distributed-systems-with-spring-cloud.html Server-Side LB (for “Edge Services”) Client-Side LB (for “Mid-Tier Services”)

Slide 33

Slide 33 text

© Copyright 2000-2016 TIBCO Software Inc. Scalability and Failover Resilience Design Patterns Features •  Fail fast and rapidly recover •  Prevent cascading failures •  Latency tolerance logic •  Fault tolerance logic •  Fallback Options Examples •  Netflix’ Hystrix •  Akka http://martinfowler.com/bliki/CircuitBreaker.html https://github.com/Netflix/Hystrix/wiki Circuit Breaker maxFailures = 5 resetTimeout = 1min callTimeout = 10s à maxFailures++

Slide 34

Slide 34 text

© Copyright 2000-2016 TIBCO Software Inc. What Cloud Native Solutions are available? Cloud Native Architecture

Slide 35

Slide 35 text

Cloud Native Platform (Infrastructure-as-a-Service) Choose your IaaS Private or Hybrid Cloud Reduced costs of Infra Self-hosted & Controlled Env Servers Storage Network IaaS

Slide 36

Slide 36 text

Cloud Native Platform (Platform-as-a-Service) Choose your PaaS / Container Cloud-Native App Dev Self-service agile infrastructure Elasticity & Scalability OS & Containers Scalability Routing Logging / Monitoring PaaS

Slide 37

Slide 37 text

© Copyright 2000-2016 TIBCO Software Inc. Cloud Native Platform Choose your IaaS Choose your PaaS / Container Private or Hybrid Cloud Cloud-Native App Dev Reduced costs of Infra Self-service agile infrastructure Self-hosted & Controlled Env Elasticity & Scalability Servers Storage Network OS & Containers Scalability Routing Logging / Monitoring PaaS IaaS

Slide 38

Slide 38 text

© Copyright 2000-2016 TIBCO Software Inc. PaaS Platforms on top of IaaS in 2016 What container and PaaS tools are used to manage OpenStack applications? OpenStack Survey, April 2016: http://www.openstack.org/assets/survey/April-2016-User-Survey-Report.pdf

Slide 39

Slide 39 text

© Copyright 2000-2016 TIBCO Software Inc. Cloud Foundry

Slide 40

Slide 40 text

© Copyright 2000-2016 TIBCO Software Inc. Kubernetes (K8S) http://kubernetes.io/docs/getting-started-guides/#cloud

Slide 41

Slide 41 text

© Copyright 2000-2016 TIBCO Software Inc. Kubernetes on Google Cloud Platform

Slide 42

Slide 42 text

© Copyright 2000-2016 TIBCO Software Inc. Apache Mesos http://www.slideshare.net/Docker/building-web-scale-apps-with-docker-and-mesos/30

Slide 43

Slide 43 text

© Copyright 2000-2016 TIBCO Software Inc. SaaS – “The Other” Cloud Native Alternative https://www.linkedin.com/pulse/saas-vs-paas-iaas-ultimate-guide-when-use-what-sonia-patel … you have no control! You “just” use the service!

Slide 44

Slide 44 text

© Copyright 2000-2016 TIBCO Software Inc. “Containers as a service (CaaS) is a form of container-based virtualization in which container engines, orchestration and the underlying compute resources are delivered to users as a service from a cloud provider. The basic resource for CaaS is a container, rather than a virtual machine (VM) or a bare metal hardware host system” http://searchcloudcomputing.techtarget.com/definition/Containers-as-a-Service-CaaS Container-as-a-Service

Slide 45

Slide 45 text

© Copyright 2000-2016 TIBCO Software Inc. 1)  Digital Transformation 2)  Middleware 3)  Microservices and Containers 4)  A Cloud-Native Architecture 5)  Cloud Native Middleware 6)  Live Demo Agenda

Slide 46

Slide 46 text

© Copyright 2000-2016 TIBCO Software Inc. Some Middleware examples Integration Services / APIs, Integration, Orchestration Log Management Monitor distributed Microservices in a central way API Management Publish and Monetize Microservices (internal, partner, public) Event Processing Correlation of Microservices events in real time All the above Middleware components … •  require agility and flexiblity •  control and leverage other Microservices •  have to support Microservice characteristics itself (Containers, CI / CD, Elastic Scalability, etc.) to fit into a cloud-native architecture Microservices and Containers in the Middleware World

Slide 47

Slide 47 text

© Copyright 2000-2016 TIBCO Software Inc. PaaS Integration Middleware Backend Legacy Apps ESB & Common Services Integration Apps & Services Functional Microservices Omnichannel client apps Microservices (Node/Java/Python) Microservices (Node/Java/Python) Microservices (Node/Java/Python) API
 Choreography Integration PaaS Functional Microservices Build focused business functionality-oriented apps without getting into code complexity API Choreography Visually choreograph APIs leveraging the PaaS Integration Tooling (e.g. data mapper, connectors) Integration Apps & Services Build consumable Web APIs out of backend web services like SOAP, SAP, Oracle, IBM MQ, etc.

Slide 48

Slide 48 text

•  Web-based Integration •  “Edge-Services” •  “Citizen Developer” © Copyright 2000-2016 TIBCO Software Inc. SaaS Integration Middleware

Slide 49

Slide 49 text

© Copyright 2000-2016 TIBCO Software Inc. Log Management Middleware Opera'onal Intelligence Pla1orm ü  Centralize and Store of Record ü  Search, Auto-id, OOTB Parsing, Correla'on ü  Forensics and Alerts ü  Reports Sensors Applica'on Logs Transac'ons Monitoring Configura'on Messaging Streaming Analy'cs Data Discovery WEB UI WS API Analysis Tools

Slide 50

Slide 50 text

© Copyright 2000-2016 TIBCO Software Inc. API Management Middleware TRAFFIC MANAGEMENT API PACKAGER SECURITY ANALYTICS API Gateway TRAFFIC MANAGEMENT ADVANCED SECURITY TRANSFORM PORTAL APIs API Packaging and Distribution API Creation API Management

Slide 51

Slide 51 text

© Copyright 2000-2016 TIBCO Software Inc. Event Processing Middleware Voltage Temperature Vibration Device history Temporal analytic: “If vibration spike is followed by temp spike then voltage spike [within 12 minutes] then flag high severity alert.” Correlation of Microservice Events in Real Time

Slide 52

Slide 52 text

© Copyright 2000-2016 TIBCO Software Inc. 1)  Digital Transformation 2)  Middleware 3)  Microservices and Containers 4)  A Cloud-Native Architecture 5)  Cloud Native Middleware 6)  Live Demo Agenda

Slide 53

Slide 53 text

© Copyright 2000-2016 TIBCO Software Inc. Cloud Native Middleware Architecture for the Live Demo TIBCO ESB Gateway App BW CE App BW CE App Cloud Foundry BW6 Node App Spring App Gateway App Partner App .com Web App Android App iPhone App EMS MongoDB ROUTER CONTROLLER HEALTH MGR NATS LOGGING SVC BROKER BW CE App Java App eFTL SaaS PaaS “Legacy”

Slide 54

Slide 54 text

© Copyright 2000-2016 TIBCO Software Inc. Live Demo •  Cloud (PaaS, Microservices, Container) •  IDE (REST, APIs, Integration) •  Administration (Deployment, Versioning) •  Operations (Failover, Scalability, Log Management) •  Log Management (Distributed Search and Correlation) •  Open API (Packaging, External Discovery) Cloud-Native Middleware with Pivotal Cloud Foundry, Docker, Kubernetes, TIBCO BusinessWorks Container Edition, TIBCO Mashery and Papertrail

Slide 55

Slide 55 text

© Copyright 2000-2016 TIBCO Software Inc. •  A cloud-native architecture enables flexible and agile development •  Modern middleware leverages containers and Microservices •  Just using Jenkins and Docker is not enough Key Takeaways

Slide 56

Slide 56 text

Questions? Kai Wähner [email protected] @KaiWaehner www.kai-waehner.de LinkedIn / Xing à Please connect!