Der Tech Stack der Marketing Factory
Seit den ersten Tagen entwickelt Marketing Factory seine Projekte überwiegend auf Basis lizenzfreier, öffentlich zugänglicher Software. Wir sind davon überzeugt, dass Open-Source-Systeme proprietären Anwendungen in der Praxis überlegen sind, denn sie können durch den offengelegten Quellcode von jedermann geprüft und auditiert werden. Da sie keine Abhängigkeiten zu kommerziellen Herstellern und im Regelfall auch keine Lizenzkosten erzeugen, sichern Projekte, die Open-Source-Software nutzen, daher auch regelmäßig ihre Investition – und das nachhaltig.
Open-Source-Software
Mehr als nur ein Entwicklungsmodell und offener Programmcode
Wir fokussieren uns dabei auf die Entwicklung von PHP-Applikationen und betreiben diese auf Linux-basierten Systemen. Wir glauben, dass in jedem Projekt individuell geprüft werden sollte, mit welchen Techniken und Frameworks es umgesetzt wird. Dennoch haben wir im Laufe der Jahre festgestellt, dass sich der Markt rund um einige größere Systeme konzentriert. Daher setzen wir die meisten CMS-Projekte mit TYPO3 um. Im Bereich E-Commerce hat Shopware – nicht zuletzt auch aufgrund seiner Vorteile im deutschsprachigen sowie im europäischen Markt – klar die Nase vorn. Individuallösungen werden standardmäßig auf Basis von Symfony umgesetzt. Trotzdem stehen wir allen anderen Techniken immer offen und ehrlich gegenüber und beobachten ständig die Open-Source-Szene.
Rund um die genannten Schlüsseltechniken kommen MySQL und MariaDB, aber auch PostgreSQL als Datenbanksysteme zum Einsatz. Nichtrelationale Daten, Sessions und Caches werden mit Redis und memcached verwaltet. Im Bereich der Webserver setzen wir aufgrund der sehr guten Kompatibilität zu Anwendungen überwiegend auf Apache, der zusammen mit HAProxy und Varnish unseren HTTP-Stack bildet. Als Suchserver verwenden wir Apache Solr und Elasticsearch.
Agile Entwicklungsmethoden & Qualitätsmanagement
Für maximalen Nutzen, größte Effizienz und Nachhaltigkeit
Die Versionierung der Projektquellcodes findet in Form von Git-Repositories statt, die in einer GitLab-Instanz verwaltet werden. Wir verwenden GitLab jedoch nicht nur zur Versionsverwaltung, sondern als zentrale Drehscheibe für alle technischen Tätigkeiten rund um ein Projekt. Das umfasst beispielsweise Prozesse wie Continuous Integration oder Continuous Delivery, aber auch das Anstoßen von Synchronisationstasks. Außerdem verwenden wir GitLabs OAuth-Unterstützung, um unseren Mitarbeitern einen Single-Sign-On in alle Kundeninstallationen zu ermöglichen.
Unsere Entwickler verwenden Docker, um Entwicklungsumgebungen für die Projekte aufzusetzen. Mit unseren Kubernetes-Clustern, die von Rancher gesteuert werden, können wir dynamisch bei Bedarf Testinstanzen von Kundenprojekten erzeugen. Hierdurch hat jeder Mitarbeiter die Möglichkeit, seine eigene, isolierte Umgebung für Entwicklung oder Tests zu bekommen, ohne dass Andere beeinflusst werden.
Umgekehrt müssen wir für Projekte, in denen aktuell keine Aktivität stattfindet, keine Kapazitäten vorhalten. Das ist nachhaltig und spart Kosten.
Monitoring mit System
Wir behalten alles im Blick, zu jeder Zeit
Zum Betrieb unserer Kundenapplikationen gehört natürlich auch das Thema Monitoring. Neben klassischen Tools wie Icinga, mit denen wir die reine Verfügbarkeit der Systeme überwachen, verwenden wir hier auch proaktive Konzepte. So sammelt etwa Prometheus umfangreiche Metriken und Kennzahlen und stellt diese mittels Grafana übersichtlich grafisch dar.
Mit diesem Ansatz können wir nicht nur Betriebssystemparameter wie Speicherbelegung und Netzwerktraffic erfassen. Zusätzlich bekommen wir Einblicke in z. B. Datenbank-Interna, können Probleme und Engpässe frühzeitig identifizieren und rechtzeitig Gegenmaßnahmen einleiten. Außerdem besteht grundsätzlich die Möglichkeit, auch auf der Ebene der Applikationen Metriken und KPIs mittels Grafana darzustellen. Im E-Commerce-Umfeld können dies beispielsweise Bestellungen (pro Zeit oder pro Zahlungsart), Conversions wie Newsletter-Subscriptions oder Gutscheineinlösungen sein.
Die Verwendung einer Mess-Infrastruktur auf eigenen Systemen schafft hier datenschutzkonform enorme Möglichkeiten und bietet unseren Kunden neben dem rein technischen Betrieb auch interessante Einblicke in die eigenen Geschäftsprozesse.