SymfonyLive 2015 @ Paris : we were there !

Published on

Apr 20, 2015

events

On April 9th, SymfonyLive 2015 conference was held at the “Cité Internationale Universitaire” of Paris.

We had the opportunity to meet a lot of real cool people there, and Symfony was in the air.

The conference opened with a quick speech by Fabien Potencier, regarding the birthday date of Symfony, which is 10 years old now. Fabien also talked about Symfony3, which is a step that every Symfony2 developer is waiting for.

Symfony3 will be released on November 2015, and this version is already done. Wow ! Fabien also announced that a Symfony 2.8 version will be available at the same time, to ease the transition between Symfony2 and Symfony3. No worries :)

The creator of Symfony also announced that Symfony LTS versions will be : 2.7, 2.8 and 3.2. An interesting point of view of Fabien after a question about the upcoming PSR-7: he is not a big fan of this PSR-7, because it is intended to be the common standard of HTTP communication in PHP, a very central standard for this Web-first language. But it is “just” a set of Interfaces, not a concrete implementation, thus every framework will probably have its own implementation, without code sharing. For Fabien, it would have been better if the PHP community could have worked together on a standardized HTTP concrete implementation.

SymfonyCon 2015 will take place in France, at the “Folies Bergères” on December, 3th and 4th.

Conferences

  1. SyliusResourceBundle

The first talk was made by Arnaud Langlade from Clever Age, regarding the SyliusResourceBundle. This bundle is part of the Sylius product (e-commerce solution based on Symfony2), and can be used to ease the CRUD creation by providing general controllers and functions.

This bundle seems really cool, but the counterpart is that there’s a lot of YAML configuration to do, if you want some really specific stuff. You also need to create your own FormTypes for each of your models, plus the views for each create/update/show actions.

Here’s the bundle if you want to take a closer look at it :)
https://github.com/Sylius/SyliusResourceBundle

For further information, here’s the slide : http://fr.slideshare.net/ArnaudLanglade/dvelopper-avec-le-sylius-resourcebundle

  1. HTTP Cache

The next talk subject was the HTTP Cache use, with connected users. The two speakers,  David Buchmann and Jérôme Vieilledent talked about the FOSHttpCacheBundle that was created to ease the use of HTTP cache with Symfony2.

https://twitter.com/RougeMine/status/586095517618307072

After a quick explanation on how the HTTP Cache works, they have discussed about the constraint regarding caching resources for connected users.

They have suggested to use the FOSHttpCacheBundle, and the “User Context Hash” that is a token to identify a user during all his navigation. It will help to cache pages for a specific user. The functionality is already available in the bundle, the only thing to do is to reset the hash on user login/logout.

For further information, here’s the slide : http://lolautruche.github.io/ez/going-crazy-with-caching.html#/

  1. Logs

Olivier Dolbeau, a guy from BlaBlaCar talked about logs, and how we can use them to guarantee the stability of our applications, and ease the debugging on production environnement.

The ELK stack seems to be a really cool solution to solve these problems. ELK means ElasticSearch, LogStash and Kibana, which are known solutions in the development world.

ELK allows users to index their logs, and display them on some real cool interfaces that can be used to monitor servers and applications. Olivier has shown us screenshots regarding the ELK pile, used at BlaBlaCar.

https://twitter.com/LaurentBrieu/status/586100059978276864

In one of the screenshots, we had the opportunity to see the routes, servers, and domains that encounter the most errors, which is really powerful to debug applications.

For further information, here’s the slide : https://speakerdeck.com/odolbeau/logs-hunting

  1. ElasticSearch

Nicolas Badey talked about the ElasticSearch solution in a production environment, and issues we can experience such as full HDD space, etc … He also did some quick tutorials about ElasticSearch, regarding the “Multimatch”, “Highlighting”, “Suggester”.

For further information, here’s the slide : https://speakerdeck.com/nicolasbadey/elasticsearch-with-elastica-in-symfony2-architecture

  1. Logs

Next guy was Gregoire Pineau, who is working @ SensioLabs. He showed us how we can organize our logs properly & ease the debugging of our applications. He also talked about the Processor that can be used to add additionnal infos to our logging message. For example, we can add the URI + Method + Client IP address in each of our logs to detect more quickly where the problems came from.

For further information, here’s the slide : https://speakerdeck.com/lyrixx/symfony-live-2015-paris-monitorer-sa-prod

  1. API-Centric

Probably one of the best talks of this SfLive! Kévin Dunglas explained his API approach, based on W3C standards used by major tech actors like Google.

Even though we have a lot of good tools to create API with Symfony, REST is more a set of guidelines, as a “HTTP right usage”, and we still have to make a lot of choices when we design API.

The DunglasJsonLdApiBundle makes good use of schema.org vocabulary, JSON LD Hypermedia and Hydra for pagination and resources automated discovery (along with handy tools like HydraConsole). One can also use the Schema.org Model Scaffolding tool for quick API design.

As there are license issues with JSMSerializer, used nowadays for most Symfony API projects, Kévin Dunglas has contributed quite a lot to the Symfony Serializer component in order to be able to use it in his Bundle. As this Bundle will depend on features only available in the upcoming Symfony 2.7 version, it will be officially released exactly on the SF 2.7 release day.

For further information, here’s the slide : http://dunglas.fr/slides/sf-live-2015

  1. All about the Symfony DIC

To be honest, this was not a very interesting talk. Nothing new to learn here for anybody who have read the excellent DIC documentatioon and opened a Symfony compiled Container file.

  1. Docker & Docker Compose for developers & Continuous Integration

A really good talk about the usage of Docker & Docker Compose. Even if we had already used Compose during the last KNP hackathon (when its name was still “Fig”, before its acquisition by Docker), it was very interesting to see good tips and tricks about how we can use it for development local environments.

The DNS-gen tool seems to be a good tool to avoid the dozens of mapped ports we can have when we link a lot of containers with Compose.

Jérémy Derussé also showed recipes about the usage of Docker for Continuous Integration - with a dedicated BehatMailCatcherExtension, for instance (see here). The growing list of CI tools based on Docker is a good example of the raise of Docker - even though it still has flaws and is not a perfect tool.

For further information, here’s the slide : http://slides.com/jeremyderusse/docker-dev

  1. API + Admin creation in less than 10 min

Jonathan Petitcolas had the opportunity to make a “wow” presentation : create a REST API with StanLemon/RestBundle (https://github.com/stanlemon/rest-bundle). As a Marmelab team member, it was a good occasion for Jonathan to show the power of scaffolding of the Marmelab ng-admin (https://github.com/marmelab/ng-admin) solution.

The demo was very well prepared, and the “hello world” API was indeed functional in less than 10 minutes, with a full GUI.

  1. BackBee

Yet another CMS sheriff in the Symfony town, with the BackBee solution. This Open Source solution allows its users to create and manage content in a single interface, without a “Front / Back” frontier: content is directly editable from the Front site with nice drag’n’drop controls.

Contents are fully described in YAML from a few base “BackBee” types (“paragraph”, “image”, etc.), and can use inheritance - a bit like Symfony forms components. The 1.0 release is to be released these days. Wait and see… :-)

Sharing of experience

We also had a few talks about experiences with big migrations from legacy tools to Symfony2 and technical debt management in companies like Canal+, Mediapart or Meetic. This last one was especially well prepared, with a good pace between the two speakers and very nice slides (http://fr.slideshare.net/meeticTech/meetic-backend-mutation-with-symfony).

These migrations were generally structured around new abstraction layers between the legacy components, with a progressive replacement of these components with new Symfony apps - the abstraction layer doing the job of making the changes invisible for other components.

A general tendency toward µservices appears from these migrations reports, as the “from monolithic app to microservices” was a repeated motto through the different companies web infrastructure evolution.

Overall, this has been a really interesting Symfony Live, with very relevant current topics  like API foundations, Varnish/Symfony setup, Docker best practices, migrations to micro services… And because the slides are all available online, everybody can enjoy them! :-)

CCIYg05WYAAZIVI.jpg:large

Your KNPeers, Olivier & Laurent

Written by

Laurent Brieu
Laurent Brieu

Comments