Die Anforderungen an eine Datacenterlösung haben sich in den vergangenen Jahren stark gewandelt. Vom kleinen Dienstleister bis hin zum Enterprise Business setzen Unternehmen vermehrt auf den Einsatz von Automatisierung und leichter zu wartenden Umgebungen. Die neue Rolle des DevOps (Development & Operations) verdeutlicht, dass die Entwicklung und der Betrieb nicht mehr getrennt betrachtet werden kann.
In der Vergangenheit wurde der Markt eher von monolithischen Produkten großer Anbieter dominiert. Heute gibt es vermehrt einzelne kleinere Lösungen für spezielle Aufgaben. Auch die Entwicklung von Enterprise relevanter Software im Bereich Open Source tendiert zum modularisierten Aufbau. Die teuto.net Netzdienste GmbH aus Bielefeld am Teutoburger Wald ist seit über 20 Jahren als ISP tätig und setzt fast ausschließlich auf Open Source Software. Auf Basis der langjährigen Erfahrung hat teuto.net einen Technologiestack für Datacenter erarbeitet, welcher den modernen Anforderungen der DevOps gerecht wird und auf Open Source Software basiert.
Anforderungen an eine moderne Datacenterlösung
Neben klassischen Anforderungen wie einer hohen Verfügbarkeit und Ausfallsicherheit gibt es, nicht zuletzt durch die neue Rolle des DevOps, erweiterte Anforderungen für moderne Datacenterlösungen.
- Automatisierung & Orchestrierung
Entwickler sind bereits seit vielen Jahren den Umgang mit APIs und Automatisierungstools gewöhnt. Auch DevOps wünschen sich, vom Bare Metal bis hin zum Microservice, einen hohen Grad an Automatisierung und Orchestrierungsmöglichkeiten. Die Bereitstellung von APIs für die meisten Dienste im Datacenter gilt bereits als selbstverständlich. - Offene Standards mit Open Source Software
Der Einsatz von Open Source Software (OSS) ermöglicht eine langfristige herstellerunabhängige Unterstützung und verhindert ein Vendor-Lock-In. Durch die Verwendung von offenen Standards wird eine höhere Kompatibilität zwischen den Modulen des Technologiestacks geschaffen. Darüber hinaus werden für viele OSS-Komponenten Wartungsverträge mit Supportzusagen angeboten. - Flexibilität bei Kosten und Ressourcenbedarf
Häufig lässt sich der Erfolg von IT-Projekten vorab nur schwer abschätzen. Sosind z.B. in den letzten Jahren viele Webservice-Anbieter durch mangelnde Flexibilität vom eigenen Erfolg überrannt worden. Eine auf allen Ebenen skalierbare Lösung hilft flexibel zu bleiben und auch bei geringer Auslastung die Kosten niedrig zu halten. Durch schnell verfügbare Ressourcen können die Anlaufzeiten von neuen Projekten kurz gehalten werden. Ein Ausbau des Datacenters und der Ressourcen ist jederzeit, auch in Stufen, möglich. - Benutzerfreundlichkeit & Akzeptanz
Ein einfacher Einstieg ist die Grundvoraussetzung für eine breite Akzeptanz der neuen Lösung im Unternehmen. Benutzerfreundliche Werkzeuge, verständliche Dokumentationen und verfügbare Schulungen zu einzelnen Modulen des Technologiestacks helfen bei der Integration. - Einfaches Monitoring und Fehlerdiagnose
Mit steigender Modularisierung erhöht sich unweigerlich die Komplexität der Lösung. Eine zentrale Monitoringlösung hilft bei der zuverlässigen Überwachung und beim Betrieb des Technologiestacks. Die sinnvolle Aggregation dergesammelten Informationen unterstützt bei der Problemerkennung sowie beim zuverlässigen Betrieb der Lösung. - Technologieunterstützung für den Enterprise Sektor
Für Unternehmen im Enterprise Sektor ist eine Unterstützung gängiger proprietärer Technologien häufig erforderlich. Ein moderner Datacenter Technologiestack ist flexibel erweiterbar und unterstützt die nahtlose Integration proprietärer Enterprise Technologien wie Windows mit Hyper-V.
Der teuto.net Technologiestack für das Datacenter
Resultierend aus den Anforderungen und der langjährigen Erfahrung mit den gewählten Technologien wurde von teuto.net ein Datacenter Technologiestack zusammengestellt, welcher sich bereits im Betrieb bei vielen Kunden bewährt hat und fortlaufend weiterentwickelt wird.
Der teuto.net Technologiestack für das Datacenter
Hardware Deployment und Configuration Management
Bei der Server-Hardware setzt teuto.net auf zuverlässige IPMI kompatible Hardware von verschiedenen Herstellern. Die Nodes werden mit Hilfe einer einfachen Management-Node per Ubuntu MAAS (Metal as a Service) provisioniert. Ubuntu MAAS verwendet IPMI um die Nodes im Netzwerk zu finden und mit einem Basis-Ubuntu System zu deployen. Anschließend werden die benötigten Dienste mit Ansible auf den Maschinen installiert. Die dazu benötigten Installationsroutinen wurden als Ansible-Rollen von teuto.net selbst entwickelt oder an die Bedürfnisse der Kunden angepasst.
Zur Orchestrierung der Dienste auf den Nodes wird Pacemaker verwendet. Das Deployment ermöglicht auch eine hochverfügbare Umgebung. In diesem Fall wird eine redundante Verteilung der Dienste auf der vorhandenen Hardware sichergestellt. Bei einem Ausfall können die funktionstüchtigen Nodes in der Cloud die Rolle der ausgefallenen Nodes übernehmen.
Auch für Updates oder eine Erweiterung der Cloud können die Ansible Rollen verwendet werden. So lässt sich eine anfangs kleinere POC (proof of concept) Cloud später auch zu einer hochverfügbaren Cloud für den Produktiveinsatz erweitern. Ubuntu-Systemupdates lassen sich über Ansible auf allen Nodes systematisch ausrollen. Optional kann für die Nodes der Cloud auch ein Ubuntu Advantage Servicevertrag abgeschlossen werden, welcher u.a. mit „Landscape“ ein grafisches Tool zur Verwaltung von Systemupdates über mehrere Nodes bietet.
Robustes Networking auf Layer 3 Basis
Für die Vernetzung der Nodes werden Switches mit Cumulus Linux eingesetzt, welche ein Networking auf Layer 3 Basis ermöglichen. Cumulus Linux ist ein offenes Linux Betriebssystem welches speziell für Netzwerkswitches entwickelt wurde. Mittlerweile werden von zahlreichen Herstellern Switches auf Basis von Cumulus Linux angeboten. Das Networking zwischen den Nodes der Cloud findet auf Layer 3 Ebene statt und ermöglicht dadurch einen robusten Betrieb.
Optional wird ein Overlaynetzwerk von Neutron, der Netzwerkkomponente von OpenStack, mit Open vSwitch, vXlan und DVR (Distributed Virtual Router) eingesetzt. Dies ermöglicht eine bessere Skalierbarkeit des Netzwerkes und die Realisierung von SDN / NFV (Network Function Virtualization).
Die modulare Cloud-Plattform OpenStack
OpenStack ist eine Softwaresammlung mit der IaaS-Plattformen für öffentliche und private Clouds erstellt und verwaltet werden können. Durch den modularen Aufbau kann OpenStack besonders gut durch andere Lösungen erweitert werden. Alle Module von OpenStack werden über eine gut dokumentierte REST-API-Schnittstelle gesteuert. Um die Arbeit zu vereinfachen gibt es die Möglichkeit, die API über einen Kommandozeilenclient zu verwenden. Weiterhin wird mit dem „Horizon“-Dashboard ein Webinterface angeboten, welches als Self Service Portal dient und vom Cloud Betreiber um eigene Funktionen erweitert werden kann. Alle Teile von OpenStack sind Quelloffen und können Lizenzkostenfrei genutzt oder nach den eigenen Wünschen verändert werden, was durch die verwendete „Apache License“ sichergestellt wird.
Hier durch ist eine Herstellerunabhängigkeit gegeben so dass Sie als Nutzer kein „Vendor Lock-In“ zu befürchten haben.
Der Technologiestack von teuto.net verwendet die aktuellen stabilen OpenStack-Pakete aus dem Ubuntu Cloud Repository von Canonical. Als Hypervisor für virtuelle Maschinen hat sich in der Praxis KVM als besonders zuverlässig gezeigt. Weiterhin besteht mit PowerKVM die Möglichkeit, auch Computenodes auf Basis von IBM POWER8 zu nutzen. Für die Virtualisierung von Windows Maschinen kann zusätzlich Hyper-V eingebunden werden.
Redundanter Ceph-Storage für alle Bedürfnisse
Zur Anbindung an OpenStack eignet sich der verwendete Ceph Storage besonders gut, da Ceph alle Storagebedürfnisse von OpenStack bedienen kann. So kann Ceph sowohl als Block Storage wie auch als S3-kompatibler Object Storage mit RadosGW agieren. Weiterhin können auch Images und Snapshots, welche in OpenStack verwendet werden, direkt im Ceph Storage abgelegt werden. Ceph ist eine redundante Storagelösung welche als Cluster aus mehreren Nodes agiert. Durch die selbstheilenden Eigenschaften ist Ceph ideal für eine skalierbare Umgebung und kann nach Bedarf erweitert werden. Da OpenStack mehrere Storageplattformen gleichzeitig unterstützt kann neben Ceph problemlos auch eine weitere Storagelösung z.B. auf ISCSI-Basis angebunden werden.
Skalierbarer und selbstheilender Datenbankcluster
Die Speicherung von Daten in der Cloud findet in einem Galera Cluster sowie einer MongoDB statt. Galera Cluster ist eine Clustering Lösung für MariaDB (offener MySQL fork). Als SQL-Custerlösung ist Galera optimal für den Einsatz in einer skalierbaren Umgebung, da der Cluster problemlos durch weitere Nodes vergrößert werden kann. Weiterhin versucht der Galera Cluster sich, bei einem Ausfall einzelner Nodes, selbst zu heilen und schließt ggf. defekte Nodes automatisch aus. Auch die MongoDB, welche bisher jedoch nur durch OpenStack Ceilometer verwendet wird, wird redundant über ein sogenanntes „replicaset“ installiert.
Identity Management auch über die eigene Cloud hinweg
Die OpenStack Komponente Keystone wird als Authentifizierungs- und Rechtesystem zwischen den Komponenten von OpenStack verwendet. Keystone unterstützt neben einem Token-System auch weitere Authentifizierungsmöglichkeiten wie z.B. LDAP oder Kerberos. Seit der aktuellen Kilo-Version von OpenStack wird mit dem Federation Ansatz auch ein Identity Management über die Grenzen der eigenen Cloud hinaus unterstützt. Mit Federation Ansatz kann ein Keystone Dienst einen anderen Keystone Dienst zur Authentifizierung nutzen. So kann z.B. in einem Keystone einer Public Cloud zusätzlich ein Keystone Dienst einer Private Cloud verknüpft werden. Dies ermöglicht Nutzern der Private Cloud zusätzlich die Nutzung der Public Cloud, ohne die Angabe zusätzliche Benutzerkennungen. Federation ist ideal für die Realisierung von Hybrid Clouds oder die Kombination mehrerer Private Clouds über verschiedene Standorte.
Monitoring & Operating
Logstash dient als zentraler Dienst zum Sammeln und aggregieren der vorhandenen Logfiles der verschiedenen Nodes. Mit Icinga (ein Open Source fork von Nagios) lassen sich aktuelle Statusinformationen und Werte aus den Logfiles gesammelt in einer übersichtlichen Oberfläche für den Administrator der Cloud darstellen. Auch Graphite wertet verschiedene Informationen der Cloud aus. Mit dem zugehörigen Darstellungstool Graph-Explorer lassen sich jedoch die gesammelten Informationen aus verschiedenen Quellen wie OpenStack Ceilometer und Ceph Storage kombinieren und z.B. getrennt nach Mandanten darstellen. Dies hilft beim Betrieb, bei der Fehlerdiagnose, sowie beim Aufspüren einzelner „Störquellen“ in der Cloud.
Zuverlässiger Betrieb Ihrer Anwendungen & Container
Der Datacenter Technologiestack von teuto.net bietet die ideale Plattform für den zuverlässigen Betrieb von modernen Anwendungen. Ob MesOS, Kubernetes oder Docker Swarm, das darunter liegende OpenStack hilft bei der Mandantentrennung Ihrer bevorzugten Containerlösung. Mit OpenStack Heat können Sie in kürzester Zeit Ihre Anwendungsumgebung automatisch deployen. Ein LoadBalancer mit Autoscaling sorgt auch bei Lastspitzen für einen zuverlässigen Betrieb. Über die APIs lassen sich die Dienste der Cloud direkt mit der eigenen Software ansteuern. Die verfügbaren APIs werden bereits von den gängigsten Automatisierungstools wie Ansible, Puppet und Chef unterstützt so dass diese problemlos eingesetzt werden können.