Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Upcoming SlideShare
RCN 2014 Moyens de paiement - Présentation CANTON-Consulting
Next

Building microservice architectures with go isoc hk wids june 2016

WIDS 2016 - Keynote Speaker - Matt Heath, Mondo

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to like this

Building microservice architectures with go isoc hk wids june 2016

  1. 1. Building Microservice Architectures with Go Matt Heath, Mondo #WIDS
  2. 2. Hi, I’m Matt @mattheath
  3. 3. monoliths traditional dev
  4. 4. ?
  5. 5. DATABASE APPLICATION
  6. 6. DATABASE APPLICATION
  7. 7. DATABASEDATABASES APPLICATION
  8. 8. DATABASEDATABASES APPLICATION SEARCH
  9. 9. DATABASEDATABASES APPLICATION CACHE SEARCH
  10. 10. DATABASEDATABASES APPLICATION CACHE SEARCH CAT GIFS
  11. 11. ALL HAIL THE MONOLITH
  12. 12. DO NOT WANT
  13. 13. DATABASEDATABASES APPLICATION CACHE SEARCH CAT GIFS
  14. 14. APPLICATION
  15. 15. Microservices at Mondo?
  16. 16. Single Responsibility Principle
  17. 17. Bounded Context
  18. 18. Well defined Interfaces
  19. 19. Composability
  20. 20. Getting started
  21. 21. LOAD BALANCER
  22. 22. LOAD BALANCER HTTP API & ROUTING LAYER
  23. 23. TRANSPORT LOAD BALANCER HTTP API & ROUTING LAYER
  24. 24. SERVICE SERVICE SERVICE TRANSPORT LOAD BALANCER HTTP API & ROUTING LAYER
  25. 25. SERVICE SERVICE SERVICE TRANSPORT DATABASE DATABASE DATABASE LOAD BALANCER HTTP API & ROUTING LAYER
  26. 26. SERVICE SERVICE SERVICE TRANSPORT DATABASE DATABASE DATABASE LOAD BALANCER API GATEWAY
  27. 27. APPLICATION LOAD BALANCER
  28. 28. API GATEWAY APPLICATION LOAD BALANCER
  29. 29. API GATEWAY APPLICATION LOAD BALANCER
  30. 30. API GATEWAY APPLICATION LOAD BALANCER SERVICESERVICESERVICES
  31. 31. Simple Static typing Static linking
  32. 32. Comprehensive stdlib eg. Networking
  33. 33. Concurrency
  34. 34. Interfaces
  35. 35. micro Go Kit gRPC Kite
  36. 36. LOAD BALANCER
  37. 37. LOAD BALANCER HTTP API & ROUTING LAYER
  38. 38. API SERVICE LOAD BALANCER HTTP API & ROUTING LAYER
  39. 39. /webhooks —-> Webhook API
  40. 40. WEBHOOK API LOAD BALANCER HTTP API & ROUTING LAYER
  41. 41. WEBHOOK API AUTH SERVICE WEBHOOK SERVICE LOAD BALANCER HTTP API & ROUTING LAYER
  42. 42. WEBHOOK API AUTH SERVICE WEBHOOK SERVICE LOAD BALANCER HTTP API & ROUTING LAYER DATABASE
  43. 43. WEBHOOK API AUTH SERVICE WEBHOOK SERVICE LOAD BALANCER HTTP API & ROUTING LAYER DATABASE DATABASE
  44. 44. API SERVICE SERVICE A SERVICE B LOAD BALANCER HTTP API & ROUTING LAYER DATABASE DATABASE EXTERNAL PROVIDER
  45. 45. SERVICE
  46. 46. Logic Handlers Storage SERVICE
  47. 47. mercury Logic Handlers Storage SERVICE
  48. 48. type Handler func(request) (response, error)
  49. 49. mercury Logic Handlers Storage SERVICE
  50. 50. mercury Logic Handlers Storage libraries SERVICE
  51. 51. SERVICE Deployment Service Discovery Configuration Monitoring Authentication Authorisation Storage Circuit Breaking
  52. 52. Small Images
  53. 53. Statically Compiled
  54. 54. Making our service reliable
  55. 55. Topology Management
  56. 56. WEBHOOK API LOAD BALANCER HTTP API & ROUTING LAYER WEBHOOK SERVICE WEBHOOK SERVICE WEBHOOK SERVICE
  57. 57. WEBHOOK API LOAD BALANCER HTTP API & ROUTING LAYER WEBHOOK SERVICE WEBHOOK SERVICE WEBHOOK SERVICE
  58. 58. WEBHOOK API LOAD BALANCER HTTP API & ROUTING LAYER WEBHOOK SERVICE WEBHOOK SERVICE WEBHOOK SERVICE WEBHOOK SERVICE
  59. 59. WEBHOOK API LOAD BALANCER HTTP API & ROUTING LAYER WEBHOOK SERVICE WEBHOOK SERVICE WEBHOOK SERVICE WEBHOOK SERVICE SLOW / ERRORS
  60. 60. Event Driven Architecture
  61. 61. API SERVICE SERVICE A SERVICE B LOAD BALANCER HTTP API & ROUTING LAYER
  62. 62. API SERVICE SERVICE A SERVICE B LOAD BALANCER HTTP API & ROUTING LAYER
  63. 63. API SERVICE SERVICE A SERVICE B LOAD BALANCER HTTP API & ROUTING LAYER
  64. 64. API SERVICE SERVICE A SERVICE B LOAD BALANCER HTTP API & ROUTING LAYER SERVICE C SERVICE D E
  65. 65. API SERVICE SERVICE A SERVICE B LOAD BALANCER HTTP API & ROUTING LAYER SERVICE C SERVICE D G E F
  66. 66. ? ? ? LOAD BALANCER HTTP API & ROUTING LAYER ? ? ?? ? ? ? ? ? ? ?
  67. 67. Context Propagation
  68. 68. api api api.customer api.customer service.customer service.customer
  69. 69. api api api.customer api.customer service.customer service.customer
  70. 70. 8096820c-3b7b-47ec-bce6-1c239252ab40
  71. 71. api api api.customer api.customer service.customer service.customer
  72. 72. api api api.customer api.customer service.customer service.customer
  73. 73. package context type Context interface { Deadline() (deadline time.Time, ok bool) Done() <-chan struct{} Err() error Value(key interface{}) interface{} }
  74. 74. package context type Context interface { Deadline() (deadline time.Time, ok bool) Done() <-chan struct{} Err() error Value(key interface{}) interface{} }
  75. 75. package context type Context interface { Deadline() (deadline time.Time, ok bool) Done() <-chan struct{} Err() error Value(key interface{}) interface{} }
  76. 76. api api api.customer api.customer service.customer service.customer
  77. 77. api api api.customer api.customer service.customer service.customer SEND RECV SEND RECV RECV SEND RECV SEND
  78. 78. api api.customer service.customer SEND RECV SEND RECV RECV SEND RECV SEND phosphor
  79. 79. API card-api card-processing cards transactions balance transaction-enrichment merchant feed-generator feed apns API card-api card-processing cards transactions balance transaction-enrichment merchant feed-generator feed apns
  80. 80. API card-api card-processing cards transactions balance transaction-enrichment merchant feed-generator feed apns API card-api card-processing cards transactions balance transaction-enrichment merchant feed-generator feed apns
  81. 81. API card-api card-processing cards transactions balance transaction-enrichment merchant feed-generator feed apns API card-api card-processing cards transactions balance transaction-enrichment merchant feed-generator feed apns
  82. 82. API card-api card-processing cards transactions balance transaction-enrichment merchant feed-generator feed apns API card-api card-processing cards transactions balance transaction-enrichment merchant feed-generator feed apns
  83. 83. API card-api card-processing cards transactions balance transaction-enrichment merchant feed-generator feed apns API card-api card-processing cards transactions balance transaction-enrichment merchant feed-generator feed apns
  84. 84. API card-api card-processing cards transactions balance transaction-enrichment merchant feed-generator feed apns API card-api card-processing cards transactions balance transaction-enrichment merchant feed-generator feed apns
  85. 85. Small Simple Easy to learn
  86. 86. Concurrency Interfaces Networking
  87. 87. Downsides?
  88. 88. Starting with Microservices?
  89. 89. #WIDS Thanks! @mattheath @getmondo
  90. 90. ATM: Thomas Hawk
 Bank of Commerce: ABQ Museum Archives IBM System/360: IBM Absorbed: Saxbald Photography Orbital Ion Cannon: www.rom.ac Go Gopher: Renee French Control Room: NASA ATM Failure: George Redgrave Credits

WIDS 2016 - Keynote Speaker - Matt Heath, Mondo

Views

Total views

184

On Slideshare

0

From embeds

0

Number of embeds

0

Actions

Downloads

0

Shares

0

Comments

0

Likes

0

×