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

Divide and Conquer: Send Forth The Microservices

Divide and Conquer: Send Forth The Microservices

Monolithic applications can be a powerful strategy in technical systems, but can crumble against certain opponents. Microservices combat those weaknesses using division and multiplication.
In this session, we will start with introductory application chatter and work our way to fully operational pipeline with microservices architecture. We will evaluate our solution for real business use, then take it to the field through live coding to see how it operates in real life.

10f2b035856eef2b59c02267e3ee9e63?s=128

Jennifer Reif

April 18, 2022
Tweet

More Decks by Jennifer Reif

Other Decks in Technology

Transcript

  1. Divide and Conquer: Send Forth the Microservices Jennifer Reif Email:

    jennifer.reif@neo4j.com Twitter: @JMHReif LinkedIn: linkedin.com/in/jmhreif Github: github.com/JMHReif Website: jmhreif.com
  2. Who Am I? • Developer + Advocate • Continous learner

    • Technical content writer • Conference speaker • Other: family, horses, books, cats Jennifer Reif Email: jennifer.reif@neo4j.com Twitter: @JMHReif LinkedIn: linkedin.com/in/jmhreif Github: github.com/JMHReif Website: jmhreif.com
  3. Monolith What is it? • Functionality in single app •

    Intentional or morphed over time • Pros: • One-and-done • Less communication • Cons: • Find/reuse code, Implement fi xes • Resource consumption, Handle failures Photo from Google Images
  4. Microservices What are they? • Small applications for limited/single function

    • Communicate necessary data • Pros: • Independent, Small footprint • Reliable, Scalable • Cons: • Testing, communication coordination • Additional layers/operations Photo from Google Images
  5. Note! Monolith vs microservices • Neither solution is a silver

    bullet • Simplicity and complexity exist in both! • ALSO, classi fi cation of micro services varies • Scope of functionality • Async vs sync communication • Level of automation
  6. Layer3 - client Layer2 - API Layer1 - database Docker-compose

    Demo architecture Service1 Service2 MongoDB - Goodreads
  7. Let’s Code!

  8. Where to go next? What could we do? • Polyglot

    - data stores • Messaging (async) - Kafka • Orchestration - Kubernetes • Testing - unit and integration • Scaling and monitoring - tool suites • Deployment - cloud services
  9. Resources Code and learning more… • Code (level 5): github.com/JMHReif/microservices-java

    • Blog: jmhreif.com/blog/ • Neo4j graph database: dev.neo4j.com/aura-java Jennifer Reif Email: jennifer.reif@neo4j.com Twitter: @JMHReif LinkedIn: linkedin.com/in/jmhreif Github: github.com/JMHReif Website: jmhreif.com