Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Microservices, Containers, Docker and a Cloud-Native Architecture in the Middleware World

41,987 views

Published on

Microservices are the next step after SOA: Services implement a limited set of functions. Services are developed, deployed and scaled independently. Continuous Integration and Continuous Delivery automate deployments. This way you get shorter time to results and increased flexibility. Containers improve these even more offering a very lightweight and flexible deployment option.

In the middleware world, you use concepts and tools such as an Enterprise Service Bus (ESB), Complex Event Processing (CEP), Business Process Management (BPM) or API Gateways. Many people still think about complex, heavyweight central brokers here. However, Microservices and containers are relevant not just for custom self-developed applications, but they are also a key requirement to make the middleware world more flexible, agile and automated.

This session discusses the requirements, best practices and challenges for creating a good Microservices architecture in the middleware world. A live demo with the open source PaaS framework CloudFoundry shows how technologies and frameworks such as Java, SOAP / REST Web Services, Jenkins and Docker are used to create an agile software development lifecycle to realize “Middleware Microservices”. It also discusses other modern cloud-native alternatives such as Kubernetes, Docker, Mesos, Mesosphere or Amazon ECS / AWS.

Published in: Technology
  • Be the first to comment

Microservices, Containers, Docker and a Cloud-Native Architecture in the Middleware World

  1. 1. Kai Wähner Technology Evangelist kwaehner@tibco.com LinkedIn / Xing @KaiWaehner www.kai-waehner.de April 2016 – JPoint Moscow, Russia Microservices and Containers in the Middleware World
  2. 2. © 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
  3. 3. © 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
  4. 4. © 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
  5. 5. © Copyright 2000-2016 TIBCO Software Inc. The Digital Transformation cannot be stopped!
  6. 6. © Copyright 2000-2016 TIBCO Software Inc. Evolving Demands from the Business AGILITY & SPEED REDUCED CYCLE TIMES WEB SCALE LOWER COST FAIL FAST
  7. 7. © 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
  8. 8. © 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
  9. 9. © 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
  10. 10. © 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?
  11. 11. © 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)
  12. 12. © 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/
  13. 13. © Copyright 2000-2016 TIBCO Software Inc. •  Integration •  Orchestration and Choreography •  APIs and Business Services •  Messaging •  Independent Deployments •  Scalable Platform •  Automation ESB in 2016
  14. 14. © 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
  15. 15. © 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
  16. 16. © Copyright 2000-2016 TIBCO Software Inc. Various Forms of Microservices Integration Service Monolith application SOA Integration Service Service ServiceService Service API Gateway SaaS Service BPM Service
  17. 17. © Copyright 2000-2016 TIBCO Software Inc. == The Momentum of Containers How to deploy independent Microservices? Garden / Warden
  18. 18. © 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
  19. 19. © Copyright 2000-2016 TIBCO Software Inc. Why Containers? http://www.slideshare.net/andersjanmyr/docker-the-future-of-devops
  20. 20. © Copyright 2000-2016 TIBCO Software Inc. “Build, Ship, and Run Any App, Anywhere” http://www.slideshare.net/ andersjanmyr/ docker-the-future-of-devops
  21. 21. © Copyright 2000-2016 TIBCO Software Inc. An Open Standard for Containers... https://www.opencontainers.org/
  22. 22. © 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
  23. 23. © 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...
  24. 24. © Copyright 2000-2016 TIBCO Software Inc. Cloud-Native Architecture Microservices and Containers are just the Foundation!
  25. 25. © 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
  26. 26. © 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
  27. 27. © 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
  28. 28. © 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
  29. 29. © 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)
  30. 30. © 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
  31. 31. © 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
  32. 32. © 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”)
  33. 33. © 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++
  34. 34. © Copyright 2000-2016 TIBCO Software Inc. What Cloud Native Solutions are available? Cloud Native Architecture
  35. 35. 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
  36. 36. 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
  37. 37. © 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
  38. 38. © 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
  39. 39. © Copyright 2000-2016 TIBCO Software Inc. Cloud Foundry
  40. 40. © Copyright 2000-2016 TIBCO Software Inc. Kubernetes (K8S) http://kubernetes.io/docs/getting-started-guides/#cloud
  41. 41. © Copyright 2000-2016 TIBCO Software Inc. Kubernetes on Google Cloud Platform
  42. 42. © Copyright 2000-2016 TIBCO Software Inc. Apache Mesos http://www.slideshare.net/Docker/building-web-scale-apps-with-docker-and-mesos/30
  43. 43. © 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!
  44. 44. © 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
  45. 45. © 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
  46. 46. © 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
  47. 47. © 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 IntegrationPaaS 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.
  48. 48. •  Web-based Integration •  “Edge-Services” •  “Citizen Developer” © Copyright 2000-2016 TIBCO Software Inc. SaaS Integration Middleware
  49. 49. © 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
  50. 50. © Copyright 2000-2016 TIBCO Software Inc. API Management Middleware TRAFFIC MANAGEMENT API PACKAGER SECURITY ANALYTICS API Gateway TRAFFIC MANAGEMENT ADVANCED SECURITY TRANSFORM PORTAL APIs APIPackaging andDistribution API Creation API Management
  51. 51. © 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
  52. 52. © 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
  53. 53. © 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”
  54. 54. © 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
  55. 55. © 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
  56. 56. Questions? Kai Wähner kwaehner@tibco.com @KaiWaehner www.kai-waehner.de LinkedIn / Xing à Please connect!

×