1. TYPO3 Flow a solid foundation
for medialib.tv
T3CONDE | Stuttgart | october 2013 | dominique feyer | ttree | www.ttree.ch
Inspiring people to
share
2. About our agency
ttree 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 to
Flow a solid foundation for medialib.tv
share
3. About myself
Dominique 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 to
Flow a solid foundation for medialib.tv
share
4. About medialib.tv
SaaS video streaming portal
Easy & Friendly to use
Customizable
In constant evolution
Inspiring people to
Flow a solid foundation for medialib.tv
share
6. 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 !
First user story
User need to watch movie
7. But the real domain is a bit more complex ...
Client
User
ews
N
Movie
vice
Ad
rity
ecu
S
Strea
m
Analytics
8. Key features
SaaS / Single application for multiple client
Secured stream access
Advanced forms
“Auto discoverable” features
Customizable frontend templates
9. History
2009: 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 ...
14. 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
15. 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
16. 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
17. 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
18. 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
23. 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
o
m
a
re
oS
yp
T
ut
bo
pt
ri
c
EE
2/
l
L
er
at
24. 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!
25. 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
26. Stabilize & Near continous delivery
✓ Bugfixing
✓ TDD + BDD
✓ «Near» Continous Delivery
th
g
ni
e
on
D
el
tr
’
se
ea
rin
du
t,
gh
he
w
yo
n
ca
u
s
n
ep
le
33. Service Oriented Architecture
✓ Currently the application is monolithic
tim
ice
n
he BS
t
e
B
m
a
r
be s on
em ge
em ima
r
os ad
de plo
vi u
ng n I
li
nd whe
Ha
e
✓ Some tasks need to be async
34. Moving from monolith to SOA
✓ Signal & Slot
✓ Decoupled
✓ Test
✓ Job Queue / Beanstalk
35. HLS DRM Server Key
✓ Connected to Wowza Streaming Server (SOAP)
ed
rc
ou
✓ Delvier key over HTTPS
✓ Key Rotation
lb
il
✓ Dedicated to iOS devices and Safari
ow
.W
ee
tr
T
.H
za
ey
sK
l
w
er
rv
Se
o
e
ns
pe
36. 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