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

Python in the MicroServices world

Python in the MicroServices world

HariKrishnan

June 24, 2016
Tweet

More Decks by HariKrishnan

Other Decks in Programming

Transcript

  1. About me Full Stack Dev Tech Consulting for Startups Java,

    .Net, JavaScript, Python, Ruby Concurrency, High Performance Applications, REST @harikrishnan83
  2. “Microservices are a more concrete and modern interpretation of service-oriented

    architectures (SOA)” - Wikipedia MicroServices by Definition UI Core BI DB Admin and Dashboard API DB Booking Service API DB Payment Service API DB Notification Service API DB API DB API DB Message Bus UI
  3. JEE EJB (Message Driven Beans) MSG Queue MSG Java EE

    Server MDB Instances EJB Container Application Client
  4. Okay, there we have a MicroService. Now let us build

    some serious Features on the Monolithic App.
  5. A typical MicroService 1. API 2. Logic 3. Data 4.

    Dependencies 5. Automation 6. Admin 7. Monitoring 8. ...
  6. Business 1. A product by itself 2. Need to monitor

    the ROI of the feature in isolation 3. A/B testing 4. Build vs Buy
  7. Organisational 1. Conway’s law organizations which design systems ... are

    constrained to produce designs which are copies of the communication structures of these organizations — M. Conway 2. Team size
  8. Booking Service Payment Service Notification Service View User Service Auth

    And Auth Book Ticket User Details Send SMS Process Payment Anonymous Access Anonymous Access Back Office Dashboard
  9. Booking Service Payment Service Notification Service View User Service Auth

    And Auth Book Ticket Booking Ref No Send SMS Process Payment Booking Ref No Booking Ref No
  10. What happens to Sprints? 1 To Do Doing Done To

    Do Doing Done 1 To Do Doing Done 1 Payment Service Booking Service Notification Service Feature: Book Ticket
  11. API

  12. Sealing the Contract We had to get the stories to

    go in Parallel So we agreed on the API boundaries and started coding to Apiary However it did not quite work out Many details became clear only after we started building the feature
  13. What do we do? 1. Follow the data 2. Understand

    Non Functional Aspects 3. Every time we add an API call, think if it belongs there
  14. API 1. Synchronous - Simple Request Response 2. Asynchronous -

    Fire and Forget - Queues 3. Callbacks - Webhooks
  15. Branch and Merge Strategy 1. Single Repository was not working

    for us a. Initially it was great because we just did feature branches b. Most of us make several small commits 2. Internal Open Source a. Service Owner b. Feature Owner c. Business Owner