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

Transcript

  1. 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
  2. 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
  3. 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)
  4. 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
  5. 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
  6. 25.
  7. 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
  8. 27.
  9. 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
  10. 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
  11. 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
  12. 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.
  13. 42.
  14. 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?
  15. 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
  16. 45.

    munz & more #45 Is the new μ ? FaaS:

    Fullfill microservices criteria. Low price, automatic scaling. Vendor lock-in?
  17. 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
  18. 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
  19. 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
  20. 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