TL; DR: Maßnahmen der Größe Split grob in drei verschiedenen Kategorien sein können , dass ich als definieren würde Tiefe in dem, was Sie gegen verwalten , was Sie auslagern oder verbrauchen als Dienstleistung, Breite der Dienstleistungen unterstützt und Höhe in der Anzahl der Instanzen, Servern und Kunden . Maßnahmen der Komplexität auf ausgewählte weitgehend abhängig
Systemarchitektur , Organisationsstruktur von Menschen es und unterstützende Fähigkeiten erforderlich. Wo Tiefe und Fähigkeiten Hand in Hand gehen und sowohl Größe als auch Komplexität erhöhen.
Größenmessungen
Hinweis: Die meisten der folgenden Größenanforderungen können auch die Komplexität durch Systemarchitektur, Fähigkeiten und Anforderungen an die Organisationsstruktur erhöhen.
Tiefe der Infrastruktur
Wie viel von der Infrastruktur, die Sie in größerer Tiefe an andere auslagern:
- Verwenden Sie Software as a Service einfach für alles, was Sie tun?
- Arbeiten Sie vollständig in einer öffentlichen Cloud, einer privaten oder einer Hybrid-Cloud oder verwenden Sie PaaS?
- Verwenden Sie Infrastructure as a Service?
- Verwenden Sie gehostete und verwaltete Infrastruktur in gemieteten DC-Räumen?
- Besitzen oder mieten Sie die Hardware?
- Verwaltet der Anbieter die Infrastrukturüberwachung?
- Verwaltet der Anbieter die grundlegende Systemadministration?
- Verwaltet der Anbieter Hardwarefehler und Wartung?
- Verwaltet der Anbieter das Racking und die Serverinstallation?
- Verwaltet der Anbieter das interne Netzwerk?
- Verwaltet der Anbieter die Internetverbindung und das Routing?
- Haben Sie nur Rechenzentren mit vertraglich vereinbarten Remote-Händen?
- Hosten Sie alles vor Ort oder in Ihren eigenen Rechenzentren?
Breite der Infrastruktur
Welche verschiedenen Arten von Diensten unterstützen Sie?
- Ressourcen berechnen
- Bare-Metal-Server
- Virtualisierungsschicht (VMWare)
- Containerschicht (Docker, k8, Mesos)
- Serverlose Schicht (Lambda, Funktionen)
- Speicherressourcen
- Standalone-Speichergeräte
- RAID in Servern
- Große eigenständige relationale Datenbankcluster
- Zeitreihendatenbanken
- Objektspeicher-Cluster
- Netzwerkressourcen
- Beobachtbarkeitsressourcen
- Systemprotokollserver
- Metriken und Graphensysteme
- Cluster durchsuchen
- Automatisierungsressourcen
- Sicherungs- / Wiederherstellungsressourcen
- Komplexe zusammengesetzte Dienstleistungen
Höhe der Infrastruktur
- Was ist die Skala für jede Ressource, die Sie benötigen? Betreiben Sie die Dienste auf einem einzelnen Server / einer einzelnen Instanz oder benötigen Sie Cluster von Computern?
- Welchen Redundanzgrad benötigen Sie?
- Was sind Ihre Verfügbarkeitsanforderungen?
- Was sind Ihre Anforderungen an die Latenz und den Durchsatz von Diensten?
- Benötigen Sie eine geografisch verteilte Infrastruktur? (internationales Geschäft, Latenzanforderungen oder Einhaltung von Vorschriften wie DSGVO, Gesetze zur Datenlokalisierung usw.)
- Benötigen Sie mehrere Rechenzentren in jeder Region?
Komplexitätsmaßnahmen
Nur ganz kurz ...
Systemarchitektur
Wenn es um die Komplexität der Infrastruktur geht, folgt sie ziemlich genau der Komplexität der verteilten Systeme, die von der Infrastruktur unterstützt werden. Sie müssen zwei Arten von Systemen berücksichtigen:
- Verteilte Systeme, die einzelne Dienste unterstützen.
- Verteiltes System, das durch gegenseitige Abhängigkeiten der Dienste erstellt wird.
Komplexität verteilter Systeme
Jeder Dienst, den Ihre Infrastruktur unterstützt, kann an und für sich eine unterschiedliche Komplexität mit unterschiedlichen Anforderungen an die Infrastruktur aufweisen. Systeme, die Dienste unterstützen, können Folgendes umfassen:
- Single Threaded.
- Multithreaded (gemeinsam genutzter Speicher, gemeinsam genutzte Festplatte)
- Parallele Systeme mit Data Sharding
- HA-Failover (Primär / Standby) (kalt, warm, heiß)
- HA-Cluster (N + M)
- Echtzeit-Cluster
Interdependenz von Dienstleistungen
Lassen Sie mich mit einem Beispiel beginnen. Angenommen, Ihre Infrastruktur meldet Testergebnisse im ElasticSearch-Cluster. Ihr Pager hängt von den von ElasticSearch bereitgestellten Überwachungs- und Testdaten ab. Die geografische Verteilung des ElasticSearch-Clusters hängt von der Netzwerkkonnektivität Ihres Rechenzentrums ab. Jetzt hat einer Ihrer Internetprovider beschlossen, am Samstagabend eine unangekündigte Wartung durchzuführen, der Durchsatz sinkt, Ihr Datenverkehr wird an den Backup-Anbieter umgeleitet, die Überwachung des Datenverkehrs wird auf den Kundendatenverkehr herabgesetzt, die Aufnahme von Überwachungsereignissen verlangsamt sich und Ihr Pager wird verrückt.
Jedes Mal, wenn zwei Dienste, zwei Teile der Infrastruktur, voneinander abhängen, erstellen sie ein neues verteiltes System, dessen Komplexität unabhängig beurteilt werden sollte. Eine solche Abhängigkeit kann entweder entfernt oder verringert werden. Denken Sie daran, dass das System nur so redundant und verfügbar ist wie die Schnittstelle aller Dienste, von denen es abhängt.
Weitere Beispiele für komplexitätserhöhende Faktoren:
- Abhängigkeiten von externen Diensten.
- Versuche, Fehler aufgrund von Dienstabhängigkeiten zu verringern.
- Mehrere Anbieter
- Zwischenspeichern von Daten
Organisatorische Struktur
Dies ist ein Kapitel für sich ... Menschen werden oft als Teil des Gesamtsystems der IT-Infrastruktur übersehen. Wir denken selten an Redundanz-, Verfügbarkeits- und Latenzfaktoren, wenn es um Menschen geht, aber genau wie bei Computern betreffen dieselben Probleme Unternehmen, die die Infrastruktur warten, und deren Komplexität kann manchmal die Komplexität der Computersysteme leicht überwiegen. Personen, die an der Wartung Ihrer Infrastruktur beteiligt sind, können mehrere Zeitzonen, Sprachen, geografische Standorte, Unternehmen, Gehaltsstufen und gesetzliche Vorschriften umfassen. Jeder dieser Faktoren ist ein Zeichen für eine zunehmende Komplexität.