TechDivision auf dem Magento Developers Paradise 2016

Das Magento Developers Paradise ist eine jährliche Konferenz für und von Magento Developern. Dieses Jahr fand sie in Opatija, Kroatien statt. Natürlich mussten wir da auch „live“ dabei sein – und es hat sich in jedem Fall gelohnt…

IMG_6901-290x220Unsere #RoadToDevParadise startete am Sonntag, den 24. April 2016 in Rosenheim. Nach rund 6 Stunden und gefühlt 20 Maut-Stellen vorbei an allen möglichen Wetter-Bedingungen waren wir gegen 00.00 Uhr dann endlich in Opatija angekommen. Anschließend an den Quick-Checkin ging’s erstmal in die Bar gegenüber auf ein kühles Bier (Tomislav – mit 7,3% Vol. das stärkste Dunkle, das wir je getrunken haben – und lustigerweise auch der Vorname des Veranstalters @tomislavbilic) und anschließend gleich ins Bett, schließlich wollten wir den Hackathon am folgenden Tag nicht verpassen.

Obwohl die Eröffnung offiziell erst um 18.30 Uhr stattfand, waren im von @daim2k5 davor veranstalteten Hackathon alle Plätze besetzt. Unserer Meinung nach war bzw. ist das die beste Möglichkeit in Magento 2 einzusteigen, sich mit der neuen Architektur zu beschäftigen und somit die beste Vorbereitung auf die Talks. (Alle entwickelten Module sind auf github gehosted.)

Es schien als hätten wir das perfekte Team gefunden, denn unser Wissen und unsere Erfahrung konnten wir so optimal kombinieren, dass wir zur Eröffnungsrede das einzige Team waren, das eine funktionierende Live-Demo vorzeigen konnte. Tomáš hat sich im Laufe der Konferenz außerdem mit mehreren Magento Core Entwicklern unterhalten und konnte uns berichten, dass die Erweiterung, sofern wir sie fertigstellen, ggf. im Magento 2.3 Core enthalten sein könnte. Wir dürfen also gespannt sein! Natürlich war @benmarks auch am Start und hat die Veranstaltung so richtig angeheizt.

Die erste Party fand im Keller des Hotels statt. Wobei „Keller“ hier relativ ist, da das Hotel auf einer kleinen Anhöhe vor dem Hafen steht, und somit selbst das untere Stockwerk noch Fenster mit Meerblick besitzt. Anfangs hatten wir befürchtet, dass die Party ein Reinfall wird, da der Raum viel zu groß gewählt war, der DJ nur Macarena gespielt hat und durch die vielen Fenster und hellen Leuchten keine Partyatmosphäre aufkam. Allerdings half @inchoo hier mit vielen Getränkecoupons für jede Party aus und um Mitternacht waren die Sorgen vergessen, als – nachdem unter anderem Tomislav, der Chef von Inchoo, sein Gesangstalent unter Beweis stellen durfte – die Entwickler unübersehbar das Gerücht, dass sie nur vor dem Computer sitzen würden, aus der Welt geschafft hatten.

Trotz der Party ging es am nächsten Tag schon wieder ganz früh los und wir haben einige Tipps zum Entwickeln mit Magento 2 gelernt. Einige Punkte davon sind zusammengefasst:

  • Magento 2 sollte vorausgelernt, und nicht während des Projektes erst angelernt werden.
  • Besonderen Augenmerk dabei auf Dependency Injection/IoC, Loose coupling, Service contracts und Interceptors legen.
  • Vergiss dein komplettes Wissen von Magento 1.
  • Tests ausschließlich NUR testdriven entwickeln, nicht davor, nicht danach.
  • Keine Deadlines, kein Zeitdruck während der ersten Projekte.
  • Die ersten Projekte sollten kleinere, höchstens mittelgroße Projekte werden.
  • „You don’t need your products ASAP, you need to gain experience ASAP!“.
  • Gute PHP-Entwickler lernen Magento 2 schneller als Magento 1-Cracks.
  • Für die ersten M2 Projekte sollten ausschließlich die besten Entwickler verwendet werden.
  • Da sich M2 schnell wandelt, sollte man beim Entwickeln immer den absolut letzten beta-Stand verwenden.
  • Nützliche Tools: Fabric, PHPcs, PHPmd, Satis/Toran Proxy, Firegento Packagist, Phing/Cappistrano.

IMG_6978
Die Talks von @rogyar von @atwixcom und @jissereitsma von @yireo über die Performance von Magento 2 haben aufgezeigt, dass:

  • Redis selbst mit vielen Datensätzen absolut keinen spürbaren Vorteil mehr bringt,
  • genauso wie Datenbank-Replikation,
  • ebenfalls HHVM,
  • MariaDB statt MySQL ausschließlich auf der Kategorieseite,
  • PHP7 + ZendOPcache + Nginx+PHP-FPM (via Socket?) + HTTP/2 ist die Zukunft und beschleunigt das Rendering um teilweise das Doppelte!

Weitere Tipps für das Optimieren der Performance:

  • MySQL 5.6 Tuning (Query Cache, InnoDB Buffers)
  • via Composer / Magerun 2 (mit Hypernode-Plugins) alle Module up-to-date halten und patchen
  • Varnish nutzen (VCL-File wird über Magento 2 generiert)
  • MySQL Master/Slave-Clustering nutzen
  • Solr oder ElasticSearch statt der Standardsuche
  • PHP 7 – OPCache optimieren (opcache.validate_timestamps=1)
  • huge_code_pages im Kernel, wenn möglich, auf 2m setzen
  • Erhebliche Störfaktoren deaktivieren wie z.B. ionCube, Xdebug, NewRelic, Zend Z-Ray, Blackfire
  • appserver.io benutzen (PHP 7-Release im Juni 2016) – freut uns natürlich riesig, dass unsere Software langsam in der Community ankommt! Mehr Infos zu unserer Software gibt´s hier.
  • ggf. Tarantool / Aerospike statt Redis benutzen
  • ggf. Hack von HHVM
  • Interceptors statt Events benutzen

So, genug zugehört.. Am Ende des Tages hat uns ganz schön der Kopf geraucht und wir haben uns auf die Party gefreut, die uns diesmal bis 05.00 Uhr begleitet hat und einige Gäste selbst dann noch gebettelt haben, ein weiteres Bier zu bekommen 😉 . Mit dabei waren auch zwei junge Damen von Smirnoff, die Präsente verteilt haben und im Anschluss noch Tänzerinnen, die einige der Entwickler ganz schön zum schwitzen gebracht haben. Natürlich durfte auch unsere traditionelle bayerische Tracht nicht fehlen…

IMG_7117

In Magento 2 mangelt es immer noch sehr an SEO-Tools, wie z.B. ein HREFLANG-Modul, Local SEO Integration (Organization Schema / Local Business), Sitelinks Search Box o.ä. Für Magento 2.1 sind u.a. das Staging-System für 25 verschiedene Bereiche geplant, wie @antonkril von Magento als Schluss-Banger noch zu Tage brachte.

Einige Tipps zum Deployment konnten wir dann auch noch aufschnappen:

  • Keine Code-Generierung auf dem Live-Server!
  • Keine Composer-Updates auf dem Live-Server! (composer.lock mitliefern, prestissimo für schnellere Updates)
  • Satis / Toran Proxy benutzen, um den Load zu verteilen
  • Autoload-Datei optimieren (–optimize-autoloader)
  • Grunt / Gulp für statische Dateien benutzen

Letztendlich durften wir noch ein paar tolle Zitate mitnehmen:

  • „Its the community that makes it a paradise“
  • „In a team, there is not any role more important than another“
  • „Teams are people that understand everybody’s role and help each other all the time“

 

Was war unser genereller Eindruck?
Der Großteil der Entwickler vor Ort ist mit Magento 2 bisher noch nicht oder nur oberflächlich in Berührung gekommen. Circa ein Drittel der Entwickler hat bereits intensiver mit Magento 2 gearbeitet. Unter den Teilnehmern waren 5 Developer, die bereits selbst (oder für ihren Arbeitgeber) einen Magento 2 Shop live geschalten haben.

Es tut sich was in der Welt von Magento 2. Sollte man bisher noch nicht damit in Berührung gekommen sein, wird es allerhöchste Eisenbahn. Gefühlt ist Magento mit der neuen Version wieder auf dem Weg zu alter Stärke und einem Momentum das gerade in den Anfangsjahren von Magento für die Marktverbreitung und Akzeptanz gesorgt hat.

Einige tolle Module für Magento 2 sind bereits auf dem Markt, viele aufgrund der PR-Wirkung durch die aktuell noch geringe Modulvielfalt auch kostenlos. Und gerade der Modul- und Extensionmarkt ist mit dem Release des neuen Magento Marketplace gehörig in Bewegung geraten und es kommen hier inzwischen täglich neue Extensions hinzu. Hier hat Magento erfreulicherweise aus den Fehlern der Vergangenheit gelernt und legt inzwischen ein verstärktes Augenmerk auf die Qualität der angebotenen Module. Somit dürfte sich das Argument, auf Magento 2 aufgrund der nicht existenten Plugins zu verzichten, schon bald als schlechte Ausrede entpuppen.

One thought on “TechDivision auf dem Magento Developers Paradise 2016

Kommentar abgeben

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.