Slide 1

Slide 1 text

ZEITFRESSER GEBÄNDIGT Optimierung von Entwicklungsumgebungen

Slide 2

Slide 2 text

AGENDA ▪ Herausforderung: Entwicklungsumgebung ▪ Dev Container ▪ Azure Developer CLI (AZD)

Slide 3

Slide 3 text

ABOUT ME Daniel Lindemann Begeisterter .NET-Entwickler und Berater mit einer seltsamen Vorliebe für die Optimierung, Automatisierung und Containerisierung von Anwendungen. Was ich so mache: ▪ Microsoft Azure ▪ Cloud-native & Serverless Architekturen ▪ Container Technologien ▪ Generative AI ▪ DevOps - Dev in der Nacht, Ops am Tag E-Mail: [email protected] Web: https://www.dlindemann.de LinkedIn: https://linkedin.com/in/daniel-lindemann

Slide 4

Slide 4 text

HERAUSFORDERUNGEN Welche Herausforderungen haben Software Developer? ▪ Iterationsgeschwindigkeit (Inner Loop): Die Geschwindigkeit, mit der Entwickler Code ändern, bauen und testen können, ist entscheidend für die Produktivität ▪ Kollaborative Infrastruktur: Teams benötigen die richtigen Tools und Prozesse, um effektiv zusammenzuarbeiten ▪ Einarbeitung neuer Teammitglieder oder Einrichtung neuer Maschinen: Neue Teammitglieder einzuarbeiten oder Entwicklungsumgebungen einzurichten, kann zeitaufwendig sein ▪ Ungeplante Aufgaben: Übernehmen von ungeplanten Aufgaben, wie das Beheben von kritischen Bugs, kann herausfordernd sein, besonders wenn die Aufgaben in Vertretung aufkommen (z.B. Urlaubsvertretung) ▪ Integrationsprobleme: Die Integration verschiedener Tools und Dienste in den Entwicklungsprozess kann komplex und problematisch sein

Slide 5

Slide 5 text

HERAUSFORDERUNGEN Herausforderungen lösen Bessere Readme Onboarding mit Projektmitglied Tools Software Developer’s Choice

Slide 6

Slide 6 text

TOOLS Abhängigkeiten innerhalb von Projekten Project B: Web APIs in unterschiedlichen Sprachen ▪ .NET 8 ▪ Node 22.8.0 ▪ Microsoft SQL 2022 ▪ Redis ▪ SQL Management Tools, Azure CLI, Azure Developer CLI, Docker Projekt A: Web-Projekt mit Backend und Frontend ▪ .NET 6 ▪ Node 16.20.2 ▪ JS + React 17.0.2 ▪ ngrok, PowerShell, Azure CLI

Slide 7

Slide 7 text

WIE KÖNNEN WIR ENTWICKLER EINE SAUBERE UND IMMER GLEICH KONFIGURIERTE ENTWICKLUNGSUMGEBUNG FÜR PROJEKTE ERSTELLEN?

Slide 8

Slide 8 text

DevContainer

Slide 9

Slide 9 text

https://containers.dev/overview

Slide 10

Slide 10 text

DEVCONTAINER Vorteile ▪ Keine “Verwaltung“ von Tool- und Bibliotheksversionen ▪ Konsistente Entwicklungsumgebung unabhängig vom Betriebssystem ▪ Einfache Konfiguration über devcontainer.json ▪ Einfache Neuerstellung

Slide 11

Slide 11 text

DEVCONTAINER Abhängigkeiten ▪ Docker ▪ auf Windows am besten mit WSL 2 ▪ Visual Studio Code mit Dev Containers Extensions

Slide 12

Slide 12 text

DEMO Erstellen eines Dev Containers

Slide 13

Slide 13 text

https://code.visualstudio.com/docs/devcontainers/containers

Slide 14

Slide 14 text

DEVCONTAINER Customize Environment ▪ Features hinzufügen (bsp. Docker-in-Docker, Azure CLI) ▪ Extensions automatisch installieren ▪ Via User Settings ▪ Via devcontainer.json ▪ Eigene Settings in DevContainer ▪ Installation von weiteren Tools und Bibliotheken ▪ Via Dockerfile ▪ Via Devcontainer-Hooks (InitializeCommand, OnCreateCommand, PostCreateCommand, etc.) ▪ Dotfiles importieren

Slide 15

Slide 15 text

DEMO Dev Container mit SQL Server

Slide 16

Slide 16 text

GITHUB CODESPACES DevContainer GitHub Codespaces

Slide 17

Slide 17 text

DEMO GitHub Codespaces

Slide 18

Slide 18 text

GITHUB COPILOT Kosten

Slide 19

Slide 19 text

WIE KÖNNEN WIR ENTWICKLER UNSEREN CODE MIT AZURE ALS CLOUDUMGEBUNG BENUTZEN UND TESTEN?

Slide 20

Slide 20 text

Azure Developer CLI

Slide 21

Slide 21 text

AZURE DEVELOPER CLI Was ist die Azure Developer CLI ▪ CLI Tool zur Erstellung von Azure Ressourcen ▪ Automatische Erstellung von IaC-Code ▪ Verwendung von Templates ▪ Integration von Pipelines ▪ Speziell an Entwickler gerichtet ▪ Einfache Commands: azd up, azd down, ... ▪ Ideal für PoC (Proof of Concept) Projekte

Slide 22

Slide 22 text

AZURE DEVELOPER CLI Templates https://aka.ms/awesome-azd

Slide 23

Slide 23 text

AZURE DEV CLI App Bereitstellung in Azure App Voraussetzungen ▪ Web Applikation Hosting ▪ SQL Server Azure Voraussetzungen ▪ Key Vault ▪ Log Analytics Workspace ▪ Application Insights ▪ Container Registry Resource Group Container Apps Env Container App - Web App Container App - API Razor Pages Web API Security Storage Monitoring Key Vault Secret Azure SQL Container Registry Log Analytics Workspace Application Insights

Slide 24

Slide 24 text

AZURE DEVELOPER CLI Beispiel: azd up Build Deploy Infrastructure Deploy Application Environment-spezifische Variablen Service-spezifische Konfigurationen Benutzer ID

Slide 25

Slide 25 text

DEMO Azure Developer CLI

Slide 26

Slide 26 text

FRAGEN?

Slide 27

Slide 27 text

CODE daniellindemann/devenv-devcontainer-azd: Code of my talk "Zeitfresser gebändigt: Optimierung von Entwicklungsumgebungen" (github.com)

Slide 28

Slide 28 text

Die abtis Gruppe führt als IT-Dienstleister den Mittelstand mit strategischer Beratung, effizienten Projekten und maßgeschneiderten Managed Services sicher in die digitale Zukunft. Die Gruppe verfügt über mehr als 20 Jahre Erfahrung in der Planung, der Umsetzung und dem Betrieb von Microsoft-Plattformen. Sie betreut bereits mehr als 250.000 Anwender der Cloud-Plattformen Microsoft 365 und Azure. Die abtis Gruppe ist Mitglied der Microsoft Intelligent Security Association (MISA), Fokuspartner von Microsoft für den Mittelstand und Gewinner des Microsoft Accelerate Innovation Awards 2023. Dabei deckt abtis alle Lösungsbereiche von Microsoft ab: von Modern Work über Security, Business Applications, Infrastructure (Azure), Digital & App Innovation (Azure) bis hin zu Data & AI (Azure). www.abtis.de +49 7231 4431 - 100 [email protected] © 2024 Alle Rechte vorbehalten. Dieses Dokument ist urheberrechtlich geschützt. Sämtliche Inhalte dienen der Dokumentation. Jede andere Nutzung, insbesondere die Weitergabe an Dritte, die Verbreitung oder die Bearbeitung, auch in Teilen, ist ohne schriftliche Einwilligung der abtis GmbH untersagt. Die verwendeten Firmen-, Marken- und Produktnamen und Warenzeichen sind eingetragene Markenzeichen oder Warenzeichen der jeweiligen Inhaber und werden hiermit anerkannt.