Einblicke und Neuigkeiten. Frisch serviert.

2021

Juli
28

So nutzen Sie unsere Infrastruktur optimal

In vielerlei Hinsicht ist ein IaaS-Cloud-Angebot ein Drop-in-Replacement für einen physischen Server: wer bereits Erfahrung bei der Administration einer eigenen Maschine oder eines Dedicated Servers hat, kann diese Skills auch bei einem Cloud-Server direkt einsetzen. Dennoch kann es sich lohnen, sich mit den zusätzlichen Features sowie einigen Besonderheiten der Cloud vertraut zu machen. In diesem Beitrag fassen wir eine Reihe von Tipps zusammen, wie Sie aus Ihrem Setup bei cloudscale.ch das Optimum herausholen können.

Performance: Caches nutzen

Anders als von herkömmlichen Servern gewohnt, setzen wir bei cloudscale.ch auf separate Storage-Cluster auf Basis von Ceph: was für einen virtuellen Server aussieht wie eine einzelne, lokale Harddisk, ist in Wirklichkeit Speicherplatz, der über eine Vielzahl von Disks und Servern verteilt ist und die Daten mehrfach redundant vorhält. Einer der vielen Vorteile: bei einem Hardware-Defekt auf einem physischen Compute-Host können die betroffenen virtuellen Server innert kürzester Frist auf einer Ersatzmaschine neu gestartet werden; alle Daten sind sofort wieder verfügbar, ohne dass zuerst ein Techniker im Rechenzentrum die jeweiligen Harddisks von einem Server in den anderen umbauen müsste. Da in diesem Setup jedoch jeder Diskzugriff übers Netzwerk erfolgt, liegt die Latenz – trotz dedizierter Verbindungen von bis zu 100 Gbit/s – deutlich über dem Wert, der mit lokalen Disks erreichbar ist. Nutzen Sie daher die Caching-Funktionen, wenn Ihre eingesetzte Software (z.B. ein Datenbank-Server) diese Möglichkeit bietet.

Unser Tipp: Es kann sich lohnen jeweils einen etwas grösseren Flavor zu wählen, denn Linux nutzt RAM, das nicht anderweitig benötigt wird, ganz automatisch als Disk-Cache.

Performance: Workloads parallelisieren

Wenn die Daten erstmal von oder zu unserem Storage-Cluster fliessen, kommt ein weiterer Vorteil dieses Setups zum Tragen: weil im Cluster viele Storage-Server und noch mehr Disks zusammenarbeiten und parallel angesprochen werden können, liegt die erreichbare Datentransferrate deutlich über dem, was mit einer einzelnen, lokalen SSD möglich wäre. Das bedeutet: Je mehr sich die Datenzugriffe Ihrer Applikation parallelisieren lassen, umso mehr können Sie die nutzbare Gesamtleistung unseres Storage-Clusters ausschöpfen.

Unser Tipp: Parallelisieren Sie Ihre Workloads, wo dies möglich ist, denn verglichen mit einer rein sequenziellen Verarbeitung können Sie so die Storage-Leistung deutlich erhöhen.

Performance: Flavor je nach Anwendungsfall wählen

Nebst dem RAM-Bedarf (inklusive einer sinnvollen Reserve als Disk-Cache) spielt insbesondere der Bedarf an Rechenleistung eine zentrale Rolle bei der Wahl des passenden Flavors. Zusätzlich zur wählbaren Anzahl vCPUs/Cores stehen mit "Flex" und "Plus" zwei Modelle zur Verfügung, die für verschiedene Anwendungsfälle optimiert wurden. Bei den Flex-Flavors teilen Sie sich die Rechenleistung mit anderen Kunden und halten im Sinne der Fair-Use-Regelung eine moderate durchschnittliche Auslastung ein. Nebst einem günstigen Preis profitieren Sie dabei von genügend Leistungsreserven, um auch für Lastspitzen jederzeit gerüstet zu sein. Bei den Plus-Flavors steht Ihnen demgegenüber die gebuchte Anzahl physischer CPU-Cores jederzeit exklusiv zur Verfügung. Diese Leistung können und dürfen Sie konstant nutzen; Engpässe durch eine Überbuchung der verfügbaren Rechenleistung sind hier ausgeschlossen.

Unser Tipp: Ihre virtuellen Server lassen sich jederzeit skalieren, auch von Flex zu Plus und umgekehrt. Nutzen Sie diese Möglichkeit z.B. für initiale Tests mit unterschiedlichen Flavors oder immer dann, wenn sich Ihre Anforderungen ändern.

Kosten: Passender Storage für jede Anwendung

Bei jedem virtuellen Server sind die ersten 10 GB NVMe-SSD-Speicher des Root-Volumes inklusive. Darin befindet sich beim Launch des Servers das Basis-Image, und oft genügt diese Menge an Speicherplatz bereits für seinen Live-Einsatz. Zudem können zusätzliche Volumes jederzeit an den Server angehängt und wieder gelöscht werden. Wählen Sie hier NVMe-SSD-Speicher, wenn Sie maximale Performance benötigen, z.B. für den Betrieb einer Datenbank. Für grössere, weniger intensiv genutzte Datenbestände eignen sich dagegen die kostengünstigen und auf maximal 500 IOPS limitierten Bulk-Volumes. Testen Sie im Zweifel beide Varianten selbst: während Bulk-Volumes für einen DB-Einsatz definitiv ausser Betracht fallen, können sie in vielen anderen Szenarien bereits vollauf genügen und so einen kosteneffizienten Server-Betrieb unterstützen.

Unser Tipp: Als Alternative zu NVMe-SSD- und Bulk-Volumes, die Sie in Ihrem Server als sdX-Devices sehen, steht Ihnen zudem unser S3-kompatibler Object Storage zur Verfügung. Besonders interessant daran ist, dass Sie – nebst einem nutzungsabhängigen Betrag für Requests und ausgehenden Datentransfer – nicht für den verfügbaren, sondern immer nur für den tatsächlich belegten Speicherplatz bezahlen.

Kosten: Volumes skalieren nach Bedarf

Sowohl das Root-Volume als auch zusätzliche NVMe-SSD- und Bulk-Volumes können Sie jederzeit im laufenden Betrieb vergrössern. Tooling und passende Partitionierung innerhalb des Servers vorausgesetzt, funktioniert dies bis hin zur Ebene des Dateisystems. Bemessen Sie Ihre Volumes daher nach Ihrem tatsächlichen Platzbedarf; das vorzeitige Einplanen von zukünftigen Anforderungen ist nicht nötig. Beachten Sie jedoch, dass das Verkleinern von Volumes nicht unterstützt wird. Falls Sie nur vorübergehend zusätzlichen Platz benötigen, empfehlen wir Ihnen deshalb, ein zusätzliches Volume zu erstellen – dieses können Sie später jederzeit wieder löschen.

Unser Tipp: Falls Sie mehrere zusätzliche Volumes nicht als separate Mountpoints nutzen möchten, koppeln Sie diese z.B. mittels LVM zu einem zusammenhängenden Ganzen; so behalten Sie dennoch die Option, später einzelne PVs wieder aus der Volume Group auszuklinken und die entsprechenden Volumes zu löschen.

Resilienz: Kopien an unterschiedlichen Standorten

Bei cloudscale.ch gehen wir davon aus, dass unsere Kunden in ihrem eigenen Interesse aktuelle Backups ihrer Daten auf Drittinfrastruktur vorhalten, im einfachsten Fall z.B. lokal auf dem eigenen Arbeitsgerät. Falls Sie auch innerhalb unserer Cloud-Infrastruktur Kopien mit Backup-Charakter pflegen, empfehlen wir Ihnen, diese am jeweils anderen Cloud-Standort zu speichern als deren Quelldaten. Dank unserer zwei geographisch getrennten Cloud-Regionen in Rümlang/ZH (RMA) und Lupfig/AG (LPG) sind Ihre Daten damit auch für den Fall von unwahrscheinlichen, aber potenziell schwerwiegenden Ereignissen wie Feuer oder Erdbeben bestmöglich geschützt. Über unseren Dark-Fiber-Ring zwischen den zwei Regionen nehmen Ihre Daten übrigens automatisch den direktest möglichen Weg.

Unser Tipp: Alternativ steht Ihnen an beiden Cloud-Standorten je ein S3-kompatibler Object Storage zur Verfügung. Achten Sie in diesem Fall jedoch darauf, das Bucket tatsächlich am jeweils anderen Standort zu erstellen.

Resilienz: Anti-Affinity nutzen

Bei wachsendem Ressourcenbedarf "vertikal" zu skalieren, also einem bestehenden Server mehr Ressourcen zuzuweisen, vermeidet Komplexität und somit mögliche Fehlerquellen. Dennoch kann es sinnvoll sein, stattdessen "horizontal" zu skalieren und die Last hinter einem (redundant aufgebauten) Load-Balancer auf mehrere Server zu verteilen. Damit von einem potenziellen, isolierten Hardware-Problem nicht mehrere dieser Server gleichzeitig betroffen sind, nutzen Sie unser Anti-Affinity-Feature: Indem Sie beim Erstellen bis zu vier virtuelle Server in Anti-Affinity zueinander setzen, stellen Sie sicher, dass diese Server auch tatsächlich auf separaten physischen Hosts laufen.

Unser Tipp: Fassen Sie jeweils diejenigen Server zusammen, die gleichartige Aufgaben erfüllen und einander bei einem Ausfall "vertreten" können.

Resilienz: Einsatz von Floating IPs

Praktisch alles läuft heute über Domainnamen, und mit einer genügend niedrigen TTL (Time to live) Ihrer DNS-Einträge können Sie auf diesem Weg steuern, zu welcher IP-Adresse und damit zu welchem Server entsprechende Requests gelangen. Dennoch bleibt eine gewisse Verzögerung, und das Verhalten verschiedener Clients ist nicht immer ganz konsistent. Dank Floating IPs sparen Sie sich den Wechsel der IP-Adresse: verschieben Sie Ihre Floating IPs innerhalb einer Region oder sogar Regions-übergreifend zwischen Ihren Servern, um den Traffic innert Sekunden zum jeweils gewünschten Server zu leiten. Für ein Failover-Setup können Sie diesen Vorgang auch via unsere API automatisieren: zwei Server – z.B. zwei Load-Balancer – überwachen einander laufend gegenseitig, um bei einem Problem des Gegenübers den Live-Traffic praktisch nahtlos zu sich selber umzulenken.

Unser Tipp: Auch bei einfachen Setups bieten Ihnen Floating IPs einen entscheidenden Mehrwert, denn im Gegensatz zu IP-Adressen eines Servers bleiben Floating IPs beim Löschen von Servern erhalten. So lassen sich Services aus Nutzersicht unverändert wieder aufnehmen, selbst wenn Sie im Hintergrund den betreffenden Server komplett austauschen.

Sicherheit: Backend-Server schützen

In Setups mit mehreren Servern, z.B. mit getrenntem Web- und Datenbank-Server, muss oft ein Teil der Systeme nicht direkt aus dem Internet erreichbar sein. Für einen optimalen Schutz dieser Backend-Systeme gilt es vielmehr, direkte Zugriffe bewusst zu verhindern. Bei cloudscale.ch können Sie solche Backend-Systeme über ein separates, privates Netz mit den Frontend-Servern verbinden und dabei auf eine direkte Verbindung zwischen Backend-Systemen und Internet komplett verzichten. Für komplexere Setups können Sie auch mehrere voneinander getrennte private Netze erstellen oder Vorgaben zu den Settings machen, die der DHCP-Service im privaten Netz zuweisen soll.

Unser Tipp: Mit OPNsense und pfSense CE stehen zwei dedizierte Firewall-Distributionen zur Verfügung – damit verwalten Sie einen Firewall-Server an der Schnittstelle zwischen öffentlichem und privatem Netz bequem via Web-Interface.

Sicherheit: Verschlüsselung

Hier handelt es sich zuerst einmal nicht um einen Tipp im eigentlichen Sinne: Bei cloudscale.ch werden alle Daten, die unsere Kunden auf unseren Storage-Clustern speichern (d.h. sämtliche Daten auf NVMe-SSD- und Bulk-Volumes sowie in unseren Object Storages), automatisch "at rest" verschlüsselt. Diese Verschlüsselung dient als zusätzliche Sicherheitsschicht z.B. für den Fall, dass eine defekte Disk bei der Ausserbetriebnahme nicht mehr komplett gelöscht werden kann. Entsprechend versierte Benutzer können selbstverständlich noch einen Schritt weiter gehen: Unser Object Storage unterstützt Server-side Encryption mittels SSE-C. Natürlich steht es Ihnen frei, auch für Volumes oder einzelne Partitionen eine zusätzliche Verschlüsselung, z.B. mit LUKS, innerhalb Ihrer virtuellen Server und unter Ihrer alleinigen Kontrolle einzurichten. Beachten Sie dabei jedoch, dass nach einem (ungeplanten) Reboot normalerweise eine manuelle Intervention nötig sein wird. Zudem werden Einrichtung und Debugging solcher Setups durch unseren Support nicht abgedeckt.

Unser Tipp: Auch unser CSI (Container Storage Interface) Driver unterstützt Festplattenverschlüsselung (Full Disk Encryption). In Kubernetes-Setups lassen sich damit selbst persistente Volumes von Containern mit minimalem Aufwand mittels LUKS verschlüsseln.

Sicherheit: Zertifizierung und Compliance

Nebst der Datenverschlüsselung profitieren Sie bei cloudscale.ch auch davon, dass wir nach ISO 27001, 27017 und 27018 zertifiziert sind. Ebenso sind die von uns genutzten Rechenzentren nach ISO 27001 und weiteren internationalen Standards zertifiziert. cloudscale.ch ist zudem Hosting-Partner des Labels "swiss hosting"; wir bieten Ihnen die Gewissheit, dass sämtliche Daten ausschliesslich in der Schweiz gespeichert und verarbeitet werden. Dadurch unterstützen wir Sie dabei, die Compliance-Anforderungen Ihrer eigenen Kunden bestmöglich zu erfüllen.

Unser Tipp: Falls Sie in unserer Cloud Daten von EU-Personen verarbeiten, bieten wir Ihnen zusätzlich die Möglichkeit zum Abschluss einer ADV-Vereinbarung gemäss EU-DSGVO an – Sie finden diese Vereinbarung in unserem Cloud Control Panel und können sie dort mit nur zwei Mausklicks direkt abschliessen.

 

Diese Tipps erheben keinen Anspruch auf Vollständigkeit. Je nach Anforderungen kann einer der erwähnten Aspekte besonders wichtig sein – oder aber ganz andere, wie zum Beispiel effiziente Abläufe mithilfe der von uns unterstützten DevOps Tools. Selbstverständlich entwickeln wir unser Angebot zudem stetig weiter. Im direkten Kontakt beantworten wir natürlich auch gerne die Fragen, die in Ihrem Alltag auftauchen, und lassen Ihre Rückmeldungen in unsere Roadmap einfliessen.

Einfach ausgeklügelt,
Ihr cloudscale.ch-Team

Dieser Beitrag wurde am 10.8.2021 erweitert.

Mehr Neuigkeiten. Weitere Einblicke.

Testen Sie uns und starten Sie noch heute einen Linux-Server in der Schweiz: