Was sind die Maße für Größe und Komplexität der IT-Infrastruktur?

7

Wie kann ich verschiedene Infrastrukturen in Bezug auf Größe und Komplexität vergleichen? Was kann ich messen und vergleichen, z. B. Anzahl der Knoten, Anzahl der Server, Architekturen usw.

Wie unterscheiden sich diese Kennzahlen und Variablen im Vergleich? Welche von ihnen sind sinnvoll zu vergleichen und bei welcher Kardinalität gibt es tatsächlich Unterschiede in der Art der geleisteten Arbeit, anstatt nur ein bisschen zusätzliche Arbeit.

Was lässt mich entscheiden, dass " Diese Infrastruktur ist sehr groß " oder " Diese Infrastruktur ist sehr komplex " und was ist der Unterschied?

Niklas
quelle

Antworten:

7

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:

  1. Verwenden Sie Software as a Service einfach für alles, was Sie tun?
  2. Arbeiten Sie vollständig in einer öffentlichen Cloud, einer privaten oder einer Hybrid-Cloud oder verwenden Sie PaaS?
  3. Verwenden Sie Infrastructure as a Service?
  4. 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?
  5. Haben Sie nur Rechenzentren mit vertraglich vereinbarten Remote-Händen?
  6. 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
    • ELK, Hadoop usw.

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:

  1. Verteilte Systeme, die einzelne Dienste unterstützen.
  2. 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.

Jiri Klouda
quelle
1
Ich habe versucht, hier schnell eine Antwort zu finden. Ich werde versuchen, sie in Zukunft zu bearbeiten, aber ich begrüße Vorschläge und Änderungen sehr.
Jiri Klouda
2
Schön, ich würde Zusammenhänge als einen wichtigen Komplexitätsfaktor betrachten
Giulio Vian