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.tvTRANSCRIPT
Inspiring people toshare
T3CONDE | Stuttgart | october 2013 | dominique feyer | ttree | www.ttree.ch
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
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
Inspiring people toshareFlow a solid foundation for medialib.tv
About medialib.tvSaaS video streaming portal
Easy & Friendly to use
Customizable
In constant evolution
A short history of the project
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
But the real domain is a bit more complex ...
MovieStream
Client
User
NewsAnalytics
Advice
Security
Key featuresSaaS / Single application for multiple client
Secured stream access
Advanced forms
“Auto discoverable” features
Customizable frontend templates
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 ...
A short video to introduce 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 ?
Where are we going ?
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
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
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
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
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
Deny everything & Grant what’s needed
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
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!
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
Stabilize & Near continous delivery
✓ Bugfixing
✓ TDD + BDD
✓ «Near» Continous Delivery
Don’t release during the night, w
hen you can sleep
Full TypoScript rendering stack !
✓ More Flexibility
✓ Improve performance
✓ Lazy Loading
Controller
View
Controller
View
TypoScript
Performance
Memory Usage
✓ Before: 72 Mo
✓ After: 34 Mo
-53%
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
Moving from monolith to SOA
✓ Signal & Slot
✓ Decoupled
✓ Test
✓ Job Queue / Beanstalk
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
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
Questions & Answers
Thanks for listening You, has a community, can make thing happen, so thank you
www.ttree.ch www.medialib.tv !
@dfeyer @ttreeagency @medialibtv !
github.com/ttreeagency github.com/dfeyer !