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.

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: [email protected]
    Twitter: @JMHReif
    LinkedIn: linkedin.com/in/jmhreif
    Github: github.com/JMHReif
    Website: jmhreif.com

    View Slide

  2. Who Am I?
    • Developer + Advocate

    • Continous learner

    • Technical content writer

    • Conference speaker

    • Other: family, horses, books, cats
    Jennifer Reif
    Email: [email protected]
    Twitter: @JMHReif
    LinkedIn: linkedin.com/in/jmhreif
    Github: github.com/JMHReif
    Website: jmhreif.com

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  6. Layer3 - client
    Layer2 - API
    Layer1 - database
    Docker-compose
    Demo architecture
    Service1
    Service2
    MongoDB - Goodreads

    View Slide

  7. Let’s Code!

    View Slide

  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

    View Slide

  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: [email protected]
    Twitter: @JMHReif
    LinkedIn: linkedin.com/in/jmhreif
    Github: github.com/JMHReif
    Website: jmhreif.com

    View Slide