[This is My Architecture] [Voodoo:] [Performance Recommendations Using Machine Learning]
Hello and welcome to This is My Architecture.
Today I'm pleased to welcome Voodoo.
[Robin Mizreh] [Technical Lead, Big Data Expert Voodoo] [Patrick Madec] [Partner Solutions Architect AWS] - Hello Robin. - Hello.
So, you're a Tech Lead at Voodoo,
can you tell us what Voodoo does.
Yeah, sure.
Voodoo is a company that makes mobile games.
We're currently the world's leading mobile game publisher.
And we're the second company
that gets the most downloads on the AppStore, after Google .
All right. And what are your challenges?
Our main challenges will be
to monetize our users and acquire them
so that, on our Ultra Casual games,
a user costs us less than he brings in, of course.
And in the end, to make our users profitable and monetize them.
All right.
Today, you decided to share with us this architecture.
Can you tell us about this app?
- What does it do? - Yes, I can.
Well, this architecture
is the optimization of our cross promotion.
So, it's the distribution of Voodoo apps,
within Voodoo games.
It allows us to keep a user
as we release new games,
at a lower cost.
And, we try to maximize
the chances that they will install our apps.
All right.
Can you tell us more about your use
of these services?
Yeah, sure.
So, when the user arrives,
our app will ask
for an advertisement
from all the Add Network we work with,
including ourselves.
Thanks to the user, it addresses a request
to us in our fairly classic ECS stack
with an ALB and an Auto Scaling Group
with EC2s on it.
This app will then call DynamoDB,
after performing several business filters,
in order to get
all the necessary information
with all the features needed
to be able to invoke our Machine Learning model.
And then, it will be able
to call our SageMaker EndPoint
in order to obtain all the predictions
for this user.
Each prediction represents the probability
that this user will install
some of our apps by displaying such advertisement.
And according to the best probability of install,
we will be able to display this ad
to the user.
All right.
I see several, two S3 Buckets here,
can you tell us about this data?
Yeah, sure.
Well, this is actually the preparation of the information
for our Machine Learning
Here in this Bucket, we have our Data Lake.
And we're going to run a batch
of EMRs that will take
the information from our Data Lake,
aggregate, join,
merge multiple data sources,
and then create a dataset
and write it into another S3 Bucket.
- All right. - This S3 Bucket, here,
is going to be used by Data Scientists
using Jupyter Notebooks.
So, right into SageMaker.
In order to be able
to test their models
and observe the offline predictions of the model.
All right.
Once these predictions are good enough for us,
we will be able to train a model
and deploy a new EndPoint.
And after that, that EndPoint will take some of the traffic.
As a result, we can choose
how much of the traffic we want to allocate to it.
At the beginning, we try to allocate not too much traffic,
in order to validate only the online performance.
And once the online performance is validated,
we gradually increase the traffic
that this EndPoint will take.
All right.
And in terms of load on this app,
do you have some figures to give us,
for example on the number of calls to this model?
At the moment, I admit
that it's growing steadily, but for the moment
we're going to have about 100 million model invocations per day.
And each model invocation will cause
about ten or even fifteen predictions.
So that's several billion predictions per day.
Because for one call to our EndPoint,
we have to make one prediction
for each advertising campaign.
All right. So, one of the advantages
is scalability in this case?
Yes.
Is there another advantage to using SageMaker for you?
For us, the main advantage
of SageMaker, in addition to its scalability,
is really to make Data Scientists
completely autonomous.
That means that with our company,
in order to train a model,
retrieve online data from our Data Lake,
and deploy a model, a Data Scientist is fully autonomous.
We don't need a Data Engineer,
we don't need DevOps.
And DevOps can focus on industrializing
our infrastructures and architectures.
Our Data Engineers can focus
on really optimizing our Dataset creation.
All right.
Thank you very much for sharing this architecture with us,
it was very interesting.
Thank you very much.
And thank you and see you soon
for another episode of This is My Architecture.
[Thank you for watching] [For more information visit] [aws.amazon.com/this-is-my-architecture]