Vor mehr als 10 Jahren gab Microsoft die Verfügbarkeit der Azure-Plattform für ein breites Publikum bekannt. In dieser Zeit wollten viele Unternehmen die Cloud-Infrastruktur nutzen, um aktuelle IT-Probleme zu lösen. Einige von ihnen haben uns um Rat gefragt, wie sie Systeme in der Cloud bereitstellen können. Aber die Zeit verging und jetzt erwägt das Unternehmen die Möglichkeit, ressourcenintensive Systeme wie SAP HANA in die Cloud zu stellen. Wir haben bereits mehrere ähnliche Projekte implementiert und sind bereit, diese Beobachtungen zu teilen, die eine erfolgreichere Bereitstellung des SAP-Systems in der MS Azure-Cloud gewährleisten können. Einige Beobachtungen werden keine Entdeckung sein, aber wir wollten die Anwendbarkeit einiger Ansätze in einer Cloud-Plattform zeigen. Wir möchten die wichtigsten Erkenntnisse mit Ihnen teilen.
# 1: Konsequente Optimierung der IT-Architektur mithilfe der Cloud
Im Rahmen der Migration eines Produktivsystems standen wir vor dem Problem eines hohen Ressourcenverbrauchs in den Test- und Entwicklungsprozessen, was uns letztendlich zum Nachdenken brachte, warum wir so viele Ressourcen für die Test- und Entwicklungsumgebung benötigen und wie der Verbrauch von Infrastrukturressourcen durch ein Produktivsystem optimiert werden kann.
Der empfohlene Ansatz zum Aufbau eines SAP-Systems basiert auf einer Bewertung der erforderlichen Kapazität mithilfe des SAP Quick Sizer-Rechners. Bisher basieren SAP-Methoden auf Standardansätzen, die die Besonderheiten von Cloud-Technologien nicht berücksichtigen. Wir haben die Anforderungen vom Kunden erhalten, die Anfangsdaten in die SAP-Schätzer eingegeben und eine vorläufige Landschaftskonfiguration erhalten. Bei der konventionellen Infrastruktur war es möglich, dort anzuhalten und Geräte zu kaufen, in unserem Fall war es jedoch möglich, die Cloud zu nutzen. In der Cloud können die Ressourcen jederzeit erhöht werden. Daher haben wir die im Schätzer enthaltene überschüssige Ressourcenreserve aufgegeben und Maschinen mit geringerer Leistung bereitgestellt. Dadurch konnten wir die Kosten senken,Mit zunehmender Auslastung können wir die Leistung virtueller SAP-Maschinen jederzeit in wenigen Minuten steigern.
Microsoft bietet SAP-Support nur für VMs der M-Serie. Die Verwendung von Testressourcen, die der Produktionsumgebung in Bezug auf den Support-Level in der ersten Entwicklungsphase ähnlich sind, erschien uns überflüssig.
Gleichzeitig weisen die Maschinen der E-Serie ähnliche Eigenschaften wie die M-Serie auf, ihre Kosten sind jedoch erheblich geringer. Infolgedessen haben wir die Testmaschinen durch die E-Serie ersetzt. Der Nachteil dieses Austauschs ist die Übertragung der Verantwortung für den Betrieb des Systems in Testumgebungen vom Anbieter auf den Integrator. Dies setzt voraus, dass der Integrator über SAP-Know-how verfügt.
# 2: So sparen Sie Ressourcenverbrauch
Mit MS Azure können Sie bei der Buchung von Ressourcen bei gleichzeitiger Vorauszahlung für ein oder drei Jahre erheblich sparen.
In der Anfangsphase kann der Kunde das Startdatum eines Produktivsystems häufig nicht genau abschätzen, da seine Entwicklung und Tests häufig mit vielen Variablen verbunden sind, die auf der Seite des Geschäfts oder der Entwickler von Auftragnehmern liegen.
Zum Zeitpunkt des Starts eines der Projekte planten wir beispielsweise die gleichzeitige Bereitstellung aller Umgebungen auf der Grundlage der aktuellen Pläne des Kunden. Wie so oft erforderte die Entwicklung eine längere Koordination mit dem Unternehmen, was den produktiven Start um mehrere Monate verzögerte.
In diesem Beispiel würde der Kunde bei der Buchung von Ressourcen mit Vorauszahlung einen erheblichen Geldbetrag verlieren. Natürlich ist es notwendig, Ressourcen zu reservieren, aber es ist effizienter, dies in späteren Phasen des Projekts zu tun, wenn sich der Großteil des Produktivsystems stabilisiert hat und die Entwicklung hinsichtlich des Ressourcenverbrauchs vorhersehbar geworden ist. Wenn Sie 3 Jahre lang Rechenressourcen reservieren, können Sie häufig etwa 70% Einsparungen gegenüber der Pay-As-You-Go-Zahlungsmethode erzielen.
# 3: So wählen Sie eine Azure-Region aus
Azure verfügt über eine Vielzahl von Ressourcen-Hosting-Regionen. Eines der Hauptkriterien für die Auswahl einer Region ist die Entfernung Ihrer Infrastruktur von Endbenutzern, die sich auf die Reaktion des Systems und den Betrieb von Integrationen und Endbenutzern auswirkt.
Das zweite, nicht weniger wichtige Kriterium ist die Liste der Dienstleistungen in einer bestimmten Region.
Einige Dienste sind je nach Region verfügbar. Sehr oft werden Dienste als Vorschau vor der offiziellen Veröffentlichung bereitgestellt. Einige Regionen führen neue Technologien schneller ein und ermöglichen das Testen des einen oder anderen neuen Dienstes. Nicht alle Regionen bieten die Möglichkeit, alle Serien von virtuellen Maschinen zu nutzen.
In unserer Praxis zeigt der Vergleich der Zugangsgeschwindigkeit häufig den Vorteil der Region Westeuropa. Dies macht sich insbesondere bei Unternehmen bemerkbar, deren Server und Clients sich im europäischen Teil Russlands befinden. In jedem Fall und insbesondere dann, wenn sich Ihre Rechenzentren und Kunden in Fernost befinden, ist es sinnvoll, Verzögerungen in Ihrem Rechenzentrum (oder in der geografischen Region, in der sich Ihre Kunden befinden) zu überprüfen, um die beste Azure-Region auszuwählen.
Mit Diensten wie dem Azure-Latenztest können Sie die Latenz für jede Ihrer Azure-Regionen von Ihrem Rechenzentrumsnetzwerk aus proaktiv testen. Ein Beispiel für die Ergebnisse der Messung der Latenz mithilfe des genannten Dienstes beim Testen in unserem Moskauer Büro:
# 4: Anwenden bodengestützter Methoden auf Cloud-Installationen
Bei jeder Migration stellen wir uns die Frage, wie traditionelle Lösungen verwendet werden können, die sich durch die klassische Infrastruktur in der Cloud bewährt haben. Insbesondere bei der Vorbereitung einer Lösung stützen wir uns auf die Empfehlungen des Anbieters, um eine technisch korrekte Lösung zu entwickeln. SAP-HANA-Projekte sind keine Ausnahme und durchlaufen auch das Prisma von Empfehlungen und Best Practices.
Bei einem der Projekte wurde bei der Implementierung der ersten Stufe der Lösung ein Windows-basierter Jump-Server bereitgestellt. Um die Kosten der anfänglichen Entwicklungsphase zu optimieren, wurde auf demselben Server ein NFS-Server für die Anforderungen unproduktiver Umgebungen bereitgestellt, der die aktuellen Anforderungen der Entwickler abdeckte und erhebliche Ressourceneinsparungen ermöglichte.
Im Laufe der Zeit wuchsen die Umgebungen und Ressourcenanforderungen, und der NFS-Server bewältigte alle Aufgaben. Im Rahmen des Projekts näherten wir uns schrittweise der Erschöpfung der Ressourcen der ursprünglichen VM. VM-Ressourcen in MS Azure können in wenigen Minuten erhöht werden. Gleichzeitig haben sich die Anforderungen an die Serverfehlertoleranz erhöht, sodass wir eine größere Neukonfiguration in Betracht gezogen haben.
Für die Implementierung wurden ein Linux-Server, ein DRBD-Dienst und die Funktionalität des Verfügbarkeitssatzes verwendet, wodurch das Problem der Datenreplikation zwischen den Knoten des NFS-Clusters und einer erhöhten Verfügbarkeit bei Ausfall eines der beiden Clusterknoten behoben wurde.
Übrigens: Einige Monate nach der Implementierung der Clusterlösung wurde der NetApp Files-Dienst zu Azure hinzugefügt, mit dem Sie NetApp-Arrays nutzen können, die jedoch vom Pay-As-You-Go-Modell bezahlt werden.
# 5: So automatisieren Sie den VM-Zeitplan
Bei Verwendung einer Cloud-Infrastruktur ist es immer sinnvoll zu analysieren, welche zusätzlichen Mechanismen zur Maximierung der Kosteneinsparungen verwendet werden können.
In unserem Fall werden die Systeme während der Geschäftszeiten getestet. Während bei herkömmlichen Infrastrukturservern Ausfallzeiten in erster Linie zu höheren Energiekosten führen, verbrauchen nicht nützliche Server in der Cloud Finanzmittel für die Anmietung von Kapazität. Wir haben die Lastdiagramme auf Test- und Entwicklungsservern ausgewertet und festgestellt, dass die überwiegende Mehrheit der Entwickler und Tester das System an Wochentagen von 8.00 bis 20.00 Uhr verwendet.
In Fällen, in denen der Ladeplan auf unproduktiven Systemen vorhersehbar und zyklisch ist, versuchen wir, mithilfe von Skripten das Ein- und Ausschalten der VM zu automatisieren. Azure verfügt über mehrere Tools: Automatisches Herunterfahren, Automatisierungskonten und Cloud Shell. Nicht alle waren für uns geeignet. Das automatische Herunterfahren wurde ausgeschlossen, da nur die VM heruntergefahren werden kann. Cloud Shell war ebenfalls nicht beteiligt, da zusätzliche Skripte erstellt, Diagramme entwickelt und an einem sicheren Ort gespeichert werden müssen, um all dies bei vorhandener Redundanz zu speichern, wodurch die Einsparungen auf ein Minimum reduziert wurden.
In unserem Fall wird ein flexiblerer Mechanismus verwendet. Automation Accounts bietet eine vorgefertigte und funktionierende Lösung in Form von Runbooks, mit der Sie virtuelle Maschinen nach einem Zeitplan ein- und ausschalten können.
Wir haben Diagramme für die jeweiligen Ressourcen vorbereitet, die Runbooks geladen und Verknüpfungen zwischen den Diagrammen und Ressourcen hergestellt.
Infolgedessen haben wir die Gesamtbetriebskosten weiter gesenkt. Ursprünglich waren diese Tools nicht für die Implementierung geplant, sie wurden jedoch bereits in der Phase des Vorbetriebs implementiert.
Das Ändern des Zeitplans erfolgt in wenigen Minuten. Zuerst wird ein neuer Zeitplan erstellt, dann wird der generierte Zeitplan der erforderlichen Ressource zugeordnet. Bei Bedarf und bei zahlreichen Änderungen kann die Cloud-Shell verwendet werden, um diesen Prozess zu automatisieren.
# 6: Überwachung des Ressourcenverbrauchs
Während bei herkömmlichen Rechenzentren die Zustandsüberwachung und der Ressourcenverbrauch leider normalerweise in den Hintergrund treten, ist es in Azure unerwünscht, dies zuzulassen. Informationen über die Geschichte des Ressourcenverbrauchs wirken sich direkt auf die Möglichkeiten zur Kostenoptimierung aus. Und im Falle einer frühzeitigen Reservierung von Ressourcen kann dies als Signal für architektonische Verbesserungen dienen.
# 7: Versicherung gegen höhere Gewalt
Viele Unternehmen haben Angst, ihre IT-Systeme auf Cloud-Ressourcen zu platzieren, da sie befürchten, dass die Regulierungsbehörden zuvor Blockaden hatten. Wie jedes andere Risiko kann dies auch beim Entwurf eines Systems berücksichtigt werden. In Projekten implementieren wir in der Regel ein wöchentliches Entladen von Systemsicherungen aus der Cloud in das Rechenzentrum des Kunden. Auf diese Weise können Sie sicher sein, dass das System in jedem Fall wiederhergestellt werden kann. Darüber hinaus verwenden wir eine Multi-Cloud-Installationsstrategie, die es bei Zugriffsbeschränkungen ermöglicht, nicht ohne Zugriff auf Ressourcen zu bleiben. In diesem Szenario werden alternative Cloud-Anbieter als DR-Standorte für die Hauptwolke verwendet, sodass das System bei massiven Blockierungen wiederhergestellt werden kann.
Nr. 7 + Verarbeitung personenbezogener Daten
Während unserer Arbeit haben wir einen Ansatz entwickelt, wie personenbezogene Daten in Systemen gespeichert und verarbeitet werden können, die fremde Cloud-Ressourcen enthalten. Beachten Sie, dass die Umsetzung dieses Ansatzes unter Berücksichtigung der Anforderungen der Regulierungsbehörden erfolgen sollte. Dieses Thema ist ziemlich umfangreich und wir werden versuchen, es in den folgenden Artikeln zu behandeln, wenn wir das entsprechende Interesse an den Kommentaren bemerken.
Ergebnis
In diesem Artikel haben wir einige praktische Lektionen zum Hosten von SAP in der MS Azure-Cloud besprochen. Offensichtlich ist das Thema äußerst umfangreich und wir konnten nur einen Teil der möglichen Optimierungen bei der Migration in die Cloud ansprechen.
Auf welche Nuancen sind Sie gestoßen? Wir wären Ihnen dankbar, wenn Sie Ihre Erfahrungen in den Kommentaren mitteilen würden.