Slide thumbnail

Massivt batteri på hela 5000 mAh.

Anta utmaningen - Rugtel X10

Slide thumbnail

Rugtel X10 - tåls att ha med!

äkta var köpa canada goose göteborg Sverige

Optimering av Netflix API
Ben Christensen

För ett år sedan laget på Netflix API började API redesign för att förbättra prestanda och göra det möjligt för användargränssnitt ingenjörsteam på Netflix att optimera klientprogram för specifika enheter. Filosofier redesign infördes i ett tidigare inlägg om att omfamna skillnaderna mellan olika klienter och enheter.

Detta inlägg är en del av en serie på arkitekturen i vår ny design API.

Vi hade flera mål i att skapa detta system. enligt följande.

En viktig faktor för en fortsättning av den första redesign var att minska pratsam naturen av vår klient / server-kommunikation köp äkta var köpa canada goose göteborg . vilket kan hindra den totala prestandan för våra enhets implementationer.

På grund av den generiska karaktären av den granulära REST API Netflix original äkta var köpa canada goose göteborg . återvänder varje samtal en del bara av funktioner för en viss användarupplevelse. kräver kunderna att applikationer för att göra flera samtal som måste sättas samman för att göra en unik användarupplevelse. Denna interaktion Modellen illustreras i följande diagram.

För att minska den inneboende prat REST API. diskreta förfrågningar i diagrammet ovan måste kombineras till en enda ansökan optimerad för en viss klient.Fördelen är att enheten kommer att betala priset för WAN latenstid är baserad på låg latens och mer kraftfull server-side hårdvara äkta var köpa canada goose göteborg online , real canada goose heli arctic sverige . Som en sidoeffekt. vilket också eliminerar uppsägningar som sker för varje förfrågan.

En sådan tillämpning optimerad serversidan måste anamma parallel minst samma nivå än tidigare insett genom flera krav client.Parce nätverka serversidan parallelliseras program körs i samma nätverk äkta var köpa canada goose göteborg . bör varje vara bättre än om det kördes från anordningen. Detta måste ske utan att genomföra en testingenjör måste bli en expert på låg nivå gäng. synkronisering. säkerhetstråd stockholm äkta var köpa canada goose göteborg . samtidiga datastrukturer äkta var köpa canada goose göteborg . icke-blockerande IO och andra bekymmer.

En grupp bör inte bli en flaskhals eller behöver ha kompetens på varje klient begäran att skapa optimerade inställningar. Snabb innovation genom snabba. utvecklingscykler frikopplade genom olika enhetstyper och distribuerade egendom och expertis mellan lagen måste vara aktiverat. Varje klientprogram laget måste kunna genomföra och driva egna utvärderingskriterier och frågor / svar äkta var köpa canada goose göteborg barn .Den Netflix API är ett Java-program som körs på hundratals servrar bearbeta inkommande förfrågningar 2+ miljarder per dag för miljontals kunder runt om i världen. Systemet bör minska riskerna i snabb driftsättning och besöks av flera lag med ett minimum av samordning.

Inställningar Applikations Ingenjörer kommer från en mängd olika bakgrunder inklusive expertis med Javascript. Objective-C. Java. C real canada goose loro piana women . C # billigt canada goose till barn . Ruby köpa canada goose jacka från kina . Python och andra, billigt canada goose shop in la . Systemet bör kunna stödja flera språk samtidigt.

Varje klient team kommer nu hantera livscykeln för att utnyttja sina egna webbtjänstslutpunkter. Operativa verktyg för övervakning. felsökning canada goose jackets fakes dam . testning och driftsättning canarying kod måste utsättas för en distribuerad uppsättning lag så att teamen kan arbeta indépendamment.Pour uppnå ovanstående mål destillerade vår arkitektur i några viktiga punkter cheap canada goose ægte falsk .

Diagrammet och följande anteckningar förklara följande arkitektur canada goose fake for sale sweden .

Alla nya webbtjänster endpoints nu dynamiskt definierade vid körning.Kan utvecklas nya bedömningskriterier canada goose falsk eller Sverige . testade. och distribueras canaried varje kund utan samordningsgrupp (såvida de beror nytt inslag i API-lagret underliggande visas i punkt 5 i detta fall. de skulle behöva vänta tills efter dessa förändringar utplacerade innan du trycker sin slutpunkt).

Endpoint-kod publiceras till en multi-polig region Cassandra (replike globalt) via en RESTful API Endpoint Management används av klienter för att hantera sina lag slutar.

Alla JVM språk kan stödjas så att varje lag kan använda de mest lämpade språket för dem.
JVM Groovy språket valdes som vårt första språk som stöds. Förekomsten av förstklassiga funktioner (nedläggningar). listan / ordlistan syntax. prestanda och debuggability var alla aspekter av vårt beslut. Dessutom ger Groovy en bekväm syntax till ett brett spektrum av utvecklare. vilket bidrar till att minska inlärningskurvan för det första språket på plattformen.

Krama Konkurrensen var en viktig förutsättning för att uppnå prestandavinster men abstract från parallelltråd säkerhet och genomföra implementeringsdetaljer från klientutvecklare var lika viktiga för att minska komplexiteten och påskynda innovationstakt.Vara fullt asynkron Java API var det första steget eftersom det tillåter den underliggande metoden implementationer för att kontrollera om något är eller inte utföras samtidigt utan att ändra koden client.Nous valde en reaktiv programmeringsmodell med en programmeringsstil funktionell för sammansättning och villkor flöde asynkrona återanrop manipulation. Vårt genomförande bygger på observerbar Rx.

Som vi beskrev i ett tidigare inlägg. är alla servicesamtal i back-end system sker genom feltolerans lager Hystrix (som öppnades nyligen kommer med sin instrumentpanel) som isolerar dynamiska parametrar och API lager service oundvikliga fel inträffar under genomförandet av nätverket miljard samtal varje dag från API för att back-end system äkta canada goose parka sverige .
Det Hystrix lagret är i sig gäng mutlti grund av hans son används för att isolera beroenden och är belånade till samtidig verkställighet av block samtal till backend-system. Dessa asynkrona förfrågningar består samman via den reaktiva delen.

De API tjänstelager sammanfattningar av alla back-end tjänster och uthus bakom fasaderna. Följaktligen accessar endpoint koden "funktion" i stället för ett "system".Detta tillåter oss att ändra underliggande implementationer och arkitektur med ingen eller begränsad påverkan på den kod som är beroende av API. Till exempel. om ett backend-system är uppdelat i två olika tjänster äkta var köpa canada goose göteborg . är eller tre samlade i ett. eller ett fjärrnätverk samtal optimeras i en cache, canada goose online store europe billiga . ingen av dessa förändringar bör påverka kod slut och därmed säkerställer API tjänstelagret att objektmodeller och annan tät koppling är abstrakta och inte tillåtas att "läcka" i den slutliga koden.

Den nya arkitekturen i Netflix API är en dynamisk väsentlig avvikelse från vår tidigare RESTful API générique.Langues JVM i kombination med ett asynkront Java API och reaktiv programmeringsmodell visat sig vara en kraftfull kombination för att möjliggöra en säker och effektiv utveckling av en mycket samtidig kod.

Slutresultatet är en kraftfull plattform för feltolerans som sätter kontrollen i händerna på dem som vet bäst sina mål applikationer.

Följande meddelanden kommer att ge ytterligare genomförande och operativa detaljer denna nya arkitektur.
Om denna typ av arbete som intresserar dig. vi letar alltid efter duktiga ingenjörer.