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

Essentielle Tools für produktive und glückliche #CloudNativeNerds

Essentielle Tools für produktive und glückliche #CloudNativeNerds

YAML ist leider die vorherrschende Methode, unsere Kubernetes Workloads zu beschreiben: die Summe der ConfigMaps, Deployments und Services aller Umgebungen ist allzu schnell ein aufgeblähter, unüberschaubarer Wust an YAML-Definitionen. In Kombination mit ineffizienten Werkzeugen und Arbeitsabläufen führt dies schnell zu Frustration und geringer Produktivität der Entwickler.

In diesem Vortrag werden wir uns aktuelle Entwickler-orientierte Tools wie Buildpacks, Helm, Kustomize, Skaffold und Tilt ansehen und auf den Prüfstand stellen. All diese Tools zielen darauf ab, die nötigen Schritte vom Sourcecode bis zur Deployment-Unit zu reduzieren und zu optimieren.

Improve your Cloud-native DevEx!

M.-Leander Reimer

February 10, 2021
Tweet

More Decks by M.-Leander Reimer

Other Decks in Programming

Transcript

  1. Essentielle Tools für produktive und glückliche #CloudNativeNerds Cloud Native Day,

    February 10th 2021 @LeanderReimer #qaware #CloudNativeNerd #ConCon21
  2. // Cloud Native Day // Essentielle Tools für produktive und

    glückliche #CloudNativeNerds // @LeanderReimer #qaware #ConCon21 3 Code & Demos https://github.com/qaware/productive-cloud-native-devex
  3. // Cloud Native Day // Essentielle Tools für produktive und

    glückliche #CloudNativeNerds // @LeanderReimer #qaware #ConCon21 DevEx in den guten alten Tagen … 4 Spec Design Test Integrate Operate Develop Deploy
  4. // Cloud Native Day // Essentielle Tools für produktive und

    glückliche #CloudNativeNerds // @LeanderReimer #qaware #ConCon21 Cloud-native DevEx heute? 5 Spec Design Test Integrate Operate Develop Deploy
  5. // Cloud Native Day // Essentielle Tools für produktive und

    glückliche #CloudNativeNerds // @LeanderReimer #qaware #ConCon21 Cloud-native DevEx heute! 6 Spec Design Test Integrate Operate Develop Deploy Docker K8S JSON YAML AWS NFA CI/CD More
 YAML Even More YAML Agile Tracing M etrics More Stuff Eve More Eve More Eve More
  6. // Cloud Native Day // Essentielle Tools für produktive und

    glückliche #CloudNativeNerds // @LeanderReimer #qaware #ConCon21 How do you organise and enable technology teams for fast fl ow and high productivity? 7
  7. // Cloud Native Day // Essentielle Tools für produktive und

    glückliche #CloudNativeNerds // @LeanderReimer #qaware #ConCon21 Zu viel Cognitive Load hindert den schnellen Fluss, kurze Feedback-Zyklen und hohe Produktivität. • Intrinsic Cognitive Load - bezieht sich auf das Wissen und die fundamentalen Aspekte unseres Tuns (z.B. Programmier- Sprachen, APIs, Frameworks, Micro Architektur) • Extraneous Cognitive Load - bezieht sich auf die Umgebung 
 (z.B. Deployment, Kon fi guration, Konsolen Befehle) • Germane Cognitive Load - bezieht sich auf bestimmte Aspekte in der Geschäftsdomäne (aka. „value added“ Thinking and Learning) 8 https://teamtopologies.com
  8. // Cloud Native Day // Essentielle Tools für produktive und

    glückliche #CloudNativeNerds // @LeanderReimer #qaware #ConCon21 Minimierung der Intrinsic Cognitive Load 
 (Training, Peer Programming, Standards, Sprache …) 9
  9. // Cloud Native Day // Essentielle Tools für produktive und

    glückliche #CloudNativeNerds // @LeanderReimer #qaware #ConCon21 Eliminierung der Extraneous Cognitive Load 
 (Automatisierung, Abstraktion, Standardisierung, …) 10
  10. // Cloud Native Day // Essentielle Tools für produktive und

    glückliche #CloudNativeNerds // @LeanderReimer #qaware #ConCon21 Nutze das richtige Werkzeuge für den Job! 11 Getty Images Liliboas Skaffold Tilt kustomize Buildpacks Pulumi
  11. // Cloud Native Day // Essentielle Tools für produktive und

    glückliche #CloudNativeNerds // @LeanderReimer #qaware #ConCon21 Was sind Cloud-native Buildpacks? • Buildpacks sind kombinierbare, modulare Tools um Quellcode in OCI Images zu übersetzen. • Das Buildpack Konzept wurde von Heroku in 2011 eingeführt. Adoptiert von Cloud Foundry und anderen PaaS. • CNCF Projekt initiiert von Pivotal und Heroku im Januar 2018 • Unterstützung von Enterprise Ops die viele Anwendungen verwalten müssen • Zahlreiche Default Build Packs sowie die Möglichkeit für eigene Build Packs 12
  12. // Cloud Native Day // Essentielle Tools für produktive und

    glückliche #CloudNativeNerds // @LeanderReimer #qaware #ConCon21 Kubernetes Native Con fi guration Management • DRY - Don’t repeat yourself. • Umgebungsabhängige Anpassung von Kubernetes Resource De fi nitionen ganze ohne Templates • Wird von kubectl mittels apply -k direkt unterstützt • Siehe https://kustomize.io/tutorial 13
  13. // Cloud Native Day // Essentielle Tools für produktive und

    glückliche #CloudNativeNerds // @LeanderReimer #qaware #ConCon21 Pulumi - Modern Infrastructure as Code. • Imperative management and de fi nition of Kubernetes applications and objects using familiar programming language • Use the same tools to build your application and its con fi guration • Compose and share reusable components through code libraries • Terraform alternative: supports all major cloud providers (AWS, …) • Similar projects: Amazon CDK, cdk8s 14
  14. // Cloud Native Day // Essentielle Tools für produktive und

    glückliche #CloudNativeNerds // @LeanderReimer #qaware #ConCon21 Fast. Repeatable. Simple. 
 Local Kubernetes development. • https://skaffold.dev • Übernimmt den Work fl ow zum Erstellen, Pushen und Bereitstellen einer Anwendung • Beobachtet relevante Dateisystem Änderungen und löst kontinuierlich das Erstellen und Bereitstellen der Änderungen aus • Ermöglicht die Synchronisierung von statischen Ressourcen ohne das Docker Image neu zu bauen • Unterstützung für unterschiedliche Umgebungen über Pro fi les, Env Vars Templates und kube-context Aktivierung 15
  15. // Cloud Native Day // Essentielle Tools für produktive und

    glückliche #CloudNativeNerds // @LeanderReimer #qaware #ConCon21 The Scaffold Work fl ow in a Nutshell 16
  16. // Cloud Native Day // Essentielle Tools für produktive und

    glückliche #CloudNativeNerds // @LeanderReimer #qaware #ConCon21 — Stressless Local K8s Development • https://tilt.dev • Einfache Verwaltung von komplexen Microservice Konstellati • Unterstützung zahlreicher Experten Tricks für die Entwicklung in K8s Umgebungen, wie Port Forwarding oder Live Updates • Beobachtet das Dateisystem und Aktualisiert die Deployments in Sekunden bei allen relevanten Änderungen • Streamed Logs, Events und Pod Änderungen um schnell etwaige Probleme zu identi fi zieren und anzuzeigen • Bietet Console HUD und nette Web UI 17