Das neue Entwicklerleben mit Windows 10

Ähnliche Dokumente
Containisierung von Java Apps mit Docker

Anwendungsvirtualisierung in Containern mit Docker

GIS Docker und Azure-Cloud. Neues aus der Entwicklung

The linux container engine. Peter Daum

Build. Ship. Run. Docker. Namics.

CentOS 7 Secure And Portable Containers Made Easy Jürgen Brunk Köln,

Platform as a Service (PaaS) & Containerization

Container als Immutable Infrastructure. John M. Hutchison

Dockerbank Container-basiertes Deployment von biomedizinischen IT-Lösungen

docker.io Secure And Portable Containers Made Easy Jürgen Brunk München,

Vom Umgang mit Containern in der Informatik

Containerplattform. Lego für DevOps. Dr. Jonas Trüstedt

DOCKER IN PRACTICE. Matthias Zober EXXETA GmbH Leipzig

Docker Einführung - und warum Container so wichtig sind Thomas Bröll Principal Consultant DOAG Regio Stuttgart

DevOps und Red Hat Openshift Eine Traumkombination SEVEN PRINCIPLES AG

Einführung in Docker. Tobias Zeimetz

Bereitstellung von Microservice mit dem OCCS

Docker & DevOps.

Continuous Delivery mit Docker

Forms 12c, Reports und Weblogic in Docker betreiben

Dockerbank II. Block 2: Komplexbeispiel. Benjamin Baum 1, Christian Bauer 1

Continuous Delivery in der Praxis

APEX OOS TOOLS & HELFER

Isolierte Umgebungen für Python Anwendungen Teil 2. Christine Koppelt, Jürgen Schackmann, Stefan Seelmann

Docker für Java Entwickler

Docker und Virtualisierung Container Use Cases für eine isolierte, performante Zukunft

Docker. Grundlagen SaarCamp 2016 Nico Maas

SAFE HARBOR STATEMENT

Container Hype. TODO : Vollflächiges Container Bild. Håkan Dahlström Source:

Azure Community Deutschland. Microsoft Azure. Was ist drin für Unternehmen? Oliver Michalski (Senior Software Engineer.NET)

Modernes, systemunabhängiges Deployment. mit Docker. bei der Deutschen Bahn AG

Dr. Roland Huß, ConSol* Docker für Java-Entwickler

Container-Orchestrierung in der Cloud für Profis

Profitieren Sie von einer offenen und flexiblen Clouddienstplattform

Informationen zur Verwendung von Visual Studio und cmake

Automatisierte Entwickler VMs works on my machine zählt nicht mehr ;-)

Infrastruktur im Wandel

Boost your APEX Deployment and Provisioning with Docker

Continuous Delivery in der Praxis

Docker für Entwickler

Red Hat Satellite mehr als nur ein Content Delivery und Subscription Management System

Singularity - Container für die HPC Welt. Egbert Eich Project Manager HPC SUSE Linux

Kostenoptimierte Cloud-Administration mit Solaris Container Technologie

Systemvoraussetzungen für ConSol CM Version Architektur Überblick

Erhöhe den Nutzen deines Dienstes

Docker. Softwaretest, Testautomatisierung und -management. Nico Maas. Grundlagen. Saar 2017

Testen und Docker. Beispiele aus der Praxis. Dehla Sokenou

M5000 einfach ablösen durch T4/T5 LDoms und Solaris Zonen

Bereitstellung von Microservices in der Oracle-Cloud

Container im Schwarm - Weblogic und Docker Swarm

Docker Container für das Deployment eines WebLogic Clusters

Smartphone Entwicklung mit Android und Java

Dr. Roland Huß ConSol* Docker für Java Entwickler

Dockerbank II Vertiefungsworkshop zum Container-basierten Deployment von biomedizinischen IT-Lösungen

Docker. Eine Einführung

CADEMIA: Einrichtung Ihres Computers unter Linux mit Oracle-Java

Docker. Grundlagen Workshop Trier Tech Talk Conference, Nico Maas

DevOps. Alexander Pacnik, Head of DevOps Engineering

Agenda. Ausgangssituation (Beispiel) PaaS oder IaaS? Migrationspfade Deep Dives. IaaS via Azure Site Recovery PaaS via SQL Deployment Wizard

Microsoft-Prüfung. Installation, Storage, and Compute with Windows Server Preview EXAM PACK

4 Einrichten von Windows

The Foreman. Felix Massem und Jan-Frederic Markert

Virtualisierung und Management am Desktop mit Citrix

Veeam und Microsoft. Marco Horstmann System Engineer, Veeam

Veeam Availability Platform. Marco Horstmann System Engineer, Veeam

Docker. Lass mal containern Julian mino GPN

Lab Management mit TFS Thomas Schissler artiso AG

CADEMIA: Einrichtung Ihres Computers unter Windows

Docker Container für das Deployment eines WebLogic Clusters

Neues in Hyper-V Version 2

Unternehmen-IT sicher in der Public Cloud

Systemanforderungen für Qlik Sense. Qlik Sense June 2017 Copyright QlikTech International AB. Alle Rechte vorbehalten.

Line-of-Business-Apps mit der Universal Windows Platform entwickeln. Thomas Claudius

Oracle Public Cloud benutzen

Accelerating possibilities

Business Connect ECSTA / TAPI. Installationsanleitung fw

Leitfaden für die Installation der freien Virtual Machine. C-MOR Videoüberwachung auf einem VMware ESX Server

MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP)

Systemvoraussetzungen & Schnittstellen otris privacy

Network-Attached Storage mit FreeNAS

Preise und Leistungen Dynamic Computing Services

MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP)

quickterm Systemvoraussetzungen Dokumentversion 1.0

Raber+Märcker Techno Summit 2014 Microsoft Dynamics NAV 2013 R2 Überblick und Hintergründe zu aktuellen Version.

Migra?on VMWare basierender Datenbanken auf Knopfdruck

Wie setzt Swisscom Solaris 11 ein

Installations- und Update-Anleitung für TransportControl

Micro Focus Unit Testing Framework in Visual COBOL 3.0. Rolf Becking 29.August 2017

Office Line, Supportinformationen

Einleitung und Vorstellung Was ist opsi? Motivation Continous Deployment Neue Testumgebung QA

Docker revisited - Leichtgewichtige Orchestrierung. Dr. Halil-Cem adesso AG - Dortmund

Teil I. Allgemeine System-Administration. Windows Server 2016 Neues, Lizenzierung und Download... 23

Transkript:

efficiency. we set IT up. Das neue Entwicklerleben mit Windows 10 // 26.07.2017 // Marco Bratz & Klaus Moser // // Marco Bratz & Klaus Moser 1

Marco Bratz Senior Software Architect Klaus Moser Senior Software Architect // Marco Bratz & Klaus Moser 2

https://www.doubleslash.de/karriere // Marco Bratz & Klaus Moser 3

Was tun mit einer doubleslash-ente? ab in den Urlaub und uns davon berichten! // Marco Bratz & Klaus Moser 4

Windows Subsystem for Linux (WSL) // Marco Bratz & Klaus Moser 5

WSL: Voraussetzung und Installation Windows 10 64-bit mit Anniversary Update oder höher (Build 1607+) Installation gemäß Anleitung https://msdn.microsoft.com/dede/commandline/wsl/install_guide Unterschiede in den WSL-Versionen: Anniversary Update (Build 1607) Ubuntu 14.04 LTS Creators Update (Build 1703) Ubuntu 16.04 LTS // Marco Bratz & Klaus Moser 6

Ausblick: WSL ab Fall Creators Update Ab dem Fall Creators Update (Herbst 2017) ist das WSL über den Store verfügbar Verschiedene Distributionen: Ubuntu opensuse SUSE Linux Enterprise Server Lassen sich parallel verwenden und sind unabhängig voneinander // Marco Bratz & Klaus Moser 7

Dateisystemzugriff im WSL Das Windows-Dateisystem ist unter /mnt/c erreichbar Es kann ein symbolischer Link für den vereinfachten Zugriff erstellt werden Bspw. /c /mnt/c Achtung bei Sonderzeichen und Leerzeichen! // Marco Bratz & Klaus Moser 8

Inhalt des WSL unter Windows Der Inhalt des WSL ist in Windows verfügbar: C:\Users\<USER>\AppData\Local\ lxss Achtung: Wird im Explorer nicht direkt angezeigt. Über direkte Eingabe des Pfades in die Adressleiste aber sichtbar! // Marco Bratz & Klaus Moser 9

Windows-Programme im WSL starten Im WSL können Windows-Programme gestartet werden (ab 1703). Bspw.: explorer.exe notepad.exe cmd.exe /c ping google.de // Marco Bratz & Klaus Moser 10

Verbindung Windows <-> WSL Befehle lassen sich zwischen Windows und WSL miteinander kombinieren. Die Verbindung läuft über Pipes. // Marco Bratz & Klaus Moser 11

Einführung in Containertechnologie // Marco Bratz & Klaus Moser 12

Einführung in Containertechnologie Eine Definition Docker ist eine offene Plattform für Entwickler und Administratoren um verteilte Applikationen zu bauen, auszuliefern und zu betreiben. docker.com // Marco Bratz & Klaus Moser 13

Einführung in Containertechnologie Server Konfiguration und Deployment heute Experten-Know-How für Hardware/Software-Stack notwendig Kompliziert nur Erfahrene im Team führen das Deployment durch Jede Komponente muss anders konfiguriert werden Fehleranfällig Aufwändig Fehlende Automatisierung Lange Todo-Listen, komplizierte Installationsanleitungen viele kleine Vorgehensweisen, Skripte und Tools Gilt für alle Umgebungen (auch Dev)! // Marco Bratz & Klaus Moser 14

Einführung in Containertechnologie Matrix des Untergangs Hardware /Software CentOS Dev1 Dev2 TST INT PROD VM / Europa PROD Cloud USA?????? Java Apache JBoss MySQL?????? Vereinfachtes Beispiel!?????????????????? ELK?????? https://www.docker.com/whatisdocker/ // Marco Bratz & Klaus Moser 15

Einführung in Containertechnologie Matrix des Untergangs 6 Hardware -Umgebungen 6 Software-Komponenten = 36 Kombinationen, bei denen etwas schief gehen kann Wer will das alles testen??? // Marco Bratz & Klaus Moser 16

Einführung in Containertechnologie Matrix des Untergangs http://giphy.com/gifs/the-simpsons-crazy-r-simpson-7jbmfrlqjmxuc // Marco Bratz & Klaus Moser 17

Einführung in Containertechnologie Wie hat dies die Industrie gelöst? // Marco Bratz & Klaus Moser 18

Einführung in Containertechnologie Wie hat dies die Industrie gelöst? Güter???????????????????????????????????? // Marco Bratz & Klaus Moser 19

Einführung in Containertechnologie Matrix des Untergangs Hardware /Software CentOS Dev1 Dev2 TST INT PROD VM / Europa PROD Cloud USA?????? Java Apache JBoss MySQL ELK?????????????????????????????? // Marco Bratz & Klaus Moser 20

Einführung in Containertechnologie Textuelle Zusammenfassung Docker enables apps to be quickly assembled from components and eliminates the friction between development, QA, and production environments. As a result, IT can ship faster and run the same app, unchanged, on laptops, data center VMs, and any cloud. docker.com // Marco Bratz & Klaus Moser 21

Einführung in Containertechnologie Wer nutzt Docker? Auslieferung Developer baut Docker Image (Deploymentpaket) Administrator betreibt Docker Container (Laufendes Deploymentpaket) // Marco Bratz & Klaus Moser 22

Einführung in Containertechnologie Wie hilft Docker den Developers? Developer // Marco Bratz & Klaus Moser 23

Einführung in Containertechnologie Wie hilft Docker den Developers? baue jede Anwendung in jeder Sprache mit jeder Werkzeugkette Dockerifizierte Anwendungen sind komplett portabel und überall ausführbar (Linux, OS X, Windows Notebooks, Testumgebungen, Ubuntu in der Cloud, Produktions- Rechenzentren mit VMs auf denen Red Hat läuft) Developer Schnelles Ausführen von über 13,000+ Anwendungen, die im Docker Hub als Images zu Verfügung stehen // Marco Bratz & Klaus Moser 24

Einführung in Containertechnologie Wie hilft Docker den Developers? Docker verwaltet und verfolgt Änderungen und Abhängigkeiten Docker bietet eine einheitliche Bedien-API zum Starten/Stoppen von dockerifizierten Anwendungskomponenten Developer Reduktion von Installationsanleitungen // Marco Bratz & Klaus Moser 25

Einführung in Containertechnologie Wie hilft Docker den Developers? Komplette Zielumgebung wird lokal gleich abgebildet (keine Unterschiede bei Dev-Rechnern, bei mir geht s! ) Developer Integrationstests Schnelle Bereitstellung unterschiedlichster Umgebungen (z.b. unterschiedliche Linux Distributionen) // Marco Bratz & Klaus Moser 26

Einführung in Containertechnologie Wie hilft Docker den Developers? Developer erhält mehr Kontrolle über Serverkonfiguration Docker verschiebt die Serverkonfiguration in die Build-Phase, bisher eher Runtime-Phase Developer Serverkonfiguration kann vorher ausführlich getestet werden Komplette Zielumgebung kann lokal abgebildet werden // Marco Bratz & Klaus Moser 27

Die Technik // Marco Bratz & Klaus Moser 28

Wie ist dies technisch realisiert? Wie unterscheidet sich Docker von Virtuellen Machinen? App A App B Bin/Libs Gast OS Bin/Libs Gast OS VM App A Bin/Libs App B Bin/Libs Docker Hypervisor Host OS Server Docker Host OS Server // Marco Bratz & Klaus Moser 29

Wie ist dies technisch realisiert? Wie unterscheidet sich Docker von Virtuellen Machinen? App A Bin/Libs Gast OS Hypervisor Host OS Server App B Bin/Libs Gast OS VM Jede virtualisierte Anwendung enthält nicht nur die Anwendung (~ 100MB) sie enthält alle nötigen Programme und Bibliotheken Sie enthält ein komplettes Betriebsystem ( ~ GB) // Marco Bratz & Klaus Moser 30

Wie ist dies technisch realisiert? Wie unterscheidet sich Docker von Virtuellen Machinen? App A Bin/Libs Docker Host OS Server App B Bin/Libs Docker Jede virtualisierte Anwendung enthält nur die Anwendung, alle nötigen Programme und Bibliotheken Der Linux Kernel wird mit dem Host und anderen Containern geteilt Die Anwendung läuft als isolierter Prozess mit isolierten Ressourcen // Marco Bratz & Klaus Moser 31

Wie ist dies technisch realisiert? Begriffe 1. Image 2. Registry 3. Container // Marco Bratz & Klaus Moser 32

Wie ist dies technisch realisiert? Was ist ein Docker Image? Ein Image kann nur gelesen werden Ein Image verändert sich nie https://docs.docker.com/terms/image/ // Marco Bratz & Klaus Moser 33

Wie ist dies technisch realisiert? Was ist ein Docker Image? Images haben keinen Zustand Nur die oberste Schicht ist beschreibbar Es wird ein Union File System verwendet Auch gelöschte Dateien bleiben in tiefer liegenden Schichten erhalten https://docs.docker.com/terms/image/ // Marco Bratz & Klaus Moser 34

Wie ist dies technisch realisiert? Was ist ein Docker Image? Ein Image referenziert ein darunter liegendes Image Es werden Basis-Images bereitgestellt (ubuntu, centos, usw.) Jedes Image wird über eine eindeutige ID referenziert https://docs.docker.com/terms/image/ // Marco Bratz & Klaus Moser 35

Wie ist dies technisch realisiert? Wie baue ich ein Docker Image? - Dockerfile FROM fedora-httpd # base image MAINTAINER A D Ministator email: admin@corp.example.com # Add the tar file of the web site ADD mysite.tar /tmp/ # Docker automatically extracted. move files to web directory RUN mv /tmp/mysite/* /var/www/html # listen to port, use for container linking EXPOSE 80 ENTRYPOINT [ "/usr/sbin/httpd" ] CMD [ "-D", "FOREGROUND" ] http://www.projectatomic.io/docs/docker-building-images/ // Marco Bratz & Klaus Moser 36

Wie ist dies technisch realisiert? Was ist ein Docker Container? Runtime Version von Image Beim Starten des Containers werden alle nötigen Images geladen Eine beschreibbare Dateisystemschicht wird hinzugefügt +Eindeutige ID, Netzwerk, Resourcen Einschränkungen https://docs.docker.com/terms/container/ // Marco Bratz & Klaus Moser 37

Wie ist dies technisch realisiert? Was ist ein Docker Container? Container Zustände: Running Prozess läuft Exited Kein Prozess Memory wird NICHT erhalten! Dateisystemzustand bleibt erhalten https://docs.docker.com/terms/container/ // Marco Bratz & Klaus Moser 38

Wie ist dies technisch realisiert? Was ist ein Docker Container? Basiert auf existierenden Linux Technologien: Container (LXC) Chroot Ändere / für Prozess Cgroups Limit CPU, memory, disk I/O Namespaces NET, MNT (Mount), UTS (System ID), IPC (Interprocess), PID, USER http://www.adamjonas.com/blog/intro-to-docker/ // Marco Bratz & Klaus Moser http://crosbymichael.com/category/docker.html 39

Wie ist dies technisch realisiert? Docker Command Line Befehl build images pull push run stop start Beschreibung Image bauen Listet lokal vorhandene Images Image von Registry herunterladen Image auf Registry hochladen Erstellt und startet Container Stopt Container Starte Container // Marco Bratz & Klaus Moser 40

Wie ist dies technisch realisiert? Docker Command Line Befehl exec ps inspect rm logs Beschreibung Startet zusätzlichen Prozess innerhalb von Container Übersicht über Container (running, exited) Container/Image untersuchen Entfernen eines Containers Logausgaben eines Containers beobachten https://docs.docker.com/reference/commandline/cli/ // Marco Bratz & Klaus Moser 41

Wie ist dies technisch realisiert? Überblick Image A Push Docker Container Image Registry Dockerfile For A Source Code Repository Build Docker Engine Host 1 OS (Linux) Container A Search Docker Container C Container B Host 2 OS (Linux) Pull Run // Marco Bratz & Klaus Moser 42

Container unter Windows 10 // Marco Bratz & Klaus Moser 43

Microsoft im Docker Hub https://hub.docker.com/u/microsoft/ Eine Vielzahl an offiziell von Microsoft bereitgestellten Container-Images Linux-Container Windows-Container // Marco Bratz & Klaus Moser 44

Docker for Windows Native, in Windows integrierte Anwendung Verwendet Hyper-V als Virtualisierungsumgebung Erlaubt die Verwaltung der Containerumgebung in Windows: Netzwerk Dateisystem Konfiguration von Docker // Marco Bratz & Klaus Moser 45

Wichtige Optionen in Docker for Windows General Portfreigabe für localhost:2375 ohne TLS aktivieren. Shared Drives Grundlage für das Volume-Mapping in den Containern Zur lokalen Kommunikation Data-Volumes zum Datenaustausch und zur Persistierung. Nur auf DEV-Umgebungen!!! // Marco Bratz & Klaus Moser 46

Verbindung WSL zur Dockerumgebung Setzen der Umgebungsvariable DOCKER_HOST zur lokalen Kommunikation. Direkt in der aktuelle Konsole oder permanent in der Umgebung (bspw. ~/.bashrc) Erlaubt die Kommunikation des WSL mit dem lokalen Docker-Deamon. // Marco Bratz & Klaus Moser 47

Wechsel zwischen den Container-Welten Docker for Windows erlaubt den einfachen Wechsel zwischen den Container-Welten über Kontextmenü Ist ein Proxy für die eigentlichen Docker- Deamons Der Wechsel ist transparent für den Docker-Client // Marco Bratz & Klaus Moser 48

Praxisbeispiel.NET Anwendung im Docker Container #.NET Core App auf Basis von Linux (Debian) # Docker Image Größe: ~1 GB docker run microsoft/dotnet-samples:dotnetapp Hallo #.NET Core App auf Basis von Windows Nanoserver # Docker Image Größe: ~1 GB docker run microsoft/dotnet-samples:dotnetapp-nanoserver Hallo #.NET Full Framwork App auf Basis von Windows Server Core # Docker Image Größe: ~10 GB docker run microsoft/dotnet-framework-samples Hallo // Marco Bratz & Klaus Moser 49

Praxisbeispiel Dockerfile microsoft/dotnet-framework-samples FROM microsoft/dotnet-framework:4.6.2 WORKDIR /app COPY bin/release. ENTRYPOINT ["dotnetapp-4.6.2.exe"] https://github.com/microsoft/dotnet-framework-dockersamples/blob/dockerhub/dotnetapp-4.6.2/dotnetapp-4.6.2/dockerfile // Marco Bratz & Klaus Moser 50

Praxisbeispiel Siehe https://channel9.msdn.com/events/visual-studio/visual-studio-2017-launch/t111 // Marco Bratz & Klaus Moser 51

Fazit und Diskussion Vorteile Einheitliche Schnittstelle zur Verwaltung und Paketierung von Softwarekomponenten Keine lokale Installation von unterschiedlichen Laufzeitumgebungen notwendig Einfache Skalierung durch Betrieb Einheitliche Bedienung Einsatzmöglichkeiten Effizienzsteigerung und Flexibilität in der Entwicklung Standardisierung im Betrieb durch Containertechnologien (Public und private Cloud) Rollbackmöglichkeiten auf vorhergehende Versionen Unterstützt Umsetzung von Microservice-Architekturen Starker Enabler für DevOps-Kultur // Marco Bratz & Klaus Moser 52

efficiency. we set IT up. doubleslash Net-Business GmbH 07541/700 78-0 www.doubleslash.de info@doubleslash.de // Marco Bratz & Klaus Moser 53