TYPO3 Flow a solid foundation for medialib.tv

39
Inspiring people to share T3CONDE | Stuttgart | october 2013 | dominique feyer | ttree | www.ttree.ch TYPO3 Flow a solid foundation for medialib.tv

description

During this talk I present why we choose TYPO3 Flow as our main PHP framework and has a foundation for our VOD SaaS service medialib.tv

Transcript of TYPO3 Flow a solid foundation for medialib.tv

Page 1: TYPO3 Flow a solid foundation for medialib.tv

Inspiring people toshare

T3CONDE | Stuttgart | october 2013 | dominique feyer | ttree | www.ttree.ch

TYPO3 Flow a solid foundation for medialib.tv

Page 2: TYPO3 Flow a solid foundation for medialib.tv

Inspiring people toshareFlow a solid foundation for medialib.tv

About our agencyttree ltd pronounced “tea-tree”

Small but nice webagency based in Lausanne, Switzerland

> 10 years of experience with TYPO3 CMS

Early Flow / Neos adopter & supporter

Clean code addicted

Page 3: TYPO3 Flow a solid foundation for medialib.tv

Inspiring people toshareFlow a solid foundation for medialib.tv

About myselfDominique Feyer

Cofounder of ttree ltd + medialib.tv ltd

One of the men behind the TYPO3 CMS XLIFF support

Leader of the TYPO3 translation team

If you can’t produce clean code, try to improve yourself

Page 4: TYPO3 Flow a solid foundation for medialib.tv

Inspiring people toshareFlow a solid foundation for medialib.tv

About medialib.tvSaaS video streaming portal

Easy & Friendly to use

Customizable

In constant evolution

Page 5: TYPO3 Flow a solid foundation for medialib.tv

A short history of the project

Page 6: TYPO3 Flow a solid foundation for medialib.tv

What’s the goal of the project ?

Hey men, that’s simple ... I just need to watch movies, you understand ?

Look like a simple domain ...So we can start with it with a really fresh framework !

User need to watch movie

First user story

Page 7: TYPO3 Flow a solid foundation for medialib.tv

But the real domain is a bit more complex ...

MovieStream

Client

User

NewsAnalytics

Advice

Security

Page 8: TYPO3 Flow a solid foundation for medialib.tv

Key featuresSaaS / Single application for multiple client

Secured stream access

Advanced forms

“Auto discoverable” features

Customizable frontend templates

Page 9: TYPO3 Flow a solid foundation for medialib.tv

History2009: informal discussion with some movie producers

2010: first working prototype based on Symfony 1.4

2012: Relaunch based on TYPO3 Flow 2.0 (master)

2013: Service launched in France

2014: You know that’s the future ...

Page 10: TYPO3 Flow a solid foundation for medialib.tv

A short video to introduce medialib.tv

Page 11: TYPO3 Flow a solid foundation for medialib.tv
Page 12: TYPO3 Flow a solid foundation for medialib.tv

Why do we choose TYPO3 Flow ?

Question Being an early adopter can be risky & challenging, no ?Answer Yes, but why not taking risk, that’s life ?

Page 13: TYPO3 Flow a solid foundation for medialib.tv

Where are we going ?

Page 14: TYPO3 Flow a solid foundation for medialib.tv

But first, what do we need ?

✓ A complete & flexible MVC stack

✓ A productive framework

✓ A clean code base & documentation

✓ A powerful & easy form handling

✓ A way to take care about the security

✓ A highly flexible templating system

✓ An awesome community support and feedback

Page 15: TYPO3 Flow a solid foundation for medialib.tv

MVC Stack & Productive Framework

Question Did you know Extbase / Fluid ?

Answer So you can build an MVC application with TYPO3.Flow

✓ Easy learning curve from Extbase / Fluid

✓ Add feature (security, AOP, ...) when you feel confortable

✓ AOP is complex but really powerful

✓ Security Framework is a key feature

Page 16: TYPO3 Flow a solid foundation for medialib.tv

A clean code base & documentation

✓ Documentation improve every day

✓ A framework is targeted for developper

✓ The code is the «real documentation»

✓ Flow has a really clean code base

✓ Take time to understand it

✓ Contributing is the best way to improve your skills

Page 17: TYPO3 Flow a solid foundation for medialib.tv

A powerful & flexible form handling

✓ The first prototype of medialib.tv is based on Symfony 1.4

✓ The form handling / validation was a nightmare

✓ Things change in version 2.0 and higher, but that not perfect

✓ With Flow we handle more than twelve model in a single form

✓ Complexe validation

✓ Easy to write template

✓ Consitent configuration of the validation

Page 18: TYPO3 Flow a solid foundation for medialib.tv

A way to take care about security

Question How do you handle your application security ?

Answer Joker, can you ask an other question ?

Policy.yaml Firewall Style

Page 19: TYPO3 Flow a solid foundation for medialib.tv

Deny everything & Grant what’s needed

Page 20: TYPO3 Flow a solid foundation for medialib.tv
Page 21: TYPO3 Flow a solid foundation for medialib.tv
Page 22: TYPO3 Flow a solid foundation for medialib.tv
Page 23: TYPO3 Flow a solid foundation for medialib.tv

A highly flexible template system

✓ Fluid is good Templating System

✓ TypoScript2 give you a lots more flexibility

✓ EEL push the limit a bit higher

✓ So TS2 + EEL + Fluid = awesome templating

more about TypoScri

pt2/EEL later

Page 24: TYPO3 Flow a solid foundation for medialib.tv

An awesome community

✓ The TYPO3 Community is full of really innovative people

✓ IRC channel is really friendly and helpfull

✓ Active mailing list

✓ Don’t be a ... try to contribute early !

In a Nutshell, TYPO3 Flow...!

...has had 4,852 commits made by 78 contributors !

representing 91,215 lines of code!...is mostly written in PHP !

with a well-commented source code!...has a well established, mature codebase !

maintained by a very large development team !with decreasing Y-O-Y commits!...took an estimated 23 years of effort (COCOMO model) !

starting with its first commit in February, 2008 !ending with its most recent commit 9 days ago!

Page 25: TYPO3 Flow a solid foundation for medialib.tv

Our current projects

We are just 6 monthes after the launch ...

✓ Stabilize & Near continous delivery

✓ Full TypoScript rendering stack

✓ Service Oriented Architecture

✓ Digital Right Management for HLS

Page 26: TYPO3 Flow a solid foundation for medialib.tv

Stabilize & Near continous delivery

✓ Bugfixing

✓ TDD + BDD

✓ «Near» Continous Delivery

Don’t release during the night, w

hen you can sleep

Page 27: TYPO3 Flow a solid foundation for medialib.tv

Full TypoScript rendering stack !

✓ More Flexibility

✓ Improve performance

✓ Lazy Loading

Page 28: TYPO3 Flow a solid foundation for medialib.tv

Controller

View

Page 29: TYPO3 Flow a solid foundation for medialib.tv

Controller

View

TypoScript

Page 30: TYPO3 Flow a solid foundation for medialib.tv
Page 31: TYPO3 Flow a solid foundation for medialib.tv
Page 32: TYPO3 Flow a solid foundation for medialib.tv

Performance

Memory Usage

✓ Before: 72 Mo

✓ After: 34 Mo

-53%

Page 33: TYPO3 Flow a solid foundation for medialib.tv

Service Oriented Architecture

✓ Currently the application is monolithic

✓ Some tasks need to be async

Handling videos remember m

e the nice time

when I upload images on a BBS

Page 34: TYPO3 Flow a solid foundation for medialib.tv

Moving from monolith to SOA

✓ Signal & Slot

✓ Decoupled

✓ Test

✓ Job Queue / Beanstalk

Page 35: TYPO3 Flow a solid foundation for medialib.tv

HLS DRM Server Key

✓ Connected to Wowza Streaming Server (SOAP)

✓ Delvier key over HTTPS

✓ Key Rotation

✓ Dedicated to iOS devices and Safari

Ttree.Wowza.HlsKeyServer will b

e opensourced

Page 36: TYPO3 Flow a solid foundation for medialib.tv

What about the futur

✓ Public API / RESTfull

✓ Templating Server / Remote template delivery system

✓ ElasticSearch integration, based on Flowpack.ElasticSearch

✓ Riak CS adaptor for Flow 2.1 RessourceManager

✓ Semantic Web & Accesibility

✓ Neos integration

Page 37: TYPO3 Flow a solid foundation for medialib.tv

Questions & Answers

Page 38: TYPO3 Flow a solid foundation for medialib.tv

Thanks for listening You, has a community, can make thing happen, so thank you

Page 39: TYPO3 Flow a solid foundation for medialib.tv

www.ttree.ch www.medialib.tv !

@dfeyer @ttreeagency @medialibtv !

github.com/ttreeagency github.com/dfeyer !

[email protected]