Recap on SymfonyLive 2014 in Berlin

As I work with the symfony framework since a couple of months now, I wanted to find out more about it and get in touch with other people using it. So I went to Berlin on October 30 and 31, where the SymfonyLive conference took place. The talks were on two stages in parallel and mostly about integration of symfony with other technologies such as Docker, AngularJS, Ember.js, Apache Solr or elasticsearch and more architectural topics like implementing microservices or REST services with symfony. I am very interested in modern JavaScript frameworks like AngularJS and integration technology so the most talks I heard were on these topics. I’ll point out my personal favorites among the talks I heared. They’ll apear in a chronological order.

Dockerizing Symfony applications

Dennis Benkert (@denderello) introduced Docker and explained that Docker Contrainers are actually built on Linux Contrainers and very useful for virtualization. At multiple points I felt like the thought of “Separation of Concerns” is applied to runtime environments, which appears like an natural evolution to me. In software development we’ve learned to abstract and build components to seperate functionality and introduced interfaces for better changability and testability. So does Docker to runtime environments and infrastructure.

Dennis gave an example of how a setup with php-fpm, nginx, Redis and Symfony-App may look and how the resulting Docker-Containers can be linked to talk to each other. Eventually he introduced fig which can be used to bundle commands using multiple docker containers to single commands. Fig, for example, allows multiple Docker containers to be started with a single command “fig up” as one is used by Vagrants “vagrant up” to get the whole development environment running by only writing a simple YAML configfile.

In my eyes Docker goes one step further, than Vagrant as the seperation is not done by multiple virtual machines, but by containers inside one virtual machine. This saves ressources and leads to better performance in comparison to using multiple Vagrant boxes.

Life on the edge between Angular JS and Symfony2

Armen Mkrtchyan (@iamtankist) showed with a lot of examples how Symfony2 and Angular JS may be used together. Using both together may bring up some problems, with routing, code duplication, forms and templates. Armen shows some solutions for these problems in a pragmatic way using Browserify, Gulp an Bower. He made a good point to the difference between gulp and grunt.

The difference between Grunt and Gulp is like the difference between Beavis and Butthead.

Refering to the introduction of Angular JS 2.0 at ng-europe in Paris this year, lots of changes to existing concepts will come with the next majorversion of Angular. Some of the changes are pointed out in the Angular 2.0 Sneak Preview article by Hartmut Schlosser at JAXenter in German. The AngularJS 2.0 Details Emerge article by David Iffland on InfoQ covers about the same in English.

Scaling PHP

Actually I felt the talk by Dustin Whittle (@dustinwhittle) was the most intense among those I’ve heared at the conference. Dustin was quite a bit fast in the first place which made it challenging to follow him for someone who’s mothertongue isn’t English. But as one got used to that, there was enormously much in his presentation. He started with some really important point:

PHP is not your problem!

It’s true, that Java, C++, Erlang and so on performes better if one compares the execution times. But the pure execution times are that part where the least is lost between the request on an URL and it’s final presentation in the Browser. Caching is what matters for both, the front- and the backend. Using database caching helps a lot, as caching the whole results for pages which don’t change often.

Long running (expensive) tasks, such as posting something on a social network, should be extracted and put to JobQueues (ResQueue) which are handled later. The user of the page should not be blocked for waiting if the result of the actions is not necessary for him to continue using the app. The same is done in Java with all the non-blocking things. Communcation could be handled using a Message Bus, such as RabbitMQ or Kafka, which would standardize the communcation while allowing to profit of their enormous performance.

Using memcached, elasticsearch or solr is recommendend as well, as they cache results for getting data from the database while the real database is discharged as it has only to handle actions which add new or change existing data.

Of course using the newest version of PHP, database and other software often boosts performance as well, as they are optimised by their developers, too.

Leadership in Software Development

The talk of Johann-Peter Hartmann (@Johannhartmann) about “Leadership in Software Development” is only available in German. In a funny way Johann talked about the evolution of work and hierarchies from the perspective of managers. Developers today work in teams on complex systems. In our modern world the motivation of employees should be intrinsic to produce the best possible results. In start-ups this situation is given, which is one major reason of their success nowadays.

In my eyes it will be crucial for companies to implement the requirements done by evolution of work and the good education of employees nowadays have brought up our workaday life. Especially nowadays as an shortage of qualified employees rises while the younger generation, we call them “GenerationY” in Germany, starts changing how they want to work and claims changes toward that by the companies. So I absolutely aggree with what Johann said in his talk. He absolutely got the point. Managers should really follow that path to make work, where each of us spends most of their lifetime, a better place for all of us.

Summary

As this was my first symfony live, I cannot compare it to the ones before. Nonetheless I liked the Golden Tulip as location for the conference though the seats for dinner, which was delicious (!), were a bit to little and the queue to get to the second room on 11th floor a bit too long. The conference drinks in Rainmaking Loft were great to get in touch with other developers, too. Mustaches and beards seem to celebrate their comeback in this Movember. The topics around were a lot I heared about generally at my visits of the Berlin Expert Days in 2013 and 2014, in application to the symfony framework. One can say, they truly arrived there by now and are production ready, which I encountered as bleeding edge back at bedcon. I like that movement towards using elasticsearch or dockerizing a lot as it pushes symfonfy forward and makes it future ready on the one hand and generates great synergies by using the strengths of modern technologys on the other hand.

I personally liked the keynotes by Jeffrey A. “jam” McGuire (@HornCologne) and Rowan Merewood (@rowan_m), too. Jam talked about the spirit of Open Source, why it matters and appealed strongly to contribute and support it, while Rowan talked about the “Developing People” and how the skills required for the job have evolved.

The people from SensioLabs, who recorded every talk, told me, the videos will be available soon. Thanks to all people of SensioLabs and the great speakers. You did a brilliant job! See you in Berlin next year.