Systemarchitektur
Viele fangen beim kleinen an und vergessen das grosse Bild. Das Ziel ist es Zusammenhänge und Abhängigkeiten von den Systemen zu verstehen und zerlegen.
Das kann von grossen verteilen System reichen, wie Cloudanwendungen, bis auf kleine Systeme, welches viele Sensoren aufweist. Das Vorgehen ist prinzipiell gleich.
Basis für die Architektur
Die Basis für die Architektur sind die Anforderungen an das Produkt. Wenn nicht weiss, was genau gefordert ist kann man die Architektur nicht richtig auslegen, was zu folgenden Ergebnissen führt.
- Schnittstellen werden so generisch ausgelegt, dass jeder Fall und alle Eventualitäten abgedeckt sind. Zumindest meint man das zu erreichen, was aber nie der Fall sein wird. Das Resultat ist, dass eine völlig überladene, viel zu komplexe Schnittstelle entsteht, wo man am Ende feststellt, dass trotzdem nicht alles gemacht werden kann.
- Schnittstellen werden vergessen, was fast noch der Schlimmer Fall ist, als der vorherige. Es kann sehr schwierig sein nachträglich Funktionalitäten einzubauen, wo nicht von Anfang an berücksichtig wurden.
In beiden Fällen führt es zu bedeutender Mehraufwand und höheres Risiko für Fehler.
Mit Architektur starten
Es gibt verschiedene Ansätze wie man die Architektur aufsetzt. Ein Leitfaden gibt die Arc42, wie man die Aufteilung gestalten kann.
Grundlegende Frage die du dir stellen kannst:
- Wer kommuniziert mit wem?
- Welche Schnittstellen gibt es?
- Welche Abhängigkeiten gibt es?
- Welche Benutzer gibt es? (Login, Benutzerverwaltung, Zugriffsrechte etc.)
- Wie viel Leistung hat jeder Knoten zur Verfügung?
- Wo sind Security Risiken?