Mais conteúdo relacionado Semelhante a Agiles Enterprise Big Data Testmanagement (20) Mais de OPITZ CONSULTING Deutschland (20) Agiles Enterprise Big Data Testmanagement1. © OPITZ CONSULTING GmbH 2015 Seite 1Big Data Testmanagement
Tobias Bürger,
Teamleiter Personalization & Big Data
ehem. Payback GmbH
Jochen Wilms, Innovation Manager BI
OPITZ CONSULTING Deutschland GmbH
Agile Entwicklungs- und Testprozesse auf Big
Data Projekte übertragen
München, 23. Juni 2015
Enterprise Big Data Testmanagement
T4P-1
2. © OPITZ CONSULTING GmbH 2015 Seite 2Big Data Testmanagement
Mission
Wir entwickeln gemeinsam mit allen
Branchen Lösungen, die dazu führen, dass
sich diese Organisationen besser entwickeln
als ihr Wettbewerb.
Unsere Dienstleistung erfolgt
partnerschaftlich und ist auf eine langjährige
Zusammenarbeit angelegt.
Leistungsangebot
Application Lifecycle Management
IT-Beratung
Business-Lösungen
Managed Services
Training und Coaching
IT-Trends
Märkte
Branchenübergreifend
Über 600 Kunden
29%
Industrie / Versorger /
Telekommunikation
29%
Handel / Logistik /
Dienstleistungen
42%
Öffentliche Auftraggeber / Banken und
Versicherungen / Vereine und Verbände
Eckdaten
Gründung 1990
400 Mitarbeiter
9 Standorte
3. © OPITZ CONSULTING GmbH 2015 Seite 3Big Data Testmanagement
Adaption von Big Data im
Application Lifecylce Management BIGDATA
ADAPTION
OPITZ CONSULTING bietet ein ganzheitliches
Application-Lifecycle-Management ALM zur
Sicherung des Wertbeitrags der
Anwendungssysteme im
gesamten Lebenszyklus.
BIGDATA
ADAPTION
- Big Data
Strategie
- Werkzeug-
Portfolio (hadoop
& Friend vs.
bestehend)
- Aufbau CC
- Systemarchitkt.
- Vorgehens-
modell
- Demand-
Mgmnt.
- License
Mgmnt.
- Entwicklung/
Installation/
Konfiguration/
Implementierung/
Coding
- Testmanagement
- Projektmgmnt.
- Produkt- &
Release-
management
- Monitoring/
Performance
ALM wird
aktuell vom
CC Big Data
& Customer
Intelligence
um Big Data
Best
Practices
erweitert.
4. © OPITZ CONSULTING GmbH 2015 Seite 4Big Data Testmanagement
Herausforderung für einen produktiven Big Data
Einsatz
Wartung/
Betrieb
Planung/
Design
Implemen-
tierung
Management Demand Org. Delivery Org. Operations
Scoping Skills & Anforderungen
Kapazitätsplanung
Sicherheitskonzept Integration
Teststrategien
Einrichtung einer Big
Data Landschaft
Produktauswahl
Betrieb des Clusters
Daten- & Prozess-
integration
Release Management
5. © OPITZ CONSULTING GmbH 2015 Seite 5Big Data Testmanagement
Agenda
1. Big Data Systemlandschaft
2. Big Data Testmanagement
3. Schritte zur erfolgreichen Big Data Teststrategie
4. Implementierung eigener Testframeworks- und –methoden
5. Lessons Learned
6. © OPITZ CONSULTING GmbH 2015 Seite 6Big Data Testmanagement
11 Big Data Systemlandschaft
7. © OPITZ CONSULTING GmbH 2015 Seite 7Big Data Testmanagement
Big Data / DWH Integrationsarchitekturen
Active Archive Analytics Lab
Preprocessing Stage Parallel Warehouse / Streaming
8. © OPITZ CONSULTING GmbH 2015 Seite 8Big Data Testmanagement
Big Data als Preprocessing Stage
9. © OPITZ CONSULTING GmbH 2015 Seite 9Big Data Testmanagement
Eine Big Data Systemarchitektur
Hadoop als Preprocessing Umgebung
Anbindung nicht relational, tabellarischen Datenquellen (3 Quellen im PoC)
Durchführung Aufwändiger Transformations-, Anreicherungs-, Zuordnungs-
und Aggregationsoperationen in Hadoop
Bidirektionale Kommunikation mit der Bestands-DWH-Architektur
...
Concentrator
Edge
Node
Hadoop Cluster
ETL
DWH
OLTP
Ingress via
Ingress via
Egress via
Orchestration via
10. © OPITZ CONSULTING GmbH 2015 Seite 10Big Data Testmanagement
22 Big Data Testmanagement
11. © OPITZ CONSULTING GmbH 2015 Seite 11Big Data Testmanagement
BI – testgetrieben & agil
TDD
Fail
PassRefactor
Product backlog Sprint backlog Sprint Working increment
Die meisten
Herausforderungen
in BI Projekten sind
organisatorischer
und nicht technischer
Natur. Agiles
Projektvorgehen
nimmt einen Teil der
Komplexität aus BI-
Projekten.
Beschreibung von
Strukturen und Abläufen in
Form von Tests
Continous Integration &
Deployment
Inkrementelle
Entwicklung
12. © OPITZ CONSULTING GmbH 2015 Seite 12Big Data Testmanagement
Test Staging
Unit Tests
Komponenten Tests
System Tests
Integrations Tests
Ext. Integrations Tests
Abnahme Tests
Lokale Umgebung
Build Server
Test
Umgebung
Preprod
Umgeb.
13. © OPITZ CONSULTING GmbH 2015 Seite 13Big Data Testmanagement
Testarten & -auslöser
Functional
Non-
functional
Sanity
Health
Smoke
Art Unit Int. Sys.Int. UAT
Func. Commit Release
OR Data
structure
change
Release
OR Data
structure
change
Release
Non-func. Deploy
comp. OR
new
comp. OR
upgrade
Deploy
comp. OR
new
comp. OR
upgrade
Sanity Before
end-to-
end
Before
end-to-
end
Smoke Deploy
comp. OR
new
comp.
Health Upgrade Upgrade
14. © OPITZ CONSULTING GmbH 2015 Seite 14Big Data Testmanagement
Die Big Data Herausforderungen
Testvorbereitung
Hohe Anforderungen (Logik und Aufwand) an Testdatengenerierung
Isolierte Tests schwer durchführbar
Testausführung
Laufzeiten sind deutlich höher
Testen auf lokalen Umgebungen nur teilweise möglich
Die Infrastruktur ist immer ein potentieller Fehlerfaktor
Testentwicklung
Nur wenige, recht experimente Testframeworks vorhanden
Viele Werkzeuge basierend auf unterschiedlichen Technologien
15. © OPITZ CONSULTING GmbH 2015 Seite 15Big Data Testmanagement
3 Schritte zur erfolgreichen Big Data
Teststrategie3
16. © OPITZ CONSULTING GmbH 2015 Seite 16Big Data Testmanagement
Frameworkkomplexität im Vorfelde verringern
...
17. © OPITZ CONSULTING GmbH 2015 Seite 17Big Data Testmanagement
Testobjekte
Data Stream Tests
l Volume tests
l Completness of data validation
l Resilence tests
Log Ingress Tests
l Volume tests
l Resilence tests
l Data structure validation
DB Ingress Tests
l Volume tests
l Data structure validation
l Stress tests (e.g. invalid formats)
Transformation Tests
l Unit tests
l Business Rule tests
l Stress tests (e.g. invalid formats)
l Performance tests
Egress Tests
l Resilence tests
l Data structure validation
Infrastructure Tests
l Performance tests
l Resilence tests
l Volume tests (e.g. Terasort)
1
2
3
4 5
6
18. © OPITZ CONSULTING GmbH 2015 Seite 18Big Data Testmanagement
Testchronologie
Ein Drehbuch für die Ausführung der Testgruppen
Welche Testobjekte müssen wann getestet werden?
Auslöser, Stopper und Abhängigkeiten für Tests definieren
Testabfolgen von bottom up aufziehen, um Störfehler zu reduzieren
Hardware Tests
l RAID controllers
l Disk I/O
l Network
Hadoop Tests
l HDFS benchmark
l MapReduce benchmark
l Ecosystem health
PoC Tests
l Dev
l End-to-end
l Operations
Application Tests
l Dev
l Approval
l Operations
Upgrade Tests
l Migration
l Portability
l Interoperability
19. © OPITZ CONSULTING GmbH 2015 Seite 19Big Data Testmanagement
Testmatrix
Gliederung nach 4 Dimensionen
Test Typ → 5 Ausprägungen
Test Stage → 6 Ausprägungen
Komponente → 9 Ausprägungen
Anwendungsfall → 7 Ausprägungen
Beschreibung der Testobjekte für relevante Kombinationen
30 Testobjekte wurden definiert
Ein paar Beispiele
Type Stage Comp. Use Case Description / Example
Non-functional Sys. Int. Flume Ingress Using big files for import and measure required time. Increasing
number of import Jobs on various big files. Check if jobs time out or
cluster does not response anymore. Track Number of concurrent
import jobs.
Functional Unit Pig Transform Unit testing pig scripts using appropriate IDE tools (e.g. PigUnit).
Testing Pig UDF using JUnit or PyUnit.
Smoke Int.+ YARN Infra Committing MapReduce JAR via CLI (e.g. wordcount.jar provided with
default hadoop installation).
20. © OPITZ CONSULTING GmbH 2015 Seite 20Big Data Testmanagement
Testpriorisierung
Risikobewertung
Nutzungsfrequenz
Kundenanzahl
Prozessierungsart
Finanzielle Auswirkung
Kundenauswirkung
Komplexitätsbewertung
Evaluationsaufwand
Entwicklungsaufwand
Testaufwand
Ermittlung der „Low hanging fruits“
Risiko-
tabelle
Komplexitäts-
tabelle
Komplexitäts-
tabelle
Komplexitäts-
tabelle
Komplexitäts-
tabelle
Komplexitäts-
tabelle
Test
Stages
Test-
objekte
Test-
arten
Priorisierung
Selektieren!
21. © OPITZ CONSULTING GmbH 2015 Seite 21Big Data Testmanagement
4 Implementierung eigener
Testframeworks und -methoden4
22. © OPITZ CONSULTING GmbH 2015 Seite 22Big Data Testmanagement
Cluster Infrastruktur Validierung
Zielsetzung
Validierung der Installation
Performance-Messung
Durchführung vor und nach Hadoop Installation
Pre-Installation Tests
Cluster Konfiguration
Hauptspeicher Benchmark
Netzwerk Benchmark
Post-Installation Tests
Check von Ports & Services
Smoke Tests für alle Hadoop Komponenten
HDFS und MapReduce Benchmark
23. © OPITZ CONSULTING GmbH 2015 Seite 23Big Data Testmanagement
Testdatengenerierung
Besondere Herausforderungen
Größere Datenmengen erforderlich
Verschiedene Datenformate erforderlich
Tests erfordern oftmals das einstreuen von gesteuerten Abweichungen und
Fehlerquoten
Das Problem mit der Datenmenge
Verteilte Datenerstellung notwendig → z.B. via Nutzung der Hadoop
Infrastruktur selbst / MapReduce Testgeneratoren
Beziehungen zwischen Entitäten einzuhalten ist sehr speicher- und
suchintensiv
Wenige Anbieter von Standardsoftware
Parallel Data Generation Framework von Bankmark
Setup aus Datengenierungsbibliotheken für Pig oder Spark
24. © OPITZ CONSULTING GmbH 2015 Seite 24Big Data Testmanagement
Pig Unit-Testing mit Zero-Coding
data = LOAD 'input' AS (query:CHARARRAY);
queries_group = GROUP data BY query;
queries_count = FOREACH queries_group
GENERATE group AS query, COUNT(data) AS total;
queries_ordered = ORDER queries_count
BY total DESC, query;
queries_limit = LIMIT queries_ordered $n;
STORE queries_limit INTO 'output';
Pig ist ein Hadoop Skriptsprache
Doch wie testet man diese Skripte?
Pig basierte Unit Tests sind
möglich, erfordern jedoch
Java-Programmiererfahrung.
@Test
public void testPigScript() throws Exception {
PigTestConf conf = new PigTestConf(testFile);
PigTest test = createPigTest(pigFile, conf.getArgsAsArray());
InputMocker inputMocker = new InputMocker(test);
for (String inputKey : conf.getInput().keySet())
inputMocker.mock(inputKey, conf.getInput().get(inputKey));
...
25. © OPITZ CONSULTING GmbH 2015 Seite 25Big Data Testmanagement
Pig Unit-Testing mit Zero-Coding
<test>
<args>
<arg name="INPUT">DUMMY</arg>
<arg name="OUTPUT">DUMMY</arg>
<arg name="ENVIRONMENT">src/test/resources/pig/test1</arg>
</args>
<input>
<data name="a">
<elem>{"requestTimestamp":"2014-07-11T11:...</elem>
</data>
</input>
<output>
<data name="f">
<elem>(20140711,41944004,5,,,2,1)</elem>
<elem>(20140711,41944009,5,,,1,1)</elem>
...
</data>
</output>
</test>
XML
pig-tester.jar
Surefire
Test
Reports
26. © OPITZ CONSULTING GmbH 2015 Seite 26Big Data Testmanagement
Big Data Testing mit Continous Integration
Projekt
Repository
pig-tester.jar
.pig
.xml
.pig
.xml
.pig
.xml
.pig
.xml
Ziel ist eine Integration in
bestehende CI Architekturen
Jenkins Nexus
Testsystem
Hadoop
Logstash,
Kibana,
Splunk,
...
28. © OPITZ CONSULTING GmbH 2015 Seite 28Big Data Testmanagement
Lessons Learned
Werkzeugvielfalt minimieren
Hadoop = Infrastruktur → DevOps wird immer wichtiger
Umgebungen für no-coding Implementierung und Testen sind
realisierbar
Deutlich mehr Testobjekte → Testpriorisierung wird wichtiger
CI & CD wird durch Werkzeugkomplexität aufwändiger
Nicht für alles gibt es bereits fertige Lösungen → Viele
Integration und unterstützende Werkzeuge entstehen in
Eigenentwicklung
30. © OPITZ CONSULTING GmbH 2015 Seite 30Big Data Testmanagement
Kontakt
Jochen Wilms, Innovation Manager BI
OPITZ CONSULTING GmbH
jochen.wilms@opitz-consulting.com
Telefon +49 2261 6001 1734
Mobil +49 173 727 9026
Dr. Tobias Bürger,
Teamleiter Personalization & Big Data
ehem. PAYBACK GmbH
tobias@tobiasbuerger.com
31. © OPITZ CONSULTING GmbH 2015 Seite 31Big Data Testmanagement
Vielen Dank für Ihre
Aufmerksamkeit!
Besuchen Sie uns am Stand 44!