Since its earliest days, Marketing Factory has mainly been developing its projects on the basis of licence-free, publicly accessible software. We believe that open source systems are superior to proprietary applications in practice because their open source code can be reviewed and audited by anyone through the open source code. As they do not create any dependencies to commercial manufacturers and generally do not generate licence costs, projects that use open source software regularly secure their investment – and do so in the long term.
We focus on the development of PHP applications and run them on Linux systems. We believe that each and every project must be individually examined to determine which techniques and frameworks are used to implement it. Nevertheless, over the years we have found that the market is concentrated around a number of larger systems. We therefore implement most CMS projects with TYPO3. In the e-commerce sector, Shopware is clearly at the forefront – not least because of its benefits in the German-speaking and European markets. Individual solutions are implemented, as standard, based on Symfony. Nevertheless, we are always open and honest about all other technologies and are constantly keeping an eye on the open source scene.
MySQL and MariaDB, as well as PostgreSQL, are used as database systems to complement the aforementioned key technologies. Non-relational data, sessions and caches are managed with Redis and memcached. When it comes to web servers, we rely mainly on Apache which, together with HAProxy and Varnish, forms our HTTP stack, due to its excellent compatibility with apps. We also use Apache Solr and Elasticsearch as search servers.
Version control of project source codes is done in the form of Git repositories, which are managed in a GitLab instance. However, going beyond version control we also use GitLab as a central hub for all project-related technical activities. This includes processes such as continuous integration or continuous delivery, as well as the initiation of synchronisation tasks. We also use GitLabs OAuth support to enable our employees to access all customer installations with a single sign-on.
Our developers use Docker to set up development environments for projects. Our Kubernetes clusters, controlled by Rancher, enable us to dynamically test customer projects as required. This gives each employee the opportunity to have their own isolated environment for development or testing without affecting others.
Conversely, we do not need to reserve capacity for projects in which there is currently no activity. This is a sustainable approach and saves money.
Monitoring is, of course, another facet of operating our customers' apps. We also use pro-active concepts here in addition to classic tools, such as Icinga, which we use to monitor the availability of the systems per se. Among other things, Prometheus collects comprehensive metrics and key indicators, and uses Grafana to display them clearly and graphically.
This approach allows us to capture operating system parameters, including memory usage and network traffic. We gain insights into database internals, can identify problems and bottlenecks early, and take timely corrective action. We also have the basic option of displaying metrics and KPIs with Grafana at an application level. This might involve orders (per time or per payment method), or conversions, such as newsletter subscriptions or voucher redemptions, in the e-commerce environment.
The use of an analytics infrastructure on our own systems provides extensive opportunities in compliance with data protection regulations and offers our clients interesting insights into their own business processes as well as the technical operation of their systems.