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.

(DEV309) From Asgard to Zuul: How Netflix’s Proven Open Source Tools Can Help Accelerate and Scale Your Services | AWS re:Invent 2014

4,008 views

Published on

Learn how you can leverage the many Netflix Open Source tools to help grow your services to web-scale, and make them robust and resilient. We cover a variety of the OSS components-from operational tools like Asgard and Simian Army, to core services and libraries like Zuul, Eureka, Archaius, and Hystrix, plus a variety of security and big data tools. We walk through a sample application to illustrate how the many components fit together to build a cohesive solution.

Published in: Technology
  • Wow thanks btw If you're a startup needing funding, we can send your pitchdeck to over 5000 VC's and Angels instantly. Get you dozens of offers in just days. Visit: Angelvisioninvestors.com now for details. Thank you.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

(DEV309) From Asgard to Zuul: How Netflix’s Proven Open Source Tools Can Help Accelerate and Scale Your Services | AWS re:Invent 2014

  1. 1. Growth
  2. 2. Data Center MySQL Middle Tier Web UI / Front End API
  3. 3. Regional Load Balancers Regional Load Balancers
  4. 4. API or Web Calls memcached Cassandra Web service S3 bucket
  5. 5. We’re here to help you get to global scale… Apache Licensed Cloud Native OSS http://netflix.github.com
  6. 6. Micro service Implementation Web App Front End (REST services) Hystrix Call “AuthService” Ribbon REST client with Eureka Fallback Implementation Karyon App Service (auth-service) Eureka Server(s)
  7. 7. KaryonEureka Ribbon Hystrix
  8. 8. Speed Hardware Will Fail Slowly Changing Large Scale Everything Is Broken Rapid Change Large Scale Everything Works Slowly Changing Small Scale Hardware Will Fail Rapid Change Small Scale Scale
  9. 9. Regional Load Balancers Regional Load Balancers
  10. 10. Micro service Implementation Web App Front End (REST services) Hystrix Call “AuthService” Ribbon REST client with Eureka Fallback Implementation Karyon App Service (auth-service) Eureka Server(s)
  11. 11. Client A p a c h e Eureka (Service Registry) Server (Karyon) Apache Tomcat Ribbon Load Balancing Eureka Integration Metrics (Servo) Bootstrapping (Governator) Metrics (Servo) Admin Console HTTP Eureka Integration Registration Fetch Registry H T T P C L I E N T Hy s t r i x EVCache
  12. 12. Eureka (Service Registry) Client (Ribbon 2.0) Server (Karyon) Ribbon Transport Load Balancing Eureka Integration Metrics (Servo) Bootstrapping (Governator) Metrics (Servo) Admin Console HTTP Eureka Integration Registration Fetch Registry Ribbon Hystrix EVCache RxNet ty RxNetty UDP TCP WebSockets SSE
  13. 13. @ArchaiusBootstrap @KaryonBootstrap(name ="hello-netflix-oss") @Modules(include = {HelloNossApp.KaryonJerseyModuleImpl.class, KaryonWebAdminModule.class, KaryonEurekaModule.class}) public final class HelloNossApp { public static class KaryonJerseyModuleImpl extends KaryonJerseyModule{ protected void configure() { super.configure(); bind(AuthenticationService.class).to(AuthenticationServiceImpl.class); } public int serverPort() { return 8888; } public int shutdownPort() { return 8899; } public void configureInterceptors(GovernatorHttpInterceptorSupport<ByteBuf, ByteBuf> interceptorSupport) { interceptorSupport.forUri("/hello").interceptIn(AuthInterceptor.class); } } }
  14. 14. interface recommendationsByUserId@Var"userId" @Http(method = HttpMethod.GET, uriTemplate="/users/{userId}/recommendations") @Hystrix(fallbackHandler = RecommendationFallbackHandler.class) @EvCache(name = "movie-rec", appName = "movieService", cacheKeyTemplate = "{userId}") MovieService movieService = Ribbon.from(MovieService.class); Observable<Recommendations> result = movieService.recommendationsByUserId(“user1”) .toObservable();
  15. 15. createHttpResourceGroup"movieService" newRequestTemplate"recommendationsByUserId" "GET" "/users/{userId}/recommendations" requestBuilder"userId"“user1”
  16. 16. AZ1 AZ2 AZ3 Regional Load Balancers Zuul –Traffic Shaping/Routing Data Data Data Geo-located Chaos Kong Chaos Kong AZ1 AZ2 AZ3 Regional Load Balancers Zuul –Traffic Shaping/Routing Data Data Data Customer Device
  17. 17. A/B Test Engine Personalization Engine User Info Movie Metadata Movie Ratings Similar Movies API Reviews
  18. 18. A/B Test Engine Personalization Engine User Info Movie Metadata Movie Ratings Similar Movies Reviews User Info API
  19. 19. A/B Test Engine Personalization Engine Movie Metadata Movie Ratings Similar Movies Reviews User Info API
  20. 20. User Info API A/B Test Engine Personalization Engine Movie Metadata Movie Ratings Similar Movies Reviews
  21. 21. A/B Test Engine Personalization Engine Movie Metadata Movie Ratings Similar Movies Reviews User Info API
  22. 22. User Info API A/B Test Engine Personalization Engine Movie Metadata Movie Ratings Similar Movies Reviews
  23. 23. A/B Test Engine Personalization Engine Movie Metadata Movie Ratings Similar Movies Reviews User Info API
  24. 24. Personalization Engine User Info Movie Metadata Movie Ratings Similar Movies API Reviews A/B Test Engine
  25. 25. Personalization Engine User Info Movie Metadata Movie Ratings Similar Movies API Reviews A/B Test Engine Fallback
  26. 26. Personalization Engine User Info Movie Metadata Movie Ratings Similar Movies API Reviews A/B Test Engine Fallback
  27. 27. Sketchy Scumblr +
  28. 28. ‒ ‒ ‒ ‒ ‒ ‒ ‒
  29. 29. http://netflix.github.com
  30. 30. https://github.com/Answers4AWS/netflixoss-ansible/wiki/AMIs-for-NetflixOSS http://answersforaws.com/resources/netflixoss/cloudformation/
  31. 31. https://github.com/Netflix-Skunkworks/zerotodocker https://hub.docker.com/u/netflixoss/
  32. 32. Mac OS X Virtual Box Ubuntu 14.04 single kernel Container #1 Filesystem + process Eureka Container Zuul Container Another Container ...
  33. 33. Talk Time Title
  34. 34. http://netflix.github.com
  35. 35. @NetflixOSS http://netflix.github.com
  36. 36. Please give us your feedback on this session. Complete session evaluations and earn re:Invent swag. http://bit.ly/awsevals

×