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

Infrastructure as Code ohne Tests ist per se ka...

Infrastructure as Code ohne Tests ist per se kaputt!

TDD ist aus der modernen, agilen Software-Entwicklung nicht mehr wegzudenken. Doch was für unseren Produktiv-Code eine Selbstverständlichkeit geworden ist, trifft mitnichten auf unseren Infrastruktur-Code zu. Egal ob nun Dockerfile, Terraform HCL oder Kubernetes YAML, der dominierende Test-Ansatz heißt hier stattdessen: Trial and Error! In Zeiten von Public Cloud und Kubernetes spielt unser Infrastruktur-Code jedoch eine absolut tragende Rolle, es ist an der Zeit diesen Code auch nach allen Regeln der Kunst automatisiert zu testen. Diese Session zeigt anhand vieler Beispiele welche Ansätze, Tools und Frameworks dabei helfen können.

M.-Leander Reimer

September 15, 2021
Tweet

More Decks by M.-Leander Reimer

Other Decks in Technology

Transcript

  1. Testen ist eine Möglichkeit unter zahlreichen konstruktiven und analytischen Maßnahmen

    der Qualitätssicherung. QAware | 4 Maßnahmen der Qualitätssicherung Konstruktiv Analytisch Definierte Vorgehen Dokumentenvorlagen Werkzeuge und Methoden Erfahrungsaustausch Ausbildung Prozesse Ergebnisse Assessments Audits Appraisals Statische Analyse Reviews Walkthroughs Testen Messen Statische Prüfung Dynamische Prüfung
  2. ATDD und TDD sind bekannte Praktiken in agilen Projekten und

    etabliert auf Ebene der A und T Architektur. QAware | 7
  3. Die TI Architektur mit ihren Technologien und Frameworks, als auch

    die Zuständigkeiten haben sich gewandelt. QAware | 8 Ops
  4. Ist Trial and Error die gängige Praktik der Qualitätssicherung für

    unsere TI Architektur? QAware | 9 Write some code Run code Write some code Run code Write some code Run code ? Change Dockerfile docker build docker run Change Dockerfile docker build docker run Change Dockerfile docker build docker run ? Change K8s YAML kubectl apply Change K8s YAML kubectl apply Change K8s YAML kubectl apply ? Change Terraform Definition terraform apply Change Terraform Definition terraform apply Change Terraform Definition terraform apply ?
  5. Es gibt viele mögliche Antworten und Gründe für mangelnde Qualitätssicherung

    und Tests unseres Infrastruktur Codes. QAware | 11 ▪ Hohe Cognitive Load und fehlendes Know-How der Teams. – Junge Teams haben Anfangs oft noch nicht das nötige Know-How. Schulungen + Konferenzen! – Reduzierung der Cognitive Load über standardisiertes, Team weites Developer Tooling + CI. ▪ Feature Greed und Awareness seitens der Product Owner. – Product Owner müssen neben Features auch die nötigen betrieblichen Aktivitäten priorisieren. – Festen Anteil an Ops related Issues vereinbaren. – Ops related Tasks als Teil der DoD und Acceptance Criteria vereinbaren. ▪ Zeitdruck oder unrealistische Pläne. – Das Standard Argument bzw. Grund für nicht vorhandene Tests. Leider immer noch zu oft! – Technical Debt transparent machen. ▪ Hohe Infrastruktur Komplexität für Absicherung von Infrastruktur Code. – Besonders deklarative IaC Ansätze lassen sich nur über Integrationstest absichern. – Hierfür braucht es dedizierte Infrastruktur und Umgebungen: Kosten + Wartung.
  6. qaware.de QAware GmbH Aschauer Straße 32 81549 München Tel. +49

    89 232315-0 [email protected] twitter.com/qaware linkedin.com/company/qaware-gmbh xing.com/companies/qawaregmbh slideshare.net/qaware github.com/qaware