eZ Community » Blogs » Core Development team » Changes #2: Technology Outlook...

By

Changes #2: Technology Outlook towards eZ Platform

Friday 16 May 2014 2:22:56 pm

  • Currently 5 out of 5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

As mentioned in the opening of this blog there has been some changes in eZ Engineering over the last year, and some are still ongoing. Today we’ll cover some technology choices we have dealt with and are currently evaluating, and a small outlook towards “eZ Platform” to give a picture of what we have in mind, parts of which will also benefit the upcoming eZ Publish Platform 5.3 release, and bigger parts for the 5.4 November release.

Expected reading time: 11 minutes, it is long, but consists of two parts:

  1. Status Quo & some background info on the changes ongoing
  2. The road ahead towards eZ Platform

Original source: http://pixabay.com/en/plant-sprout-leaf-green-growing-242574/#

Part 1; Status Quo & some background info on the changes we want

Continuous deployment nirvana & rock solid stability ahead

One of the first changes that we decided last year was to move QA and eventually Support into Engineering because we wanted to work closer together and for among other reasons we wanted to move towards a continuous deployment model. This means there needs to be much tighter level of collaboration between Development, QA, and Ops (buzzwordalert: DevOps), but also Support as they need to become part of the same workflow. It comes down to a several things, but mainly; standardizing on a configuration management system for deployment, on a Specification by Example/Acceptance Test-Driven Development (ATDD) approach, software delivery via Composer and as we still mainly support on premise installations: automated compatibility testing.

Background

The reasons for all this is that in the past, and with “eZ Publish legacy” still present, acceptance & compatibility testing of our software was too large degree manual work we usually refer to as certification. This is a no go when attempting to do any kind of continuous delivery or deployment (more about the concept in this document and in this one) , it is also a blocker for being able to open up more, eventually handling the whole release process, including testing, together with the community. This way of testing was also taking quite some time for each of the 2 releases per year, resulting in 4 months each year being spent on stabilization. Most of which we can better use on churning out new exciting features together with the community, with high level of stability, continuously.

This certification effort has also regrettably caused us to reduce amount of platforms and version of myql/php/postgres/.. we were able to support per release over the years, since the effort to test all of them where overwhelming. However if this compatibility testing was automated, we could instead gradually increased amount of platforms and configurations we support instead, making it possible to run eZ Publish on the infrastructure you or your company standardize on.

The eZ Platform, our new content platform is coming

Culture shifts like continuous deployment is not something you can do well unless the product is at least adapted for the change, eZ Publish 3.x/4.x (“legacy”) was not made for 100% automated acceptance testing, autoscaling and big data needs. This is where eZ Publish 5.x came in. But as announced back with 5.0, and further expanded on in recent blog post by Ivo, 5.x is hybrid solution offering the “legacy stack” (“4.x”) as well as “Platform stack”, but the new parts have not been ready to be used completely alone.

Planned releases towards eZ Platform stable release

However that is increasingly changing, as announced by Roland Benedetti we are aiming to start to release eZ Platform alphas over the summer. Platform stack is for the most part what has been referred to as the “new stack” (also “6.x stack” and “Symfony2 stack”) before, and is what you are developing on right now if you have gotten started on making eZ/Symfony Bundles. Besides the effect of the name change we plan to keep forward compatibility for all “Platform stack” code you are developing, full backwards compatibility for your data, and if all goes according to plan the last eZ Publish 5.x release will be very similar to eZ Platform. The biggest exception being eZ Platform not having legacy stack bundled anymore, but instead a new admin and editorial UI, as blogged about a few times by Roland , making the transition as smooth as possible.

How this affects Legacy

For those relying on legacy code we aim to offer long support time for the last 5.x releases giving you many years to make the switch, and we are also planning to add documentation on how to transition from legacy to eZ Platform code within 5.x to lower the threshold and make it more clear what is best practice, you can expect the first tutorial to be available around the eZ International Days event in Oslo in June, and at the event there will be a in-depth presentation of this as well.

As for community version of legacy I'll get to this in a later post on how we can make sure this continues to breath for those in the community also relying on legacy, and how this can work together with the efforts eZ Systems will continue to make for the supported 5.3/5.4 LTS version.

The Release cycle of eZ Platform

As mentioned in the eZ Platform announcement, the release cycle will be adjusted. By adopting an Fast Track Release (FTR) channel serving both community and enterprise needs for staying up to date with latest changes, in addition to the existing Long Term Supported (LTS) channel available to enterprise customers who prefers long term stability, we aim to make it much easier to upgrade between releases.

This will solve several problems we are currently facing, main one being upgrades between the Community edition to Enterprise or the other way around. But it also will allow even larger customers to use the new FTR releases coming out every 2 months (as is the current cycle set by the Community Project Board) during development or pilot phases, and switching to an LTS as soon one is available, and this will be fully supported.

As some might have heard this also involves eZ Engineering taking over building community releases in the short term, but this is mainly to streamline and standardize the process as mentioned elsewhere in this post, and we plan to involve the community and open up the whole process around how we do releases as part of the Platform effort.

Part 2; The road ahead

A lot of you have asked us to be more open about what we plan, and what to expect. Below is roughly what to expect in eZ Platform from a technology perspective and as well as a view of the main themes we have in mind for eZ Platform, parts of which you should expect to hear more about from Roland, our Product Manager, in the coming months.

Acceptance Testing

For the last half year we have been increasingly using BDD as the way to specify features, and Behat for how to automate acceptance testing of these specifications. Current status is that we have SetupWizard and Demo Site running, and we will within the next few months have coverage of the new Backend UI which is coming with eZ Platform. Legacy admin interface is not something we have capacity to add full coverage on straight away, but we will soon change to use BDD for issues there as well when it is possible, so coverage will eventually slowly increase.

Compatibility testing

With a growing base of automated acceptance testing the logical next step is to setup automated platforms and configurations testing using these. For this we are evaluating standardized lightweight container images using Docker, as this makes all parts like database, web server, cache, proxy(, …) of the infrastructure eZ Publish/Platform run on become micro (infrastructure) services. Allowing us to be able to maintain how these are set up, independently from the each other and the code that configures them to work together. If we in addition create such container images for several platforms (RedHat, CentOs, Debian, Ubuntu, CoreOS, ..) then we can setup a continuous integration server on a recent version a Linux distro to spawn these and run parts or all test suites on all possible, and hence supported, configurations.

- PHP 5.5, MySQL 5.6, MariaDB 5.5 and FastCGI support?

We aim to add official support for these over the next few months, first by introducing testing and support for Ubuntu 14.04LTS, which provides Apache 2.4, Nginx, MySQL 5.6 and MariaDB 5.5, and at a later time also consider packages available on RedHat/Centos 7 and it’s software collections (RHSCL) after it reaches final.

- HHVM support?

HHVM is taking the PHP world by storm after it started to be serious about supporting any kind of PHP code in the wild, as opposed to just Facebook’s own PHP code. HHVM effectively makes it unnecessary to write C extensions to improve PHP performance as was often the case in the past. Instead of just improving performance of small parts only benefiting micro benchmarks, it improves performance of all your PHP code. So right now we are about to add testing of HHVM and PHP 5.6 while dropping PHP 5.3 support on our development version signaling we intend to support this in the future, but we also intend to support the future “PHPng” effort just announced to developers by Zend when this becomes stable most likely next year.

- Native Windows support?

Unfortunately neither Travis, or Docker allows us to do testing natively on Windows. So don’t expect us to support this or MSSql natively anytime soon. But using any of the growing list of supported platforms within a Hyper-V or other virtualization environment is as always officially supported, and we hope to provide official Vagrant setup making it much easier to get up and running.

The main themes for eZ Platform

While this may change, and some are done in parallel, the planned themes for eZ Platform are currently:

Infrastructure for automated testing and software delivery

Already in good progress, this involves getting the automated acceptance and compatibility testing up and running as well as standardize on software delivery via Composer also for Enterprise code, to simplify our own as well as your handling of updates.

New user interfaces

One of the must haves for alphas of eZ Platform is delivery of a new UI so legacy is not shown in the user interfaces anymore by default. This mainly involve launching a new Platform UI and a new setup wizard, and we are going to present the former during eZ International Days in June.

Removal of Legacy dependencies and feature fallbacks from eZ Platform

Also already in progress recently with user login/logout and authentication as well as language switcher now fully handled by Platform/Symfony stack in upcoming eZ Publish 5.3. This aims to get rid of all kernel legacy fallbacks one by one, for instance image alias, cluster and view cache system. This, as well as UI is a must for have to reach feature completion for first potential stable release of eZ Platform.

Advance Enterprise editorial features

With legacy not any longer limiting what we are able to do, at this stage we plan to expand the functionalities of the user interface re introducing features like workflow as known before, but also take these and new features to a new level. All powered by eZ Platform.

Customer Experience & Engagement (e.g. CXM) features

At this stage, we will also be able to expand the platform and its U.I. with features that better serve and leverage services we are offering like eZ Recommendation, eZ Marketing Automation or Live Viewer. But beyond that, the focus will be to make the content repository and delivery system really good at integrating 3rd party CXM related components, Roland will blog about this topic soon, so be on the lookout on ez.no for one of the features we have in mind.

Platform scalability features

With all features now running on top of Platform it is time to fully take advantage of the architecture to drastically improve the content and system scalability of eZ Platform by finalizing new storage engine(s), allowing it to truly scale up with big needs as well as still being able to scale down for small needs. You can also expect us to improve both performance and scalability incrementally in other areas of the platform leading up to this.

Full E-Commerce and E-business features

The next logical stage after the prior themes is to make sure the eZ Platform can be used as the base to build powerful and performant commerce & business applications, beyond pure content management. This will involve integrating with other Symfony based e-commerce solutions as opposed to building something ourselves.

More to come at the eZ International Days in Oslo in June

So that is it for now. If you want to know more in-depth about the topics covered in this post and others, discuss things, we will be present and will cover a lot of these things at the eZ International Days in Oslo on 3rd of June.

In addition to details on eZ Publish 5.3 which will be out in May with the latest incarnation of the eZ Platform stack, we’ll cover what to expect in eZ Publish Platform 5.4, as well as discussions about future Platform functionality such as Shop and possibilities of integrating Sylius. See here for full view of talks in the business as well as the programming track, there are still standard tickets available if you want to grab some before only late bird tickets are left.

Also worth mentioning is that on the 4th and 5th there will also be a 2 day training on “eZ Publish 5.x for 4.x developers” digging into the 5.x features by Gaetano-san himself, so don’t miss this, we’ll see you there ;)

Proudly Developed with from