SQL Server on Docker – Demo-Umgebung mit Docker Desktop

Ich benötige für mehrere Demos und Präsentation immer mal wieder einen SQL Server um gewisse Dinge zu zeigen, egal ob beim Kunden, bei Veranstaltungen oder mal eben so dem Kollegen. Meist hat man ja irgendwie eine Internet-Verbindung und könnte dann seine virtuelle Maschine in Azure hochfahren und dann dort die Aufgaben durchführen, manchmal gibt es diesen Luxus nicht oder manchmal muss es auch schneller gehen, um zum Beispiel den Gesprächsfluss nicht zu unterbrechen. Daher habe ich mir überlegt, dass es doch ganz großartig wäre, wenn ich einen SQL Server auf meinem Laptop starten könnte… nun habe ich aber keinen “großen” Laptop auf dem ich mal eben eine virtuelle Maschine mit VirtualBox oder VM-Workstation starten könnte. Also musste eine andere Lösung her 😉
In den vergangenen Monaten hatte ich mich immer wieder mit Frank Geisler (b|t) unterhalten, bei dem in jedem Satz mindestens einmal “Docker” vorkommt (Sorry Frank 😉 )… also was lag näher als sich selber noch einmal damit auseinanderzusetzen. Wie kann man nun ohne großen Aufwand auf einem Windows 10 Laptop eine Docker-Umgebung installieren???

Docker Desktop for Windows 10

Docker selber bietet hier eine Laufzeit-Umgebung für Windows und Mac an, den kostenfreien “Docker Desktop“. Mit ~930MB nicht unbedingt ein Leichtgewicht, aber es bietet sehr viele Möglichkeiten inklusive dem Rollout eines lokalen 1-Knoten Kubernetes Clusters für Dev-Zwecke, aber dazu in einem weiteren Post mehr Informationen. Jetzt geht es hier erst einmal um das einfach Rollout eines oder mehrerer SQL Server Container mittels Docker Desktop.

Dazu lade ich den Docker Desktop herunter und starte die Installation, hier geht es dann mit “weiter, weiter, Finish” durch… dann dauert etwas, bis Docker Desktop überprüft hat, ob die Installationsroutine noch etwas nachladen muss, aber alles in allem keine “Ewigkeit”.

Docker Desktop checks installable packages

Danach findet ihr im Startmenü ein entsprechenden Verweis auf die neue Installation des Docker Desktops, diese müsst ihr als Administrator starten und erhaltet als “Startbildschirm” die folgende Ansicht… es ist aktuell nach der Erst-Installation natürlich kein Container verfügbar 😉

Docker Desktop show "no containers running" - and gives example

Wenn man nun diesen Beispiel-Container einmal startet, erhält man auf jeden Fall eine Web-Applikation in/aus einem Container, welche sich auch über den Browser aufrufen lässt. Damit dies aber geschieht, beginnt docker erst einmal mit der Überprüfung ob das Container-Image überhaupt verfügbar ist bzw in welcher Version es vorliegt und ob es ggfs ein Update dazu gibt. Je nach Ergebnis wird dann ein entsprechender Download durchgeführt, um im Anschluss den Container erfolgreich zu starten.

docker run -d -p 80:80 docker/getting-started
Unable to find image 'docker/getting-started:latest' locally
latest: Pulling from docker/getting-started
cbdbe7a5bc2a: Pull complete
85434292d1cb: Pull complete
75fcb1e58684: Pull complete
2a8fe5451faf: Pull complete
42ceeab04dd4: Pull complete
bdd639f50516: Pull complete
c446f16e1123: Pull complete
Digest: sha256:79d5eae6e7b1dec2e911923e463240984dad111a620d5628a5b95e036438b2df
Status: Downloaded newer image for docker/getting-started:latest
74ff7cc76ca107a5bb27e7013e3d9715129ce182518d9fd8d4c363ffadc84b51

Jetzt sehen wir in Docker Desktop unsere Beispiel-Applikation als laufenden Container, nach dem Aufrufen der Webseite (localhost) gelangen wir zu dem Einstiegs-Tutorial und weiteren Erläuterungen rund um die Möglichkeiten von Containern.
Soviel erst einmal zu den Grundlagen von Docker Desktop und dem Starten von Containern… wir wollten uns aber um den SQL Server kümmern bzw die Erstellung einer lokalen Demo-Umgebung mit Docker Containern. Wie man es aus den Blogbeiträgen von Frank Geisler , anderen Docker-Enthuasiasten oder auch von mir kennt, muss man nun das zu ladende Image aus einem Container-Repository definieren, mittels “docker pull” herunterladen und dann über “docker run” entsprechend starten.

$imagepath = 'mcr.microsoft.com/mssql/server:2019-latest'
## CU5
$imagepath = 'mcr.microsoft.com/mssql/server:2019-CU5-ubuntu-16.04'
## Windows 
$imagepath = 'mcr.microsoft.com/microsoft/mssql-server-windows-developer'

docker pull $imagepath

$new_sqlserver_name = "SQLServer2019"

docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=SQLServerDemo@2020" -p 1433:1433 --name $new_sqlserver_name -d $imagepath
Docker Desktop dashboard shows a container called SQLServer2019 is running based on SQL Server 2019 latest image.

Nun läuft unser SQL Server 2019 in einem Docker Container und wir können wie gewohnt den vollen Umfang entsprechend nutzen und auch mit dem SQL Server Management Studio als auch dem Azure Data Studio auf diese neue SQL Server Instanz zugreifen. Aber auch über die Commando-Zeile ist es möglich den SQL Server zu administrieren, hierzu muss man sich entsprechend mit dem Container verbinden und z.B. eine Connection über sqlcmd eröffnen oder einen Zwischenschritt in die Bash und dann erst auf den SQL Server… hier sind die Möglichkeiten vielfältig.

docker exec -it $new_sqlserver_name /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P SQLServerDemo@2020

docker exec -it $new_sqlserver_name "bash"
cd /var/opt/mssql/data/
wget https://github.com/Microsoft/sql-server-samples/releases/download/wide-world-importers-v1.0/WideWorldImporters-Full.bak
/opt/mssql-tools/bin/sqlcmd -S . -U sa -P SQLServerDemo@2020 -Q "RESTORE DATABASE [WideWorldImporters] FROM  DISK = N'/var/opt/mssql/data/WideWorldImporters-Full.bak' WITH  FILE = 1,  MOVE N'WWI_Primary' TO N'/var/opt/mssql/data/WideWorldImporters.mdf',  MOVE N'WWI_UserData' TO N'/var/opt/mssql/data/WideWorldImporters_UserData.ndf',  MOVE N'WWI_Log' TO N'/var/opt/mssql/data/WideWorldImporters.ldf',  MOVE N'WWI_InMemory_Data_1' TO N'/var/opt/mssql/data/WideWorldImporters_InMemory_Data_1',  NOUNLOAD,  STATS = 5"

Ich wünsche euch viel Spaß beim Ausprobieren eurer lokalen Demo-Umgebungen. 😉
Bei Fragen stehe ich natürlich gerne zur Verfügung!

Azure Data Studio shows basic dashboard direct after first connection to sql server in a docker container

Sorry – lange Ruhezeit wegen viel Freude an der Arbeit

Seit Wechsel meines Arbeitgebers – von der Atos zur Kramer&Crew – bin ich nicht mehr dazu gekommen, einen Blogpost zu schreiben… Ideen habe ich viele auch konkrete Themen, aber es fehlt einfach die Zeit zwischen neuem (Traum-)Job und Familie. Es ist für mich nicht einfach gewesen, den Sprung aus einer “Factory” – strikt SQL Server Betrieb und in der Freizeit Azure – hinein in eine projektgetriebene, beratungslastige Tätigkeit. Bei der Atos war es eigentlich Tag ein, Tag aus dasselbe…. bei Kramer&Crew ist jeder Tag anders, jeden Tag warten neue Herausforderungen. Auch das Themengebiet ist wesentlich breiter – schließlich bin ich jetzt “Consultant für Microsoft Data-Platform und Azure” … Themen bei den ich mit viel Freude dabei bin und mit “Passion” auszufüllen versuche.

Natürlich installiere ich immer noch SQL Server nach Kundenanforderungen aber eben individueller und je nach Kundenwunsch in der entsprechenden Ausprägung, aber der Weg bis dahin wird von mir mit gestaltet, was mir sehr viel Spaß bringt. Den Kunde auf dem Weg von der Idee bis zur Realisierung zu begleiten ist großartig!

Oder die (potentiellen) Azure-Kunden… mit dem Kunden gemeinsam über seine Ideen und Visionen zu sprechen, daraus erst ein grobes Bild zeichnen, daraus eine Lösung erdenken und diese gemeinsam mit dem Kunden umzusetzen… macht mir viel Freude und ist einfach großartig.

Gestern erst war ich bei einem Kunden, der eben solche langfristigen Visionen hat, wie er sein Rechenzentrum bzw seine vorhandene (veraltete) IT-Infrastruktur aufnehmen, migrieren und dann optimieren kann… das sind Projekte die zwar herausfordernd sind, aber eben auch sehr viel Freude bereiten, weil ich genau das machen kann, was man ich mir immer gewünscht habe. Eine langfristige Zusammenarbeit mit einem gemeinsamen Ziel hin zu einer flexiblen und effizienteren Umgebung bei der viele Punkte seiner Agenda und seiner Ziele umgesetzt werden können. Am Ende steht nicht der Umsatz, sondern ein glücklicher Kunde, der seine (neue) IT besser administrieren kann.

Happy about my new job - viel Freude an der Arbeit

Oder heute… heute war ich bei einem Kunden, der eine recht komplexe Applikation in Azure erstellt hat, mit diversen unterschiedlichen Services… allein die Kombination dieser Dienste und daraus entstandene Lösung ist (aus meiner Sicht) echt gut… ABER sie wurde von Entwicklern umgesetzt und das passt leider nicht so ganz in die Ziel-Umgebung und muss “migriert” werden, damit sie compliant ist und den Vorgaben des Unternehmens entspricht. Aber auch hier muss eben ein Schritt nach dem anderen erfolgen und der Kunde bzw seine IT-Abteilung eben erst einmal andere Projekte abschließen, damit alle Zahnräder richtig in einander greifen können. Ich kann euch sagen… sehr sehr spannend!!!

Oder meine Kollegen – wie zum Beispiel Martin Gudel – in der Microsoft Community sehr bekannt und immer für “spektakuläre” Lösungen “berüchtigt”… in jedem Gespräch mit ihm kommen einem neue Ideen und Vorstellungen, was man wie womit umsetzen könnte oder ausprobieren möchte. Vielen Dank an Martin! “Malex”… immer ansprechbar und immer für ein Solution-Sparring bereit, kann man sich hier auch konstruktive Kritiken und Ideen verlassen, Marco Poggioli – kein Weg führt in Sachen Azure an ihm vorbei… auch hier immer wieder großartige Ideen und Vorstellungen wie man was – nicht immer innovativ dafür aber “sicher” umsetzen kann, denn schließlich soll der Kunde mit der erdachten Solution lange arbeiten können und nicht nach kurzer Zeit sagen, dass er damit nicht mehr klar kommt.

Es bringt einfach wieder Freude jeden Morgen den Laptop einzuschalten und sich in die neuen Herausforderungen zu stürzen. Ich freue mich tierisch auf das kommende Jahr mit vielen weiteren spannenden Projekten und Kunden, die ersten Projekte stehen direkt nach dem Jahreswechsel an… 😉

Ich spreche beim PASS Meetup in München über Azure SQL DB

Ich bin am 12.September 2019 zu Gast beim SQL PASS Meetup der Regionalgruppe Bayern und werde einen Überblick über die verschiedenen Azure SQL Databases geben. Kommt natürlich gerne vorbei, jeder ist herzlich eingeladen, die Veranstaltung ist kostenlos und nicht umsonst 😉

Hier kommt eine Kurzbeschreibung meines Vortrages:

Jeder spricht davon, in die Cloud zu gehen, auch mit seinen Datenbanken. Lassen Sie mich Ihnen die Azure SQL Database in all ihren wunderschönen Farben und Optionen vorstellen. Es geht von der allgemeinen Beschreibung über die verschiedenen Engines / Dienste und natürlich die Features, die Sie für Ihr Geld bekommen. Desweiteren werden wir die unterschiedlichen Bereitstellungs-Methoden und Migrationspfade Ihrer Daten anschauen.
Nach meiner Session können Sie die verschiedenen Datenbank-Dienste unterscheiden und wissen, welcher für Sie und Ihre Anwendung der richtige sein könnte!

Ich freue mich auf einen spannenden Abend mit Ihnen!
Anmeldungen bitte hier vornehmen 😉
https://www.meetup.com/de-DE/pass-bayern/events/264489827/

An diesem Abend werde ich aber nicht der einzige Vortragende sein, denn Sebastian Sproß (Microsoft Cloud Architekt) wird auch eine spannende Geschichte zu Datenbanken CI/CD erzählen und was das Ganze mit (Azure) Devops zu tun hat. Auch auf diesen Vortrag freue ich mich schon sehr.

CommunityRocks

128 Tage auf neuen Wegen

Nun bin bereits unglaubliche 128 Tage auf eben diesen neuen Wegen unterwegs, zu denen ich im Mai aufgebrochen bin! Was hat sich seit dem 01. Mai 2019 ereignet? Was ist anders? Was macht es besonders? Was gefällt mir nicht? Ich möchte euch in diesem Blog-Beitrag einen Einblick geben in meine ersten Wochen unter “neuer Flagge” und mit neuen (anderen) Herausforderungen gemeinsam mit neuen Kollegen.

Gemeinsam neue Herausforderungen meistern

Einer der größten Unterschiede ist definitiv die Kommunikation – in den letzten 12 Jahren habe ich bei Atos (ursprünglich Atos Origin) als SQL Datenbank-Administrator (vom Junior zum Senior bzw Team Lead) gearbeitet… zuletzt bestand Atos aus zahlreichen Legal Entities und rund 120.000 Mitarbeitern weltweit… jetzt bei Kramer&Crew arbeite ich bei einem Unternehmen mit ~140 Mitarbeiter… da sind schon die Kommunikationswege grundsätzlich unterschiedlich und damit auch die Wege und Arten Entscheidungen herbeizuführen. Dies empfinde ich auch als gravierenden Vorteil, man ist viel agiler unterwegs und kann dem Kunden schneller und unkomplizierter helfen.

Auch das Aufgabengebiet und damit die Herausforderungen sind stark unterschiedlich – da ich im Tagesgeschäft noch nicht zu 100% ausgelastet bin, was vielfältige Gründe hat, wie zum Beispiel der Vertrieb, der mich (und meine Kenntnisse) erst langsam an den Kunden, das bietet mir aber auch die Möglichkeit mich mit neuen oder anderen Themen zu beschäftigen. So schaue ich meinem Kollegen – Martin Gudel – sehr gerne über die Schulter, dieser beschäftigt sich sehr intensiv mit Office 365 (Power-Apps, Flows und Kombinationen) und bietet unseren Kunden sehr individuelle Lösungen für deren Anforderungen, alles sehr spannende Tätigkeitsfelder!!!

Gerade die neuen Technologien wie Nutanix Hyper Converged Infrastrukturen waren anfänglich komplett neu und ich musste mich erst einarbeiten, aber egal wenn ich fragte, alle waren sofort bereit mir gemeinsam an einer Lösung zu arbeiten, mir Antworten auf meine Fragen zur Seite zu stehen. Hier gibt es immer hilfreiche Kollegen, die versuchen so gut es zu unterstützen, gerade die agile Arbeitsweise und das entspannte Arbeitsklima lässt mich jeden Morgen gerne zu Arbeit gehen!

neue kreative Problemlösungen

Auch war ich vor einigen Tagen bei einem Kunden, der für seine Applikation eine neue Lösung bauen möchte, von der Ausgangssituation über Phase 1 und Phase 2 zu einer hoch verfügbaren, skalierenden SQL Server Umgebung – onprem !!! Hier ergaben sich aus einer Diskussion mit Martin auch sehr interessante und vielversprechende Lösungsansätze, die ich glücklicherweise erst einmal für mich selber aufbauen und testen konnte. In meiner neuen Position ergeben sich die Möglichkeiten solche großartigen, innovative Lösungen für unseren Kunden zu erdenken, testen und dann ggfs präsentieren.

Oder Kunden einfach von der Genialität einer Microsoft Azure Cloud zu überzeugen, dass dem Kunden für seine Anforderungen zahlreiche unterschiedliche Möglichkeiten zu seiner perfekten Lösung zur Auswahl stehen und er selber entscheiden kann, was für Ihn die optimalste Lösung ist. Sei es der einfache “Lift&Shift”-Ansatz von virtuellen Maschinen, die Kombination von verschiedenen Cloud-Services zu einer Gesamt-Lösung oder eine hybride Lösung. Es bieten sich so viele, neue spannende und interessante Aufgabengebiete und Möglichkeiten…

gute Basis durch gemeinsame Arbeit

So viel kreative Freiheit hatte ich bei Atos leider nicht, hier ging es zum Schluss leider nur noch um Kosten, Effizienzen und wie man Aufgaben standardisieren könnte. Durch diese andere Aufgabenstellung habe ich auch viel gelernt, gerade was Automatisierung mittels Powershell angeht, dies bringt mir auch bei meiner neuen Arbeit sehr viele Vorteile. Auch die Standardisierung von SQL Server Installationen in unterschiedlichen Größen und Ausprägungen von Umgebungen hilft hier sehr weiter, da sie eine gewisse Effizienz mit sich bringt.

In sofern sehe ich mich – dank meiner Vorkenntnisse und Kenntnisse – sehr gut auf die neuen Aufgaben für die unterschiedlichen Kunden einer Kramer&Crew gewappnet. Hier gilt vor allem – auch wenn ich mich wiederholen sollte – der Dank meinen ehemaligen Hamburger Kollegen, die mich immer unterstützt haben und gemeinsam mit mir an diesen Herausforderungen gearbeitet haben, gemeinsam konnten wir viele Hürden und Baustellen bewerkstelligen und voran kommen, wenn auch manchmal die ursprünglichen Wege und Arbeiten komplett wieder über den Haufen geworfen werden mussten, um einen neuen Weg zu beschreiten, der uns dann doch zum Ziel gebracht hat.

mit viel Energie zu neuen Abenteuern

Diese Zusammenarbeit ist auch bei Kramer&Crew sehr deutlich zu spüren und hat mich sehr fasziniert, denn hier haben alle ein gemeinsames Ziel. Auch wenn man nicht unbedingt jeden Tag mit denselben Kollegen zusammen arbeitet oder man in unterschiedlichen Kunden-Umfeldern oder Projekten arbeitet, so haben alle eins spürbar gemeinsam… es geht immer um das Wohl des Kunden! Alle wollen dem Kunden einen ausgezeichneten Service mit einem erfolgreichen Abschluss bieten… Ich fühle mich hier sehr wohl und hoffe auch viele spannende und innovative Kundenprojekte.

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!

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