Azure Arc-enabled Data Services – Cloud Summit 2021

Auch gestern durfte ich wieder auf einer internationalen Community-Veranstaltung – dem Cloud Summit – über Azure Arc-enabled Data Services sprechen, natürlich in der Hauptsache wie man eine Azure SQL Managed Instance im eigenen Rechenzentrum betreiben kann. Wie bereits auf dem DataSaturday #14 in Oslo, habe ich bei den verschiedenen Möglichkeiten von Azure Arc begonnen und habe die einzelnen Komponenten der Umgebungen vorgestellt, was wird benötigt und wie kann man dies recht einfach deployen. Zum Ende hin gab es wieder eine ausführliche Demonstration wie man einen Data Controller auf Kubernetes deployen kann und wie man dann mittel Azure Data Studi eine Managed Instance oder PostgreSQL Hyperscale ausrollen kann.

Ich habe mich sehr gefreut ein Teil dieser mehrere Tage gehenden Veranstaltung Cloud Summit 2021 zu sein, der Vortrag selber war aus meiner Sicht ein sehr gelungener, alles hat funktioniert, die Zeit wurde etwas knapp aber auch daran kann man zukünftig arbeiten/nachbessern.

Ich wollte mit diesem kurzen Beitrag nur schnell die Slides online stellen und mich bei den Organisatoren und Sponsoren des Cloud Summits recht herzlich bedanken !

Cloud Summit 2021 – Bjoern Peters – Azure Arc-enabled data services

Data Saturday #14 – Oslo 2021 – Einführung in Azure Arc Data Services

Heute war es soweit – ich durfte endlich einmal auf dem Data Saturday (ehemals SQLSaturday) in Oslo sprechen… das endlich lag nicht an den Organisatoren sondern eher an mir bzw an der Pandemie, da ich mich bis 2020 nicht getraut hatte, Vorträge auf Englisch zu halten, hatte ich auch keine Sessions für Oslo eingereicht. Am liebsten wäre ich natürlich vor Ort gewesen, denn Norwegen bzw Oslo sind wunderschön, ich kenne mittlerweile auch mehrere Community-Member in der Region die ich nun auch schon lange Zeit nicht mehr gesehen habe, aber es musste dieses Jahr erst einmal virtuell bleiben, vielleicht ja im nächsten Jahr wieder in person.

Nun aber zu meinem Vortrag zur Einführung in Azure Arc bzw Azure Arc Data Services, um den es am Samstag, den 04. September 2021 um 9:45 ging. Azure Arc selber ist erst einmal eine Plattform, ein Service den Microsoft in Azure bereitstellt, um die Verwaltung von verschiedenen Umgebungen – Hardware, virtuelle Maschinen, Windows, Linux, AWS, GCP oder was auch immer – in einer zentralen Stelle zu verwalten und zu administrieren.

Einführung in Azure Arc

Damit kann man nun beispielsweise seine on-premise Windows oder Linux Server mit dem Azure Portal verbinden, um diese von dort aus zu administrieren. Oder auch von der Vielzahl an Services aus der Cloud wie zum Beispiel Security oder Compliance, diese Benefits bringt eben Azure Arc mit sich, in dem man seine on-premise Systeme in die Analysen dieser Azure-Services mit einbinden kann. Des weiteren kann man auch Automatisierungen wie zum Beispiel Patching oder Backups aus dem Azure Portal oder anderen Azure Services heraus erstellen und administrieren, was einen erhebliche Vorteil in der Vereinheitlichung der Systeme und Prozesse bedeutet.

Und das nicht nur mit on-premise Servern bzw Systemen sondern eben auch Multi-Cloud und auch “disconnected” Systemen, auch mit Kubernetes Clustern oder SQL Servern

  • Azure Arc-enabled servers
  • Azure Arc-enabled Kubernetes
  • SQL Server auf Azure Arc-enabled Servers
Alle Applikationen, Systeme und Umgebungen zentral vereint

Azure Arc Data Services

Unter Azure Arc Data Services versteht man nun die Möglichkeit eine Azure SQL Managed Instance oder eine Postgres Hyperscale auf einem “x-beliebigen” Kubernetes Cluster zu betreiben, ob dieses Kubernetes Cluster nun im eigenen Rechenzentrum oder in einer anderen Cloud steht, ist erst einmal egal, Hauptsache es handelt sich um ein CNCF-zertifiziertes Kubernetes-Cluster.

Um aber eben eine Managed Instance in seinem eigenen Rechenzentrum zu betreiben, muss man mehrere Schritte befolgen… zum einen sollte man das Kubernetes-Cluster zu einem Azure Arc eneabled Kubernetes machen, zum anderen muss man einen “Connector/Agent” auf diesem Cluster ausrollen, den Data-Controller. Dieser Data Controller stellt die Schnittstelle zwischen Azure, dem Azure Portal und der SQL Managed Instance her. Nun kann man über verschiedene Wege – Azure Portal, Azure CLI oder Azure Data Studio – auf diesem Cluster eine voll funktionsfähige SQL Managed Instance deployen und nutzen.

Deployment einer Azure SQL Managed Instance auf einem Data Controller
auf dem eigenen Kubernetes Cluster

Aus persönlicher Sicht, ist dies eine großartige Geschichte, einen zentralen Anlaufpunkt für alle genutzten Services und Applikationen zu haben und somit auch die zusätzlichen (Sicherheit bringenden) Features aus Azure auf allen Systemen zu nutzen. Alles in allem ein Zugewinn für das Unternehmen!

Meine Slides und weiterführende Links

DataSaturday-Oslo-2021-Azure-Arc-Data-Services.pdf

Microsoft Dokumentation

Wenn man selber diese Möglichkeit des Rollouts von Azure Data Services ausprobieren möchte, dann kann ich jedem nur empfehlen sich mit den Jumpstart Szeanarien von Microsoft zu beschäftigen, hier werden vorgefertige Umgebungen ausgerollt mit denen man dann problemlos testen kann, was wie wo funktioniert:

https://azurearcjumpstart.io/overview/

Bleibt mir nur noch DANKE an alle Zuhörer und die Organisatoren zu sagen, es war mir eine Freude und hat viel Spaß gemacht. #CommunityRocks

Azure Meetup Hamburg – August 2021

Am Dienstag Abend war es wieder soweit, unser 55. Azure Meetup Hamburg stand an. An diesem Abend war einiges anders, zumindest was die übliche Reihenfolge aus Begrüßung, News und Terminen anging. Unser Sprecher für den Abend, Haiko Hertes (b|t) hatte darauf hingewiesen, dass er lieber früher als später anfangen würde, um den Abend noch in aller Ruhe mit seiner Familie verbringen zu können. Dieser Bitte versuche ich natürlich nachzukommen und hatte daher den Plan etwas umgestellt… erst der Vortrag, dann News rund um Azure und die Termine sowohl von Microsoft als auch aus der Community.

Haiko Hertes und PowerShell zwecks Automatisierung

Haiko hatte sich über unsere “Call for Speaker”-Seite mit mehreren Themen beworben und so konnten wir ihn dieses Jahr bereits zum zweiten Mal mit einem super interessanten Thema einladen, sein Vortrag diesmal hieß “Insights into Azure with PowerShell, Resource Graph and Monitor Workbooks”. Die passende Beschreibung, die Wolfgang und mir gefiel und neugierig gemacht hatte: “For a lot of users, Azure portal is the first and only tool to get informations out of Azure. But there is more to use! In this session, we are taking a look on how to get details out of your environment with PowerShell, Azure Resource Graph and Monitor Workbooks.”

Haiko zeigte während seines gut 75 Minuten Vortrags die zahlreichen Möglichkeiten Azure Automation mit Powershell zu nutzen um relevante Informationen zu virtuellen Maschinen wie zum Beispiel Größen, Zustände, CPU- oder RAM-Auslastung zu ermitteln. Dabei veranschaulichte er wie man von der KQL (Kusto Query Language) aus dem Azure Portal die entsprechende Abfrage und Darstellung ermitteln/zusammenbauen kann und diese später über einen Automation Account und entsprechenden Scheduled-Job mit Powershell in regelmäßigen Abständen ausführen kann.

Azure-Meetup-Hamburg-August-2021-Haiko-Hertes-Insights-into-Azure-with-PowerShell

Im weiteren Verlauf seines Vortrages ging zum Beispiel auch Laufzeiten von Maschinen und ob einige Maschinen vielleicht ungenutzter Weise zu lange laufen oder mit zu vielen Ressourcen, um herauszufinden, wie man ggfs Kosten sparen könnte… alles ein sehr spannendes Thema und sehr vielfätlig und flexibel in der Anwendung. Mir und den Teilnehmern hat es auf jeden Fall Spaß gemacht, mein Kopf rauchte vor neuen Ideen und was ich mir unbedingt anschauen möchte. (aber davon gibt es sowieso schon zuviele Themen 😉 )

Azure News aus Juli und August 2021

Nur kurz zusammen gefasst bzw nur die Links zu den von mir genannten News posten, damit jeder selber nachlesen kann:

Termine für die kommenden Wochen kann man sehr schön auf der Techwiese finden, unabhängig davon ob die Veranstaltung von Microsoft oder Community kommt, man kann entsprechende Filter setzen bzw es wird auf unterschiedlichen Seiten dargestellt.

Viel Spaß beim Stöbern und Ausprobieren.

Unser nächstes Azure Meetup in Hamburg findet aufgrund der immer noch unklaren Corona-Lage weiterhin online statt, Termin ist Dienstag, der 21. September wie gewohnt um 18:00 Uhr.

South Florida Data Geeks Saturday 2021

Am heutigen Samstag durfte ich wieder einen Vortrag halten, dieses Mal ging es um die halbe Welt in das wunderschön warme und entspannte Süd-Florida, zur Data Geeks Community. Diese veranstalten bereits im elften Jahr ihren “SQL Saturday”, an dem normalerweise ~700 Teilnehmer vor Ort sind und sich mit Themen rund um die Microsoft Data Platform auseinandersetzen und in ihrer Freizeit zu den unterschiedlichen Themen sich informieren und lernen. Dieses Jahr wurden weltweit alle Data Platform Sprecher aufgerufen Ihre Sessions einzureichen, 92 Sprecher sind diesem Ruf gefolgt und haben es den Organisatoren nicht leicht gemacht aus den 180 eingereichten Themen-Vorschlägen die interessantesten und spannendsten Vorträge auszuwählen. Ich hatte mehrere Themen zu Azure SQL Databases und Azure Arc Data Services eingereicht

Für mich war es das erste Mal, dass ich in Florida dabei war, und hoffentlich nicht das letzte Mal, denn es war mir eine große Freude meinen Teil dazu beitragen zu können. In meiner Session am heutigen Samstag ging um die Unterschiede zwischen den Skills eines Datenbank-Administrators der “nur” on-premise SQL-Server betreibt und einem DBA, der nur/auch in der Cloud unterwegs ist. In dieser Session habe ich aufgezeigt, welche Services in der Azure Cloud für den SQL Server DBA gibt und wie sich sein Arbeitsumfeld und seine Tätigkeiten entsprechend verändern, welche Topics er in Zukunft mitbetreuen muss und wie er sich darauf vorbereiten kann.

Change your skills – from an onpremise DBA to a cloud DBA

Nach meiner kurzen Vorstellung wer ich bin und was ich mache, habe ich erst einmal einen kurzen Überblick gegeben, welche unterschiedlichen Services uns Microsoft in Azure für den Betrieb von SQL Server Datenbanken bereitstellt, wie sich diese Services von den on-premise unterscheiden. Für die einfachste Art und Weise der Migration von on-prem nach Azure eignet sich die normale Azure virtual Machine für die 1:1 Migration eines SQL Servers, sollte man nur eine einzelne Datenbank benötigen, so würde man sicherlich die Azure SQL Single Database wählen, wenn es aber eben doch eine vollständige SQL Server Instanz sein soll (aber eben ohne VM drum herum) dann wählt man die Azure SQL Managed Instance.

Da dies aber nicht alles ist und man doch gelegentlich Kompromisse machen muss oder es spezielle Anforderungen gibt, gibt es eben auch “Grauzonen” oder eben auch spezielle Lösungen wie z.B. die Azure SQL Hyperscale. In meinem Vortrag bin ich auf die Unterschiede eingegangen, bevor ich auf die Unterschiede zur lokalen SQL Server Umgebung eingegangen bin. Was also der zukünftige SQL Server DBA ebenfalls können sollte bzw mit welchen Themen er sich zukünftig beschäftigen sollte.

Azure SQL - Übersicht über die verfügbaren Services in Azure zum SQL Server
Vielen Dank an Anna und Bob für diese Slides 😉

Nachdem alle nun wussten, welche Services sie später betreuen können/müssen, konnte ich auch darauf eingehen, welche Unterschiede es von on-premise zu Azure gibt und welche zusätzlichen Schwerpunkte man betrachten muss. Hier war auf jeden Fall der Unterschied bzw die Unterschiede im Backup-Verfahren zu nennen, hier muss man sich unter Umständen gar nicht mehr drum kümmern oder eben doch, was vom gewählten Service abhängt. Die Azure SQL DB beispielsweise bietet auch die Möglichkeit der Unterstützung bei der Index-Optimierung von Indexen, das Datenbank-Monitoring verändert sich ebenfalls, da Azure sehr viele Daten selber sammelt und diese dem Nutzer im Portal darstellbar macht. Und große inhaltliche Veränderungen bzgl Verfügbarkeit kommen auf den Datenbank-Administrator im Bereich Netzwerk und Security zu, hier gibt doch recht viel zu beachten und konfigurieren, was immer auf die Anforderungen des Unternehmens bzw der Applikation ankommt.

Meine Präsentation

https://www.sql-aus-hamburg.de/wp-content/uploads/2021/08/Change-your-skills-from-an-onpremise-DBA-to-a-cloud-DBA-DataGeeks.pdf

Zu guter Letzt bin ich noch auf die Lern-Möglichkeiten eingegangen, die Microsoft kostenfrei zur Verfügung stellt um sich auf diese neuen Herausforderungen einstellen bzw vorbereiten zu können, welche Lernmodule, Lernpfade, Labs oder Workshops es gibt. In der folgenden Auflistung möchte ich die einzelnen Links entsprechend zur Verfügung stellen, ebenso wie meine Slides zu diesem Vortrag.

Lernen und Trainieren rund um Azure SQL

Ich möchte mich bei allen Teilnehmern und den Organisatoren für diese gelungene und sehr interessante Veranstaltung und natürlich ihr Vertrauen bedanken!

Azure SQL Database – Allgemeines – Refresh Teil 1

Ich betrachte die weiteren Beiträge als einen persönlichen Refresh meiner Kenntnisse über die Azure SQL Database und all ihre zahlreichen Features. Es war nach längerer Zeit mal wieder notwendig sich im Detail damit zu beschäftigen und für mich und meine eigenen Erfahrungen mit dem Lernen zeigen, dass “aufschreiben” sehr gut hilft, sich Inhalte und wichtige Punkte zu verinnerlichen. Also werde ich einfach die nächsten (wenn auch vielleicht kürzeren) Blogpost dafür verwenden, euch an meinem “Refresh” teil haben zu lassen. Dies ist in sofern auch relevant, als dass Microsoft Produktgruppe im Laufe der vergangenen Monate nicht untätig war und zahlreiche neue Features präsentiert hat bzw Optimierungen an den bereits vorhandenen vorgenommen hat. (Danke dafür 😉 )

Grundlegendes zu Azure SQL Database

Es geht also im Grunde erst einmal um den Azure Service, der uns eine SQL Server Datenbank bereitstellt, hierzu gibt es zahlreiche Möglichkeiten im Deployment bzw in der Ausprägung. Beginnend natürlich mit der Auswahl des benötigten Service (aka “Was brauche ich bzw meine Applikation?”)… beginnend mit der Frage, wieviele Datenbanken benötigt meine (neue oder vorhandene) Applikation wirklich? Sollte es sich um eine eigene Neu-Entwicklung handelt, hat man ggfs noch Einfluss auf gewisse Funktionalitäten, bei bereits exisitierenden Eigenentwicklungen oder Kaufprodukten ist dies schwerlich möglich. Beispiel VMWare… hier werden in der Regel mindestens 3 Datenbanken benötigt, beim Sharepoint noch viel mehr, bei einem CRM-System vielleicht nur eine.

Aber zum Verständnis, es geht hierbei nicht darum, dass z.B. mein Mandantenfähiges CRM pro Mandanten eine eigene Datenbank anlegt sondern darum, dass pro Mandant nur eine (!) Datenbank benötigt wird, also keine “Cross-Database” Abfragen benutzt werden.

Sollte man hier also eine Aussage treffen können, ist man einen Schritt weiter und kann zumindest einmal eine Entscheidung treffen, dass Azure SQL Database das richtige Produkt ist, nun kommt der vielleicht schwierigste Punkt, der sich aber (unter Umständen) nachträglich gut anpassen lässt.

Aber die Überschrift heißt ja, Grundlegendes zu Azure SQL Database… Mircosoft stellt uns in Azure einen Platform-as-a-Service Datenbank Dienst zur Verfügung, der auf dem SQL Server basiert, hier kommt immer die letzte stabile Version zum Einsatz, wir als Administratoren müssen uns hier um wenig Gedanken machen, da Microsoft uns schon sehr viel abnimmt, wie zum Beispiel Upgrades, Backup oder Monitoring, zu den einzelnen Punkten komme ich später noch einmal. Ebenso in Sachen “Hochverfügbarkeit” müssen wir uns keine Gedanken machen, alle Azure SQL Database Services (je nach SKU und Deployment) kommen auf mindestens 99,99% Verfügbarkeit und lassen sich so auch für kritische und performante Business-Applikation verwenden.

Wie wir es vom SQL Server kennen, können auch in der Cloudrelationale als auch nicht relationale Datenstrukturen verwendet werden, genauso wie In-Memory-Technolgien.

Auswahl-Möglichkeiten für alle Anforderungen

Der Azure Service Azure SQL Database lässt sich in unterschiedlichen Ausprägungen und Leistungsklassen “mieten”, so dass man nahezu jeder Anforderung gerecht werden kann.

  • Einzel- oder Pool-Datenbank
  • Hyperscale
  • Serverless

Jedes einzelne Deployment lässt sich noch unterteilen in die verschiedene Performanceklassen, welche ich später auch noch näher erläutern werde. Hier spielen Aspekte wie CPU, RAM, Datenbank-Größe und Nutzungsdauer eine Rolle, um eine optimale Entscheidung treffen zu können.

Azure SQL Database - Darstellung des Azure Portals - Auswahl der unterschiedlichen Services

Deployment-Unterschiede einer Azure SQL Database

Sollte man also zu der Entscheidung kommen, dass man nur eine Datenbank benötigt, dann ist die Azure SQL Single-DB (oder Singleton) das Optimale. Hierbei stellt uns Azure eine einzelnen Datenbank auf einer gesharten Umgebung zur Verfügung, die aber so abgeschottet bzw isoliert läuft, dass man sich keine Gedanken machen muss, dass hier etwas passiert (also keine Fremdzugriffe von ausserhalb ihrer eigenen Datenbank). Hierbei erhält jede Azure Single DB eigene Compute-Ressourcen und kann diese dann entsprechend exklusiv nutzen.

Hat man zum Beispiel mehrere kleine Datenbanken, die zu unterschiedlichen Zeiten unterschiedliche Auslastungen haben, so kann man sich genau für eine Azure SQL Elastic Pool entscheiden, hierbei werden mehrere Einzel-Datenbanken in einen Pool konfiguriert, die sich dann – je nach Nutzungsverhalten und Workload – die geteilten Compute-Ressourcen teilen können.

Je nach Anforderungen der Applikation oder des Businesses können sowohl Einzel- als auch Elastic-Pool Datenbanken dynamisch skaliert werden, um so die Leistung der Datenbanken an die zu verarbeitende Workload anzupassen.

Microsoft unterscheidet in diesen Performanceklassen in Serverless oder Server-based, wobei Server-based auch noch einmal unterteilt wird in “General Purpose / Universell” und “Business Critical / Unternehmens-kritisch” und darin auch noch weiter in die Möglichkeiten die Compute-Ressourcen auszuwählen, in vCore- oder DTU-basiert. Bei den Elastic-Pools gibt es aktuell kein Serverless-Deployment, aber die Unterscheidungen in GeneralPurpose und BusinessCritical sowie die Einteilung in DTU (Data Transaction Units) und vCores.

Azure SQL Database - Darstellung des Azure Portals - Auswahl der Performance-Klassen von Elastic Pools

Zu Verfügbarkeiten, Monitoring und Backup von Azure SQL Datenbanken komme ich in einem der weiteren Blogbeiträge.