Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

The Plan OpenCNAM DEGGES,RANDALL 818-217-9229

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

Load Balancer Web Server Web Server Postgres Request

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

Problems :(

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

Web Server Postgres

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

Backend Request opencnam Backend Request opencnam-www Backend Request opencnam-auth

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

Backend Request opencnam-api Backend Request opencnam-www Backend Request opencnam-auth

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

What I’ve Learned

Slide 27

Slide 27 text

Small codebases are easier to work with.

Slide 28

Slide 28 text

Small codebases are easier to scale.

Slide 29

Slide 29 text

Small codebases are more fun.

Slide 30

Slide 30 text

You can write less code.

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

You’re the best! @rdegges @gostormpath