Qafoo GmbH - passion for software quality

To stand apart, with confidence in one's own beliefs, is one of the greatest challenges for an innovator. By providing inspiration, our expertise helps you fly further and faster.

Architektur-Workshop

Mit den Anforderungen an Web-Applikationen und deren Skalierung steigt auch die Komplexität der Systeme die diese bereit stellen. Die meisten Web-Applikationen kommen nicht mehr mit einem PHP-Applikations-Server und einem Datenbank-Server aus sondern werden durch eine Vielzahl weiterer Systeme unterstützt. Dazu zählt sowohl die Auftrennung in Micro-Services (PHP, Node.js, Go, …) als auch die Verwendung von zusätzlichen Systemen wie Such-Servern (Solr, Elastic-Search, …), Queues (RabbitMQ, ZeroMQ, …) als auch speziellen Datenbanken (Redis, CouchDB, MongoDB, …).

Bei der Skalierung von Web-Applikationen auf mehr Systeme ergeben sich verschiedene Probleme die beachtet werden müssen:

  • Konsistenz der Daten über alle Systeme hinweg
  • Überprüfung welche Systeme für den Anwendungszweck tatsächlich geeignet sind
  • Risiko-Abwägungen beim Einsatz neuer Systeme (technisch, operativ, wirtschaftlich)
  • Umgang mit Latenzen & System-Ausfällen
  • Ausfallsicherheit aller Systeme (Domino-Effekte)

Um eine Analyse der Anforderungen durchzuführen müssen die potentiellen geschäftlichen Szenarien bekannt sein oder vorab erstellt werden. Eine operative und wirtschaftliche Technikfolgenabschätzung ist notwendig um die erfolgreiche Integration neuer Ansätze sicherzustellen. Dabei ist insbesondere auch ein Fokus auf die zukünftige Modifizierbarkeit der Systeme zu legen um sich kommenden Änderungsanforderungen noch anpassen zu können.

Was können wir tun?

Qafoo kann, zusammen mit den Entwicklern und Entscheidern, analysieren welche Anforderungen aktuell vorhanden sind und welche neuen Anforderungen in der näheren Zukunft dazu kommen. Eine Evaluation der aktuellen System-Landschaft und die damit einhergehenden Probleme zeigt dabei oft schon die kritischsten Punkte auf.

Basierend auf dieser Analyse können mögliche Optionen diskutiert werden und welche Konsequenzen diese auf die Architektur haben. Wichtige Kriterien einer solchen Analyse sind:

  • Konsistenz und Sicherheit der Daten
  • Performance (Latenzen, Anzahl möglicher Transaktionen)
  • Erweiterbarkeit (Neue Produkte, Änderungskosten)
  • Verfügbarkeit (Hardware-Fehler, Software-Fehler)

Ein Workshop zur Analyse einer bestehenden Architektur und derer Probleme oder zum Entwurf einer neuen Archtektur für ein neues Produkt mit Qafoo folgt dabei normalerweise in etwa der folgenden Agenda:

  1. Präsentation der Anwendungsfälle (funktionale Anforderungen)
  2. Analyse & Bewertung der Anforderungen an die Architektur (Performance, Datensicherheit, …)
  3. Identifikation der Ansätze für eine Architektur
  4. Bewertung der Ansätze anhand der diskutierten Kriterien (Technologien)
  5. Dokumentation der Vor- und Nachteile einzelner Ansätze
  6. Priorisierung der Szenarien & Entscheidung für eine Architektur

Bei der Identifikation und der Bewertung der Ansätze arbeiten wir technologie-agnostisch. Einige Technologien haben direkte architektonische Auswrikungen (PHP vs. Node.js oder MySQL vs. MongoDB) andere Entscheidungen sollten aber eher auf Basis der Team-Strukturen & -Erfahrung getroffen werden.

Mit unserem Newsletter auf dem Laufenden bleiben

Wir bieten einen Newsletter mit technischen Artikeln an für den Sie sich jetzt direkt registrieren können.

Wir können helfen

Qafoo führt regelmäßig Workshops mit großen und kleinen Kunden durch um die optimale Architektur für das jeweilige Umfeld zusammen mit dem Kunden zu identifizieren. Dabei fließen sowohl technische als auch wirtschaftliche Anforderungen in die Bewertung mit ein. Wir haben viel Erfahrung bei der Umsetzung von verteilten Systemen mit verschiedensten Anforderungen an Ausfallsicherheit und Transaktionssicherheit.

Eine Architektur-Analyse sollte früh im Projekt zusammen mit allen Beteiligten durchgeführt werden damit sich alle über die einhergehenden Abwägungen bewusst sind. Insbesondere sollte die Analyse geschehen bevor bereits Dateninkonsistenzen auftreten die nicht mehr reparierbar sind. Eine gute System-Architektur kann sowohl bei der Performance, Ausfallsicherheit, Latenz als auch bei der Entwicklungsgeschwindigkeit langfristig große Vorteile bieten.

Vereinbaren Sie jetzt einen Workshop mit Qafoo für eine erste Analyse Ihrer Anforderungen oder eine systemische Refaktorisierung Ihrer Architektur.

Kunden

Kunden die Qafoo bereits vertrauen.

Blog

Technische Hintergründe in unserem Blog.

Präsentationen

Präsentation von Qafoo auf verschiedenen Konferenzen.

Verwandte Blog-Posts

    Jetzt Kontakt aufnehmen!