Agile Methoden als Erfolgsfaktor für BI und Big Data Projekteinovex GmbH
Datengetriebene Anwendungssysteme wie Business Intelligence oder Big Data Lösungen haben ihre ganz eigenen Herausforderungen sowohl in der Entwicklung als auch im Betrieb:
BI- und Big Data Anwendungen integrieren in der Regel Informationen aus vielen verschiedenen Vorsystemen und habe entsprechend viele Schnittstellen. Die beste Implementierung liefert keinen Nutzen, wenn die Datenqualität nicht das hält, was sie verspricht. Die Performance der Anwendungen hängt massiv vom Datenvolumen ab, das in Entwicklungs- und Testumgebungen nicht zur Verfügung steht.
Agile Konzepte wie DevOps, Test Driven Deveolpment und Scrum liefern hervorragend geeignete methodische Ansätze, um diesen Herausforderungen erfolgreich zu begegnen. In diesem Vortrag möchte ich einige Best Practices vorstellen, wie sich diese agilen Methoden in „Data-driven Applications“ erfolgreich einsetzen lassen und wie Open Source Werkzeuge uns in unseren Projekten dabei unterstützen.
Bug bites elephant? Testgetriebene QS in der Big-Data-Entwicklunginovex GmbH
In diesem Vortrag werden Best Practices der qualitätsgetriebenen Entwicklung von Hadoop-Anwendungen zur Log-Analyse bei 1&1 (1 Milliarde Events/Tag) vorgestellt. Mit FitNesse als Kernkomponente beziehen wir verschiedene Beteiligte in die Definition von Akzeptanztests ein, parametrisieren das Deployment von Artefakten/Workflows und verwenden Pig zur Inspektion serialisierter Output-Formate.
Oil and Gas Exploration in the Arctic - Vast, Technically Recoverable Oil and...ReportsnReports
This document summarizes an oil and gas industry report about exploration in the Arctic region. It finds that the Arctic holds an estimated 22% of the world's undiscovered oil and gas resources. International oil companies are increasing exploration there due to new technologies, shrinking sea ice, and tax incentives from Russia. However, exploration also faces challenges from environmental groups and harsh conditions. The report details exploration activities and partnerships between oil companies and Russia's Rosneft and Gazprom in the Arctic.
El documento trata sobre la hidrosfera y la importancia del agua. Explica que la hidrosfera incluye todas las aguas de la Tierra en sus estados líquido, sólido y gaseoso, y que el agua cubre las tres cuartas partes del planeta. También describe brevemente el ciclo del agua, las aguas continentales y sugiere actividades como leer un texto, ver un video e infografía, y responder preguntas para comprender mejor la importancia vital del agua en la Tierra.
Agile Methoden als Erfolgsfaktor für BI und Big Data Projekteinovex GmbH
Datengetriebene Anwendungssysteme wie Business Intelligence oder Big Data Lösungen haben ihre ganz eigenen Herausforderungen sowohl in der Entwicklung als auch im Betrieb:
BI- und Big Data Anwendungen integrieren in der Regel Informationen aus vielen verschiedenen Vorsystemen und habe entsprechend viele Schnittstellen. Die beste Implementierung liefert keinen Nutzen, wenn die Datenqualität nicht das hält, was sie verspricht. Die Performance der Anwendungen hängt massiv vom Datenvolumen ab, das in Entwicklungs- und Testumgebungen nicht zur Verfügung steht.
Agile Konzepte wie DevOps, Test Driven Deveolpment und Scrum liefern hervorragend geeignete methodische Ansätze, um diesen Herausforderungen erfolgreich zu begegnen. In diesem Vortrag möchte ich einige Best Practices vorstellen, wie sich diese agilen Methoden in „Data-driven Applications“ erfolgreich einsetzen lassen und wie Open Source Werkzeuge uns in unseren Projekten dabei unterstützen.
Bug bites elephant? Testgetriebene QS in der Big-Data-Entwicklunginovex GmbH
In diesem Vortrag werden Best Practices der qualitätsgetriebenen Entwicklung von Hadoop-Anwendungen zur Log-Analyse bei 1&1 (1 Milliarde Events/Tag) vorgestellt. Mit FitNesse als Kernkomponente beziehen wir verschiedene Beteiligte in die Definition von Akzeptanztests ein, parametrisieren das Deployment von Artefakten/Workflows und verwenden Pig zur Inspektion serialisierter Output-Formate.
Oil and Gas Exploration in the Arctic - Vast, Technically Recoverable Oil and...ReportsnReports
This document summarizes an oil and gas industry report about exploration in the Arctic region. It finds that the Arctic holds an estimated 22% of the world's undiscovered oil and gas resources. International oil companies are increasing exploration there due to new technologies, shrinking sea ice, and tax incentives from Russia. However, exploration also faces challenges from environmental groups and harsh conditions. The report details exploration activities and partnerships between oil companies and Russia's Rosneft and Gazprom in the Arctic.
El documento trata sobre la hidrosfera y la importancia del agua. Explica que la hidrosfera incluye todas las aguas de la Tierra en sus estados líquido, sólido y gaseoso, y que el agua cubre las tres cuartas partes del planeta. También describe brevemente el ciclo del agua, las aguas continentales y sugiere actividades como leer un texto, ver un video e infografía, y responder preguntas para comprender mejor la importancia vital del agua en la Tierra.
This document provides a market research report on the home care industry in Slovakia. It summarizes that home care experienced stable growth in 2011, with multinational companies continuing to dominate the market. Product sophistication boosted sales as consumers demanded high-quality, value-added products. Over the forecast period, home care is expected to see continued growth due to Slovakia's stable consumer base and increasing consumer education. The report provides detailed analysis of industry trends, market indicators and data, as well as profiles of key companies in the Slovakia home care market.
2013 German Microbiology Testing Market: Opportunities and Strategies for Sup...ReportsnReports
This document provides a 983-page market report on the 2013 German microbiology testing market. It includes highlights on major infectious disease tests, ten-year test volume and sales forecasts for 80 microbiology tests, profiles of leading suppliers, and emerging diagnostic technologies. The table of contents outlines the extensive coverage of infectious diseases and diagnostic tests. The report is available for purchase for $5900 for a single-user license from the listed website.
Legilative and institutional trajectories for interfacing the research policy...Costy Costantinos
This document discusses challenges and opportunities for strengthening the connection between research, policy, and practice in Africa. It notes that historically, African states have exercised tight control over citizens, undermining civil society. While governments have undertaken reforms to improve public sector performance, challenges remain. The paper analyzes strengths, weaknesses and opportunities in research, policy and practice linkages. It argues that institutional transformation, responsive structures, committed leadership, and public participation are needed to better connect research, policy, and solutions for sustainable African development.
The Patterson Foundation (TPF) is a nonprofit that encourages philanthropy through communications, finance, and technology. TPF operates in the space of possibilities by supporting collaborations among other nonprofits working in the same areas. Specifically, TPF's Collaborative Restructuring Initiative aims to increase efficiency and impact among nonprofits by encouraging long-term collaborations, reducing duplication of efforts, and applying sound business practices.
This document outlines challenges for being smart and social:
1. The human challenge is freeing employees from "hunter/gatherer mode" to promote creative and intelligent social responses that provide business insights and amplify the brand.
2. The data challenge is unleashing insights from vast amounts of social data by integrating diverse data sources, elevating important data points, enabling fast analysis through visualization. There are not enough data analysts to make sense of all the information.
3. The efficiency challenge is overcoming isolated work to encourage high-performing individuals to collaborate as a team by sharing social data across the organization quickly and consistently while optimizing workflows and roles.
El informe resume las actividades realizadas por los departamentos de bacheo y balizado, y mantenimiento urbano de los servicios públicos entre el 22 y 27 de febrero de 2010 en Cuautitlán Izcalli, México. Las actividades incluyeron programas de bacheo en la Avenida Ejército Nacional e Infonavit Norte el 25 de febrero, y de balizado y pintura en Las Conchitas el 27 de febrero. Los programas de mantenimiento urbano incluyeron encalado de bardas perimetrales en varias zonas e infra
The Husky Helpers, a group of students from MEHMS, offer assistance with tasks around the home and provide contact information for requesting help. They encourage community members to share ideas to improve local clubs and the community on their website. The students can help with various existing clubs and provide photos of the types of tasks they are willing to assist with, such as yardwork, cleaning, and transportation.
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)Florian Wolters
German slides that give a overview about developer tests in the C++ programming language. It tries to underline the dependencies between software design, clean code, software quality and the software testing activity itself.
Selenium bietet als Testwerkzeug eine große Spanne an Möglichkeiten, Tests für Webcontent zu erstellen. Häufig haben Nutzer jedoch Probleme, mit Selenium robuste Tests zu erzeugen. Ursache für diese Probleme ist oftmals nicht oder ungenügend berücksichtigtes Zeitverhalten.
Selenium bietet von Haus aus Wege an, diese Probleme zu bewältigen. Bei United Planet gehen wir seit Anfang 2017 noch einen Schritt weiter, indem wir ein hauseigenes Selenium Framework verwenden. Die damit gemachten Erfahrungen möchten wir gern mit den Konferenzteilnehmern teilen. Wir möchten unseren Ansatz zeigen, einen hohen Stabilitätsgrad, bei vernünftiger Laufzeit zu erreichen. Darüber hinaus, möchten wir vorführen, wie es uns durch Nutzung von Docker gelingt, unsere Selenium Tests zu parallelisieren und wie wir dabei vorgehen, um fehlgeschlagene Tests mit Hilfe von Screenshots, Videos und Logausgaben zu debuggen.
Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017Torsten Kleiber
Oft fällt die Frage, ob man PL/SQL überhaupt automatisiert testen kann. Deshalb behandelt dieser Vortrag u.a. die folgenden Themen:
- Welche Fehler will ich mit Testautomatisierung überhaupt vermeiden?
- Änderung des Datenmodells
- Änderung bestehender Programme
- Datenbank-Patching/-Upgrade
- Wie sieht eigentlich mein Entwicklungsprozess aus?
- Wie viele Entwickler habe ich?
- Welches Wissen haben meine Entwickler?
- Muss ich branchen?
- Muss ich häufig meinen Code umstrukturieren?
- Welche Frameworks gibt es für die Testautomatisierung?
- SQL Developer
- Quest Code Tester
- utPLSQL
- ruby-plsql-spec
- Welche Voraussetzungen muss ich erfüllen?
- Datenbankversionen
- Infrastruktur
- Für welchen Zweck eignet sich welches Framework?
- Unterstützung von CI-Servern
- Unterstützung von Build Systemen wie z.B. Maven
- Test Driven Development
Neben der Theorie sehen Sie natürlich auch in Demo's, wie sich der Testcode "anfühlt".
Der Vortrag soll Ihnen eine Entscheidungsgrundlage liefern, ob Sie demnächst auch automatisch testen wollen und können!
Dank vieler praktischer Funktionen können Entwickler unter ColdFusion relativ schnell und einfach Applikationen entwickeln und produktiv einsetzen.
Doch wie sieht es aus wenn diese Applikationen dann intensiv genutzt werden? Von hunderttausenden Usern in unzähligen Ländern, Sprachen und Zeitzonen? Wenn Inhalte laufend generiert und abgefragt werden?
Dieser Talk zeigt, wie ColdFusion in einem Enterprise Projekt eingesetzt werden kann. Welche Architektur für einen sicheren Betrieb rund um die Uhr und die Welt benötigt wird. Welche ColdFusion Enterprise-Funktionen gebraucht werden und welche nicht, welche überhaupt funktionieren, welche Lektionen wir im praktischen Einsatz gelernt haben und warum Optimierungen im Milisekunden-Bereich tatsächlich Tage sparen können.
Agiles Testen (z.B. in Scrum, Kanban, XP) ist zu einem unverzichtbaren Bestandteil agiler Softwareentwicklung geworden.
Testen in agilen Entwicklungsprojekten unterscheidet sich vom klassischen Testen in erster Linie dadurch, dass Testen eine präventive Maßnahme ist und dass die Tests viel häufiger ausgeführt werden müssen. Der Fokus liegt dabei in der Einbindung von Testern unter Beachtung des agilen Manifests und der Anwendung agiler Prinzipien auf das Testen, wie beispielsweise schnelles Feedback, hoher Automatisierungsgrad, Auflösung starrer Teststufen, enge Zusammenarbeit in selbstorganisierten Teams.
Inhalt
- Definition
- Agiles Testen im Team
- Testkategorien
- Unit-Tests
- TDD/ATDD/BDD
- 3 Amigo
- Akzeptanztests
- Exploratives Testen
- Continuous Integration, Delivery & Deployment
- Integration in Scrum
- Genereller Umgang mit Bugs
When discussing about build systems, still Ant and Maven are the most prominent. This presentation is from a talk about characteristics of Ant and Maven, how they compare and if its worth migrating between both.
Slides are in German, but IT topics tend to be understandable even by non native speakers.
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...Andreas Wissel
Mit den stetig wachsenden Möglichkeiten, die Cross-Platform-Anwendungen bieten, wachsen auch die Anforderungen an deren Design. Skalierbarkeit, Flexibilität und Wandelbarkeit gehören zu den Grundprinzipien eines modernen User-Interfaces. Andreas Wissel und Christian Liebel erarbeiten mit Ihnen in diesem Workshop anhand von Praxisbeispielen einen robusten Workflow. Mit Storybook und Angular lassen sich so isolierte, test- und wartbare Komponenten im Handumdrehen umsetzen. Ihre Designer und Entwickler werden es lieben.
See video: http://youtu.be/6e4HnoSs2J8 - Jetzt anfragen: http://seibert.biz/anfrage - Joachim Seibert und Martin Seibert (beide //SEIBERT/MEDIA) stellen das Continous Deployment (Continous Delivery) bei TwentyFeet und das Konzept für agile Software-Entwicklung im allgemeinen vor. Mehr Info: http://seibert.biz/continousdeployment
This document provides a market research report on the home care industry in Slovakia. It summarizes that home care experienced stable growth in 2011, with multinational companies continuing to dominate the market. Product sophistication boosted sales as consumers demanded high-quality, value-added products. Over the forecast period, home care is expected to see continued growth due to Slovakia's stable consumer base and increasing consumer education. The report provides detailed analysis of industry trends, market indicators and data, as well as profiles of key companies in the Slovakia home care market.
2013 German Microbiology Testing Market: Opportunities and Strategies for Sup...ReportsnReports
This document provides a 983-page market report on the 2013 German microbiology testing market. It includes highlights on major infectious disease tests, ten-year test volume and sales forecasts for 80 microbiology tests, profiles of leading suppliers, and emerging diagnostic technologies. The table of contents outlines the extensive coverage of infectious diseases and diagnostic tests. The report is available for purchase for $5900 for a single-user license from the listed website.
Legilative and institutional trajectories for interfacing the research policy...Costy Costantinos
This document discusses challenges and opportunities for strengthening the connection between research, policy, and practice in Africa. It notes that historically, African states have exercised tight control over citizens, undermining civil society. While governments have undertaken reforms to improve public sector performance, challenges remain. The paper analyzes strengths, weaknesses and opportunities in research, policy and practice linkages. It argues that institutional transformation, responsive structures, committed leadership, and public participation are needed to better connect research, policy, and solutions for sustainable African development.
The Patterson Foundation (TPF) is a nonprofit that encourages philanthropy through communications, finance, and technology. TPF operates in the space of possibilities by supporting collaborations among other nonprofits working in the same areas. Specifically, TPF's Collaborative Restructuring Initiative aims to increase efficiency and impact among nonprofits by encouraging long-term collaborations, reducing duplication of efforts, and applying sound business practices.
This document outlines challenges for being smart and social:
1. The human challenge is freeing employees from "hunter/gatherer mode" to promote creative and intelligent social responses that provide business insights and amplify the brand.
2. The data challenge is unleashing insights from vast amounts of social data by integrating diverse data sources, elevating important data points, enabling fast analysis through visualization. There are not enough data analysts to make sense of all the information.
3. The efficiency challenge is overcoming isolated work to encourage high-performing individuals to collaborate as a team by sharing social data across the organization quickly and consistently while optimizing workflows and roles.
El informe resume las actividades realizadas por los departamentos de bacheo y balizado, y mantenimiento urbano de los servicios públicos entre el 22 y 27 de febrero de 2010 en Cuautitlán Izcalli, México. Las actividades incluyeron programas de bacheo en la Avenida Ejército Nacional e Infonavit Norte el 25 de febrero, y de balizado y pintura en Las Conchitas el 27 de febrero. Los programas de mantenimiento urbano incluyeron encalado de bardas perimetrales en varias zonas e infra
The Husky Helpers, a group of students from MEHMS, offer assistance with tasks around the home and provide contact information for requesting help. They encourage community members to share ideas to improve local clubs and the community on their website. The students can help with various existing clubs and provide photos of the types of tasks they are willing to assist with, such as yardwork, cleaning, and transportation.
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)Florian Wolters
German slides that give a overview about developer tests in the C++ programming language. It tries to underline the dependencies between software design, clean code, software quality and the software testing activity itself.
Selenium bietet als Testwerkzeug eine große Spanne an Möglichkeiten, Tests für Webcontent zu erstellen. Häufig haben Nutzer jedoch Probleme, mit Selenium robuste Tests zu erzeugen. Ursache für diese Probleme ist oftmals nicht oder ungenügend berücksichtigtes Zeitverhalten.
Selenium bietet von Haus aus Wege an, diese Probleme zu bewältigen. Bei United Planet gehen wir seit Anfang 2017 noch einen Schritt weiter, indem wir ein hauseigenes Selenium Framework verwenden. Die damit gemachten Erfahrungen möchten wir gern mit den Konferenzteilnehmern teilen. Wir möchten unseren Ansatz zeigen, einen hohen Stabilitätsgrad, bei vernünftiger Laufzeit zu erreichen. Darüber hinaus, möchten wir vorführen, wie es uns durch Nutzung von Docker gelingt, unsere Selenium Tests zu parallelisieren und wie wir dabei vorgehen, um fehlgeschlagene Tests mit Hilfe von Screenshots, Videos und Logausgaben zu debuggen.
Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017Torsten Kleiber
Oft fällt die Frage, ob man PL/SQL überhaupt automatisiert testen kann. Deshalb behandelt dieser Vortrag u.a. die folgenden Themen:
- Welche Fehler will ich mit Testautomatisierung überhaupt vermeiden?
- Änderung des Datenmodells
- Änderung bestehender Programme
- Datenbank-Patching/-Upgrade
- Wie sieht eigentlich mein Entwicklungsprozess aus?
- Wie viele Entwickler habe ich?
- Welches Wissen haben meine Entwickler?
- Muss ich branchen?
- Muss ich häufig meinen Code umstrukturieren?
- Welche Frameworks gibt es für die Testautomatisierung?
- SQL Developer
- Quest Code Tester
- utPLSQL
- ruby-plsql-spec
- Welche Voraussetzungen muss ich erfüllen?
- Datenbankversionen
- Infrastruktur
- Für welchen Zweck eignet sich welches Framework?
- Unterstützung von CI-Servern
- Unterstützung von Build Systemen wie z.B. Maven
- Test Driven Development
Neben der Theorie sehen Sie natürlich auch in Demo's, wie sich der Testcode "anfühlt".
Der Vortrag soll Ihnen eine Entscheidungsgrundlage liefern, ob Sie demnächst auch automatisch testen wollen und können!
Dank vieler praktischer Funktionen können Entwickler unter ColdFusion relativ schnell und einfach Applikationen entwickeln und produktiv einsetzen.
Doch wie sieht es aus wenn diese Applikationen dann intensiv genutzt werden? Von hunderttausenden Usern in unzähligen Ländern, Sprachen und Zeitzonen? Wenn Inhalte laufend generiert und abgefragt werden?
Dieser Talk zeigt, wie ColdFusion in einem Enterprise Projekt eingesetzt werden kann. Welche Architektur für einen sicheren Betrieb rund um die Uhr und die Welt benötigt wird. Welche ColdFusion Enterprise-Funktionen gebraucht werden und welche nicht, welche überhaupt funktionieren, welche Lektionen wir im praktischen Einsatz gelernt haben und warum Optimierungen im Milisekunden-Bereich tatsächlich Tage sparen können.
Agiles Testen (z.B. in Scrum, Kanban, XP) ist zu einem unverzichtbaren Bestandteil agiler Softwareentwicklung geworden.
Testen in agilen Entwicklungsprojekten unterscheidet sich vom klassischen Testen in erster Linie dadurch, dass Testen eine präventive Maßnahme ist und dass die Tests viel häufiger ausgeführt werden müssen. Der Fokus liegt dabei in der Einbindung von Testern unter Beachtung des agilen Manifests und der Anwendung agiler Prinzipien auf das Testen, wie beispielsweise schnelles Feedback, hoher Automatisierungsgrad, Auflösung starrer Teststufen, enge Zusammenarbeit in selbstorganisierten Teams.
Inhalt
- Definition
- Agiles Testen im Team
- Testkategorien
- Unit-Tests
- TDD/ATDD/BDD
- 3 Amigo
- Akzeptanztests
- Exploratives Testen
- Continuous Integration, Delivery & Deployment
- Integration in Scrum
- Genereller Umgang mit Bugs
When discussing about build systems, still Ant and Maven are the most prominent. This presentation is from a talk about characteristics of Ant and Maven, how they compare and if its worth migrating between both.
Slides are in German, but IT topics tend to be understandable even by non native speakers.
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...Andreas Wissel
Mit den stetig wachsenden Möglichkeiten, die Cross-Platform-Anwendungen bieten, wachsen auch die Anforderungen an deren Design. Skalierbarkeit, Flexibilität und Wandelbarkeit gehören zu den Grundprinzipien eines modernen User-Interfaces. Andreas Wissel und Christian Liebel erarbeiten mit Ihnen in diesem Workshop anhand von Praxisbeispielen einen robusten Workflow. Mit Storybook und Angular lassen sich so isolierte, test- und wartbare Komponenten im Handumdrehen umsetzen. Ihre Designer und Entwickler werden es lieben.
See video: http://youtu.be/6e4HnoSs2J8 - Jetzt anfragen: http://seibert.biz/anfrage - Joachim Seibert und Martin Seibert (beide //SEIBERT/MEDIA) stellen das Continous Deployment (Continous Delivery) bei TwentyFeet und das Konzept für agile Software-Entwicklung im allgemeinen vor. Mehr Info: http://seibert.biz/continousdeployment
Cloud Deployment und (Auto)Scaling am Beispiel von AngrybirdAOE
Sep 08, 2012
Continuous Delivery und Autoscaling von Enterprise Web-Applicationen in der Amazon Cloud
In diesem Vortrag zeigen wir am Beispiel des neuen Angrybird-Onlineshops, der zu Spitzenzeiten bis zu 10 Bestellungen pro Sekunde aufnehmen kann und dabei hochverfügbar ist, wie eine automatisch skalierende Cloud Infrastruktur sowie die nötigen Konzepte aussehen können.
Wir beschreiben die Herausforderungen und unsere Lösungen, um den Shop für ein Multi-Server-Setup vorzubereiten und zu betreiben. Spezielle Anforderungen an eine solche Architektur sowie die Integration von Reverse Proxies (Varnish), die Nutzung eines CDNs, verschiedene Cache-Strategien und weitere Optimierung sind ebenfalls Bestandteil dieses Vortrags. Außerdem stellen wir unsere automatisierte Cloud-Deployment-Strategien vor, angefangen von den Entwicklungsumgebungen, über den continuous Integration Server und unser Testing Framework bis hin zum A/B-Deployment in der Cloud.
eCATT & OpenSource - Automatisierter Test in heterogenen SystemlandschaftenChristoph Menke
Nur in den seltensten Fälle besteht eine Systemlandschaft rein aus SAP Systeme. Meistens spielen auch Non-SAP Anwendungen innerhalb der IT-Landschaft eine wichtige Rolle. Das etablieren einer Testautomatisierung, welche der Systemlandschaft entspricht und diese bedienen kann ist herausfordernd. Ich berichte in diesem Vortrag darüber, wie wir bei einem Kunden ein Framework eingeführt haben aus welchen sich unterschiedliche Testautomatisierungswerkzeuge einheitlich und wiederverwendbar ansteuern und nutzen lassen und wie wir auch eCATT in dieses Framework integriert haben.
Vortragsreihe Dortmund: Unified Development EnvironmentsThorsten Kamann
Große Entwicklungsabteilungen stehen oft vor dem Problem einheitlicher Entwicklungsprozesse und Werkzeuge. Nach einiger Zeit hat jedes Projekt eigene Prozesse und Werkzeuge etabliert. Dies ist nicht im Sinne der Entwicklungsabteilung. Softwaresysteme müssen i. d. R. über Jahre hinweg gewartet und erweitert werden - oft von einem Team, das sich neu in die Anwendung einarbeiten muss.
Nicht selten stellt die Rekonstruktion der Entwicklungsumgebung einen erheblichen Aufwand dar.
Dieser Vortrag beschreibt - anhand eines Erfahrungsberichts - den Aufbau einer strukturierten Entwicklungsumgebung, die auch für grosse Entwicklungsabteilungen skaliert.
- Zentrale Projekt- und Codeverwaltung (ähnlich wie Sourceforge)
- Buildmanagement mit Maven
- Entwicklungswerkzeuge basierend auf Maven und Eclipse
- Installierbare Teamserver mit Virtualisierungstechnologie für Continuous Integration
Das Repository-Pattern und der O/R-Mapper: Geniale Kombination oder vergebene...André Krämer
Wenn Sie sich Beispielcode im MSDN ansehen, dann wird Eines ganz schnell klar: Wer einen O/R-Mapper wie das Entity Framework oder NHibernate einsetzt, der sollte ihn mit dem Repository Pattern paaren. Idealerweise sogar mit generischen Repositories. Schließlich können Sie nur so den O/R-Mapper Ihrer Wahl vor den darüber liegenden Schichten verbergen. Aber ist dieses Versteckspiel vorteilhaft? Wie sinnvoll ist es wirklich, höhere Schichten bewusst dumm zu halten? Und gewinnen Sie auch Flexibilität durch diese Herangehensweise? Genau um diese Fragen geht es in diesem Vortrag. Anhand einiger Praxisbeispiele werden wir uns im Vergleich zu den typischen MSDN-Anwendungen ansehen, ob das Repository Pattern tatsächlich seine Berechtigung hat.
lldb kann mehr als nur einfache Breakpoints oder po. In dem Vortrag zeigt Oliver Bayer, wie sich mit Hilfe von lldb Programmcode zur Ausführungszeit manipulieren lässt, ohne das hierfür der Sourcecode anzupassen ist. Sei es, damit Test- oder Debugcode nicht in die produktiv App gelangt, oder weil der Sourcecode für einen Teil der App nicht vorliegt.
Event: macoun, 04.10.2019
Speaker: Oliver Bayer, inovex
Mehr Tech-Vorträge: inovex.de/vortraege
Mehr Tech-Artikel: inovex.de/blog
Are you sure about that?! Uncertainty Quantification in AIinovex GmbH
With the advent of Deep Learning (DL), the field of AI made a giant leap forward and it is nowadays applied in many industrial use-cases. Especially critical systems like autonomous driving, require that DL methods not only produce a prediction but also state the certainty about the prediction in order to assess risks and failure.
In my talk, I will give an introduction to different kinds of uncertainty, i.e. epistemic and aleatoric. To have a baseline for comparison, the classical method of Gaussian Processes for regression problems is presented. I then elaborate on different DL methods for uncertainty quantification like Quantile Regression, Monte-Carlo Dropout, and Deep Ensembles. The talk is concluded with a comparison of these techniques to Gaussian Processes and the current state of the art.
Speaker: Dr. Florian Wilhelm, Simon Bachstein, inovex
Event: PyCon/PyData Berlin 2019
Datum: 10.10.2019
Mehr Tech-Vorträge: inovex.de/vortraege
Mehr Tech-Artikel: inovex.de/blog
Why natural language is next step in the AI evolutioninovex GmbH
In 2010 ImageNet finally ended the AI winter and gave machines the sense of sight. Within the following years dramatic improvements in tasks such as image classification and object detection lead to innovations like face ID and autonomous driving. Recently, similar developments happened in the field of natural language. Using Attention mechanism and transformers tasks such as question answering and text summarization reached new benchmarks.
This talk will not only explain those, but point out how Transfer Learning and open source models such as Google Bert will open the field to new innovations in AI.
Speaker: Nico Kreiling, inovex
Event: AIxIA, 01.10.2019
Mehr Tech-Vorträge: inovex.de/vortraege
Mehr Tech-Artikel: inovex.de/blog
Die Worldwide Developers Conference (WWDC) ist eine von Apple jährlich durchgeführte Konferenz für Software-Entwickler (MacOS, iOS und WatchOS). Um die WWDC 2019 nochmal Revue passieren zu lassen, wurde beim Mobile Development Karlsruhe Meetup zu einer offenen Diskussionsrunde eingeladen. Die Slides fassen die für inovexler Philipp interessantesten Neuigkeiten der WWDC2019 zusammen und dienten beim Meetup als Diskussionsgrundlage.
Event: 9. Mobile Development Meetup (WWDC Edition)
Speaker: Philipp Wallrich, inovex
Datum: 17.06.2019
Mehr Tech-Vorträge: inovex.de/vortraege
Mehr Tech-Artikel: inovex.de/blog
Trust is good, control is better – A short story about Network Policies.
Abstract:
Probably everybody who uses Kubernetes in a productive environment with multiple users possibly has looked at policies. Often the operators of the cluster(s) just trust the policies but in some cases it might be useful to control if the policies actually have taken action and often there are just to many Policies in the cluster setup to manually test them all (and obviously you don’t want to do this). Testing the effectiveness of the Network Policies can be done in different approaches. In this talk we will show you the benefits and drawbacks of different approaches and what solution we finally chose. Also we will show you some other tools and how they complement our solution. As a takeaway you will get an overview of different testing strategies for policies, as well as understanding challenges in testing policies in general and the Kubernetes ecosystem.
Event: ContainerDays 2019
Datum: 26.06.2019
Speaker: Johannes M. Scheuermann, Maximilian Bischoff (beide inovex)
Mehr Tech-Vorträge: inovex.de/vortraege
Mehr Tech-Artikel: inovex.de/blog
Interpretierbarkeit von ML-Modellen hat die Zielsetzung, die Ursachen einer Prognose offenzulegen und eine daraus abgeleitete Entscheidung für einen Menschen nachvollziehbar zu erklären. Durch die Nachvollziehbarkeit von Prognosen lässt sich beispielsweise sicherstellen, dass deren Herleitung konsistent zum Domänenwissen eines Experten ist. Auch ein unfairer Bias lässt sich durch die Erklärung aussagekräftiger Beispiele identifizieren.
Prognosemodelle lassen sich grob in intrinsisch interpretierbare Modelle und nicht-interpretierbare (auch Blackbox-) Modelle unterscheiden. Intrinsisch interpretierbare Modelle sind dafür bekannt, dass sie für einen Menschen leicht nachvollziehbar sind. Ein typisches Beispiel für ein solches Modell ist der Entscheidungsbaum, dessen regelbasierter Entscheidungsprozess intuitiv und leicht zugänglich ist. Im Gegensatz dazu gelten Neuronale Netze als Blackbox-Modelle, deren Prognosen durch die komplexe Netzstruktur schwer nachvollziehbar sind.
In diesem Talk erläuterte Marcel Spitzer das Konzept von Interpretierbarkeit im Kontext von Machine Learning und stellte gängige Verfahren zur Interpretation von Modellen vor. Besonderen Fokus legte er dabei auf modellunabhängige Verfahren, die sich auch auf prognosestarke Blackbox-Modelle anwenden lassen.
Event: M3 Minds Mastering Machines
Speaker: Marcel Spitzer
Blog-Artikel: https://www.inovex.de/blog/machine-learning-interpretability/
Mehr Tech-Vorträge: inovex.de/vortraege
Mehr Tech-Artikel: inovex.de/blog
Jenkins X – CI/CD in wolkigen Umgebungeninovex GmbH
Das Ökosystem rund um Kubernetes wächst täglich. Insbesondere cloud-native Continuous-Deployment-Strategien stehen Hoch im Kurs und werden in diversen Open-Source-Projekten vorangetrieben. In einer Reihe von Evalutionen nimmt inovex diese Tools genauer unter die Lupe - den Anfang macht Jenkins X.
Jenkins X wurde im März 2018 veröffentlicht. Das Konzept hinter dem Tool ist primär, bestehende Teillösungen (Helm, Skaffold, Prow, Tekton) einzusetzen, um sie abstrahiert in ein Kommandozeilen-Interface zu packen. Der Vortrag beschreibt sowohl die klassische Architektur als auch den "Severless"-Ansatz. Des weiteren werden das Kommandozeilen-Tool "jx", der allgemeine Entwicklungs-Workflow sowie diverse Features vorgestellt.
Bei unseren Tests im Rahmen der Evaluation sind uns einige Stolpersteine aufgefallen. Es sind vor allem die vielen eingesetzten Dritt-Tools, die den Betrieb und den Upkeep eines mit Jenkins X erstellten Clusters verkomplizieren. Als Fazit stellen wir Jenkins X im Mai 2019 ein "befriedigend" aus und beobachten gespannt, wie sich das Tool in den kommmenden Monaten und Jahren weiterentwickeln wird.
Event: Talk4Nerds, 29.04.2019
Speaker: Simon Kienzler, Johannes M. Scheuermann (beide inovex)
Mehr Tech-Vorträge: inovex.de/vortraege
Mehr Tech-Artikel: inovex.de/blog
Neben dem großen Machine-Learning-Trend in der Cloud zeichnet sich zunehmend die Tendenz ab, bestimmte Aufgaben direkt auf Edge-Geräten auszuführen. Wir erkunden die Vorteile von Auswertungen direkt an der Quelle der Daten und die damit verbundenen Herausforderungen. Denn die Rechenleistung der Cloud steht uns hier leider nicht zur Verfügung.
Zur Lösung stehen uns verschiedene Hardwareoptionen wie CPUs, GPUs, FPGAs oder spezielle ASICs und Frameworks zur Verfügung, die wir am Beispiel von einem Convolutional Neural Network evaluieren. Dabei gibt es praktische Tipps und Erfahrungen aus realen Projekten sowie anschauliche Demos auf verschiedenen Hardwareplattformen.
Vorkenntnisse:
Vorkenntnisse über tiefe neuronale Netze sind von Vorteil.
Lernziele:
- Verständnis über die Vorteile von AI auf Edge-Geräten und den damit verbundenen Herausforderungen.
- Wissen über die verschiedenen Hard- und Softwarelösungen erlangen, um diese in eigenen Projekten einzusetzen.
Event: building IoT, 03.04.2019
Speaker: Dominik Helleberg, inovex
Mehr Tech-Vorträge: inovex.de/vortraege
Mehr Blog-Artikel: inovex.de/blog
This document discusses Prometheus on Kubernetes. It provides an overview of Prometheus and its ecosystem, including how it is used for service discovery on Kubernetes, collecting and storing metrics, ensuring high availability and scalability through sharding, and defining and alerting on service level agreements. It also covers instrumentation using exporters, the Prometheus query language PromQL, and components of the Prometheus ecosystem like Grafana and Alertmanager.
Recommender systems support the decision making processes of customers with personalized suggestions. These widely used systems influence the daily life of almost everyone across domains like ecommerce, social media, and entertainment. However, the efficient generation of relevant recommendations in large-scale systems is a very complex task. In order to provide personalization, engines and algorithms need to capture users’ varying tastes and find mostly nonlinear dependencies between them and a multitude of items. Enormous data sparsity and ambitious real-time requirements further complicate this challenge. At the same time, deep learning has been proven to solve complex tasks like object or speech recognition where traditional machine learning failed or showed mediocre performance.
Join Marcel Kurovski to explore a use case for vehicle recommendations at mobile.de, Germany’s biggest online vehicle market. Marcel shares a novel regularization technique for the optimization criterion and evaluates it against various baselines. To achieve high scalability, he combines this method with strategies for efficient candidate generation based on user and item embeddings—providing a holistic solution for candidate generation and ranking.
The proposed approach outperforms collaborative filtering and hybrid collaborative-content-based filtering by 73% and 143% for MAP@5. It also scales well for millions of items and users returning recommendations in tens of milliseconds.
Event: O'Reilly Artificial Intelligence Conference, New York, 18.04.2019
Speaker: Marcel Kurovski, inovex GmbH
Mehr Tech-Vorträge: inovex.de/vortraege
Mehr Tech-Artikel: inovex.de/blog
In seinem Meetup Talk berichtete Maximilian von den aktuellen Problemen von Cloud Computing – insbesondere im Internet of Things – und wie diese durch Edge Computing mitigiert werden können. Er erklärte, wie eine generische Edge-Computing-Architektur aussehen kann und zeigte Anwendungsfälle, von denen manche auch schon in existierenden Produkten umgesetzt sind.
Im Anschluss stellte er Azure IoT Edge vor und erläuterte, wie es das bestehende IoT Framework von Microsoft erweitert sowie die Grundkonzepte, die IoT Edge bereitstellt. Auch die Probleme in dem noch jungen Produkt wurden angesprochen, aber auch die Vorteile und Features, die es liefert.
In der gemeinsamen Demo mit Eli haben dann beide Speaker die technischen Details von Azure IoT Edge gezeigt und demonstriert, beispielsweise wie Code automatisiert von einer CI/CD-Pipeline in Azure DevOps auf ein IoT-Gerät deployed werden kann.
Event: inovex Meetup, 12.03.& 19.03.2019
Speaker: Maximilian Bischoff, inovex
Mehr Tech-Vorträge: inovex.de/vortraege
Mehr Tech-Artikel: inovex.de/blog
Es liegt in der Natur des Menschen das Unvorhersehbare vorherzusagen: Wetter, Aktienkurse, Krankheitsverläufe, die Reaktion eines Menschen. Neueste Deep Learning Ansätze sind in der Lage solche sequentielle Sachverhalte immer genauer zu prognostizieren, setzen aber auch immer größere Datenmengen und Rechenleistungen voraus, die sowohl in Forschung als auch in der Praxis häufig nicht vorliegen. Wie kann man gute Ergebnisse erreichen, wenn nur wenig Daten vorliegen?
Marisa Mohr stellte in ihrem Vortrag einen neuen und vielversprechenden informationstheoretischen Ansatz zum Feature Learning von sequentiellen Daten vor, der potenziell auch mit wenigen Daten auskommt. Dabei ging es speziell um ordinale Muster in Zeitreihen, wie sie beispielsweise als Veränderung von Emotionen im Gesprächsverlauf zu finden sind. Eine solche Entwicklung ist für Menschen in der Regel leicht zu erkennen. Chatbots hingegen können nicht intuitiv auf solche Emotionsverläufe reagieren, sondern müssen entsprechend programmiert werden.
Details:
Deep-Learning-Ansätze wie LSTMs, RNNs oder TCNs haben sich im Umgang mit sequentiellen Daten bewährt. Neuronale Netzwerke sind tief im technischen Sinn, weil sie mehrere (verborgene) Schichten besitzen, aber nicht weil sie ein tiefes Verständnis von Problemen entwickeln. In diesem Vortrag stellte Marisa einen symbolischen informationstheoretischen Ansatz des Representation Learnings von Zeitreihen vor und damit eine Möglichkeit, konzeptionelle Schichten zu konstruieren. Die Idee hinter der sogenannten Permutationsentropie besteht darin, anstelle der Werte einer Zeitreihe die Ordnungsrelation zwischen den Werten zu betrachten, und so auf das natürliche Auf und Ab des zugrundeliegenden dynamischen Systems zurückzugreifen.
Event: inovex Meetup: Das Unvorhersehbare vorhersagen: Zeitreihen und Chatbots, 26.03.2019
Speakerin: Marisa Mohr (inovex)
Mehr Tech-Vorträge: inovex.de/vortraege
Mehr Tech-Artikel: inovex.de/blog
Talk to me – Chatbots und digitale Assistenteninovex GmbH
Menschliche Kommunikation folgt zwar einer ganzen Reihe von Regeln, diese lassen sich aber schwer formalisieren. Nicht zuletzt deshalb, weil in unseren Interaktionen immer auch eine Fülle von Welt- und implizitem Kontextwissen eine Rolle spielt. Rein regelbasierte Chatbots sind daher nicht nur äußert komplex in der Programmierung, sondern stoßen in vielen Anwendungsbereichen schnell an ihre Grenzen.
In diesem Vortrag gab Anna Weißhaar einen Überblick über die aktuellen Lösungen und Herausforderungen im Bereich digitale Assistenten. Der Fokus lag dabei auf Ansätzen, die Chatbots „chatty“ machen, sie also möglichst adäquat auf im Voraus unbekannte Nutzereingaben reagieren zu lassen.
Event: inovex Meetup: Das Unvorhersehbare vorhersagen: Zeitreihen und Chatbots, 26.03.2019
Speaker: Anna Weißhaar (inovex)
Mehr Tech-Vorträge: inovex.de/vortraege
Mehr Tech-Artikel: inovex.de/blog
Nicht zuletzt durch die medienwirksame Erfolge des maschinellen Lernens durch DeepMind, OpenAI und Kollegen ist Künstliche Intelligenz im Moment wieder in aller Munde. Einerseits locken zahlreiche neue, vorher undenkbare Anwendungen wie die automatische Diagnose von Krankheiten, autonome Fahrzeuge und Drohnen, oder die automatische Übersetzung gesprochener Wörter. Andererseits warnen mahnenden Stimmen wird vor dem zunehmendem Einflussnahme der „Algorithmen“ auf fast alle Bereiche unseres Lebens sowie vor unerwünschten Folgen von sich verselbstständigenden Computern gewarnt. Einige träumen von – oder fürchten sich vor – der vermeintlich unausweichlichen Singularität, an der sich nichts weniger als das Schicksal der gesamten Menschheit entscheiden wird. Doch was verbirgt sich hinter dem Begriff Künstliche Intelligenz? Je nachdem, wen man fragt, erhält man unterschiedliche, bisweilen gegensätzliche Antworten. Dieser Vortrag stellt einige dieser Antworten vor und versucht sie (nicht nur) anhand von Beispielen aus Forschung und Anwendung einzuordnen.
Event: Business Analytics Day, 07.03.2019
Speaker: Dr. Matthias Richter, Dr. Stefan Igel (inovex)
Mehr Tech-Vorträge: inovex.de/vortraege
Mehr Tech-Artikel: inovex.de/blog
In den letzten drei Jahren haben wir die Infrastruktur der Fernseh-Plattform waipu.tv gebaut. Dabei haben wir angefangen Tools für den Betrieb in Golang zu schreiben. Aus einigen der Tools wurden Core-Services, die auch die Last einer Fußball-WM-Übertragung locker wegstecken. Wir wollen euch zeigen, wie wir mit der selben Tool-Chain (Golang & Co) Betriebs-Probleme lösen und kritische Business-Applikationen entwickeln. Klassisch DevOps oder Golden Hammer?
Speaker: Christoph Petrausch, Igor Lankin (beide inovex)
Event: DevOpsConference, 04.12.2018
Mehr Tech-Vorträge: inovex.de/vortraege
Mehr Tech-Artikel: inovex.de/blog
Das Android Open Source Project, kurz AOSP, ist das Betriebssystem, das auf den meisten heutigen und wahrscheinlich auch auf deinem Smartphone läuft. Es ist die Basis für das Android-App-Universum und wird von Millionen Nutzern und Entwicklern auf der Welt verwendet. Wegen der offenen Verfügbarkeit des Source Codes ist es auch die Basis für bekannte Custom ROMs wie LineageOS.
Der erste Teil des Talks gab eine Übersicht über die Architektur des Betriebssystems, das App-Ökosystem, den Hardware Abstraction Layer (HAL), die Sicherheitskonzepte und einige neue Betriebssystementwicklungen wie Project Treble in Android 8.0.
Der zweite Teil des Talks gab einen Einblick in den Quellcode und die Struktur des AOSP: Wie lädt man sich den Source Code herunter, wie baut man das AOSP für unterstützte Geräte und wie kann man die eigenen ROMs auf ein Smartphone flashen? Zum Spaß wurde auch noch in einige Implementierungsdetails von Android-App-API-Funktionen geblickt, die man als App Developer schon aufgerufen hat.
Speaker: Stefan Lengfeld, inovex
Event: inovex Meetup Köln, 23.10.2018
Mehr Tech-Vorträge: www.inovex.de/vortraege
Mehr Tech-Artikel: www.inovex.de/blog
This document discusses machine learning interpretability. It defines interpretation as giving explanations to humans for machine learning models and decisions. It notes that humans create, are affected by, and demand explanations for decision systems. The document outlines different techniques for model interpretability including intrinsically interpretable models, post-hoc interpretability techniques that provide explanations for black box models, and model-specific and model-agnostic techniques. It provides examples like partial dependence plots, individual conditional expectation, and local surrogate models. It recommends choosing techniques based on the recipient and purpose of explanations.
Performance evaluation of GANs in a semisupervised OCR use caseinovex GmbH
Online vehicle marketplaces are embracing artificial intelligence to ease the process of selling a vehicle on their platform. The tedious work of copying information from the vehicle registration document into some web form can be automated with the help of smart text-spotting systems, in which the seller takes a picture of the document, and the necessary information is extracted automatically.
Florian Wilhelm details the components of a text-spotting system, including the subtasks of object detection and optical character recognition (OCR). Florian elaborates on the challenges of OCR in documents with various distortions and artifacts, which rule out off-the-shelf products for this task. After offering an overview of semisupervised learning based on generative adversarial networks (GANs), Florian evaluates the performance gains of this method compared to supervised learning. More specifically, for a varying amount of labeled data, he compares the accuracy of a convolution neural network (CNN) to a GANthat uses additional unlabeled data during the training phase, showing that GANs significantly outperform classical CNNs in use cases with a lack of labeled data.
What you'll learn:
Understand how semisupervised learning with GANs works
Explore beneficial semisupervised methods based on GANs for use cases with a limited amount of labeled data
Gain insight into an interesting OCR use case of an online vehicle marketplace
Event: O'Reilly Artificial Intelligence Conference, London, 11.10.2018
Speaker: Dr. Florian Wilhelm
Mehr Tech-Vorträge: www.inovex.de/vortraege
Mehr Tech-Artikel: www.inovex.de/blog
People & Products – Lessons learned from the daily IT madnessinovex GmbH
IT im 21. Jahrhundert – What a time to be alive! Es gibt einen (unüberschaubaren) Zoo an Methoden und Produkten die uns so viel Freude an der Arbeit bereiten! Sie sind modern, weil sie neu sind. Sie fordern unser Können heraus, weil sie komplex sind. Sie lösen einige Probleme, die wir vorher nicht hatten. Jeder will sie verwenden, weil Google, Netflix & Co. sie propagieren und Hand auf’s Herz: Will nicht jeder gerne so arbeiten wie Google, Netflix & Co.? Aber macht das wirklich Sinn?
In diesem Vortrag blicken wir auf diverse Erkenntnisse aus dem Einsatz agiler Produktentwicklung, DevOps, Continuous Integration/Delivery, Infrastructure as Code, Immutable Infrastructure (bspw. Docker/Kubernetes), Application Logging und Service Monitoring.
Learning Goals:
- Wir müssen den Einsatz von Methoden und Tools an die Menschen ausrichten, die sie (weiter-)entwickeln und benutzen sollen.
- Manchmal lösen wir mit neuen Tools Probleme, die wir vorher nicht hatten.
- Die Suche nach einfachen Lösungen für komplexe Probleme ist essentiell, aber nicht immer einfach.
Event: Continuous Lifecycle, 15.11.2018
Speaker: Arnold Bechtoldt
Mehr Tech-Vorträge: www.inovex.de/vortraege
Mehr Tech-Artikel: www.inovex.de/blog
Infrastructure as (real) Code – Manage your K8s resources with Pulumiinovex GmbH
Pulumi (pulumi.io) offers an open source platform to create/manage and deploy your infrastructure in realy programming languages like JavaScript/TypeScript, Go and Python. As Cloud platforms the major 3 cloud providers are supported and additionally you can also use Pulumi with OpenStack and Kubernetes to deploy your applications in the cloud.
In this talk we will take a look how Pulumi is different to traditional solutions like Terraform or the Cloud Provider specific solutions (e.g. CloudFormation). The main focus will be on deploying your services on top of Kubernetes. The talk will contain a little theory part about Pulumi, the rest of the talk is more focused on demos and practical parts. One focus of the talk is the difference of Pulumi to kubectl and helm (or to be precise how they complement each other.
As a takeaway of this talk you should understand the basics of Pulumi and know what are the differences to the traditional deployment tools.
Event: CNCF Meetup Hamburg & Stuttgart, 29.10.2018 & 07.11.2018
Speaker: Johannes M. Scheuermann, inovex
Mehr Tech-Vorträge: https://www.inovex.de/de/content-pool/vortraege/
Mehr Tech-Artikel: https://www.inovex.de/blog/
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
Bi testing media_factory_0.10
1. „Stimmen meine Zahlen?“
Automatisiertes Testen von BI-Applikationen
mit dem Open Source Framework „Fitnesse“
20.01.2012
Stefan Kirner
inovex GmbH
Senior Consultant BI
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst.
2. Kurzvorstellung inovex GmbH
• IT-Dienstleister in Pforzheim, München und Köln
• 1999 gegründet, heute 80 Mitarbeiter
• Portfolio:
• IT Consulting
• Business Intelligence,
• Application Development,
• Systems Operations
• Training
• Positionierung: Qualität, Technologiekompetenz, Kundenzufriedenheit
• Kunden: Marktführer aus DAX 100 und gehobenem Mittelstand,
z. B. 1&1, Bosch, buch.de, Daimler, DB Schenker, Ehrmann, EnBW,
GMX, Mahle, maxdome, Porsche, web.de
• mehr unter www.inovex.de
3. Warum automatisiert testen in BI Projekten?
oder „was BI von Softwareentwicklung lernen kann“
• Agiles Arbeiten auch im DWH Bereich
Ständige iterative Weiterentwicklung
Transparenz notwendig
Schnelles Feedback vom Kunden
Viele Änderungswünsche
Definition of Done
Sicherstellung hohe Qualität
Continuous Integration
Automatisierbare Tests
• Single Source of Truth
Vertrauen muss aufgebaut werden
• Wechselnde Team Members
Tests müssen reproduzierbar sein
Bildquelle: roomiccube@flickr.com; ;
4. Wer soll wann testen?
• Entwickler
• Fachabteilung
• Operatoren
• Prozesse
Testen im Team
• Vor und nach der Entwicklung
• Vor dem Deployment auf das System,
auf dem alles „done“ ist
• Nach dem Deployment auf dem Zielsystem
• Regelmäßig unbeaufsichtigte Ausführung
Automatisierung erforderlich
Bildquelle: wanderlinse@flickr.com. kheelcenter@flickr.com
5. Besonderheiten von BI Projekten
und Konsequenzen für das Testing
Rahmenbedingungen Konsequenz für Testing
• BI Projekte sind data-driven • Focus auf Datentests, weil
• 80 % Entwicklungsaufwand im höchste Prio
Bereich ETL • Persistenz: Tests auf Layer mit
• Persistenz in relationalem DWH konsistentem Stand
• Hohe Datenvolumina • Volumen: Testen einer
• Erfassung von Metadaten Teilmenge der Daten mit
Mustern
Zu testen • Inhalt: Testen von Kennzahlen
• Daten fachlicher Natur & Dimensionsdaten
• Technische Constraints • Laufzeitfehler: Auswertung der
• Performance Metadaten!
• Security
• Code
6. Welche Daten als Quelle nehmen?
• Daten direkt aus Quellsystemen?
+ Immer auf aktuellem Stand des DBMS
+ Keine Anpassung der Ladestrecken für Tests
− Keine definierten Zustände der Daten
− Existenz hängt von Quellsystem ab
• Daten auf separater TestDB der Quelle?
+ Definierte Zustände möglich
+ Kontrolle über Existenz der zu testenden Daten
− Doppelter Aufwand bei DBMS Changes
− Anpassung Ladestrecken für Tests
• Spezielle Test Daten innerhalb der Quellsysteme?
+ Alle obigen Vorteile
− Darf dem Quell- und abhängigen Systemen
keine Probleme machen
Bildquelle: avlxyz@flickr.com
7. Wie erstellt man definierte Zustände
innerhalb der Daten?
• Wiederholbarkeit der Tests ist wichtig
• Szenarien hängen ab von:
• Änderung der Quelldaten
• Zustand der Zieldaten
• Abbildung dieser Situationen in ETL Logik
• Möglichst alle Szenarien testen
• Benötigen Methoden für das
• Ändern der Testmuster in den Quelldaten /
Zieldaten
• Modaler Aufbau für Wiederholbarkeit
• Datenänderungen via Stored Procs
• Anstoßen ETL via SQL Server Agent
Bildquelle: palindrome6996@flickr.com
8. Wobei hilft uns da FitNesse?
• Testdefinition in wiki statt unit tests in Hochsprache
• Tests basieren auf Tabellen mit erwarteten Werten
• Zugriff auf Datenbanken mit dbfit
• Webbasierte Oberfläche
• Gruppierung von Tests
• Tests werden im xml-Format gespeichert
• Simples Setup
• Kommandozeilenaufrufe
• Erweiterbar durch eigene Fixtures
• Open Source & Free
Bildquelle: http://fitnesse.org/
12. Implementierung des Tests als Stored Procedure
Vorteile:
• rDBMS ist Homebase der BI Entwickler
• Einfache Bereitstellung von Methoden
zur Testdatenverwaltung
• Inhaltliche Vereinheitlichung Daten von
Quelle und Ziel in Views (z. B. Datum,
Dezimalstellen)
• Unterstützende Methoden in Functions
• Kapselung der Testlogik
• Rückgabe 0/1 erleichtert Interpretation
Tip:
• Datenrückgabe in XML erleichtert den
Vergleich (alle Daten in einem Feld)
15. Wie testet man im Team?
Integration in die Entwicklungsumgebung
• Daten für Tests in xml Source Control (SC)
• Subfolder Recent Changes und Error Logs
nicht in SC
• Lokale Runtime für Entwickler
(keine Installation, jdk)
• Zentrales abgekoppeltes Fitnesse
als Windows Service
• Automatisierte Tests
• Adhoc Tests
• Zugriff für Nicht-Entwickler
16. Wie geht das Ganze „elektrisch“?
Automatisierten Starten von Tests
• Kommandozeilentool Testrunner
• Steuerung über beliebigen Scheduluer, z.B.
• SQL Server Agent
• crontab
• Ergebnisse in xml/html
• Parsing xml für weitere Verarbeitung
• optional: Senden via Database Mail
Bildquelle: rehacare@flickr.com