demonstration - zend
TRANSCRIPT
Webinar
In partnership with
06-20-2013
WebinarAn introduction to Rubedo,
A new open source CMS.
NoSQL storage, Zend Framework based
Introduction
Christian DUREL
� Managing Director of
Zend Partnership
� WebTales is a Zend ISV/OEM partner and
Rubedo is based on ZF & Zend Server 6
� ZS6 : is an industrial & supported « PHP stack»
� ZS6 includes performance & productivity tools
� Benefits for the customer :
– The application is supported BUT also the
PHP and Zend Framework� Managing Director of
Southern Europe and
EMEA Channel
– High productive services and functionalities
• Error detection and fixes
• Performance and Security
• Déployment & rollback capabilities
• Configuration Management
• Application performance indicators
– Higher application SLA
– Strong ISV and integrator relationship
Introduction About CMS Rubedo Demonstration Communities Roadmap
Introduction
Alexandru DOBRE
Julien BOURDIN
� Graduate from Ecole Centrale Lyon
� Senior PHP Architect
� WebTales co-founder & CTO
Who are we?
Alexandru DOBRE
� Graduate from Telecom Paris Sud
� Front-end lead
� Sencha Ext-JS expert
Introduction About CMS Rubedo Demonstration Communities Roadmap
WebTales, open-source editor
About CMS
A CMS allows to create, store, classify,
share and distribute heterogeneous
contents.
Contents are published to different Contents are published to different
websites, for different devices
(smartphones, computers, tablets),
regardless of the volume of data and
websites traffic
Introduction About CMS Rubedo Demonstration Communities Roadmap
About CMS - Technical overview of CMS
� Mostly LAMP
– Linux
– Apache
– MySQL
– PHP
� Most are written in plain old PHP
– No framework
– No dependancy injection and SOLID paradygm
� All of them use SQL data storage
Introduction About CMS Rubedo Demonstration Communities Roadmap
About CMS - Most frequently occurring problems
� Ease of use
� Agility / versatility
� Maintenance costs
� Performance / scalability� Performance / scalability
� Mobility / responsive design
Introduction About CMS Rubedo Demonstration Communities Roadmap
About CMS - Ease of use
� Most of the time, contents are about a subject with no
relation to IT
� User interfaces should help, not make users flee
Introduction About CMS Rubedo Demonstration Communities Roadmap
About CMS - Agility
� Contents are heterogeneous
� New content types are added in the websites lifecycle
� SQL models can’t foresee structures
Introduction About CMS Rubedo Demonstration Communities Roadmap
About CMS - Maintenance costs
� Plain old PHP is good as long as nothing is to be
changed
� Software quality is difficult to manage when working
alone (no framework, no components)
� Skills are more expensive for specific products than for
generic technologies
Introduction About CMS Rubedo Demonstration Communities Roadmap
About CMS - Performance
� There are no performance problems as long as
– Traffic is not too big
– Contents aren’t too many
� These limits are quite smaller than you could hope
� Scaling platform is often limited by data storage
� Scaling costs are not linear
Introduction About CMS Rubedo Demonstration Communities Roadmap
About CMS - Mobility
� Mobile access will be more frequent than desktop
access in a few years
� Responsive design is quite new for CMS
� It often costs twice or thrice to deliver contents to each
device format
Introduction About CMS Rubedo Demonstration Communities Roadmap
The birth of Rubedo
� 2012 : let's build a fresh solution to overcome previous limits!
� LAMP is the default choice since 1995, BUT K
– We need to serve dynamic and customized contents
– We need to store varied and complex data
– We need to scale
– We need agility to fit customers needs
� It leads to a new product
– Easier to use
– Responsive
– Built on a cutting edge architecture
Introduction About CMS Rubedo Demonstration Communities Roadmap
Rubedo : a webOS
Sizeable windows,
Can be dragged, minimized
and so on
Shortcut icons
Introduction About CMS Rubedo Demonstration Communities Roadmap
TaskbarMain menu
Applications
Backoffice search
Zend Framework
� Why a framework?
– Don’t reinvent the wheel
– Mantain specific code and delegate general concerns
� Why Zend Framework?
– Strong object model
– Use at will components
– Freedom of model implementation– Freedom of model implementation
– Can subscribe an editor support
– Strong community
� Why not Zend Framework 2 ?
– Rubedo developments began quite before ZF2 final release
– Service layer anticipated
– A ZF2 release is planned this july
Introduction About CMS Rubedo Demonstration Communities Roadmap
NoSQL
� SQL and CMS
– SQL is often used as default
– Many features aren’t needed at all for CMS
– Few use cases imply an SQL database
– Constraints are often defined at application level instead of database
� What is « noSQL » ?
– Accepting a looser consistency, we can store data in other ways– Accepting a looser consistency, we can store data in other ways
– Because of some feature losses, we gain much
� Document oriented storage
– Data is composed of can stand alone particles : documents
– Everything about an item can be written inside a document
– What a document contains is discovered when reading and writing
Introduction About CMS Rubedo Demonstration Communities Roadmap
NoSQL
SQL (i.e. MySQL) Document (i.e. MongoDB)VS
Introduction About CMS Rubedo Demonstration Communities Roadmap
• For a content type: 6 tables
• For 10 content types: 29 tables
• 1 single request: 6 tables et 2 join
For a content type: 1 collection
For 10 content types: 1 collection
1 single request: 1 collection
MongoDB & Elastic Search
� MongoDB offers the leading document oriented storage solution
– Offers superior performances
– Offers low cost scalability
– Can handle huge amount of data
– Can store files in a specific collection (GridFS)
� Elasticsearch is the counterpart of MongoDB for full text search� Elasticsearch is the counterpart of MongoDB for full text search
– Can index heterogeneous documents
– Offers multifaceted searches
Introduction About CMS Rubedo Demonstration Communities Roadmap
Sencha ExtJS: the store pattern
� Sencha Extjs is a Javascript framework
� It allows building full MVC client-side application
– Handles MVC structure
– Offers components for a complete user interface
� It offers an easy interface implementation with a webserver
– Each collection of data can be represented client-side by a store
– A store contains data and retrieval methods
– Every time a component needs to read or write data, an asynchroneus
POST can be triggered
– All exchanges are JSON formated, same format as MongoDB
documents
Introduction About CMS Rubedo Demonstration Communities Roadmap
Rubedo Back Office
� A client-side MVC application
� A server side API with Zend Controller
� Some asynchroneous JSON POST
Client-Side Server-Side
Introduction About CMS Rubedo Demonstration Communities Roadmap
User Interface ZF Controller
Store
JSON
Rubedo Front Office
� Bootstrap
� Responsive grid
� HTML 5 rendering
� Twig templating engine
Introduction About CMS Rubedo Demonstration Communities Roadmap
Performance
� Data access is no longer a bottleneck
– All can be accessed from memory on each query
– All content is atomically fetched (no join, no pain)
– Filtering is efficient as long as indexes are well defined
� Full text search is no longer a bottleneck
– Real time indexing of new contents– Real time indexing of new contents
– Complete and faceted results are instantly accessed
� Scaling process is much easier
– PHP layer is almost stateless (only session)
– No filesystem level sharing
– MongoDB and Elasticsearch are horizontal clusters
Introduction About CMS Rubedo Demonstration Communities Roadmap
Agility
� Content types can be created on-the-fly
� Lists of contents can be result of simple or complex queries
� Specific data can be exploited in each documents
– Taxonomies
– GeoJSON
� Demo!
Introduction About CMS Rubedo Demonstration Communities Roadmap
JavaScript, HTML5, CSS3
NoSQL
DEMONSTRATION
Introduction About CMS Rubedo Demonstration Communities Roadmap
Roadmap
Summer 2013
• ZF2• Multilinguage contents• Pixlr integration
15 mars 2013, 1.0 available on github
Late 2013
•Social Contents
•Collaboration features
•E-commerce
Introduction About CMS Rubedo Demonstration Communities Roadmap