Das Azure Meetup Hamburg im August 2019

Die richtigen heißen Tagen sind (hoffentlich) vorbei, dennoch wird es im August noch einmal so richtig heiß was unser Thema im Azure Meetup angeht! Das Azure Readiness Framework wird uns näher gebracht, aber was dieses Framework ist und was es kann, dass wird uns Lennart Passig in wenigen Tagen erläutern. Ich freue mich darauf Lennart endlich mal wieder in Hamburg und ihn erstmalig als Sprecher in unserer Usergroup begrüssen zu können!

Azure Readiness - The Cloud Adoption Framework @ Azure Meetup Hamburg

Anmelden könnt ihr euch – wie gewohnt und natürlich kostenfrei über die Meetup-Seite des Azure Meetups in Hamburg
Hier geht es direkt zu unserer August Veranstaltung
Zwar gibt es mittlerweile eine Warteliste, aber es lohnt sich bestimmt auch dort einzutragen, da die Erfahrung gezeigt hat, dass der ein oder andere noch kurzfristig absagt, weil ihm/ihr etwas dazwischen gekommen ist. Also „aufpassen“!

Hier kommt der Abstract für das Meetup, damit ihr wisst worum es gehen soll 😉

Azure Readiness: The Cloud Adoption Framework
In this session I will give a general overview on how to start with Azure. What are the key pillars that you need to focus on when working with the cloud? How do I manage to gain control over Azure as an IT organization while maintaining agility? These and more topics I will present as part of the new Cloud Adoption Framework by Microsoft.

Speaker: Lennart Passig
Cloud Solution Architect @ Microsoft
Lennart started working as a System Administrator in the Exchange and Active Directory field for small and midsized companies. After realizing that the future is in cloud computing Lennart shortly started working with the first version of the Microsoft private cloud, back in the day, with System Center components only. Now he is specializing in the Azure public cloud as a Cloud Solution Architect and is also co-organizer of the Azure Meetup in Munich.

https://www.meetup.com/de-DE/Azure-Meetup-Hamburg/events/qmdfdryzlbbc/

Photo by William Stitt on Unsplash – https://unsplash.com/photos/YadCgbsLHcE

Aha-Effekt beim Setzen von SQL Instanz Parametern mit dbatools

In der letzten Woche habe ich bei einem Kunden mehrere SQL Server installiert und musste diese alle identisch installieren und konfigurieren. Was liegt hier näher als dies mit einem Powershell Skript zu machen, daher habe ich mir die „Mühe“ gemacht und die einzelnen Schritte der SQL Server Konfiguration mit dbatools zu realisieren. Ich möchte in diesem Beitrag nicht auf alle Schritte der Konfiguration eingehen, sondern nur einen Teil davon zeigen, der mir einen gewissen „Aha-Effekt“ brachte.

Im Rahmen der SQL Server Konfiguration sollten die Default-Werte von „MaxDop“ und „Cost Threshold for Parallelism“ angepasst werden. Das Setzen von MaxDoP mittels Powershell bzw dbatools ist relativ einfach da es hierfür einen eigenen Befehl gibt, aber auf für den „Cost Threshold for Parallelism“ hat dbatools einen „Workaround“, hier gibt es leider (noch) keinen direkten Befehl für.

Set-DbaMaxDop -SqlInstance sql2008, sql2012

Diese Befehlszeile legt den Wert von „Max DOP“ (Maximal Degree of Parallelism) auf den empfohlenen Wert für die SQL Server Instanzen „SQL2008“ und „SQL2012“ fest. Immer in Verbindung mit diesem Konfigurations-Parameter steht immer der „Cost Threshold“, welcher per Default immer noch auf 5 steht.

Alle SQL Server Instanzen auf einmal…

Um alle SQL Server Instanzen relativ schnell und einfach zu konfigurieren, habe ich mir das Kommando „Get-DbaRegisteredServer“ (als Alias von Get-DbaRegServer) vorgenommen. Als Vorbereitung hierfür habe ich auf allen Servern im SQL Server Management Studio die notwendigen Server (hier 2 Server mit je 3 Instanzen) als „Registered Server“ angelegt und konnte dann mit Powershell aka dbatools darauf zugreifen.

Laut dbatools-Dokumentation, ruft dieser Befehl eine Liste der SQL Server-Objekte ab, die in lokal registrierten Gruppen sowohl im Azure Data Studio als auch auf dem zentralen Verwaltungsserver gespeichert sind.

geborgt bei dbatools.io - Vielen Dank an Chrissy

Mit diesem Befehl und der Möglichkeit die Objekte aus dem Ergebnis-Objekt als Pipeline weiterzugeben, kann man schöne Dinge machen, wie eben den Wert für „MaxDoP“ auf allen Server bzw Instanzen in einer Kommandozeile zu konfigurieren…

Get-DbaRegisteredServer | Set-DbaMaxDop

Nun aber zu meinem Aha-Effekt mit einer weiteren Kommandozeile 😉

Cost Threshold For Parallelism

Wie oben schon angedeutet, geht die Anpassung nur über eine Work-around mit dbatools und nicht mit einem dbatools-Kommando, hierzu verwende ich jetzt „Set-DbaSpConfigure“. Natürlich könnte ich auch den „MaxDoP“ mit diesem Kommando konfigurieren, dann muss ich aber selber für die vorherige Ermittlung und Berechnung des jeweiligen Wertes für MaxDoP sorgen, also die vorhandenen Kerne ermitteln, diese dann gegen die Best-Practise matchen und den Wert über eine Variable an den Set-Befehl weitergeben. Ich setze diesen Werte in 98% aller Instanzen auf 40 (ausser der Kunde oder die Applikation möchten etwas anderes), daher benötige ich hier keine Logik.

Meiner obigen Logik bzw der Dokumentation folgend habe ich es mit folgender Kommandozeile versucht:

Get-DbaRegisteredServer | Set-DbaSpConfigure -Name 'CostThresholdForParallelism' -Value 40

Dies brachte mich aber zu einem (auf den ersten Blick) nicht nachvollziehbaren Fehler (auch mein Versuch den Wert als String zu übergeben war nicht erfolgreich):

WARNING: [13:02:23][Set-DbaSpConfigure] Value out of range for Server1\Instanz1 ( <-> )
WARNING: [13:02:23][Set-DbaSpConfigure] Value out of range for Server2\Instanz1 ( <-> )
WARNING: [13:02:23][Set-DbaSpConfigure] Value out of range for Server1\Instanz2 ( <-> )
WARNING: [13:02:23][Set-DbaSpConfigure] Value out of range for Server2\Instanz2 ( <-> )
WARNING: [13:02:23][Set-DbaSpConfigure] Value out of range for Server1\Instanz3 ( <-> )
WARNING: [13:02:23][Set-DbaSpConfigure] Value out of range for Server2\Instanz3 ( <-> )

Ich habe den Grund hierfür leider noch nicht wirklich gefunden, vielleicht kann mir jemand das Phänomen näher bringen… vielleicht ist dies ja aber auch so gewollt oder ggfs sogar ein „Bug“…

Aber ich war vorher schon so erfolgreich mit dem Pipelining, dass ich das auch hier angewendet habe… also Ermitteln wir erst alle SQL-Instanzen, ermitteln dann auf diesen Instanzen den aktuellen Parameter für den „Cost Threshold For Parallelism“ und setzen ihn dann auf den neuen Wert 40.

Get-DbaRegisteredServer | Get-DbaSpConfigure -Name 'CostThresholdForParallelism' | Set-DbaSpConfigure -Value 40
ComputerName  : Server1
InstanceName  : Instanz1
SqlInstance   : Server1\Instanz1
ConfigName    : CostThresholdForParallelism
PreviousValue : 5
NewValue      : 40

ComputerName  : Server2
InstanceName  : Instanz1
SqlInstance   : Server2\Instanz1
ConfigName    : CostThresholdForParallelism
PreviousValue : 5
NewValue      : 40

ComputerName  : Server1
InstanceName  : Instanz2
SqlInstance   : Server1\Instanz2
ConfigName    : CostThresholdForParallelism
PreviousValue : 5
NewValue      : 40

ComputerName  : Server2
InstanceName  : Instanz2
SqlInstance   : Server2\Instanz2
ConfigName    : CostThresholdForParallelism
PreviousValue : 5
NewValue      : 40

ComputerName  : Server1
InstanceName  : Instanz3
SqlInstance   : Server1\Instanz3
ConfigName    : CostThresholdForParallelism
PreviousValue : 5
NewValue      : 40

ComputerName  : Server2
InstanceName  : Instanz3
SqlInstance   : Server2\Instanz3
ConfigName    : CostThresholdForParallelism
PreviousValue : 5
NewValue      : 40

Und schon habe ich wieder etwas großartiges für mich selber herausgefunden und bin um eine Erfahrung im Umgang mit dbatools reicher!

Ich liebe dieses Powershell-Modul, mit dem ich zahlreiche (nahezu alles!) Dinge am und um den SQL Server herum anpassen, optimieren und automatisieren kann. Ich verwende es sehr gerne (wie man auch meinen anderen Blog-Posts sehen kann) und mittlerweile bei allen meinen Kunden. VIELEN DANK an @Chrissy und die vielen anderen Contributors, die sich die Mühe rund um dieses Community-Tool zu machen!

Beitragsbild – von Ben White auf Unsplash

Das Azure Meetup Hamburg im Juli 2019

Im Juli ist es nicht wie gewohnt der dritte Dienstag im Monat, sondern schon der zweite… natürlich mit einer gewissen Rücksicht auf die Ferien 😉 Also sind es nur noch knapp 10 Tage bis zum nächsten Azure Meetup in Hamburg… wir bekommen wieder Besuch von Microsoft Deutschland aus München, Andre Essing (Microsoft TSP) wird bei uns sein. Als ehemaliger MVP und immer noch stetiger Begleiter in der europäischen Data-Platform-Community ein immer wieder gern gesehener Gast, der mit seinem Know-How und seiner Erfahrung viel Wissen weitergeben kann. Daher freue ich mich sehr auf diesen sicherlich spannenden Abend mit euch.

Wir hatten zwar noch kurz inhaltlich diskutiert – hatte ich beim Juni-Meetup auch kurz angedeutet – ob wir noch was zu CosmosDB an diesem Abend machen sollen oder nicht, gemeinsam mit Andre sind wir aber zu dem Schluss gekommen, dass hier die Tiefe und Länge der zur Verfügung stehenden Zeit nicht ausreichen würde, um einer CosmosDB gerecht zu werden. Somit werden wir im Juli erst einmal nicht über CosmosDB reden, sondern „nur“ über Modern Datawarehouse und Databricks.

Modern Datawarehouse and Databricks - Andre Essing - Azure Meetup Hamburg
Modern Datawarehouse and Databricks – Andre Essing – Azure Meetup Hamburg

Anmelden könnt ihr euch – wie gewohnt und natürlich kostenfrei über die Meetup-Seite des Azure Meetups in Hamburg
Hier geht es direkt zu unserer Juli Veranstaltung
Zwar gibt es mittlerweile eine Warteliste, aber es lohnt sich bestimmt auch dort einzutragen, da die Erfahrung gezeigt hat, dass der ein oder andere noch kurzfristig absagt, weil ihm/ihr etwas dazwischen gekommen ist. Also „aufpassen“!

Hier kommt der Abstract für das Meetup, damit ihr wisst worum es gehen soll 😉

Es gibt eine Menge Wege und Möglichkeiten Mehrwerte aus seinen Daten zu ziehen. Seit Jahren machen wir das mit den gleichen Techniken in unseren „klassischen“ Data Warehouse Umgebungen. Aber die Welt ist im steten Wandel und so auch die Daten.

Wo die Daten vor ein paar Jahren noch ausschließlich strukturiert waren, wächst die Zahl von schemalosen Datentypen ins unermessliche, und eine Ende ist nicht in Sicht. Wir kämpfen mit Daten, bei denen sich ständig das Schemata ändert und versuchen Mehrwerte aus neuen Datentypen wie Soziale Medien, Videos und Bildern zu ziehen.

In dieser Whiteboard Session möchte ich mit euch über moderne Wege sprechen, Ihre Daten zu speichern, zu analysieren und zu visualisieren. Zusammen zeichnen wir ein Modern Data Warehouse, schauen uns an welche Möglichkeiten sich bieten verschiedenste Daten zu analysieren und warum uns die Cloud hier hilft.

Von Datawarehouse, über BI, hin zur modernen Datenanalyse und künstlicher Intelligenz – Azure Databricks, die Eierlegende Wollmilchsau

Hast Du schon von Azure Databricks, dem neuen Mitglied in der Azure Big Data Familie, gehört? Es wäre falsch von mir, Azure Databricks nur als einen verwalteten Apache Spark Dienst zu bezeichnen, da Databricks so viel mehr bietet.

Neben dem Transformieren von Daten kann Databricks nicht nur Deine Daten analysieren und streamen, es kann auch Deine ETL-Prozesse abbilden, Machine Learning Modelle trainieren und zur Exploration von Daten genutzt werden. All das steckt im leistungsstarken Kern von Databricks, gepaart mit einer integrierten Entwicklungsumgebung.

Als “First-Class Citizen” in Azure ist Databricks ein “Platform as a Service”-Angebot, das es jedem ermöglicht, Big Data für sich zu nutzen.

Selbstverständlich, sind die ersten Schritte mit einer neuen Technologie die schwierigsten. Genau deshalb möchte ich mir mit euch in dieser Session ansehen, wie man Azure Databricks bereitstellt. Du lernst wie man Cluster konfiguriert, zeitgesteuerte Jobs einplant, auf Sicherheit achtet und vieles mehr.

https://www.meetup.com/de-DE/Azure-Meetup-Hamburg/events/hhtbxqyzkbvb/

Das Azure Meetup Hamburg im Juni 2019

Bald ist es wieder so weit, wir treffen uns zu einem neuen spannenden Abend ! Diesmal geht es an den Hamburger Rödingsmarkt und nicht wie gewohnt zu WeWork in der Herrmannstraße, denn die Firma Point GmbH hat uns eingeladen. Erneut kommt der Vortrag aus der Community allerdings hat der Sprecher diesmal eine etwas weitere Anfahrt, denn Sebastian Schütze kommt aus der Hauptstadt zu uns 😉

Nachdem uns Martin Gudel im letzten Jahr eine Einführung in das Thema Azure DevOps gegeben hat, wird uns Sebastian nun aus seiner Sicht bzw aus seinem alltäglichen Umgang mit dem Thema DevOps berichten. Hierbei wird er einen Überblick bieten, wie er (mit seinem Team) agiles Projektmanagement bzw agile Software-Entwicklung mit Hilfe des Microsoft (Azure/Tool/Software) Stacks betreibt.

Azure Meetup Hamburg - Azure DevOps - ein Bericht aus der Praxis - Sebastian Schütze
Azure Meetup Hamburg – Azure DevOps – ein Bericht aus der Praxis – Sebastian Schütze

Anmelden könnt ihr euch – wie gewohnt und natürlich kostenfrei über die Meetup-Seite des Azure Meetups in Hamburg
Hier geht es direkt zu unserer Juni Veranstaltung
Zwar gibt es mittlerweile eine Warteliste, aber es lohnt sich bestimmt auch dort einzutragen, da die Erfahrung gezeigt hat, dass der ein oder andere noch kurzfristig absagt, weil ihm/ihr etwas dazwischen gekommen ist. Also „aufpassen“!

Vielen Dank an Sebastian Schütze für seine Bereitschaft für die Hamburger Azure Community extra aus Berlin anzureisen, um uns an seinen Erfahrungen mit DevOps Themen teilhaben zu lassen!

Wenn sich Wege trennen, entstehen neue Möglichkeiten

Ich nehme zum 1. Mai Abschied von Atos und wechsle zur Kramer und Crew und möchte euch hiermit einen Rückblick über meinen Weg mit Atos (Atos Origin) geben. Was ich erlebt, gelernt und miterlebt habe, es waren nicht nur unbedingt angenehme Jahre. Aber alles der Reihe nach…

Meine ersten Jahre bei Atos als Junior DBA

Alles begann im Mai 2007, als ich nach einer kurzen Zeit in einer Auffanggesellschaft, meine Stelle als Junior Datenbank Administrator in Hamburg antreten durfte. Ich kannte bis dahin eigentlich nur den SQL Server aus meiner vorherigen Anstellung, sollte nun aber auch zum Beispiel IBM DB2 betreuen, wo in der Anfangszeit mein Schwerpunkt liegt sollte. Im Laufe der ersten Jahre kam dann auch noch MySQL und eine ganze Menge Enterprise Application Integration (EAI) mit TIBCO hinzu, so dass der SQL Server erst einmal in den Hintergrund gerückt wurde.

Nach einigen Projekten, Neu-Ausrichtungen und personellen Veränderungen hatte ich wieder die Verantwortung für zahlreiche Kunden-SQL-Server. So konnte ich die unterschiedlichen Bereiche und Anwendungsfälle in den unterschiedlichsten Ausprägungen mitgestalten und auch letztendlich betreuen. Aber auch hier gab es dann ein „Kommen und Gehen“, zahlreiche Kollegen nahmen im Laufe der Jahre Abschied, einige Studenten nahmen Platz und bereicherten den Alltag und brachten neue Sichtweisen, Kunden kamen und verschwanden, wuchsen oder fusionierten, so änderten sich immer wieder die Anforderungen und Aufgabenstellungen.

meine Entwicklung und Wachstum über die Jahre

Wie das manchmal in größeren Firmen der Fall ist, war es bei Atos früher etwas schwierig immer die Schulung zu bekommen, die man gerne gehabt hätte… daher habe ich für mich entschieden, dass ich mich selber um einen gewissen Teil der Weiterbildung kümmere und habe mich ~2012 der PASS Deutschland angeschlossen und mich online um entsprechende Schulungen, Beiträge, Foren und so weiter gekümmert. Ich habe so einen für mich neuen Weg und eine komplett neue Welt (die Community) entdeckt.

Die SQL Server Community hat mir dann in der Regionalgruppe Hamburg andere Seiten und Features am SQL Server aufgezeigt, mir das Wissen vermittelt, was mich auch in meiner Arbeit weiter gebracht hat. Als ich dann erstmalig 2013 auf das PASS Camp nach Seeheim (FFM) konnte, war das wie eine andere Welt, die ich so bisher nicht gekannt habe. Der Zusammenhalt, das Expertenwissen, die Menge der „Gleichgesinnten“ war einfach überwältigend… auch wenn ich das erst später so realisiert habe. Auch wenn ich nach dem PASS-Camp längere Zeit nicht wirklich in der Community aktiv war (manche Dinge müssen eben erst etwas reifen 😉 ), brachte mich mein eingeschlagener Weg wieder mit der Community zusammen und brachte mich erneut weiter nach vorne.

Ohne meine großartigen Kollegen, den offenen Umgang miteinander, die gegenseitige Unterstützung wäre ich nicht an meinem jetzigen Punkt bzw wäre es wahrscheinlich gar nicht zu diesem Wechsel gekommen. Meiner Einschätzung nach geht es nicht ohne den Support aus einem Team und einen „Mentor“. In diesem Sinne möchte ich von Herzen bei all meinen Hamburger Kollegen bedanken, dass sie sich immer meine Stories angehört und meine Arbeit übernommen haben, wenn ich für die Community unterwegs war. Und vor allem Thorsten Moeller, dass er meine Pläne und Aktivitäten immer im Rahmen seiner Möglichkeiten unterstützt und gefördert hat! Daher fällt mir mein Abschied in gewisser Weise auch schwer…

Community-Engagement – neue Ziele, neue Wege

Als ich Ende 2016 das Azure Meetup in Hamburg „gründete“, war dies erst einmal für mich ein großer Schritt in eine neue Welt bzw in neue Gefilde. Ich war bisher immer nur Teilnehmer, also Nutzer vieler anderer Kümmerer (#SharingIsCaring). Jetzt wollte ich selber die Fäden in die Hand nehmen und meinen Teil dazu beitragen, dass andere meinen Weg gehen können, sich eigenständig weiterbilden, mit anderen Gleichgesinnten unterhalten, ein Netzwerk auf-/ausbauen, einfach mit den Aufgaben wachsen!

Auch nach mehr als zwei Jahren leite ich nun dieses Meetup und es macht immer noch wahnsinnig viel Spaß, sich um die unterschiedliche Themenbereiche in der Microsoft Cloud zu kümmern und der Community hier immer wieder spannende Sprecher und Vorträge zu organisieren. Durch diesen Einsatz in der Microsoft Community wuchs auch mein nationales bzw europäisches Engagement, siehe z.B. meine Vorträge auf dem SQLSaturday in Wien und Linz. Oder letztendlich die Anerkennung meiner Aktivitäten durch Microsoft mit der Ernennung zum Microsoft Most Valuable Professional (MVP). Es ist eine Ehre Teil dieser weltweiten Community zu sein (was hoffentlich auch noch länger so bleibt)!

Wie oben schon geschrieben, bin ich Atos hier sehr dankbar, denn hätte Atos (Origin) damals nicht den Stein ins Rollen gebracht, hätte ich mich nicht auf diese Weise entwickelt und wäre so gewachsen. Es macht einfach unheimlich Spaß und hat im Endeffekt auch dazu geführt, dass ich nun mein Aufgabengebiet zu einem anderen Arbeitgeber verlege und Abschied nehme von Atos.

mehr Data, mehr Cloud, mehr Community – neue Herausforderungen

Ich wechsel also morgen zu einem (im Vergleich zu Atos) kleinen Systemhaus namens Kramer und Crew mit Sitz in Köln. Hier werde ich um die komplette Microsoft Data Platform kümmern dürfen/können und werde gemeinsam mit meinen Kollegen und Kunden an spannenden Cloud-Projekten arbeiten! Auch wenn diese Entscheidung dazu führt, im Vergleich zu den letzten 12 Jahren die ich bei Atos war, dass ich mehr auf der Straße unterwegs bin (#ConsultantLife), so wird mich dieser Weg auch wieder persönlich weiter bringen… menschlich sowie fachlich. Über Details in meinem neuen Umfeld kann ich derzeit noch nichts mitteilen, hierzu werde ich sicherlich zu gegebener Zeit noch einmal einen „Fazit“-Blogbeitrag schreiben. Die letzten Gespräche, Vorstellungen und Pläne/Ideen sind sehr vielversprechend und herausfordernd, ich weiß auf jeden Fall, dass ich viel lernen werde, viel umsetzen kann und das alles mit viel Spaß!

Das klingt erst einmal nach viel viel Arbeit, aber keine Sorge ich bleibe der Community erhalten (sowohl der PASS aka Data-Platform als auch Azure). Im Mai werde ich auf jeden Fall mit einem Vortrag Teil der „Technology Conference Hamburg“ sein, ebenso beim SQLSaturday im Rheinland. Und natürlich gibt es weiterhin das Azure Meetup in Hamburg… also muss ich hiervon keinen Abschied nehmen 😉

Wie sagt man so schön, „man sieht sich immer zweimal“… in diesem Sinne, wünsche ich allen eine erfolgreiche Zukunft und vielen Dank für die angenehme und konstruktive Zusammenarbeit, wir sehen uns garantiert irgendwann einmal wieder… entweder beruflich, auf einer Community Veranstaltung oder im privaten Garten…