Slide 1

Slide 1 text

qaware.de Infrastructure as Code ohne Tests ist per se kaputt! Mario-Leander Reimer [email protected] @LeanderReimer

Slide 2

Slide 2 text

2 Mario-Leander Reimer Principal Software Architect @LeanderReimer #cloudnativenerd #qaware

Slide 3

Slide 3 text

Die ISO 25010 definiert 8 Kriterien für Software Qualität. QAware | 3

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

Die 3 essentiellen Sichten einer Software-Architektur definieren die nötigen Felder der Qualitätssicherung. QAware | 5

Slide 6

Slide 6 text

Die 3 essentiellen Sichten einer Software-Architektur definieren die nötigen Felder der Qualitätssicherung. QAware | 6 Biz Dev Ops

Slide 7

Slide 7 text

ATDD und TDD sind bekannte Praktiken in agilen Projekten und etabliert auf Ebene der A und T Architektur. QAware | 7

Slide 8

Slide 8 text

Die TI Architektur mit ihren Technologien und Frameworks, als auch die Zuständigkeiten haben sich gewandelt. QAware | 8 Ops

Slide 9

Slide 9 text

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 ?

Slide 10

Slide 10 text

Infrastructure as Code ohne Tests ist per se kaputt!

Slide 11

Slide 11 text

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.

Slide 12

Slide 12 text

Demos and Examples https://github.com/lreimer/iac-testing

Slide 13

Slide 13 text

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