Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Zeitfresser gebändigt - Optimierung von Entwick...

Zeitfresser gebändigt - Optimierung von Entwicklungsumgebungen

Getting started with development quickly? No problem with DevContainer, GitHub Codespaces and the Azure Developer CLI (azd). These tools can be used to repeatedly and easily provide ready-to-use development environments. All required dependencies and configurations of a project are included and cloud services in Azure for testing or integration scenarios can also be deployed. In this session, Daniel Lindemann will demonstrate a project scaffolding that means developers don't have to worry about having the right version of frameworks and tools.

Daniel Lindemann

September 19, 2024
Tweet

More Decks by Daniel Lindemann

Other Decks in Programming

Transcript

  1. 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
  2. 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
  3. 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
  4. WIE KÖNNEN WIR ENTWICKLER EINE SAUBERE UND IMMER GLEICH KONFIGURIERTE

    ENTWICKLUNGSUMGEBUNG FÜR PROJEKTE ERSTELLEN?
  5. DEVCONTAINER Vorteile ▪ Keine “Verwaltung“ von Tool- und Bibliotheksversionen ▪

    Konsistente Entwicklungsumgebung unabhängig vom Betriebssystem ▪ Einfache Konfiguration über devcontainer.json ▪ Einfache Neuerstellung
  6. DEVCONTAINER Abhängigkeiten ▪ Docker ▪ auf Windows am besten mit

    WSL 2 ▪ Visual Studio Code mit Dev Containers Extensions
  7. 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
  8. 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
  9. 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
  10. AZURE DEVELOPER CLI Beispiel: azd up Build Deploy Infrastructure Deploy

    Application Environment-spezifische Variablen Service-spezifische Konfigurationen Benutzer ID
  11. 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.