Presentation is loading. Please wait.

Presentation is loading. Please wait.

Scalable Systems Using Micro- RESTful Services SILICON VALLEY CODE CAMP OCTOBER 6 TH, 2013 by Ted M. Young

Similar presentations


Presentation on theme: "Scalable Systems Using Micro- RESTful Services SILICON VALLEY CODE CAMP OCTOBER 6 TH, 2013 by Ted M. Young"— Presentation transcript:

1 Scalable Systems Using Micro- RESTful Services SILICON VALLEY CODE CAMP OCTOBER 6 TH, 2013 by Ted M. Young http://about.me/tedmyoung Twitter: @jitterted

2 What to expect this session The Problem An Architectural Solution Our Proof of Concept

3 The Problems

4 Monolithic

5 Layered Architecture PlatformBusiness LogicUIAPIs Batch Biz Logic

6 Tight-Coupling

7 Complexity

8 Many Responsibilities

9 Scalability Limitations

10 RPC-Based APIs are Brittle

11 The Architecture Cube and Micro-Services SERVICES PER FEATURE INTEGRATED USING REST

12 From "The Art of Scalability" (Figure 12.3) Architectural Principles

13 Scalability Cube From "The Art of Scalability" (Figure 23.1)

14 Layered Architecture (Traditional)

15 Onion (Clean) Architecture

16 System Architecture Task Management Service Commission Service Billing and Payment Service User Management Service Agent Management Service

17 Service Architecture

18 The Unix Philosophy Write programs that do one thing and do it well. Write programs to work together. Write programs that handle text streams, because that is a universal interface. - Lions' Commentary on Unix

19 Fits in your head

20 Hypermedia (REST) Resource-oriented Flexible in face of change User-facing clients leverage links Async and Stateless services

21 Proof of Concept OUR SUMMER EXPERIMENT

22 Tech Stack Dropwizard services AngularJS UI Client Jenkins + Maven (Nexus) deployment Custom Dashboard

23 Dropwizard Jetty for HTTP Jersey for REST (and HttpClient) Jackson for JSON Metrics (includes Healthcheck) for monitoring Logback/slf4j for logging Other useful libraries Guava, JDBI, Liquibase, Freemarker, Joda Date/Time

24 REST: Media Types More structure than POAJ Plain Old application/json Leverage libraries

25 Media Types for APIs In/Out: application/collection+json In: application/x-www-form-urlencoded

26 collection+json (aka Cj)

27 Continuous Deployment Current: Jenkins Nexus repository (Maven package) Shell script Tried: Upstart script & Puppet Ansible Bamboo 5

28 CD Goal

29 Monitoring

30 Future Monitoring/Mgmt

31 Still In Progress API Facades Better Deployment/Management

32 Final Questions?

33 Notes (stuff I didnt get to talk about) Using a RESTful (or Hypermedia) architecture, we've created "micro" services that talk to each other in order to provide scalability, along with ease of development, deployment, and management. Deployment and Management Purpose: scaling, updating Tools: Ansible, Mesos with Marathon, Event information/Logging Monitoring Custom dashboards REST or Hypermedia Example of a client that can change functionality over time


Download ppt "Scalable Systems Using Micro- RESTful Services SILICON VALLEY CODE CAMP OCTOBER 6 TH, 2013 by Ted M. Young"

Similar presentations


Ads by Google