MircroServices (and a story about Netflix) | Prime React - YouTube

Channel: unknown

[0]
there we go we added this three marker
[1]
microservices let's go here we go
[7]
three years
[11]
I'm still not understanding this why is
[13]
it so hard to display the birthday date
[15]
on the set
[18]
I can already feel so many emotions
[20]
coming up inside of me I know we haven't
[21]
even started
[23]
but you guys just don't even know you
[24]
don't even know
[26]
what happened to me you don't even know
[28]
about Black Mirror you don't know about
[30]
the Pig episode
[32]
this it hits so home to me because the
[36]
pig
[37]
that I will literally never be able to
[39]
recover from watching this video but
[40]
we're gonna do it settings page why
[43]
can't we get this done this quarter look
[44]
I'm sorry we've been over this it's the
[46]
design of our back end first we have to
[48]
call the Bingo service see Bingo knows
[50]
everyone's
[51]
Bank
[53]
I'm sorry about the screen tearing okay
[55]
again I'm switching to sway
[58]
March 13th okay
[60]
Nemo so we get the user's ID out of
[62]
there then from Bingo we can call papaya
[64]
and MBS to get that user ID and turn it
[67]
into a user session token we can
[68]
validate those with ulna and then once
[71]
we have that we can finally pull the
[72]
user's info down from raccoon
[75]
foreign
[83]
so does anyone know about Black Mirror
[89]
on Netflix
[91]
anyone familiar with Black Mirror
[93]
did anyone watch Black Mirror before
[95]
Netflix purchased Black Mirror
[98]
type 2 if you watched Black Mirror
[101]
before Netflix owned Black Mirror which
[103]
was starting season four did anyone
[105]
watch It season three
[107]
and less
[111]
okay
[114]
um I got a story for you we're gonna do
[115]
a story here very very soon but first
[119]
let us become emotionally damaged by
[121]
what we're about to see which this is
[123]
effectively a documentary of working at
[126]
Netflix doing large
[129]
things but couldn't the raccoon team
[131]
basically just no raccoon isn't
[133]
guaranteed to have that info before we
[135]
do this we have to go to wingman do a
[137]
query to see if the user's willing I
[138]
love the wingman and Apex I just so I'm
[140]
just very happy they they named a
[141]
service called wingman to take it to the
[143]
next level or if they're just playing
[144]
the field now wingman is cool but he
[147]
doesn't store any user info himself he
[148]
has to reach out to other user info
[150]
Provider Services like RGS Barbie doll
[153]
ringo2 BLS
[155]
but how does it know what all the user
[157]
Provider Services are well for that it
[159]
has to go to Galactic all-knowing user
[161]
service provider
[162]
I just hate this why do we make this why
[166]
did the world do this why did we do this
[168]
to ourselves we have a world in which
[170]
was not that great and we replaced it
[172]
with an idea that felt better
[175]
and now we have Galactus why is this why
[178]
why aggravator
[181]
and what Galactus has omniscient
[182]
knowledge of all current user info
[184]
providers it doesn't have future sight
[186]
or knowledge of past user info providers
[187]
so it expects a Time range to get all
[189]
the current user info providers we need
[191]
to pass a Time range with the current
[192]
time and a Time representing the end of
[194]
the universe which we get from eks our
[196]
entry chaos service
[198]
PKS it's being deprecated at the end of
[200]
the month for omega star but omega star
[202]
still doesn't support ISO timestamps
[204]
like they said they would a month ago
[207]
no no no no no no
[212]
oh my goodness we have such
[215]
so until omega star gets their [聽__聽]
[217]
[聽__聽] together we're blocked we can't get
[220]
signed up for our use case we can't use
[221]
eks there's nothing we can do
[223]
so Galactus won't be able to find our
[225]
new birthday boy provider which means
[227]
wingman won't know how to talk to
[228]
anybody which means I won't be able to
[229]
find true love and I'll die alone
[232]
laughs
[236]
I'll die alone without ever knowing love
[240]
without ever knowing it's my birthday
[242]
it's birthday blocked okay
[245]
we're blocked you sad pathetic little
[248]
product manager
[253]
they just
[255]
okay product managers don't know the
[259]
pain that's going on here they don't
[261]
they can't they cannot under they cannot
[263]
feel it he has a notepad trying to write
[265]
down what's happening he doesn't feel it
[267]
deep down
[270]
you think you know what our users want
[272]
you know nothing of my pain of
[275]
galactus's pain
[278]
you think you know what it takes to tell
[281]
the user it's their birthday
[284]
you know nothing
[286]
delivering this feature goes against
[288]
everything I know to be right and true
[290]
and I will sooner lay you into this
[292]
Barren Earth then entertain your Folly
[294]
for a moment longer
[297]
[Music]
[301]
alright so clearly this is blocker uh no
[304]
problem wishes out another two to three
[305]
years or so learned a lot today love
[307]
Galactus uh but we'll talk next week
[310]
about adding middle names to the profile
[311]
awesome sounds good take care
[314]
ah
[334]
it's just so painful it's just so
[336]
painful to see so when I was working at
[338]
Netflix uh oh my goodness where's my
[340]
marker there it is got it when I was
[342]
working at Netflix
[343]
um
[345]
during my time there which I'm still
[347]
there by the way uh we had this
[349]
beautiful thing okay that's way too big
[350]
what is happening here okay well this is
[353]
this is not this is not this is not what
[355]
I was hoping for and make it smaller yep
[357]
make it smaller and yeah there we go so
[360]
while my time at Netflix has been
[362]
fantastic there was this time in which
[364]
we need to do a little show called Black
[366]
Mirror and it sounds like a lot of
[368]
people are pretty familiar with Black
[370]
Mirror now I wanna I want someone to
[373]
type into the into the chat PF
[376]
if you know what the first episode's
[378]
about
[379]
type PF in the chat if you know if you
[381]
know about the first episode
[389]
okay for those that don't know what PF
[391]
is it's called Pig
[393]
um Yes you heard me correctly Pig
[396]
and uh at my job I had several meetings
[399]
in which involved the phrase pig to be
[402]
said
[403]
a hundred separate times it was wild and
[408]
so we came up with this idea okay hear
[410]
me out is that we Netflix are producing
[414]
season four
[415]
there are three seasons before us season
[418]
three season two season one and we
[422]
thought you know would be way better is
[424]
instead of showing you
[427]
the first episode S1 E1
[432]
instead we're gonna show you S4 E1 which
[436]
means you couldn't just reverse sort it
[438]
right you couldn't just okay this is a
[440]
reversed sort ordering because then you
[442]
get S4 E6 I think I think there's six
[444]
episodes in season four and so you
[446]
couldn't do that you could not
[448]
just simply reverse it so what we have
[450]
to do is we have to reverse the season
[452]
so we'd have to have a reverse season
[454]
but not a reverse episode now this
[457]
caused a lot of problems in our system
[459]
the reason why it caused a lot of
[461]
problems in our system is quite simple
[463]
there's a few different things that need
[465]
to come into play here okay so first off
[467]
there is GPS GPS would calculate your
[471]
lolomo your lolomo of course is the list
[473]
of list of movies that exist on Netflix
[476]
it's when you go there you scroll
[477]
through it that's what you're going to
[479]
see okay list of list of movies pretty
[481]
straightforward uh GPS has nothing to do
[484]
with the map but shockingly enough a
[486]
service called map
[489]
would call into GPS and get the skeleton
[493]
of your GP of your lolamo and then fill
[496]
it in more dynamically right be able to
[498]
get things going on so you'd see
[500]
something like this inside GPS GPS would
[502]
produce a list of shows and one of them
[504]
would be say like Black Mirror now it's
[507]
probably gonna choose Black Mirror S1 E1
[510]
and so map has to be smarter and map
[513]
needs to go well wait a second s1e1
[516]
isn't actually the latest episode or the
[518]
episode we should be promoting instead
[519]
we need to be promoting S4 E1 so map
[522]
itself doesn't know anything about what
[524]
is latest about videos that is where
[526]
something called VMS comes in VMS oh my
[529]
goodness sorry VMS VMS
[531]
VMS video metadata service right but
[535]
video metadata service doesn't actually
[537]
hold
[539]
is that
[544]
video about a dentist service that's
[547]
actually all that he did about video
[548]
about the latest and so video metadata
[550]
service actually used something called
[553]
if I'm not mistaken Dexter which has a
[556]
lot of the data about it it also had a
[558]
second service that provided other data
[561]
about it I can't remember the name of
[562]
that service okay and so VMS was very
[565]
very important but VMS didn't know
[567]
anything about ordering it just used raw
[569]
data out of Dexter and we didn't want
[570]
people to have to reverse order in
[572]
Dexter and go back through and do that
[574]
we can't do that because then it's going
[575]
to get all screwed up because here's the
[577]
deal is though we're delivering all
[579]
these things down we need a way to be
[581]
able to identify them uh by their their
[584]
season countering and all that so we
[586]
also had like this metadata service
[588]
about it such as like their season name
[591]
their season and episode number so if
[593]
you just had season one be replaced with
[597]
season four it would come back as S1 E1
[600]
which is incorrect so the metadata
[602]
service also couldn't just have things
[605]
out of order because metadata service
[606]
also relied on this so now that we have
[609]
that we needed something else so then
[611]
came in a glorious thing called c m s
[615]
content metadata service so content
[619]
metadata service's real job was actually
[621]
to provide a service that would do these
[625]
kind of more logical reorderings at run
[627]
time and not at service time that way we
[630]
could have these really beautiful items
[632]
in here and so that way map actually
[634]
called into content metadata service to
[636]
make sure it was delivering the correct
[638]
thing but here's the problem there was
[640]
more things that needed to happen
[642]
because then on the front end you'd have
[644]
to call in and get your lolamo and then
[647]
we would receive these but the problem
[648]
is when you're on your low level your
[650]
list of list of movies what happens when
[652]
you look at your Seasons well they're
[654]
not reversed because we are still
[656]
currently using VMS for our middleware
[659]
so our middleware needed to start using
[661]
CMS but the problem was is that API uses
[664]
the API service Gateway pattern which
[668]
means that we now have things such as
[670]
get you know get metadata
[673]
two we literally had get metadata 2
[677]
because get metadata can't just be
[679]
deprecated you can't just you can't just
[681]
undo these things so we actually had to
[683]
develop a second babe to do this but
[687]
here's the problem how did you know you
[688]
need to call this well we actually had
[690]
to create another service I forget what
[693]
it was even called at this point that
[694]
would tell you if this video needed to
[698]
be reordered based on flags at a
[700]
separate system which I can't remember
[701]
what it was called so when you combine
[704]
all these systems together this was how
[707]
microservices happened this is how we
[708]
reversed episode ordering at Netflix
[710]
okay and I love the charge on this one
[713]
okay I did that
[715]
I did that
[719]
it was a lot of fun
[721]
it took like four months oh you know
[724]
what the worst part about it is that I
[725]
didn't get to really choose a lot of the
[726]
names
[728]
and so there's this problem that
[729]
happened on website uh website because
[732]
one of the flags that would come down
[733]
from this service up here which you can
[735]
barely see was hidden
[739]
episode
[741]
numbers
[743]
right and so that was a runtime decision
[746]
that had to be made and the website
[749]
couldn't support it being on the server
[751]
side so it had to be on the client side
[753]
so we'd actually send down those flags
[754]
on the to the client and the client
[757]
would then not display it
[760]
because we just didn't have time for
[762]
another service right here to do the
[764]
mixing of all these things right so we
[766]
had that and so we had to do that but
[768]
here's the problem is the website team
[770]
uh the website team they hated this name
[774]
and so I had to do a whole code review
[777]
and then not allow these names to take
[779]
place because this implies actually not
[782]
visible
[785]
and they didn't want a not visible they
[788]
wanted the name to be said in a way
[789]
that's not complicated so we had to then
[793]
after making all the changes and
[795]
everything was uniformly ready to go
[796]
someone said hey we can't do this and I
[799]
just said hey I mean this is just the
[800]
name of the flags I think it's better
[801]
just to stick with the names throughout
[803]
you know it's not the name I would
[805]
choose but whatever and of course that
[807]
didn't work out so I had to then do a
[809]
quick refactor rename things and that's
[812]
that
[815]
it was
[818]
it was the worst experience of my
[820]
lifetime
[822]
all this
[824]
so that the Pig episode
[827]
wasn't the first thing you saw
[832]
can you fix the no uh let's see why not
[835]
just a rate of uh reverse on the front
[837]
end did you not hear oh my goodness I
[839]
feel like I just did an entire story
[843]
why not
[844]
were you not even paying attention
[847]
were you not even paying attention to
[850]
this whole thing I I just EX
[853]
don't be coming into this chat
[856]
with your vs code Vibes all right you
[858]
keep that out
[859]
you keep that out right now