Infrastruktur als Code | Exigo

Infrastruktur als Code: Was ist das und warum sollten Sie sich dafür interessieren?

Infrastruktur als Code für top mlm saas provider image

Die Notwendigkeit ist die Mutter der Erfindung, aber man kann genauso gut sagen, dass die Erfindung die Mutter der Notwendigkeit ist, insbesondere in einer von der Informationstechnologie geprägten Zeit. Nehmen wir zum Beispiel das Internet. Seine Erfindung brachte zuvor unvorstellbare Ideen hervor, die sich schnell zu Notwendigkeiten entwickelten. In diesem späten Stadium des Informationszeitalters sind die Internetverbindung und der allgegenwärtige Zugang zum Internet eine Grundvoraussetzung. 

Damit Ihr Unternehmen heute relevant und wettbewerbsfähig bleibt, brauchen Sie nicht nur eine Webpräsenz, sondern auch Werkzeuge, mit denen Sie die Macht des Internets nutzen können, um die Erstellung, Verwaltung und Verteilung der Ressourcen zu vereinfachen, die die für Ihre Branche geeignete Softwarelösung hosten. Infrastruktur als Code ist eine der technologischen Ausprägungen dieser geschäftlichen Notwendigkeit.

Was ist Infrastruktur als Code?

Infrastruktur als Code ist ein Code, der maschinenlesbare Definitionen enthält, die den Prozess der Bereitstellung und Konfiguration der Ressourcen, auf denen eine Softwarelösung läuft, automatisieren können. 

Infrastruktur als Code für top mlm saas provider image

Infrastruktur als Code kann in einem Rechenzentrum vor Ort laufen, um die Verwaltung der Ressourcen dieses Zentrums zu vereinfachen. Sie kann auch firmeneigene Kodierung enthalten, die in einem privaten Rechenzentrum läuft und später in die Cloud migriert wird. Diese Arten von Lösungen sind Verbesserungen gegenüber der ständigen manuellen Verwaltung von Bare-Metal-Servern, die Rechenzentren umfassen.

Diese Arten von Lösungen lassen jedoch einen weiteren potenziellen Vorteil der Ausführung von Infrastruktur als Code ungenutzt. Wenn die kodierte Infrastruktur so konzipiert ist, dass sie über die Anwendungsprogrammierschnittstellen (APIs) der Cloud direkt mit dieser kommuniziert, können sie und die Plattform, für die sie konfiguriert ist, die Vorteile der Cloud voll ausschöpfen, einschließlich des unbegrenzten Zugriffs auf Ressourcen, auf denen immer die neueste Technologie läuft. 

Microsoft Azure ist eine der führenden öffentlichen Cloud-Plattformen und hat Pionierarbeit bei der Entwicklung der APIs und Ressourcenvorlagen geleistet, die Infrastructure as Code ermöglichen. Bei Exigo kommuniziert unsere Infrastructure as Code mit der Azure-Plattform und nutzt diese APIs, um Ressourcen zuzuweisen und zu konfigurieren. Bei der Entwicklung unserer kodierten Infrastruktur und Plattform haben wir größtenteils .NET verwendet, eine von Microsoft entwickelte Programmiersprache, die, wie nicht anders zu erwarten, in Azure eine erstklassige Rolle spielt. (Wenn ich sage "erstklassiger Bürger", meine ich damit, dass Azure .net erkennt und willkommen heißt und dass .net wiederum gut und bequem in der Azure-Sandbox läuft).

Unsere Verwendung von Informationen als Code automatisiert die Verwaltung unserer Cloud-basierten Rechenzentren, indem sie bei Bedarf automatisch neue Ressourcen (wie Datenbanken und virtuelle Maschinen) erstellt und bereitstellt.

Warum sollten Sie sich dafür interessieren?

Infrastructure as Code, und insbesondere unsere Implementierung davon, bietet mehrere Vorteile. (Einige davon überschneiden sich mit den "Vorteilen des Cloud Computing").

  • Sofortige Bereitstellung
  • Skalierbarkeit
  • Testen vor der Markteinführung
  • Verlässlichkeit 

Instant Provisioning:
Kauf und Produktivität im Handumdrehen

Wenn Sie sich für eine Software-as-a-Service (SaaS)-Lösung entscheiden, um Ihre Geschäftsprozesse im Direktvertrieb zu optimieren, kann die Zeit, die Sie vom Einkauf bis zur Produktivität benötigen, Monate, Wochen - oder Minuten - betragen.

Die Art und Weise, wie wir unsere Infrastruktur als Code konzipiert und implementiert haben, ermöglicht Letzteres, ein Vorteil, der als "Instant Provisioning" bekannt ist. Wenn wir uns entscheiden, eine Ressource zu erstellen, z. B. eine Datenbank oder eine virtuelle Maschine, verwenden wir eine Azure Resource Manager (ARM)-Vorlage, um nicht nur die gewünschte Ressource, sondern auch alle mit dieser Ressource verbundenen Eigenschaften zu definieren, und speichern diesen Code dann in einem Repository. 

Dadurch können wir die Infrastruktur für neue Kunden schaffen, indem wir einfach den gespeicherten Code ausführen, der wiederum automatisch die benötigten Ressourcen bereitstellt, so dass wir einen Kunden innerhalb von Minuten nach Vertragsunterzeichnung in Betrieb nehmen können.

Wenn Ihre neuen Ressourcen in der Cloud zugewiesen werden, erhalten Sie automatisch Ihre Anmeldedaten, so dass Sie innerhalb weniger Stunden damit beginnen können, unsere Lösung anzupassen und möglicherweise Ihren ersten Auftrag entgegenzunehmen.

Skalierbarkeit:
Der Himmel ist die Grenze

Skalierbarkeit ist die Fähigkeit eines Systems, Ressourcen zuzuweisen und dadurch die Leistung je nach Bedarf zu verbessern. Es gibt zwei Methoden der Skalierung: vertikale Skalierung und horizontale Skalierung.

Bei der vertikalen Skalierung wird die vorhandene Hardware erweitert oder aufgerüstet. Dieser Prozess erfordert ein praktisches Management, das kostspielig ist und nicht unbedingt eine nahtlose Erweiterung ermöglicht. 

Die horizontale Skalierung umfasst die automatische Bereitstellung von Ressourcen bei Bedarf - eine praktische Funktion, die durch die Implementierung der Infrastruktur als Code möglich wird. 

Unsere kodierte Infrastruktur enthält Metriken, die die Leistungsanforderungen diktieren, so dass unsere Lösung automatisch mehr Ressourcen zur Verfügung stellt, wenn die Last eines Kunden plötzlich zu groß für die derzeit genutzten Ressourcen wird. 

Unsere Lösung ist wie ein Gummiband, das sich ausdehnt und zusammenzieht, um sich schnell an Ihre Bedürfnisse anzupassen, wenn Sie mehr oder weniger Last benötigen. Der Prozess ist nahtlos, d. h. Sie werden nicht wissen, was passiert, sondern nur die Belohnung ernten, dass Sie immer die Leistung erhalten, für die Sie bezahlen, und nicht für Ressourcen zahlen, die Sie nicht nutzen.

Da unsere Lösung so konzipiert wurde, dass sie direkt mit Azure kommuniziert, profitieren unsere Kunden sowohl von den Vorteilen der vertikalen als auch der horizontalen Skalierung, ohne dass sie sich mit einem der beiden Probleme herumschlagen müssen. Unsere Lösung gewährleistet eine automatische und nahtlose horizontale Skalierung, während Azure die Kosten und den Aufwand der vertikalen Skalierung verwaltet. 

Fazit: Wenn Ihre Website mehr Leistung benötigt, skaliert unsere Lösung im Handumdrehen, um die erhöhte Last zu bewältigen. Und da wir in Azure arbeiten, sind der Last, die wir bewältigen können, keine Grenzen gesetzt.

Testen vor der Markteinführung:
Smooth Computing Insurance 

Wenn Sie Infrastruktur als Code implementieren, wird Ihre Infrastruktur wie jeder andere Code behandelt. Zu den Vorteilen gehören einfache Upgrades, die getestet werden können, bevor sie in Produktion gehen. 

Mit Infrastruktur als Code können alle Änderungen an der Infrastruktur an einer einzigen Stelle vorgenommen und dann getestet werden, um sicherzustellen, dass sie frei von Kompatibilitäts- und Integrationsproblemen sind (unter anderem), bevor sie in Produktion gehen. 

So nimmt Exigo bei Bedarf Änderungen an seiner kodierten Infrastruktur vor, testet die Änderungen und wendet sie erst dann auf alle Infrastrukturelemente in der Produktion an, und zwar direkt über die Azure-APIs mithilfe der Online-Vorlagen. Dieser Prozess eliminiert das Risiko menschlicher Fehler: Die Änderung wird einmal durchgeführt und getestet und dann auf alle Elemente angewendet. 

Zuverlässigkeit:
Wiederherstellung der gepunkteten I's und gekreuzten T's 

Ein weiterer Vorteil des Betriebs unserer Infrastruktur als Code in Azure besteht darin, dass wir unsere Plattform überall auf der Welt mit nur einem Mausklick bereitstellen können. 

Nehmen wir zum Beispiel an, ein Azure-Rechenzentrum im Osten der USA fällt aus und Ihre Datenbank und andere Ressourcen liefen zufällig in diesem ausgefallenen Rechenzentrum. Aufgrund der Art und Weise, wie wir unsere Lösung konzipiert haben, können wir alles sehr schnell an einem anderen Ort bereitstellen (Australien, westliche USA, Europa - überall), so dass die mit dieser Katastrophe verbundene Ausfallzeit minimal ist, ein Vorteil, der als Failover bekannt ist. 

Wir versprechen unseren Kunden nicht nur minimale Ausfallzeiten im Falle eines Ausfalls, sondern auch ein exaktes Duplikat dessen, wofür sie bezahlt haben - mit allem Drum und Dran - alles so wie es war. Alle Daten von Exigo, einschließlich der Daten unserer Kunden, werden in Echtzeit in mehr als einem Rechenzentrum repliziert. Darüber hinaus sind alle unsere Datenbanken 35 Tage lang wiederherstellbar, d. h. unsere Kunden können jede beliebige Minute, auch diese, wählen und die Datenbank genau so wiederherstellen, wie sie zu diesem Zeitpunkt war.

SaaS-Lösungen, die auf Rechenzentren vor Ort oder private Rechenzentren beschränkt sind und ihre Datenbanken weiterhin in ihren eigenen Rechenzentren betreiben, müssen die Kosten für die Einrichtung und Verwaltung redundanter Standorte übernehmen, um im Falle eines Ausfalls ein Backup zu gewährleisten. Diese Kosten werden direkt an ihre Kunden weitergegeben. Exigo nutzt die Leistungsfähigkeit der Azure-Cloud, um sicherzustellen, dass Ihre Daten zu geringeren Kosten geschützt sind, und profitiert von der globalen Reichweite der Azure-Plattform.

Infrastruktur als Code:
Erfindung und Notwendigkeit

Wenn Sie also nach einer webbasierten Lösung für Ihre Geschäftsanforderungen suchen, sollten Sie bedenken, dass die schnellsten und effizientesten Lösungen auf einer Infrastruktur als Code basieren, die direkt mit einer öffentlichen Cloud verbunden ist. Stellen Sie potenziellen Dienstleistern Fragen wie diese:

  • Läuft Ihre Lösung vor Ort oder in der Cloud?
  • Welche Technologie verwenden Sie für die Verwaltung von Computerressourcen, und ermöglicht diese Technologie eine Infrastruktur als Code?
  • Erlaubt es Ihre Lösung, eine kodierte Infrastruktur entweder über eine API oder eine Vorlage zu definieren?
  • Automatisiert Ihre Lösung den Prozess der Erstellung und Bereitstellung von Ressourcen?
  • Stellt Ihre Lösung sicher, dass Sie bei der Erstellung neuer Ressourcen jedes Mal das bekommen, was Sie wollen?

Glossar

  • API: Eine Anwendungsprogrammierschnittstelle (API) ist das Bindeglied, das es verschiedenen Computersystemen ermöglicht, effektiv zu kommunizieren, ohne dass beide Systeme geschützte Informationen weitergeben müssen. (Stellen Sie sich vor, Sie müssen dieselbe Anfrage an vier Personen übermitteln, die unterschiedliche Sprachen sprechen. Eine API ist wie ein Übersetzer, der Ihre Nachricht übermittelt und vier Antworten in der Sprache zurückgibt, die Sie verstehen). 
  • Azure Resource Manager (ARM) Vorlage: Wird verwendet, um Infrastruktur als Code für Azure-Lösungen zu implementieren. Die Vorlage ist eine Javascript Object Notation (JSON)-Datei, die die Infrastruktur und Konfiguration Ihrer Lösung definiert. Die Vorlage ermöglicht es Ihnen, eine Ressource zu definieren, ohne dass Sie eine Reihe von Programmierbefehlen schreiben müssen, um sie zu erstellen. In diesen Vorlagen geben Sie die Ressourcen an, die Sie erstellen möchten, sowie deren jeweilige Eigenschaften. 
  • Datenbank: Ein strukturierter Satz von Daten, der auf einem Computer läuft und elektronisch zugänglich ist.
  • Rechenzentrum: Eine Sammlung von Computern (möglicherweise in einem einzigen Gebäude untergebracht oder mit einem Netzwerk verbunden), die große Datenmengen speichern, verarbeiten und verteilen.
  • Ausfallsicherung: Die Fähigkeit, schnell einen identischen Zwilling eines Software-Computing-Programms oder einer Plattform bereitzustellen, um die Ausfallzeit im Falle eines Ausfalls, z. B. aufgrund einer Naturkatastrophe, zu minimieren. 
  • Hochverfügbarkeit: Der Prozess, bei dem mehrere Instanzen eines Softwareprogramms, einer Anwendung oder einer Plattform auf verschiedenen Servern laufen, die sich möglicherweise in verschiedenen Teilen der Welt befinden, um keine Ausfallzeiten zu verursachen. Das Verfahren ist effektiv, aber sehr kostspielig. Bei Hochverfügbarkeit zahlen Sie für Ressourcen, die Sie gerade nicht benötigen. 
  • Öffentliche Cloud: Öffentliche Clouds, die von Drittanbietern betrieben werden, stellen Rechenressourcen (wie Server und Speicherplatz) über das Internet bereit. Die Verbraucher greifen über einen Webbrowser auf diese Dienste zu.
  • SaaS: Software as a Service oder SaaS (ausgesprochen "sass") ist eine Methode zur Bereitstellung von Software im Rahmen eines Online-Abonnements, auf das ein Kunde in der Regel über das Internet zugreift. SaaS entfernt sich von dem traditionellen Paradigma, ein Programm zu erstellen und es dann auf einem physischen Computer zu installieren und auszuführen.  
  • Vertikale Skalierung: der Prozess der Hinzufügung weiterer Ressourcen zu einem bestehenden Computersystem, um die Leistung zu erhöhen oder anderweitig zu verbessern. Die vertikale Skalierung kann beispielsweise darin bestehen, dass einem Rechenzentrum leistungsfähigere Bare-Metal-Server hinzugefügt oder der Arbeitsspeicher der vorhandenen Server erhöht wird.  
  • Horizontale Skalierung: der Prozess der Erhöhung der Anzahl der Instanzen einer Softwarelösung, um eine höhere Last zu bewältigen (und dadurch die Leistung zu verbessern) oder die Reduzierung der Instanzen, um sicherzustellen, dass ein Kunde nur für das bezahlt, was er auch nutzt.
  • Provisionierung: Das Verfahren zum Starten oder Herunterfahren einer Instanz einer in der Cloud betriebenen Plattform. Bei einer Softwareplattform, die auf einer Infrastruktur als Code läuft, die für eine direkte Verbindung mit der Cloud ausgelegt ist, kann die gesamte Plattform mit einem Mausklick gestartet werden.
  • Virtuelle Maschine: Eine virtuelle Maschine ist eine Emulation eines vollständigen Betriebssystems, das im Speicher eines anderen Betriebssystems ausgeführt wird, wodurch ein einziger Host-Computer im Wesentlichen die Funktionalität von zwei Computern erhält.
Nach oben