Many current open-source CMS solutions, mostly based on traditional relational databases, have reached their limit. They are no longer able to fully address new web uses and challenges such as mobility, high volume and performance, ergonomics and accessibility. What are the alternative open-source choices to build the best of breed solution in 2013?
This webinar will focus on the example of Rubedo, a highly innovative CMS that brings together the quality and robustness of Zend Framework, the performance and flexibility of the MongoDB – Elastic Search NoSQL stack and the rich and user-friendly interfaces provided by the JavaScript Framework Sencha Ext JS.
3. Introduction
Christian DUREL
Managing Director of
Southern Europe and
EMEA Channel
christian.durel@zend.com
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
– 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
4. Introduction
Alexandru DOBRE
Graduate from Telecom Paris Sud
Front-end lead
Sencha Ext-JS expert
Julien BOURDIN
Graduate from Ecole Centrale Lyon
Senior PHP Architect
WebTales co-founder & CTO
Introduction About CMS Rubedo Demonstration Communities Roadmap
WebTales, open-source editor
Who are we?
5. Agenda
About CMS
Rubedo: from LAMP to LAMP
Demonstration
Communities
Roadmap
6. About CMS
A CMS allows to create, store, classify,
share and distribute heterogeneous
contents.
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
7. 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
8. About CMS - Most frequently occurring problems
Ease of use
Agility / versatility
Maintenance costs
Performance / scalability
Mobility / responsive design
Introduction About CMS Rubedo Demonstration Communities Roadmap
9. 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
10. 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
11. 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
12. 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
13. 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
14. FROM LAMP TO LAMP
Rubedo, a new CMS generation
MySQL MongoDB
15. The birth of Rubedo
2012 : let's build a fresh solution to overcome previous limits!
LAMP is the default choice since 1995, BUT …
– 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
16. Rubedo : a webOS
Introduction About CMS Rubedo Demonstration Communities Roadmap
Sizeable windows,
Can be dragged, minimized
and so on
Shortcut icons
TaskbarMain menu
Applications
Backoffice search
18. 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
– 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
19. 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
– 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
20. NoSQL
Introduction About CMS Rubedo Demonstration Communities Roadmap
SQL (i.e. MySQL)
• For a content type: 6 tables
• For 10 content types: 29 tables
• 1 single request: 6 tables et 2 join
Document (i.e. MongoDB)
For a content type: 1 collection
For 10 content types: 1 collection
1 single request: 1 collection
VS
21. 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
– Can index heterogeneous documents
– Offers multifaceted searches
Introduction About CMS Rubedo Demonstration Communities Roadmap
22. 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
23. Rubedo Back Office
A client-side MVC application
A server side API with Zend Controller
Some asynchroneous JSON POST
Introduction About CMS Rubedo Demonstration Communities Roadmap
Client-Side Server-Side
User Interface ZF Controller
Store
JSON
24. Rubedo Front Office
Bootstrap
Responsive grid
HTML 5 rendering
Twig templating engine
Introduction About CMS Rubedo Demonstration Communities Roadmap
25. 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
– 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
26. 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