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

Learning to Love SOA

Learning to Love SOA

A story about programming big things.

Randall Degges

September 25, 2014
Tweet

More Decks by Randall Degges

Other Decks in Programming

Transcript

  1. A story about programming big things.
    Learning to Love SOA
    @rdegges @gostormpath

    View Slide

  2. I’m Randall Degges
    Developer Evangelist at
    Stormpath
    Python / Node / Go
    Hacker

    View Slide

  3. View Slide

  4. CNAM?
    Incoming Call:
    818-217-9229
    DEGGES,RANDALL

    View Slide

  5. The Plan
    OpenCNAM
    DEGGES,RANDALL
    818-217-9229

    View Slide

  6. Mike: So… Wanna build it?
    Me: Sure… Why not?

    View Slide

  7. View Slide

  8. Monolithic Architecture
    A single codebase that is
    responsible for handling all
    site functionality.

    View Slide

  9. Service Oriented Architecture
    Many codebases that each
    do one thing and one thing
    only.

    View Slide

  10. opencnam
    Github Repos ● Public facing website.
    ● Developer API.
    ● Developer documentation.
    ● Billing logic.
    ● Email stuff.
    ● Telephony interconnect.
    Monolithic App

    View Slide

  11. Load Balancer
    Web Server Web Server
    Postgres
    Request

    View Slide

  12. View Slide

  13. View Slide

  14. Problems :(

    View Slide

  15. View Slide

  16. opencnam-www
    Rendering templates.
    Sending POST requests to my
    backend.
    Decoupling the Front End

    View Slide

  17. Load Balancer
    Web Server
    Postgres
    Request
    opencnam
    Load Balancer
    Web Server
    Request
    opencnam-www

    View Slide

  18. View Slide

  19. Web Server
    Postgres

    View Slide

  20. opencnam-auth
    ● Create users.
    ● Edit users.
    ● Delete users.
    Decoupling the Users

    View Slide

  21. Backend
    Request
    opencnam
    Backend
    Request
    opencnam-www
    Backend
    Request
    opencnam-auth

    View Slide

  22. View Slide

  23. opencnam-api
    ● Telephony logic.
    ● API logs.
    ● API cache.
    Decoupling the API

    View Slide

  24. Backend
    Request
    opencnam-api
    Backend
    Request
    opencnam-www
    Backend
    Request
    opencnam-auth

    View Slide

  25. opencnam-billing
    opencnam-www opencnam-auth
    opencnam-api
    OpenCNAM Services
    opencnam-logs opencnam-stats

    View Slide

  26. What I’ve Learned

    View Slide

  27. Small codebases are
    easier to work with.

    View Slide

  28. Small codebases are
    easier to scale.

    View Slide

  29. Small codebases are
    more fun.

    View Slide

  30. You can write
    less code.

    View Slide

  31. The hardest thing
    about SOA is...
    opencnam-auth

    View Slide

  32. ● User account storage /
    encryption.
    ● Authentication.
    ● Authorization.
    ● REST API management.
    ● Social login.
    End
    User
    Your Webserver
    Stormpath API
    Stormpath

    View Slide

  33. You’re the best!
    @rdegges
    @gostormpath

    View Slide