eZ Platform - A Full Stack Symfony CMS

Post on 14-Jan-2017

507 views 3 download

Transcript of eZ Platform - A Full Stack Symfony CMS

FULL STACK SYMFONY CMS18 MAR 2016

EZ PLATFORM

DISCLAIMERDon’t believe a software vendor!

SOME HISTORY & CONTEXTAbout eZ

www.ez.no

IN NUMBERS

Skien

15 year old software company, dedicated to provide tools and solutions where Content means Business. We are recognized as a leader in

the domain of Content Management that constantly stays on the edge of innovation.

New York LisbonParis

Oslo

Tokyo

Lyon

Cologne

Katowice

45.000+ Members

80 Employees

250.000+Installations

200+ Partners

5M+ Downloads

Users in 160 Countries

Commercial Open Source

www.ez.nowww.ez.no

eZ Publish, 1999-2015

๏ Open Source ๏ First version in 2000๏ Rewrite for eZ Publish 3 being more a CMF on PHP4 ๏ Development of eZ Components๏ First PHP5 version developed by the eZ Community๏ Addition of CXM components from 2011

www.ez.no

OUR SOFTWARE SOLUTIONS in 2016

By providing tools, solutions & services through a digital business platform, the eZ Publish Platform, covering a range of business needs:

www.ez.no

eZ ENTERPRISE

The next generation of eZ

eZ Platform

eZ Studio

Cloud ServicesPersonalization | Smart Analytics | Marketing

Automation

eZ Studio

For contentcreators

For developers& designers

CONTENT PLATFORMBuild unique digital experiences that work

CONTENT STUDIOCreate and manage your contentwith ease

CONTENT INTELLIGENCEMaximize the relevance of your content and grow your business

KEY HISTORICAL CHARACTERISTICSeZ Platform

www.ez.nowww.ez.no

Key characteristics

www.ez.nowww.ez.no

Key characteristics

www.ez.nowww.ez.no

When is eZ Platform used?

๏More complex sites in terms of content architecture

๏Multilingual enterprise sites๏ “Integration heavy” web projects๏Content Reuse / CaaS๏Custom E-commerce

BUILT ON SYMFONYThe Symfony Full Stack Framework

www.ez.nowww.ez.no

The Symfony Framework

๏Symfony is a popular general purpose web framework with a million downloads a month

๏Developers familiar with the Symfony framework can start working with eZ Platform quickly

๏The skillset is transferrable to other platforms built with it (OroCRM, Sylius, Akeneo…)

www.ez.nowww.ez.no

The Symfony Framework

๏A modern PHP framework that handles basics such as routing, caching, i18n, forms and more…

๏Focuses on the HTTP request-response model๏Actions like caching and other things very

fluent, since you’ll be working with responses๏A solid architecture that allows extending

functionality with a Bundle mechanism

WHAT DOES eZ PLATFORM DO?Adds Content Management Features to Symfony

www.ez.nowww.ez.no

eZ Platform

๏Content Management is a complex problem domain

๏eZ Systems has over 15 years of experience in it๏Solid concepts for multisite and multilingual

publishing with a semantic content model๏Exposes PHP APIs and REST APIs to developers

www.ez.nowww.ez.no

Content Repository

A Content Repository๏A flexible storage for content๏Fully integrated Solr search for high

performance with millions of content items๏Sends API signals (on all operations like

delete, move, remove subtree, indexing…) for Micro Workflows

๏Pluggable storage backends (currently SQL)

www.ez.nowww.ez.no

REST API

A comprehensive REST API๏A public interface to interact with the

repository๏The admin interface uses it - a first class

citizen! ๏For content syndication or straight with front

end technologies like Angular, React or Vue…๏Extensible, you can aggregate data from any

Symfony data models like Doctrine ORM

www.ez.nowww.ez.no

Dynamic routing

Dynamic Routing๏Uses the ChainRouter from Symfony CMF๏Matches dynamic URLs from the repository:

๏http://example.com/products/bicycles/kids๏Works with the static routes you’ve made:

๏http://example.com/polls/123

www.ez.nowww.ez.no

Siteaccess concept

Siteaccess concept๏Matching a URL to a set of configurations๏Typical use cases are multisites and language

versions๏http://example.de/๏http://example.com/de/๏http://de.example.com/

www.ez.nowww.ez.no

User Interface

User Interface๏A UI for managing the content, previewing,

etc.๏Uses the REST API for a no-pageloads

experience๏Designed to be extensible, developers can

add menu items๏Enables centralizing of all data editing in your

Symfony applications to one interfaces๏you can keep using Sonata or others, too

www.ez.nowww.ez.no

User and Permissions management

User and Permissions management๏A powerful user and permissions

management system using users, user groups and roles

๏Uses the Symfony session transparently๏You can store users elsewhere (Active

Directory, LDAP, FOSUserBundle, etc.) and mock an eZ user when accessing the content repository

BUILT FOR A DISTRIBUTED WORLDScaling horizontally with abstractions

www.ez.no

THE TARGETED ARCHITECTURE

Storage

eZ Platform Business Logic

Persistence & IO SPI

Public API

Symfony2 Web Framework

REST API

Twig Template Engine

Website / Demo siteCMS User

Interface

End Users(Website users)

Editor, Marketer, Admin(CMS users)

Web ServiceUser Interface

APIs

Web Framework & dev

Kernel(s)

Content & Data

www.ez.nowww.ez.no

Application Servers

๏PHP scales well by nature - just add more boxes๏PHP 7 supported, big performance wins: https://

www.symfony.fi/entry/symfony-benchmarks-php-56-hhvm-and-php-7

๏Docker to be the deployment choice going forward

๏https://github.com/ezsystems/docker-php

www.ez.nowww.ez.no

Database

๏Uses the Doctrine DBAL for SQL abstraction๏MySQL and MariaDB are now officially supported๏PostgreSQL, Oracle, MSSQL… technically feasible๏http://

www.doctrine-project.org/projects/dbal.html

www.ez.nowww.ez.no

File storage

๏eZ Platform uses the FlySystem abstraction layer for file storage

๏A number of options out of the box: S3, Dropbox, Azure Blob Storage…

๏Switching is a matter of configuration๏http://flysystem.thephpleague.com

www.ez.nowww.ez.no

Search

๏Solr, a separate search server built with Java๏Communications over a RESTful API๏Even higher performance and scaling with

clustering๏https://

github.com/MSOpenTech/Windows-Azure-Solr

www.ez.nowww.ez.no

Caching

๏eZ Platform uses the Stash abstraction layerfor caching

๏By default file caches, but can be switched to Memcached, Redis…

๏Scale cache yourself or using Azure Redis, for example

๏http://www.stashphp.com

www.ez.nowww.ez.no

HTTP layer

๏eZ Platform uses the FOSHttpCache for HTTP cache controlling

๏Supports user contexts, purging using tags…๏Edge Side Includes (ESI) using HMVC from

Symfony๏Example Varnish configurations out of the box๏https://

github.com/FriendsOfSymfony/FOSHttpCacheBundle

COOL LINKS OF THE DAY

Thank you!Jani Tarvainen, Professional Services Consultantjani.tarvainen@ez.no@velmu