new media cloud and microservice architecture · 2020. 1. 8. · media cloud and microservice...

22
Media Cloud and Microservice Architecture Jump start your media infrastructure in the cloud Loic Barbou – Bloomberg – [email protected] https://tech.ebu.ch/groups/mcma

Upload: others

Post on 13-Oct-2020

18 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: New Media Cloud and Microservice Architecture · 2020. 1. 8. · Media Cloud and Microservice Architecture ... •Libraries to facilitate implementation of cloud services • Service

Media Cloud and Microservice Architecture

Jump start your media infrastructure in the cloud

Loic Barbou – Bloomberg – [email protected]

https://tech.ebu.ch/groups/mcma

Page 2: New Media Cloud and Microservice Architecture · 2020. 1. 8. · Media Cloud and Microservice Architecture ... •Libraries to facilitate implementation of cloud services • Service

Our active contributors

Page 3: New Media Cloud and Microservice Architecture · 2020. 1. 8. · Media Cloud and Microservice Architecture ... •Libraries to facilitate implementation of cloud services • Service

What is MCMA?

• Best practices to implement media workflows in the cloud• Workflow modeling and long running processes

• Service integration

• Infrastructure management and service selection based on cost and performance

• Methodology to support services from most common cloud providers

• AWS, Azure, GCP,….

• Libraries to facilitate implementation of cloud services • Service sequencing

• Job management, tracking and monitoring

• Data store and repository

• Interaction with native cloud services, open source and commercial components

• Expose a common pattern for serverless, docker based or instance based processing

Page 4: New Media Cloud and Microservice Architecture · 2020. 1. 8. · Media Cloud and Microservice Architecture ... •Libraries to facilitate implementation of cloud services • Service

What is MCMA?

• Optimized continuous integration and deployment pipeline• Gradle

• Terraform

• Bridge between cloud and on-premises infrastructure• Docker deployment

• Terraform

• A methodology to not make the same mistake we made!!• Cost management

• Infrastructure management

• Support

Page 5: New Media Cloud and Microservice Architecture · 2020. 1. 8. · Media Cloud and Microservice Architecture ... •Libraries to facilitate implementation of cloud services • Service

Design considerations

• Limit learning curve

• Expose resources as reusable code

• Repeatable patterns

• Easily configure and deploy

• Developer friendly

• Follow opensource mentality

Page 6: New Media Cloud and Microservice Architecture · 2020. 1. 8. · Media Cloud and Microservice Architecture ... •Libraries to facilitate implementation of cloud services • Service

Model and implementation design

• Job management and monitoring

• Compute processing exposed thru serverless, docker or

custom instances

• Service sequencing

• Long running transactions support

• Event based communication pattern

• Service registration and discovery

• Standardized REST based data repository

Page 7: New Media Cloud and Microservice Architecture · 2020. 1. 8. · Media Cloud and Microservice Architecture ... •Libraries to facilitate implementation of cloud services • Service

Technology stack details

• Code

• Node.js and NPM for MCMA libraries

• DotNet core

• …..

• Code orchestrator

• Gradle

• Deployment and configuration

• Terraform

Page 8: New Media Cloud and Microservice Architecture · 2020. 1. 8. · Media Cloud and Microservice Architecture ... •Libraries to facilitate implementation of cloud services • Service

MCMA Common Service Pattern

REST Interface

API Gateway

API Handler

Lambda

Worker

Lambda

Custom

Service,API, library, exe

MCMA LibrariesForward

HTTP requests

Validate and route HTTP

requestsProcess requestsHandle interactions

with datastore and other components

Page 9: New Media Cloud and Microservice Architecture · 2020. 1. 8. · Media Cloud and Microservice Architecture ... •Libraries to facilitate implementation of cloud services • Service

Repository Service Design

REST Interface

API Gateway

API Handler

Lambda

Worker

Lambda

Database

DynamoDB

Create

Read

Update

Repository

Delete

• Restful CRUD interface

• Minimum customization to store your data

• Dynamic schema support

Page 10: New Media Cloud and Microservice Architecture · 2020. 1. 8. · Media Cloud and Microservice Architecture ... •Libraries to facilitate implementation of cloud services • Service

Repository Service

• Minimum representation for an object

{"id": "https://service_address/ResourceType/bc49b54b-2eab-4323-a0ce-fcdfb73ee9dc","@type": "ResourceType"}

• Dynamic schema : store what you want!

{"id": "https://service_address/MyOtherResourceType/bc49b54b-2eab-4323-a0ce-fcdfb73ee9dc","@type": "MyOtherResourceType","event": "PTS 2019",“session": “MCMA ROCKS"

}

Page 11: New Media Cloud and Microservice Architecture · 2020. 1. 8. · Media Cloud and Microservice Architecture ... •Libraries to facilitate implementation of cloud services • Service

The service repository service

REST Interface

API Gateway

API Handler

Lambda

Worker

Lambda

Database

DynamoDB

Create

Read

Update

Repository

Delete

• Yellow pages of configured services

• Contains information about each service

capabilities

Page 12: New Media Cloud and Microservice Architecture · 2020. 1. 8. · Media Cloud and Microservice Architecture ... •Libraries to facilitate implementation of cloud services • Service

Service Instantiation Flow (example 1: Transcode)

Create Job of type

transcode

Job Processor There is a job to do. Find a service that

can do it

Job Repository

Service Repo Query the service repo

to find a service that can do that

job type

My Transcode Service

I found a service that can do that

job type. Instantiate the

service

Page 13: New Media Cloud and Microservice Architecture · 2020. 1. 8. · Media Cloud and Microservice Architecture ... •Libraries to facilitate implementation of cloud services • Service

Service Instantiation Flow (example 2: Workflow)

Create job of type

workflow

Job Processor There is a job to do. Find a service that

can do it

Job Repository

Service Repo Query the service repo

to find a service that can do that

job type

My Workflow Service

I found a service that can do that

job type. Instantiate the

service

My Workflow

Create job

Other workflow tasks

Page 14: New Media Cloud and Microservice Architecture · 2020. 1. 8. · Media Cloud and Microservice Architecture ... •Libraries to facilitate implementation of cloud services • Service

Demo 1: STT +Translation+ TTS

Conform Media

TranscodeFFMPEG Lambda

Inspect Media

QCMediaInfo Lambda

Upload Media

Web AppS3,

Cognito

Analyze Media

STTTranscribe

Service(STT)

Translate Media

TranslateTranslate Service

Analyze Media

STT QCDockerFargate

Transform Media

Tokenize outputLambda

Transform Media

TTSService

Polly + SSML

Transform Media

Merge Audio& subtitle

FFMPEG Lambda

MCMA Service

Subtitle + Original track (SRT & VTT)

STT benchmarking

Page 15: New Media Cloud and Microservice Architecture · 2020. 1. 8. · Media Cloud and Microservice Architecture ... •Libraries to facilitate implementation of cloud services • Service

Demo 1 – screenshot (STT on screen)

Page 16: New Media Cloud and Microservice Architecture · 2020. 1. 8. · Media Cloud and Microservice Architecture ... •Libraries to facilitate implementation of cloud services • Service

Demo 2: Celebrity and Emotion Detection

Conform Media

TranscodeFFMPEG Lambda

Inspect Media

QCMediaInfo Lambda

Upload Media

Web AppS3,

Cognito

Analyze Media

AI Celebrity Rekognition

Service

Analyze Media

AI EmotionRekognition

Service

MCMA Service

Transform Media

Merge Emotion& Celebrity

Lambda

Page 17: New Media Cloud and Microservice Architecture · 2020. 1. 8. · Media Cloud and Microservice Architecture ... •Libraries to facilitate implementation of cloud services • Service

Demo 2: Celebrity and Emotion Detection

• The Celebrity and Faces services outputs are filtered and combined to generate averaged emotions for each celibrity

Page 18: New Media Cloud and Microservice Architecture · 2020. 1. 8. · Media Cloud and Microservice Architecture ... •Libraries to facilitate implementation of cloud services • Service

Demo 3: Cross cloud workflow

Conform Media

TranscodeFFMPEG Lambda

Inspect Media

QCMediaInfo Lambda

Upload Media

Web AppS3,

Cognito

Analyze Media

AI Celebrity Rekognition

Service

Store Media

Media RepositoryAZ Function

MCMA Service

MCMA Project

ScriptScriptTerraform

ScriptCode

Page 19: New Media Cloud and Microservice Architecture · 2020. 1. 8. · Media Cloud and Microservice Architecture ... •Libraries to facilitate implementation of cloud services • Service

Demo 4: MCMA Launch ControlMCMA Service

MCMA Project

ScriptScriptTerraform

ScriptCode

MCMALaunchControl

UI

Load components

Environment

Environment

CreateUpdateDelete

Repository

Config Repository

PersistConfiguration

Page 20: New Media Cloud and Microservice Architecture · 2020. 1. 8. · Media Cloud and Microservice Architecture ... •Libraries to facilitate implementation of cloud services • Service

Demo 4: MCMA Launch Control

Page 21: New Media Cloud and Microservice Architecture · 2020. 1. 8. · Media Cloud and Microservice Architecture ... •Libraries to facilitate implementation of cloud services • Service

Demo 4: MCMA Launch Control

Page 22: New Media Cloud and Microservice Architecture · 2020. 1. 8. · Media Cloud and Microservice Architecture ... •Libraries to facilitate implementation of cloud services • Service

Join us! MCMA is a voluntary collaborative effort

We need more resources to go faster and share more useful resources

If you are an architect, you certainly want to know more about service-based

architectures (if not already convinced)

If you are a developer, system integrator, you will certainly appreciate working with

other competent and motivated colleagues eager to share knowledge. This will make

the learning curve smoother using best practice development software platforms.

How can you join:

1. Visit https://tech.ebu.ch/groups/mcma

2. Click on “join this group”

3. Alternatively contact EBU -> [email protected]