Slide 1

Slide 1 text

Evolving from a monolithic to a distributed public API - API Days 2012

Slide 2

Slide 2 text

Chris O'Dell Current API Team Lead Developer @ChrisAnnODell Hibri Marzook Senior Developer/ Former API Team Lead @Hibri

Slide 3

Slide 3 text

• Providers of open access to the broadest catalogue of fully licensed, high quality digital music • Over 22 million legal, high quality tracks • Open to consumers, partners and developers Who are 7digital?

Slide 4

Slide 4 text

• Started as a side project providing access to our catalogue • Features driven by client demand • A single monolithic API application • Written in C# .Net WebForms • Lots of shared libraries with other applications • Single team working on the API Where we came from

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

How do we scale ?

Slide 7

Slide 7 text

• Architectural shift to SOA-ish • Make monolithic API route to smaller focussed internal APIs. Changing for scale

Slide 8

Slide 8 text

• Move code from main API codebase to new internal APIs. • Rewrite where possible • External consumers did not see any change in behaviour • Slow evolution, not a big rewrite. Making the change

Slide 9

Slide 9 text

• Smaller, focused teams • Assigned Product Managers for each product and team • Reduced size of work items • Introduced Kanban • Change technology stack behind the public facing API Changing how we work

Slide 10

Slide 10 text

• Shared libraries gradually being replaced by internal APIs • A skeleton of the monolith remains as the public façade for routing requests • Able to deploy each API individually • Each API can employ specific caching and scaling strategies • Independent and multiple technology stacks – Windows & Linux • More chaos. Where we are now

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

How do we deal with the chaos ?

Slide 13

Slide 13 text

• Increase testability. • Small projects with little code are easier to build and maintain. • Invested in time and tools to automate build and deployment. • We now have single click deployment. • We average 50 production releases in a week • Changes can be tested and deployed in under an hour • Metrics. Measure things. We use NewRelic and Statsd Limit the impact of chaos

Slide 14

Slide 14 text

We build our own applications using the API • 7digital.com, built by internal teams • Mobile apps built by 3rd parties working for us • Dev teams focus on building the platform Dogfooding

Slide 15

Slide 15 text

We don't build internal tools - we build APIs

Slide 16

Slide 16 text

• Tools are built on top of APIs • Every business process can now be monetized • Don't implement an API until it is needed Build the platform

Slide 17

Slide 17 text

• Language and platform agnostic • Gave us more breadth and exposure across the market. • Open protocols, HTTP, OAuth 1.0 (yes we hate it too) • https://github.com/7digital Open Platform, Open Source

Slide 18

Slide 18 text

We are not a startup any more

Slide 19

Slide 19 text

Samsung, Microsoft, Blackberry and many more... Who is building on our open platform

Slide 20

Slide 20 text

Interested in working with us ? - or learning more ? Come talk to us Sign up for a free public API Key - http://developer.7digital.net/ We are hiring - http://about.7digital.com/jobs/ @ChrisAnnODell @Hibri