Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Microservices Runtimes

643cd45dcfa73b072018046e39ed36d1?s=47 Frank Munz
November 14, 2017

Microservices Runtimes

Main issues with microservices and solving one of them: runtimes (WebLogic with Multi Tenancy, Docker Swarm / Kubernetes, Oracle Application Container Cloud Service ACCS, Oracle Container Cloud Service OCCS)

643cd45dcfa73b072018046e39ed36d1?s=128

Frank Munz

November 14, 2017
Tweet

More Decks by Frank Munz

Other Decks in Technology

Transcript

  1. munz & more Microservices Runtimes DOAG 2017 Dr. Frank Munz

  2. 2 Dr. Frank Munz • Founded munz & more in

    2007 • 17 years Oracle Middleware, Cloud, and Distributed Computing • Consulting and High-End Training • Wrote two Oracle WLS and one Cloud book
  3. Microservices

  4. Microservices Developing a single application as • a suite of

    small services • each running in its own process / owns it‘s data • communicating with lightweight mechanisms (Definition: M. Fowler / J. Lewis) https://martinfowler.com/articles/microservices.html
  5. munz & more #5 How to Build?

  6. Designing a Microservices Arch? munz & more #6

  7. „… consider starting monolithic first …” munz & more #7

    Sam Newman:
  8. Come on. So what does help? CC Wheezy Jefferson https://flic.kr/p/4KPFA

  9. Eric Evans describes “bounded contexts” in his DDD book. munz

    & more #9 published 2003 -> CDM is the opposite of a “bounded context” (see S. Tilkov)
  10. 4950 Calories

  11. Efficient teams look like this: #11

  12. https://www.thoughtworks.com/de/radar/techniques/inverse-conway-maneuver

  13. Communication (Overhead) Göran Johansson CC Atrib https://flic.kr/p/FZy6wo

  14. Cost? DB1 μ1 DB2 μ2 direct call ? REST?/Kafka Process

    {apiGW}
  15. What if microservices were 300x slower than your monolith? munz

    & more #15
  16. Rough Approximation network call / local call munz & more

    #16
  17. Communication Overhead 3.000.000 x munz & more #17

  18. But networks get a bit faster munz & more #18

    https://read.acloud.guru/evolution-of-business-logic-from-monoliths-through-microservices-to-functions-ff464b95a44d
  19. Infrastructure Complexity

  20. Runtimes DB1 μ1 DB2 μ2 {apiGW}

  21. Which Runtime Environment? Stephane Kempinaire - http://www.mynewsdesk.com/se/puma-nordic/images/puma-aw14_ff_bolt-325510

  22. Microservices Runtimes

  23. Know The Essential Cloud Services ACCS JCS OCCS Deploy compiled

    Java, Python, Ruby code + JSON file: start command Deploy Java EE module, JMS, JDBC, XA. + db and storage Deploy (stack of) Docker containers Language container as service WebLogic as Service Docker container as Service Oracle Container CS Java CS Application Container CS
  24. Application Container Cloud Service

  25. None
  26. ACCS • Polyglot: Java, node.js, PHP, Python, Go and Ruby

    • Java: Upload compiled zipped Java classes + JSON file with start command • Now also Java EE • Easy to deploy and operate • Lightweight: deployments run in containers Polyglot, easy to use microservices runtime
  27. Java CS

  28. Create JCS munz & more #28

  29. Java CS • Multi-module deployment is not a microservice architecture.

    • WebLogic Partitions: – share same JVM… – Dependancy on admin server • Standalone Multi-server topologies could serve as microservices runtime – Full Java EE -> heavy infrastructure / footprint – Licensing munz & more #29 WLS a.war b.war a.war WLS P1 P2 a.war WLS WLS b.war a.war Multi module deployment WebLogic Partitions Multi-server topology Not really a microservices runtime
  30. Docker based Runtimes

  31. Kubernetes

  32. K8s • YAML configuration • Pod: Container(s) sharing IP, network,

    filesystem – IP is ephemeral – Uses Labels • Replication Controller -> Replica Set – Manages PODs (restarts replicas based on labels) • Services – Proxy for pod – Permanent IP munz & more #32
  33. Welcome Mini J

  34. Google Kubernetes munz & more #34

  35. Docker Containers in Kubernetes munz & more #35

  36. Docker Swarm

  37. Docker Swarm munz & more #37

  38. Swarm vs. Kubernetes Swarm … • Wasn’t impressive when released,

    but this has changed • Is easier to understand and to operate • Covers a lot of what K8s does, but K8s is the trend • Only secure mode – automatic TLS certs • Is built-in and tightly linked to Docker API munz & more #38 Docker Swarm & K8s: flexible microservices RT, but bring operational complexity
  39. Oracle Container Cloud Service (OCCS)

  40. OCCS munz & more #40

  41. OCCS • OCCS = Oracle’s container cloud service • Abstracts

    away complexity of Kubernetes or Docker Swarm – Neither based on Swarm nor Kubernetes • Uses service concept like in Swarm • Integrates with Docker Hub, Wercker, Developer CS • Allows deployment of stacks • PaaS: Very easy to use (e.g. docker run …) munz & more #41 Docker based microservices runtime. Easier to operate than Swarm or Kubernetes.
  42. Function as a Service AWS Example used here. Fn Project

    was open sourced Java One 2017
  43. Edit Code / Upload munz & more #43 event: event

    passed to function context: runtime context callback: optional return (or null) Auto scaling, True pay per invocation Stateless, and Event based. Vendor lock-in?
  44. Fn Project • Apache 2, Open Source Java One 2017

    • Fn Server (micro API GW), LB, Flow • Function / Container duality • Docker is only dependency -> polyglot @frankmunz
  45. munz & more #45 Is the new μ ? FaaS:

    Fullfill microservices criteria. Low price, automatic scaling. Vendor lock-in?
  46. Microservices Runtimes Oracle JCS Oracle ACCS Swarm Kubernetes Oracle OCCS

    FaaS Docker Polyglot No Yes Yes Yes Yes Yes Size infrastructure L/XL S S S S XS Complexity L S M XL S XS Elasticity auto easy scale scale scale easy scale auto Stateless No (Yes) Yes Yes Yes Yes Event based No No No No No Yes
  47. Successful Microservices • Uber, Netflix etc. • Fully automated CI

    / CD • Automated testing • Sometimes polyglot • Top notch devops teams • Large scale, single purpose apps • Extensive monitoring munz & more #47
  48. TL;DR #microservices #runtimes Are you tall enough J? / Tradeoff:

    flexibility vs simplicity / ACCS is easy, lightweight & polyglot and now Java EE / Docker RT Complexity: Kubernetes > Swarm > OCCS / FaaS: true pay per invocation & automated scale & stateless / Microservices > FaaS / K8s is THE trend @frankmunz
  49. www.linkedin.com/in/frankmunz/ www.munzandmore.com/blog facebook.com/cloudcomputingbook facebook.com/weblogicbook @frankmunz youtube.com/weblogicbook -> more than 50

    web casts Don’t be shy J Graphics on title page by M. Fowler https://martinfowler.com/articles/microservices/images/sketch.png