Welcome to 'This is My Architecture'.
Today, we are in Zurich and I'm here with Ivan from Swiss RSI TV.
- Hello, Ivan. - Hello, Simone. - Thank you for your invitation.
Ivan, please tell us about RSI TV.
RSI is an Italian language unit of the SRG SSR group
which is the public service radio-television company.
Great. What does the project we are discussing today consist of?
The project consists of redoing our MAM, Multimedia Asset Manager,
that is, the platform that allows us to manage all the videos that are on our online platforms,
so our website and app.
Perfect. Let's move on to its architecture.
The architecture can be seen in two macro flows.
Let's start from the top, where we have Elemental Live appliances,
which lie in our data center,
which take the video flows in the form of an SDI stream
of the live channels, either television or web streaming.
Elemental Live has the task of streaming those videos
towards the AWS area.
So, these Elemental Live devices are
provided by AWS.
Exactly. They are two servers that we have on premises.
We have two of them only for higher reliability purposes.
Perfect. So, from there on, how does the flow to the cloud happen?
So, our servers stream to AWS,
using the MediaPackage service,
that deals with recording those videos and saves them in an S3.
It saves them in the form of a playlist, so it saves short videos - short portions,
called 'chunks', and creates a 14-day-long playlist.
So, here we will find all the videos of the last 14 days.
Perfect. So, here you have all the videos in this S3 bucket.
How do you use these videos within your cloud platform?
We can move to the bottom part of the flow,
where we have the intelligence part.
We can start here as well with a component that lies in our data center,
which is made up of two services mainly.
One is the backend, that includes all the metadata
that is then required in our platform.
The other service is the one of a client, a platform that allows users
to interact with the videos we saved - to be able to cut,
edit, and publish them online.
So, the cutting events mainly start from our MAM
and reach AWS through API Gateway.
API Gateway takes the metadata that arrives with the cutting events
and forwards them to a Step Function.
The Step Function - as its name suggests - carries out various steps.
In the first place, it clearly validates the data that had arrived.
Then, based on this metadata, it will unleash cutting events,
it will validate the in-and-out times of the cutting,
if a logo should be applied and what kind of overlay logo should be applied,
what variants should be generated - if HD, SD, or MD,
then it will send a data conversion request to MediaConvert.
Here, our Step Function takes the files from S3,
based on the metadata, then it requests MediaConvert
generate those variants.
Perfect. So, once you have those variants ready,
how can your end users access them?
After MediaConvert will receive the order
to cut the videos, to generate the poster images,
it saves what has been generated in a S3 bucket, that is our origin server
which is the server exposed to the outside and accessible through our player.
Great. I can see a database here as well. How is it used in this flow?
Exactly. DynamoDB is necessary mainly for two purposes.
The first one is to save all the metadata of the whole flow
that we have on our platform, also for a matter of debugging.
The other purpose is to save all the events happening within Step Functions,
so that, through the client application,
the customer is able to always monitor the state of all the activities on the platform.
Great. As far as I can see, this is a hybrid architecture
and also an architecture that uses serverless technologies on the cloud.
The core of this serverless part
is the Step Functions that we can see here in the middle.
Why have you chosen Step Functions and not something traditional,
like a container, or a virtual machine?
Simply put, Step Functions allowed us
to orchestrate all of our flow without writing long lines of code,
or many lines of code. Moreover, we have glimpsed in Step Functions
the possibility to be more flexible
in the case of having to change or make some slight modifications to the flow.
Okay. I also see that an important part of this architecture are the multimedia services,
like Elemental Live, MediaPackage, and MediaConvert.
What are the advantages for you in using these AWS multimedia services?
The main advantage is the scalability.
For example, MediaConvert allows us to modify and raise
the quality of our data conversion, in a faster, more flexible way,
simply with configuration files
without having to invest in particular hardware.
Amazing. Ivan, thank you so much for sharing
your architecture with us today.
Thank you. It's been a pleasure.
Thank you for watching 'This is My Architecture'.