Freitag, 20. Juni 2014

SQL Server PowerShell ? Lohnt es sich überhaupt damit zu beschäftigen ?

Diese Frage wurde mir in den letzten Tagen häufig gestellt, als es sich herumgesprochen hat, dass ich auf dem SQLSaturday #313 einen Crashkurs PowerShell für SQL Server Administratoren halte.

Und warum gerade ich? In den letzten Jahren bin ich ja eher nicht durch das Thema Administration in der Öffentlichkeit aufgefallen. Bin doch eher der BI Entwickler, welcher durch konsequente Nutzung der Möglichkeiten vieles im BI Projekt als auch im späteren Betrieb automatisiert.

Da PowerShell vereinfacht gesagt eine Shell ist, mit welcher das .NET Framework sehr komfortabel genutzt werden kann, bin ich wieder voll im Spiel und gefühlt ist meine SQLSat Session quasi die Fortsetzung vieler meiner Community-Projekte und Vorträge in denen ich mit .NET Bibliotheken gearbeitet habe.

Nur warum PowerShell für den SQL Server? “Wir” haben doch T-SQL und eine Menge an Komfortfunktionen rund um den Betrieb eines SQL Servers.

Da schaut es bei den Kollegen für Exchange Server oder SharePoint Farmen schon ganz anders aus. Die können sich mittlerweile ohne PowerShell gefühlt keinen Meter bewegen. Viele Funktionen sind, so wurde mir zugetragen, auch NUR noch über PowerShell erreichbar. Daher ist in diesen Communities das Thema auch wesentlich populärer als bei “uns”.

Also, wozu braucht nun ein SQL Administrator PowerShell?

Brauchen zurzeit noch nicht zwingend, dennoch ist es schon äußerst nützlich und zwar immer dann, wenn etwas automatisiert werden soll, was außerhalb des SQL Servers liegt. Oder wenn einfach mal der SQL Server Dienst selbst an der Reihe ist.

Neben meinem Community Leben beschäftige ich mich sehr intensiv mit Administration. Meine Kollegen bei der PSG verantworten große und komplexe SQL Server Umgebungen, welche zum Teil auch global und rund um die Uhr genutzt werden. Da ist das Thema Standardisierung und Automatisierung sehr wichtig, um einen konstant robusten Betrieb zu ermöglichen. Und der Betrieb betrifft häufig auch das Betriebssystem, Storage-Systeme, AD-Gruppen, Virtualisierung etc. pp. Vieles ließe sich sehr wahrscheinlich mit ein wenig Kreativität nativ in T-SQL lösen (und ich hätte einen Wahnsinnsspaß mir das auszudenken), nur hat sich um die SQL Server Welt herum im Microsoft Eco-System PowerShell als das Allzweckwerkzeug für viele Aufgabenstellungen entwickelt.

Und dann, dann ist da noch die Cloud. Ja, die Cloud. Und so richtig sinnvoll werden Szenarien in der Cloud erst, wenn der Grad an Automatisierung sehr hoch ist. Ich weiß, dass bei dem Thema noch viele Mitglieder aus der Community zusammenzucken und ein leises “das wird nie bis zu mir kommen…” von sich geben. Dennoch stelle ich in der Zusammenarbeit mit Microsoft fest, dass immer mehr Kunden die Einsatzmöglichkeiten von Azure prüfen oder gar schon am implementieren sind. Und auch hier ist eine Automatisierung der Provisionierung von Cloud Diensten am einfachsten mit PowerShell zu erreichen.

PowerShell soll kein Ersatz für das administrative T-SQL sein und vieles lässt sich auch sehr gut wenn nicht sogar einfacher damit abbilden. Dennoch ist PowerShell eine gute Ergänzung für die tägliche Arbeit und ermöglicht neue einfachere Lösungen.

Gebt PowerShell eine Chance, schaut Euch die grundlegenden Konzepte an und entscheidet dann.