30
Webinar In partnership with 06-20-2013 Webinar An introduction to Rubedo, A new open source CMS. NoSQL storage, Zend Framework based

Demonstration - Zend

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Webinar

In partnership with

06-20-2013

WebinarAn introduction to Rubedo,

A new open source CMS.

NoSQL storage, Zend Framework based

INTRODUCTION

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

[email protected]

– 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

Agenda

� About CMS

� Rubedo: from LAMP to LAMP

� Demonstration

� Communities

� Roadmap

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

FROM LAMP TO LAMP

Rubedo, a new CMS generation

MySQL MongoDB

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

Architecture overview

Introduction About CMS Rubedo Demonstration Communities Roadmap

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

Communities

www.rubedo-project.org

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

Q&R

http://www.webtales.fr

http://www.rubedo-project.org

http://www.en.rubedo-project.org

@Rubedo_project