itv& bashton

22
Building a Shared Pipeline for Content Distribution AWS Media and Entertainment Cloud Symposium 23rd March 2016 Jim Taylor & Sam Bashton

Upload: amazon-web-services

Post on 22-Jan-2018

679 views

Category:

Business


0 download

TRANSCRIPT

Page 1: ITV& Bashton

Building a Shared Pipeline for Content DistributionAWS Media and Entertainment Cloud Symposium

23rd March 2016

Jim Taylor & Sam Bashton

Page 2: ITV& Bashton

Who are we? - ITV/Jim

● Jim Taylor - Technical Product Owner, VOD Distribution● [email protected]

ITV is the biggest commercial television network in the UK. We love telly, we’re passionate about content and most importantly we understand our audiences.

As a growing international company, we’re commercially minded and have a global focus. We’re all about pushing the boundaries and being innovative.

Page 3: ITV& Bashton

Who are we? - Sam Bashton

Page 4: ITV& Bashton

VOD Distribution - Push model

ITV

Partner 1Push content

Partner 2Push content

Scale issues with:● Bandwidth● Processing● Unique delivery methods● Redelivery requests

...but same content to each partner!

Partner 3

...

Page 5: ITV& Bashton

Business problem

How can we continuously distribute large volumes of high quality video to several destinations, without spiralling distribution costs?

● Partners need high quality mezzanine so they can transcode to multi-platform● ITV has about 200 hours/week of Catch Up ≈ 6TB/week● 1Gbps link per partner = high cost/long lead time● Push model unsustainable as distribution points increase

Page 6: ITV& Bashton

Solution - Cloud delivery - pull model

Use AWS to deliver once using a templated delivery and offer partners a fixed menu via a pull model

ITV AWSITV

Partner 1 AWS

Partner 1

Upload once

Downloadcontent

Notifications

Notifications

Partner 2

Partner 2 AWS

Notifications

Downloadcontent

Notifications

Page 7: ITV& Bashton

Solution - Package

Shared:Series/Episode Images 16:9 & 4:3HD (XDCam50) or SD (IMX30) asset

Private:Metadata file containing● Tech metadata, asset locations● Licence details● Editorial metadata

Page 8: ITV& Bashton

Technology used

ITV AWS

ITV

Partner AWS

Partner

Signiant Flight

SNS

Amazon S3AWS CloudFormationAmazon LambdaELK stack on EC2

Splunk

Page 9: ITV& Bashton

Partnership - ITV & Bashton

Page 10: ITV& Bashton

Partner Setup: AWS

● Each partner has their own AWS account● Files in the bucket use ‘requester pays’ billing - partners pay for data transferred

outside of AWS● Partners notified via SNS when new content is available

Page 11: ITV& Bashton

Partner setup: SNS

● ‘Simple Notification Service’● Push notifications

○ Webhooks○ SQS (Simple Queue Service)○ Lambda

Page 12: ITV& Bashton

Lambda

● Code without a server*● Trigger simple tasks● Used as part of shared pipeline

○ Receives notifications when videos are uploaded○ Looks up partners, sends SNS notifications to those that are relevant

Page 13: ITV& Bashton

Test environments

● Creating resources via web console fine for trying things out● Proof of concept environment created in this way● In production, we need to build multiple copies of the environment● Changing everything manually quickly becomes tiresome

Page 14: ITV& Bashton

CloudFormation

● CloudFormation to the rescue!● Infrastructure as Code● Specify what an environment looks like in a JSON text file

○ Networks, subnets○ Firewall rules○ S3 Buckets○ Instances, volumes○ Access control

● Commit to source control (GIT)

Page 15: ITV& Bashton

CloudFormation: Rich documentation

● Every change has a commit message● History of every setting can be viewed back to the beginning of the project

○ With comments about every change to say why they were made

Page 16: ITV& Bashton

CloudFormation: Testing

● Change a template● Apply to test environment● Run the same change against staging, production● Confidence that every change will work, and that all tests are valid

Page 17: ITV& Bashton

● Lambda - code without servers*● Code still needs to be tested● For software deployed to instances we use Jenkins for CI

○ Automated Testing○ Deployment and ‘promotion’ between environments (test->stage->prod)

● What to use with Lambda?

Software Testing

Page 18: ITV& Bashton

● Jenkins● Code committed to git repo● Jenkins checks out code from git● Runs automated tests● Deploys to environment● Deploys to ‘next’ environment (test->stage) at the click of a button

Jenkins + Lambda

Page 19: ITV& Bashton

Future plans

ITV AWSITV

Partner 1 AWS

Partner 1

Upload once

Downloadcontent

Notifications/metadata

Notifications

Partner 2

Partner 2 AWS

Notifications

Downloadcontent

Notifications/metadata

Metadata API

Added ourselves as a Shared Pipeline partner!

Add access services

Cloud transcoding & stitching

Page 20: ITV& Bashton

● Deliver a ‘reference’ test system for partners - easier to look at a working example than documentation● Issues using “requester pays” in egress - make this clearer● Avoid logging overload

What would we do differently?

Page 21: ITV& Bashton

● Delivery time of project - 5 months● Reduced time to deliver a new partner from 3-6 months to 1-2 months

○ ...providing they use our system● Reduced cost to deliver a new partner by up to 75%

○ ...providing they use our system● Can start testing within a week

Success? - Yes!

Page 22: ITV& Bashton