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

Microservices Runtimes

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)

Frank Munz

November 14, 2017
Tweet

More Decks by Frank Munz

Other Decks in Technology

Transcript

  1. 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. 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. 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. 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. 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. 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
  7. 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
  8. 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
  9. 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
  10. 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.
  11. 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?
  12. 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
  13. munz & more #45 Is the new μ ? FaaS:

    Fullfill microservices criteria. Low price, automatic scaling. Vendor lock-in?
  14. 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
  15. 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
  16. 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
  17. 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