O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Micro Services Orchestration with Kong, Galileo & Gelato

3.374 visualizações

Publicada em

by Ahmad Nassri - Nodeday Amsterdam Feb 11, 2016

Publicada em: Tecnologia
  • Seja o primeiro a comentar

Micro Services Orchestration with Kong, Galileo & Gelato

  2. 2. WHO?WHO? quick intro about myself
  3. 3. GET /who HTTP/1.1 Host: www.ahmadnassri.com Accept: application/json HTTP/1.1 200 OK Date: Thu, 11 Feb 2016 10:00:00 CET Content-Type: application/json { "name": "Ahmad Nassri", "website": "ahmad.codes", "twitter": "@AhmadNassri", "city": "Toronto, Canada", "hometown": "Damascus, Syria", "bio": "Technologist, Entrepreneur, Dog Lover", "work": { "company": " ", "role": "VP, Engineering" } } Mashape.com AHMAD NASSRIAHMAD NASSRI Live in Toronto, work in San Francisco / Silicon Valley.
  4. 4. Adopted in every major industry including finance, healthcare, military, agriculture, insurance, government, media, e-commerce, retail, aviation, manufacturing and telecom.
  6. 6. MICROSERVICES?MICROSERVICES? Martin Fowler - a definition of this new architectural term: bit.ly/ms-definition Microservice architecture patterns and best practices bit.ly/ms-patterns Resources & Reading List bit.ly/ms-resources if you're not familiar with microservices, here's your home work (links at the last slide)
  7. 7. MICROSERVICESMICROSERVICES IN PRODUCTIONIN PRODUCTION everybody talks about microservices, (the theory, the tooling, best practices, etc ...) but you rarely see the complexity involved
  8. 8. EXPECTATIONEXPECTATION as a team starts to venture into building a new product, they might start thinking about the architectural design pattern and see it in abstract terms
  9. 9. EXTENDED EXPECTATIONSEXTENDED EXPECTATIONS as development intensifies, the initial theory quickly evolves, more microservices are discovered (they're like pokemons, new ones keep showing up!) and throughout more tooling is introduced (cranes in pic)
  10. 10. REALITY STRIKESREALITY STRIKES the best laid plans of mice and men often go awry
  11. 11. REALITY CHECKREALITY CHECK in reality, microservices are huge in scale and require a lot of tooling and support
  12. 12. User Service Movie Service Rating Service SIMPLE MOVIESIMPLE MOVIE RECCOMENDATIONSRECCOMENDATIONS Reeco Service quick example things start off simple
  13. 13. User Service Movie Service Rating Service SIMPLE MOVIESIMPLE MOVIE RECCOMENDATIONS???RECCOMENDATIONS??? Reeco Service services have to talk to each other! - mark movie as watched - check if movie exists before applying rating - check current user permissions
  14. 14. SCALING SIMPLE MOVIESCALING SIMPLE MOVIE RECCOMENDATIONSRECCOMENDATIONS LB LB LB LB enter load balancers, service registery and discovery tools
  15. 15. GROWTH STAGEGROWTH STAGE microservices quickly increase in number to serve different business functions teams start forming around or from microservices and APIS
  16. 16. REFACTOR!REFACTOR! V2 V2 V2 V2 new hot shot joins the team, decides to re-write everything!
  17. 17. DEPENDENCIES!DEPENDENCIES! V2 V2 V2 V2 don't forget, services need to talk to each other
  18. 18. SECURITY & AUTHENTICATIONSECURITY & AUTHENTICATION V2 V2 V2 V2 security can be achieved on the network layer, but also through authentication to ensure user action impersonation
  19. 19. LOGGING?LOGGING? V2 V2 V2 V2 you wanna know what's going on, don't you? and how about debugging a user transaction across all those microservices?
  20. 20. BRAIN OVERLOAD!BRAIN OVERLOAD! tables be flipping
  21. 21. DONT REPEAT YOURSELFDONT REPEAT YOURSELF Logging Load Balancing Authentication Security Monitoring Rate Limiting ... D.R.Y all common functionality and tooling should be extracted, including:
  22. 22. ENTER KONGENTER KONG V2 V2 V2 V2 GETKong.org Kong is designed to solve the problem of abstracting common microservices & API management functionality
  23. 23. WHAT IS KONG?WHAT IS KONG? $ curl -X POST --data 'name=movies.v1' --data 'upstream_url=http://lb1.movies/' --data 'request_path=/v1/movies' $ curl -X POST --data 'name=movies.v2' --data 'upstream_url=http://lb2.movies/' --data 'request_path=/v2/movies' Open-source management layer for APIs Built with Nginx, OpenResty, Lua Configurable Through a RESTful API add powerful functionality through plugins kong nodes are stateless and horizontally scalable, with built-in auto-discovery and clustering
  24. 24. KONG PLUGINSKONG PLUGINS $ http POST :8001/apis/movies.v1/plugins name=loggly config.key=SECRET $ http POST :8001/apis/movies.v1/plugins name=rate-limiting config.hour=500 config.minutes=100 $ http POST :8001/apis/movies.v1/plugins name=cors config.origin=* config.methods=GET,PUT $ http POST :8001/apis/movies.v1/plugins name=galileo config.service_token=SECRET $ http POST :8001/apis/movies.v1/plugins name=ssl config.cert=@/local/path/to/cert.pem config.key=@/local/path/to/cert.key $ http POST :8001/apis/movies.v1/plugins name=oauth2 config.scopes=email,phone,address config.mandatory_scope=true plugins are functional lua modules that are triggered at certain points during the request life-cycle with the ability to inspect, modify, and transform the request and response objects (here I'm using HTTPie for the examples)
  25. 25. SCENARIOSSCENARIOS VPN Vendors - as external facing api gateway - as internal microservices orchestration - as vendor shield - can even chain kong
  26. 26. GALILEOGALILEO The Analytics Platform for Monitoring, Visualizing and Inspecting API & Microservice Traffic
  27. 27. GAIN INSIGHTGAIN INSIGHT Timeseries Charts See trends data down to the minute with our timeseries charting that shows how usage is changing and visually spot any anomalies. Error View Keep track of client and server errors and who is causing them so you can debug and handle the issue before it becomes a problem.
  28. 28. GAIN INSIGHTGAIN INSIGHT Custom Filtering Filter the data down to exactly what you care about and learn how clients are requesting your services and how servers are responding. Consumer Usage Get a clear picture of an individual consumers requests to figure out how they are using your services and which endpoints are most important.
  29. 29. GELATOGELATO Removes all the hassle of creating and maintaining technical docs, and makes onboarding developers easy
  30. 30. GELATOGELATO Automatic API Explorer, Markdown Editor, Developer Onboarding, Code Generation, Import Swagger or API-blueprint gelato is packed with features
  31. 31. THANK YOUTHANK YOU { "speaker": { "name": "Ahmad Nassri", "website": "ahmad.codes", "twitter": "@AhmadNassri", "city": "Toronto, Canada", "bio": "Technologist, Entrepreneur, Dog Lover", "work": { "company": " ", "role": "VP, Engineering" } }, "links": [ "mashape.com", "bit.ly/ms-kgg", "bit.ly/ms-definition", "bit.ly/ms-patterns", "bit.ly/ms-resources" ] } Mashape.com