Date post: | 02-Jul-2015 |
Category: |
Technology |
Upload: | ruslan-meshenberg |
View: | 1,137 times |
Download: | 0 times |
Growth
Data Center
MySQL
Middle Tier
Web UI / Front End API
Regional Load Balancers Regional Load Balancers
API or Web Calls
memcached
Cassandra
Web service
S3 bucket
We’re here to help you get to global scale… Apache Licensed Cloud Native OSS
http://netflix.github.com
Micro service Implementation
Web App Front End
(REST
services)
Hys
trix
Call “Auth Service”
Ribbon REST client with Eureka
Fallback Implementation Karyon
App Service (auth-service)
Eureka Server(s)
Karyon Eureka
Ribbon
Hystrix
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
Sca
le
Regional Load Balancers Regional Load Balancers
Micro service Implementation
Web App Front End
(REST
services)
Hys
trix
Call “Auth Service”
Ribbon REST client with Eureka
Fallback Implementation Karyon
App Service (auth-service)
Eureka Server(s)
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
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
@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); } } }
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();
createHttpResourceGroup "movieService"
newRequestTemplate "recommendationsByUserId""GET"
"/users/{userId}/recommendations"
requestBuilder"userId" “user1”
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
A/B Test Engine
Personalization Engine User Info Movie
Metadata Movie
Ratings Similar Movies
API
Reviews
A/B Test Engine
Personalization Engine User Info Movie
Metadata Movie
Ratings Similar Movies Reviews
User Info
API
A/B Test Engine
Personalization Engine
Movie Metadata
Movie Ratings
Similar Movies Reviews
User Info
API
User Info
API
A/B Test Engine
Personalization Engine
Movie Metadata
Movie Ratings
Similar Movies Reviews
A/B Test Engine
Personalization Engine
Movie Metadata
Movie Ratings
Similar Movies Reviews
User Info
API
User Info
API
A/B Test Engine
Personalization Engine
Movie Metadata
Movie Ratings
Similar Movies Reviews
A/B Test Engine
Personalization Engine
Movie Metadata
Movie Ratings
Similar Movies Reviews
User Info
API
Personalization Engine
User Info
Movie Metadata
Movie Ratings
Similar Movies
API
Reviews A/B Test Engine
Personalization Engine
User Info
Movie Metadata
Movie Ratings
Similar Movies
API
Reviews A/B Test Engine
Fallback
Personalization Engine
User Info
Movie Metadata
Movie Ratings
Similar Movies
API
Reviews A/B Test Engine
Fallback
Sketchy Scumblr
+
‒ ‒ ‒ ‒
‒ ‒ ‒
http://netflix.github.com
https://github.com/Answers4AWS/netflixoss-ansible/wiki/AMIs-for-NetflixOSS
http://answersforaws.com/resources/netflixoss/cloudformation/
https://github.com/Netflix-Skunkworks/zerotodocker
https://hub.docker.com/u/netflixoss/
Mac OS X
Virtual Box
Ubuntu 14.04
single kernel
Con
tain
er #
1 Fi
lesy
stem
+ p
roce
ss
Eur
eka
Con
tain
er
Zuul
C
onta
iner
Ano
ther
C
onta
iner
...
Talk Time Title
http://netflix.github.com
@NetflixOSS
http://netflix.github.com
Please give us your feedback on this presentation