Sie sehen aus dem Zeitraum bis in
  • Schnelleinstieg in Go

    Vortrag Christoph Iserlohn, Daniel Bornkessel parallel 2017

    Obwohl noch recht jung, hat sich Go in der Softwareentwicklung fest etabliert. Viele kritische Systeme werden heutzutage in Go implementiert – Docker ist hier einer der prominenten Vertreter. Go macht vieles anders als gewohnt. Mit channels und go-routines besitzt Go moderne Nebenläufigkeitskonstrukte, die in den altbewährten Programmiersprachen so nicht zu finden sind. Auf der anderen Seite verzichtet Go auf einige Dinge, die mittlerweile als selbstverständlich angesehen werden wie Generics oder Exceptions.

    Anhand von Beispielen und praktischen Übungen vermittelt dieser Workshop die nötigen Kenntnisse, um kleinere eigene Programme in Go zu schreiben und channels und go-routines zu nutzen.

    Teilnehmer sollten folgende Soft- und Hardware mitbringen:

    • einen Laptop, auf dem Go installiert und nutzbar ist: siehe https://golang.org/doc/install für eine Anleitung
    • eine funktionierende Kommandozeile (bash, sh, PowerShell)
    • eine funktionierende Git-Installation
    • einen Editor oder eine IDE zum Programmieren

    Skills

    • Gute Kenntnisse in einer “Mainstream”-Programmiersprache wie Java, C# und C/C++.
    • Grundkenntnisse über Nebenläufigkeitskonzepte in Programmiersprachen: Prozesse, Threads, Co-Routinen usw.
    • Für die praktischen Übungen ein Notebook mit vorinstalliertem, aktuellem Go und Git sowie ein Texteditor und eine Shell.

    Lernziele

    1. kleinere Programme in Go schreiben können,
    2. die wesentlichen Merkmale von Go kennen,
    3. die Unterschiede von Go gegenüber anderen Programmiersprachen wie Java, C# usw. verstehen, vor allem in den Bereichen Nebenläufigkeit und Parallelität und
    4. besser einschätzen können, ob Go für ihr ihre Projekte geeignet ist.
    Mehr lesen

    Microservice mit Spring Boot und Spring Cloud

    Vortrag Eberhard Wolff JUG Essen März 2017

    Microservices stellen Entwickler vor neue Herausforderungen. Der Spring-Stack hält zwei Lösungen bereit: Spring Boot zur Implementierung des Microservices und Spring Cloud für den Aufbau der notwendigen Infrastruktur. Dieser Vortrag zeigt, wie die beiden Technologien praktisch funktionieren und Microservices-Architekturen mit diesem Ansatz implementiert werden können.

    Mehr lesen
  • Self-contained Systems oder Microservices – Hauptsache SOA

    Vortrag Oliver Tigges, Eberhard Wolff Software Architecture Summit 2017

    Die Architekturansätze von Microservices und Self-contained Systems (SCS) versprechen viele Vorteile. Aber wir stoßen immer wieder auf ähnliche Herausforderungen, wenn große IT-Systeme nach diesen Ansätzen implementiert werden sollen:

    1. Wie sieht ein guter Schnitt des Gesamtsystems mit Microservices/SCS aus? Wie helfen DDD, Bounded Contexts, explizite Qualitätsziele und eine Analyse der Geschäftsprozesse dabei, den optimalen Schnitt zu finden?
    2. Wenn ein System mit monolithischer Datenbank zerteilt wird, gibt es zwischen den Modulen keine Datenbankrelationen. Wie entsteht dennoch ein perfomantes, stabiles und flexibles System?
    3. Microservice/SCS fördern die Autonomie von Teams, Systemen und Services. Aber wer hält die Fäden zusammen und sorgt dafür, dass alles zusammen funktioniert und die Unternehmens-IT in die richtige Richtung läuft?

    In diesem Workshop geben wir zunächst einen Überblick über die Ideen, Begriffe und Grundkonzepte von Microservices und SCS. Danach möchten wir gemeinsam mit den Teilnehmern Lösungen für diese drei Fragestellungen erarbeiten und diskutieren.

    Mehr lesen
  • Architecture Fishbowl

    Vortrag Stefan Tilkov Software Architecture Summit 2017

    In einem Fishbowl verschwimmt die Grenze zwischen Sprechern und Teilnehmern: Es bietet eine großartige Möglichkeit, die Themen des Summits ohne vorbestimmte Agenda zu diskutieren. Die Sprecher starten die Diskussion und stellen dabei sicher, dass sie eine möglichst große Menge kontroverser Statements abgeben, um die Diskussion anzufeuern. Danach haben Sie die Chance, an der dynamischen Diskussion teilzunehmen und Ihre eigenen Erfahrungen und Meinungen zu teilen. Moderiert von Stefan Tilkov.

    Mehr lesen

    New School of Enterprise Architecture

    Vortrag Martin Schmidt, Wolfgang Keller Software Architecture Summit 2017

    Große Unternehmen haben heute vielfach gut optimierte Prozesse. Die sind zwar stark durchstrukturiert – sind aber nicht immer schnell änderbar und flexibel. Unternehmensarchitekten in solchen Unternehmen sind häufig mit der Erstellung und Umsetzung langfristiger Planungen beschäftigt. In Zeiten von Digitalisierung, Start-Ups und Hochgeschwindigkeitswettbewerb wird die Situation auf den Tankern der Wirtschaft jedoch in vielen Fällen immer ungemütlicher: Die staatliche Regulierung nimmt nicht ab, sondern immer noch zu. Gleichzeitig erodieren in vielen Branchen die Margen und aggressive neue – oft stark digitalisierte – Wettbewerber treten auf. Gleichzeitig steigt das Niveau von Cyber-Bedrohungen und große Internet-Monopole bedrohen den Zugang zum Kunden. Für Unternehmensarchitekten heißt das wieder mehr als in den letzten zwei Jahrzehnten aktuelle Technik beherrschen zu müssen, geschäftsorientiert zu denken und aber immer noch ein Auge auf Regulierungsthemen zu haben.

    Dieser Workshop gibt Ihnen einen kompakten Überblick über die Dinge, mit denen man sich als IT-Unternehmensarchitekt heute beschäftigen sollte und bietet Ihnen einen Einstieg in ihre eigene weitere Entwicklung – zum Nutzen Ihrer Firma und zu Ihrem eigenen Nutzen.

    Mehr lesen
  • Domain Events und Event Storming

    Vortrag Michael Plöd Software Architecture Summit 2017

    Das Thema Domain-driven Design ist derzeit in aller Munde und hat sich im Lauf der Jahre spürbar weiterentwickelt. Insbesondere das Thema Domain Events spielt hierbei eine zentrale Rolle. Mithilfe von Domain Events können Bounded Contexts sehr lose gekoppelt auf Basis fachlicher Ereignisse miteinander interagieren. Dabei öffnen Domain Events neben dem architekturellen Vorteil „lose Kopplung“ die Tür für weitere interessante Möglichkeiten. Hierzu zählen die Persistierung von Events (Event Sourcing) und eine neue Form der fachlichen Analyse, das Event Storming.

    Der Workshop wird die Konzepte von Domain Events vorstellen, Ihnen erläutern, wie diese idealerweise für Kommunikation und Persistierung verwendet werden können. Weiterhin wird im Rahmen des Vortrags auch das Analyseverfahren Event Storming praktisch vorgestellt. Der Workshop wird neben einem theoretischen Teil auch praktische Übungen beinhalten.

    Mehr lesen

    KEYNOTE: Architekturtransformationen in der Praxis

    Vortrag Gernot Starke, Stefan Tilkov Software Architecture Summit 2017

    Eigentlich wollen alle nur das Beste – und doch ist es oft so schwer, sinnvolle Veränderungen durchzusetzen. Dieses Gefühl plagt IT-Konferenzbesucher, wenn sie, frisch beflügelt von den großartigen Berichten über die Innovationsführer, wieder „nach Hause” kommen und dort mit den tollen neuen Ideen vor Wände laufen. In diesem Vortrag werfen wir einen Blick auf die typischen Probleme und diskutieren Wege, sie zu überwinden. Für das systematische Vorgehen spielen neben Technologie auch Politik und Betriebswirtschaft eine wichtige Rolle.

    Mehr lesen
  • Testing with mutants

    Vortrag Jan Stępień :clojureD 2017

    Property-based testing is mainstream now (there, I said it). The testing approach popularised by test.check enjoys wide adoption in the Clojure community. This talk is dedicated to another randomised testing technique. Mutation testing introduces subtle bugs to source code of our projects and checks that our tests catch those synthetic problems. Clojure — a homoiconic language with dynamic code reloading — should offer us an excellent foundation for building a mutation testing library. But there’s not a single one out there. Why? Let’s try to answer this question together.

    Mehr lesen
  • The Hidden Nature of Data

    Vortrag Martin Kühl BOB 2017

    Encapsulation is a pillar of object-oriented programming, but how important is it in the context of functional programming? Is it worth clinging to, or should we stay away? This talk will examine the tradeoffs of encapsulating internal representations versus exposing the “nature” of our data.

    Programming with immutable values and algebraic data types usually makes hiding fields behind accessors unnecessary. On the other hand, hiding functions and types is a crucial technique control our API, encouraging correct usage and affording the flexibility to change it.

    In this session we will explore constraints that encourage encapsulation, discuss how it affects our types, their algebras, and their algorithmic properties, and learn about alternatives and their benefits and drawbacks.

    Mehr lesen
  • In-Depth: Practical Microservice Modelling with DDD’s Strategic Design

    Vortrag Michael Plöd microXchg 2017

    In this highly interactive session we are going to dig deep into strategic design aspects for finding the right and suitable granularity and interaction model for Microservices. The session will cover intense discussions surrounding Bounded Contexts, the meaning of given models in Bounded Contexts, Domain Events and Context Mapping, including the given patterns such as Shared Kernel, Customer / Supplier, Anticorruption Layer or Separate Ways (just to name a few).

    The in-depth session will be based on a code based (Spring Boot) demo application landscape and will include analog as well as digital labs. This session will consist of approximately 40% presentation and 60% labs and audience participation.

    Mehr lesen
  • Testing with mutants

    Vortrag Jan Stępień lambda Days 2017

    Property-based testing is mainstream now in a number of functional languages (there, I’ve said it). This talk is dedicated to another randomised testing technique. Unlike property-based testing, which validates correctness of implementation of our programmes, mutation testing audits our tests suites. It introduces subtle faults to source code of our projects and verifies that our tests catch those synthetic problems. Clojure, a homoiconic language with dynamic code reloading, should offer us an excellent foundation for building a mutation testing library. But there’s not a single one out there. Why? Let’s try to answer this question together.

    Mehr lesen
  • Self-contained Systems: Ein anderer Ansatz für Microservices

    Vortrag Eberhard Wolff OOP 2017

    Self-contained Systems nutzen die Ideen von Microservices und teilen Systeme in stark entkoppelte Anwendungen auf. So können große, komplexe Anwendungen strukturiert werden - aber auch in vielen anderen Szenarien sind die Ansätze sinnvoll nutzbar. SCS werden bei Firmen wie Otto, Kaufhof oder Kühne+Nagel erfolgreich eingesetzt.

    Der Workshop erklärt zunächst SCS und zeigt die Unterschiede zu Microservices sowie am praktischen Beispiel technische Aspekte wie Frontend-Integration. Schließlich entwerfen wir eine technische und fachliche Architektur für ein SCS-System.

    Zielpublikum: Architekten, Software-Entwickler, technische Projektleiter Voraussetzungen: grundlegendes Wissen über Architektur und Software-Entwicklung Schwierigkeitsgrad: Anfänger

    Mehr lesen
  • Microservices sind ganz anders als man denkt!

    Vortrag Eberhard Wolff OOP 2017

    „Microservices sind SOA - nur richtig“, so hört man oft. Schließlich sollen Systeme wie bei SOA in Dienste aufgeteilt werden. Das scheint auch zunächst zu stimmen - erst auf den zweiten Blick wird klar, welche Details bei Microservices anders sind. Mittlerweile liegen außerdem genügend Erfahrungen über die wesentlichen Herausforderungen bei Microservices vor. So zeigt der Vortrag, welche Details bei Microservices in der Praxis wirklich relevant sind.

    Zielpublikum: Architekten, Entwickler, Projektleiter Voraussetzungen: Kenntnisse in Software Design sowie Agiler Entwicklung Schwierigkeitsgrad: Fortgeschritten

    Mehr lesen
  • Architekturmodernisierung mit SCS und Microservices

    Vortrag Alexander Heusingfeld, Michael Vitz OOP 2017

    Dieser Vortrag adressiert ein klassisches Dilemma der IT: eine große, monolithische Anwendung, kritisch und wichtig, und innerlich ungeheuer schwer und aufwendig zu warten. Um auf fachliche Änderungen und dynamische Märkte schneller reagieren zu können, müssen wir dieses Altsystem modularisieren und strukturell sowie konzeptionell modernisieren – dabei aber kontinuierlich (hoch) verfügbar halten. Ganz nebenbei verfügen wir natürlich nur über ein eingeschränktes Budget.

    Wir zeigen Ihnen anhand etablierter Praktiken und Patterns (aus dem Fundus von aim42.org) typische Möglichkeiten auf, solche Projekte anzugehen. So können Sie Stück für Stück, gerade so, wie es das Projektbudget zulässt, die Architektur des Gesamtsystems modernisieren, ohne ein Big-Bang-Release zu fürchten. Hierbei wollen wir auch die Frage beantworten, mit welchen Themen Sie sich neben „Wie teile ich mein System auf“ außerdem beschäftigen müssen, und wie wir die Vorteile einer Microservice-Architektur nutzen können, ohne uns gleich allen ihren Herausforderungen auf einmal stellen zu müssen.

    Zielpublikum: Architekten, Entwickler, Projektleiter Voraussetzungen: Basiswissen Software-Architektur und verteilte Systeme Schwierigkeitsgrad: Anfänger

    Mehr lesen

    Die Jagd läuft – Digitalisierung im Unternehmen

    Vortrag Phillip Ghadir, Gernot Starke OOP 2017

    Seit einiger Zeit beschäftigen bimodale IT, Two-Speed Architecture und Digitalisierung das IT-Management vieler Unternehmen. Wir möchten diese Begriffe erklären und in den Kontext aktueller disruptiver Innovationen einordnen. Damit zeigen wir sowohl aus technischer wie auch IT-Management-Perspektive auf, wie und warum Themen wie Docker, Continuous-Deployment/Delivery sowie Ambient Computing essenzielle strategische Herausforderungen meistern helfen.

    In diesem Vortrag beschäftigen wir uns mit den geänderten Rahmenbedingungen in der heutigen Zeit, in denen Mitarbeiter, Interessenten und Kunden jederzeit leistungsstarke, mobile, Akku-betriebene Multi-Core-Systeme mit sich führen und trotzdem unter starren Unternehmensprozessen und IT-Dinosaurier-System leiden müssen. Dabei gibt es heute für Software weniger Grenzen als jemals zuvor!

    Während Systemstabilität früher eines der zentralen Qualitätsmerkmale war, werden heute eher Anpassbarkeit, Flexibilität und time-to-market gefordert. Solche Einflussfaktoren steigern die Erwartungshaltung an die IT - und verändern damit deren Spielregeln gewaltig: Disruptive digitale Innovationen werden zur Notwendigkeit von IT-Management und -Entwicklung.

    Auf der Suche nach neuen Geschäftsmodellen darf sich IT daher nicht nur mit dem Aufrechterhalten des Status quo begnügen, sondern muss proaktiv solche Änderungen einleiten und begleiten. Im Vortrag beleuchten wir aktuelle Trends aus der Sicht von IT-Architekten, beispielsweise die bimodale IT, Two-Speed Architecture sowie Digitalisierung. Dazu geben wir praktische Hilfestellung zu deren Einsatz und der Bewältigung möglicher Risiken.

    Zielpublikum: IT-Manager, Software-/Systemarchitekten Voraussetzungen: Projekterfahrung Schwierigkeitsgrad: Fortgeschritten

    Mehr lesen
  • Clojure-Web-Applikationen für Beginner

    Vortrag Michael Vitz OOP 2017

    Clojure ist eine JVM-Sprache, die das Unmögliche möglich macht: ein tatsächlich in der Praxis von normalsterblichen Entwicklern einsetzbares Lisp.

    Neben den Grundlagen von Clojure werden Sie in dieser Session auch lernen, wie man hiermit Web-Anwendungen umsetzen kann. Wenn Sie sich hierbei nicht von den Lisp-typischen Klammern abschrecken lassen, werden Sie schnell sehen, dass der Einsatz einer rein funktionalen Programmiersprache sehr gut zum statuslosen Ansatz von HTTP passt.

    Zielpublikum: Entwickler Voraussetzungen: Grundlagen der funktionalen Programmierung und Webentwicklung Schwierigkeitsgrad: Anfänger

    Mehr lesen

    Mutation Testing in Continuous Delivery Pipelines

    Vortrag Jan Stępień Continuous Delivery Meetup München

    Mutation testing introduces subtle bugs to source code of our projects and checks that our tests catch those synthetic problems. High computational cost of this technique have prevented it from being widely used in our standard programming toolchain. Can we try to sneak it in through the backdoor of our continuous delivery pipelines? Let’s try to answer this question together.

    Mehr lesen

    Microservices: Redundanz = Wartbarkeit!

    Vortrag Eberhard Wolff Software Architektur München Meetup Januar 2017

    Microservices sind nicht nur ein Hype: Sie stellen einige grundlegende Annahmen der Software-Architekturen in Frage. Soll man Redundanzen wirklich vermeiden? Ist eine saubere Architektur wirklich der Schlüssel zu langfristiger Wartbarkeit? Dieser Vortrag handelt davon, wie Microservices mit unorthodoxen Ansätzen eine produktive Software-Entwicklung erlauben und wie wir Architektur auch jenseits von Microservices neu denken müssen.

    Mehr lesen
  • Strategic Design aus Domain Driven Design mit Spring Boot

    Vortrag Michael Plöd JUG Nürnberg Januar 2017 Meetup

    Einer der wertvollsten Bereiche von Domain Driven Design ist zweifelsohne das Strategic Design mit seinen Context Mapping Patterns. Allerdings wirken die meisten Beschreibungen der Patterns in textueller Form etwas abstrakt und schwer verdaulich. Im Rahmen dieses Vortrags werden die Patterns auf Basis einer einfachen Spring Boot basierten Anwendungslandschaft praktisch und greifbar erklärt und vorgestellt. Hierbei gehen wir unter anderem auf folgende Patterns ein: Customer / Supplier, Open Host Language, Anticorruption Layer, Conformist oder Separate Ways

    Mehr lesen
  • Caching with Spring - Advanced Topics and Best Practices

    Vortrag Michael Plöd Spring Community Meetup Munich January 2017

    Caching is relevant for a wide range of business applications and there is a huge variety of products in the market, ranging from easy to adopt local heap based caches to powerful distributed data grids. This talk addresses advanced usage of Spring’s caching abstractions such as integrating a cache provider that is not integrated in the default Spring Package.

    In addition, I will also give an overview of the JCache specification and its adoption in the Spring ecosystem. Finally, the presentation will address several best practices for integrating various caching solutions into enterprise grade applications that don’t have the luxury of having „eventual consistency“ as a non-functional requirement.

    Mehr lesen

    Don’t Fear the Implicits

    Vortrag Daniel Westheide Scala Mini Meetup Berlin

    Developers who are new to Scala often shy away from coming into contact with implicits, and by extension, understanding typeclasses. In big organizations that have been adopting Scala at scale, you sometimes even come across hard rules that put a ban on the use of implicits because that language feature is considered to be too advanced and not understood by a lot of developers. On the other hand, implicits and typeclasses are used heavily not only by a lot of the most important Scala frameworks and libraries, but also in the standard library. Given the fact that it is so hard to evade them when writing real world Scala code, I would like to encourage developers adopting Scala to overcome their fear of implicits and instead embrace the typeclass pattern.

    In this talk, as an intermediate Scala developer, you will learn everything you really need to know about typeclasses: What they are good for and how they compare to what you are familiar with from object-oriented languages, when you should and should not use them, how the pattern can be encoded in Scala and how to write your own typeclasses, how to provide instances of typeclasses for your own or existing types, and how to do all of this with minimal boilerplate. Throughout the talk, you will see numerous examples of typeclasses used in the Scala ecosystem and the standard library, and you’ll see that you don’t need to know anything about category theory to benefit from embracing typeclasses.

    Mehr lesen
  • Self-contained Systems: Microservices-Architekturen mit System

    Vortrag Eberhard Wolff JUG Berlin-Brandenburg Meetup Oktober 2016

    Microservices sind der aktuelle Hype in der Software-Architektur-Szene. Aber einfach nur kleine Dienste entwickeln, ist bei weitem nicht genug. Self-contained Systems (SCS) fokussieren auf einen Architektur-Ansatz, der nicht nur bei großen Systemen mit entsprechend komplexer Team-Struktur sinnvoll ist. Mit SCS kann in einem solchen Kontext auch langfristig produktiv Software entwickelt werden.

    Der Vortrag erläutert Self-contained Systems, ihre Vor- und Nachteile und die Abgrenzung zu Microservices.

    Mehr lesen
  • Software verbessern – aber richtig (mit aim42)

    Vortrag Gernot Starke .NET Developer Conference 2016

    Die Informatikausbildung fokussiert auf die Neuentwicklung von Software – den Alltag vieler Softwerker prägen jedoch meist Pflege, Änderung oder Erweiterung von Systemen. In diesem Workshop stelle ich Ihnen aim42 vor, ein systematisches Vorgehen zur Verbesserung von Software. aim42 ist frei verfügbar (Open-Source) und kondensiert Praktiken und Patterns rund um Modernisierung, und Evolution von IT-Systemen.

    aim42 funktioniert iterative in den Phasen Analyse, Evaluate und Improve. Es adressiert sowohl technische wie auch fachliche Stakeholder und schließt damit eine gravierende Verständnislücke in Entwicklungs- und Änderungsprozessen von Software.

    Sie müssen Ihre Systeme parallel zum Tagesgeschäft verbessern, und sind dabei von engen Zeit- und Budgetgrenzen gebunden? Sie möchten innere Qualität verbessern, müssen statt dessen immer neue Features liefern? Ich zeige Ihnen Wege aus diesem Legacy-Chaos.

    Im Workshop stelle ich die Grundlagen von aim42 vor und begebe ich anschließend in praktischen Übungen mit Ihnen gemeinsam auf die Suche nach konkreten Problemen. Sie lernen, wie Sie die identifizierten Probleme betriebswirtschaftlich einschätzen und damit Ihrem Management begreiflich machen können.

    Ich nutze praktische Beispiele realer IT-Systeme, um die aim42 Praktiken zu erläutern.

    Voraussetzungen: Der Workshop richtet sich primär an Softwareentwickler und –architekten mit Projekterfahrung, aber auch Product-Owner und Projektleiter kommen auf ihre Kosten.

    Mehr lesen
  • Mutants

    Vortrag Jan Stępień Clojure eXchange 2016 Folien verfügbar

    Property-based testing is mainstream now (there, Jan’s said it). A recurring topic at EuroClojure, the generative approach to testing popularised by test.check enjoys wide adoption in the Clojure community.

    This talk is dedicated to another randomised testing technique. Unlike property-based testing, which inspects our src directory, mutation testing audits contents of the test one. It introduces subtle bugs to source code of our projects and verifies that our test suites catch those synthetic problems. Clojure, a homoiconic language with dynamic code reloading, should offer us an excellent foundation for building a mutation testing library. But there’s not a single one out there. Why? Let’s try to answer this question together.

    Mehr lesen
  • Dynamisch überwacht: Monitoring von Microservice-Architekturen

    Vortrag Alexander Heusingfeld, Tammo van Lessen Microservices Summit 2016

    Ein Softwaresystem kann nur dann erfolgreich betrieben werden, wenn es feinmaschig überwacht wird. Mit dem Aufschwung der Microservices-Architekturen reichen die traditionellen Monitoringmittel nicht mehr aus, denn sie erfordern ein hohes Maß an Flexibilität und Dynamik von Organisation und Infrastruktur. Wegen der Verteilung auf verschiedene Systeme ist es jedoch umso wichtiger, die einzelnen Dienste sorgfältig und nachhaltig zu überwachen und Verfügbarkeit, Performance (fachlich wie technisch), Zuverlässigkeit und Wirtschaftlichkeit kontinuierlich zu messen. So entsteht ein jederzeit aktuelles, vergleichendes Bild auf die Systemlandschaft. Dafür müssen allerdings neue Konzepte für Logging, Tracing und Alarming umgesetzt werden, die die Aggregation, Korrelation und Visualisierung von Laufzeitinformationen an zentraler Stelle erlauben.

    Das Trio Logs, Metriken und Tracingdaten stellt die Grundlage zur Verfügung, eine solche Beobachtungsstelle zu realisieren. Doch was sind eigentlich wichtige Logs? Welche Metriken soll ich erfassen? Welche Sichten auf meine Anwendung erlauben mir die Metriken? Diese Fragen versuchen wir in der Session zu beantworten und stellen dazu die wichtigsten Ansätze und Werkzeuge zum Überwachen von modernen verteilten Systemen vor.

    Mehr lesen

    Event Sourcing - Einführung und Best Practices

    Vortrag Michael Plöd Software Architektur München Meetup November 2016

    Unter Event Sourcing versteht man einen Architekturstil in dem Änderungen am Zustand der verwalteten Daten als eine Sequenz von Events festgehalten werden. Durch diese Herangehensweise können jederzeit Snapshots des Datenzustands erstellt und abgefragt werden. Des Weiteren ermöglicht uns das Persistieren von Events eine Optimierung der lesenden Zugriffe durch eine Denormalisierung des “Lese-Modells” der Daten. Letzerer Aspekt ist aktuell insbesondere durch den Architekturansatz CQRS in aller Munde.

    Im Rahmen des Vortrags werde ich eine Einführung in das Thema Event Sourcing geben und gängige Patterns rund um das Thema vorstellen. Des Weiteren werden Themen wie Rollback von Events (Kompensation-Services), Möglichkeiten der Erstellung von Daten Snapshots und Änderungen durch externe Systeme vorgestellt. Abgerundet wird der Vortrag durch eine Diskussion möglicher Einsatzszenarien für Event Sourcing.

    Mehr lesen
  • Self-contained Systems: Ein alternativer Ansatz für Microservices

    Vortrag Eberhard Wolff Microservices Summit 2016

    Microservices sind der Hype im Bereich Software-Architektur. Aber nur eine Menge von kleinen Services ist bei weitem nicht genug. Self-contained Systems stellen einen Architektur-Ansatz auf Basis von Microservices dar. Im Mittelpunkt sehen unabhängige Teams, UI-Integration und asynchrone Kommunikation. SCSs sind besonders sinnvoll für große Systeme und komplexe Teams und erlauben auch langfristig eine effiziente Software-Entwicklung in solchen Umgebung.

    Der Workshop erläutert Self-contained Systems, die Vor- und Nachteile und die Unterschiede zu Microservices.

    Mehr lesen

    Microservices mit Java, Spring Boot & Spring Cloud

    Vortrag Eberhard Wolff Microservices Summit 2016

    In diesem Workshop geht es um die Implementierung von Microservices mit Java und Spring Boot. Spring Boot vereinfacht die Implementierung von Java-Anwendungen mit dem Spring-Framework. Spring Boot unterstützt den Betrieb von Anwendungen ohne Application Server und hat auch Ansätze für den Betrieb der Anwendungen.

    • Was ist Spring Boot?
    • Implementierung von REST-Services mit Spring Boot
    • Spring Boot mit oder ohne Application Server
    • Betrieb von Spring-Boot-Anwendungen

    Microservices sind verteilte Systeme. Sie stellen Entwickler vor völlig andere Herausforderungen als klassische Deployment-Monolithen. Spring Cloud löst diese Probleme durch eine Integration von Technologien aus dem Netflix-Stack, der sich für den Entwurf von Microservice-Systemen bewährt hat.

    • Spring Cloud: Grundlegende Ansätze und Überblick über die Technologien
    • Service Discovery mit Eureka
    • Ausfallsicherheit und Resilience mit Hystrix
    • Load Balancing with Ribbon
    • Routing mit Zuul
    Mehr lesen
  • Lean Prinzipien und das Management von Technical Debt

    Vortrag Sven Johann XP Days Germany 2016

    Viele Systeme haben allerhand unsichtbare Probleme, die man heutzutage als Technical Debt zusammenfassen kann: Code Smells, fehlende Tests und Dokumentation, schlechtes Design, unangemessene Architektur und/oder veraltete Technologie. Kleine Probleme wie Code Smells sind noch einfach zu beheben, aber substantielle Probleme, die große Teile der Codebase betreffen sind aus vielen Gründen weitaus schwieriger anzupacken. Risiko, Kosten und Wert der “Rückzahlung” von Technical Debt sind zudem schwer abzuschätzen.

    Es heißt oft, dass Technical Debt zu vermeiden sei, dies ist aber letztenendes unmöglich und deshalb rückt mehr und mehr das Maximieren des Wertes von “Technical Debt Management” in den Vordergrund. Ein in die Jahre gekommenes System hat fast immer so viel Verbesserungsbedarf, dass Verbesserungen nicht blind gemacht werden dürfen. Es ist wichtig, die Stellen anzupacken, die am meisten Wert versprechen.

    Hier kommen Lean Prinzipien ins Spiel um zu entscheiden, was man wann und wie verbessern sollte.

    Dieser Vortrag gibt erst einen Überblick über die Technical Debt Landkarte und warum man Technical Debt managen sollte, statt einfach nur blind zu verbessern. Danach werden die Lean Prinzipien “Eliminate Waste”, “Decide as late as possible”, “Deliver as fast as possible” und “See the whole” diskutiert und wie man sie nutzen kann, um ein System wertorientiert zu verbessern.

    Mehr lesen
  • Microservices: Architekturen und Technologien

    Vortrag Eberhard Wolff Continuous Lifecycle 2016 / Container Conf 2016

    Als Architektur nicht nur für Continuous Delivery sind Microservices in aller Munde. Dieser Workshop zeigt die Grundlagen einer Microservices-Architektur und Technologien für den Aufbau eines Microservices-Systems. Zunächst gibt es eine Einführung in Microservices-Architekturen, ihre Vor- und Nachteile sowie wesentlichen Eigenschaften.

    Dann geht es in die Praxis: Microservices mit Java und Spring Boot sowie die Koordination der Anwendungen mit Spring Cloud und dem Netflix-Stack werden vermittelt. Am Ende können wir eine Anwendung aus mehreren Microservices betreiben und weiterentwickeln.

    Skills

    Grundlegendes Verständnis von Java ist hilfreich, aber nicht unbedingt notwendig.

    Lernziele

    • Kenntnisse über Microservice-Architekturen, Vor- und Nachteile und Einsatz-Szenarien
    • Kennenlernen eines möglichen Technologie-Stacks
    • Deployment und Betrieb von Microservices mit Docker

    Technische Anforderungen

    Es sind vorab keine technischen Vorbereitungen nötig.

    Agenda

    • ab 8:30 Registrierung und Begrüßungskaffee
    • 9:00 Beginn
    • Microservice Architekturen
    • 10.30 - 10.45 Vormittagskaffeepause
    • Docker
    • 12.15 - 13.15 Mittagspause
    • Spring Boot / Spring Cloud / Netflix Stack
    • 14.45 - 15.00 Nachmittagskaffeepause
    • Spring Cloud / Netflix Stack
    • ca. 16:00 Ende
    Mehr lesen
  • Vault – Virtueller Schlüsselkasten

    Vortrag Simon Kölsch Continuous Lifecycle 2016 / Container Conf 2016 Folien verfügbar

    Das Thema “Sicherer Umgang mit Zugangsdaten”, gerade für funktionale Accounts, wurde über Jahre hin eher stiefmütterlich behandelt. Inzwischen sind glücklicherweise Passwörter im Quellcode von Anwendungen immer seltener zu finden. Diese zur Laufzeit in der Konfiguration zu hinterlegen, ist allerdings auch nur der erste Schritt. Zunehmende Automatisierung und komplexere verteilte Systeme stellen Entwicklung und Betrieb vor weitere Herausforderungen.

    HashiCorp bietet mit Vault ein Werkzeug, um sicher mit “Secrets” umzugehen. Dieser Vortrag gibt einen Überblick über die Funktionsweise von Vault und zeigt, welche Probleme damit zu lösen sind. Dabei wird außerdem auf den Betrieb und die benötigte Infrastruktur eingegangen.

    Skills

    Der Vortrag spricht Devs und Ops an und erfordert darüber hinaus keine speziellen Vorkenntnisse.

    Lernziele

    Vaults Funktionsweise und Anwendungsfälle kennen lernen.

    Mehr lesen

    4 Dinge, die Concourse besser macht als andere Continuous-Delivery-Systeme

    Vortrag Daniel Bornkessel Continuous Lifecycle 2016 / Container Conf 2016

    Dieser Vortrag stellt ein neues, frei verfügbares Continuous-Delivery-System vor, das den Ansprüchen komplexer Test-Pipelines gerecht wird. Die Ansätze von Concourse werden alle begeistern, die schon einmal komplexe Continuous-Delivery-Setups mit anderen Systemen wie Jenkins modelliert haben bzw. bei dem Versuch gescheitert sind, eine gute Lösung zu finden.

    Concourse bietet unter anderem:

    • ein System, das nicht Snow-Flake-Server produziert
    • Pipelines als First-Class Citizens
    • deklarative Beschreibungen von Pipelines und deren Abhängigkeiten untereinander
    • eine moderne und innovative Oberfläche

    Skills

    • Continuous Delivery
    • optimalerweise Erfahrungen mit anderen Test- oder CD-Systemen

    Lernziele

    • Concourse und seine Vorzüge bekannt machen
    • Entwickler und Teams animieren, Concourse einzusetzen
    Mehr lesen

    Self-contained Systems: A Different Approach to Microservices

    Vortrag Stefan Tilkov GOTO Berlin 2016

    Microservices are the latest hype for software architectures. But just creating a set of small systems is by far not enough. Self-contained Systems (SCS) focus on an architecture approach based on Microservices. It is particularly useful for large systems and complex team structures. SCS allow to efficently develop software in such environments - even in the long run.

    The workshop explains Self-contained Systems, their advantages and disadvantages and the difference to Microservices.

    Mehr lesen

    Clojure Grundlagen

    Vortrag Michael Vitz Clojure User Group Franken

    Beim ersten Treffen der Clojure User Group Franken stellt Michael die Grundlagen von Clojure vor. Das Meetup bietet somit für alle Clojure Interesierten, auch ohne Vorwissen, einen Einstieg.

    Mehr lesen
  • Wie deploye ich richtig? Ansätze im Vergleich

    Vortrag Eberhard Wolff Continuous Lifecycle 2016 / Container Conf 2016 Folien verfügbar

    Continuous Delivery und Microservices setzten Deployment-Automatisierung voraus. Dafür gibt es nicht nur eine Vielzahl technischer Lösungen, sondern auch unterschiedliche Vorgehensweisen und Pattern.

    Der Vortrag erläutert Ansätze wie Idempotenz oder Immutable Server und gibt einen Überblick über die technologische Optionen wie Package Manager, PaaS, Docker, Chef oder Terraform. Das ist die Basis für die Wahl eines automatisierten Deployment-Ansatzes und der dafür notwendigen Technologien.

    Skills

    Grundlegendes Verständnis über Software-Installation und IT-Betrieb

    Lernziele

    • Umfassender Überblick über die verschiedenen Deployment-Optionen
    • Dabei vor allem ein Verständnis für die Konzepte und Prinzipien hinter den Optionen
    • Der Überblick über die Konzepte erlaubt eine bessere Wahl des passenden Deployment-Ansatzes und der Deployment-Strategie
    Mehr lesen

    5 Docker-Tipps aus der Praxis

    Vortrag Daniel Bornkessel Continuous Lifecycle 2016 / Container Conf 2016

    Dockers Stärke ist die Einfachheit: Ein Dockerfile ist schnell geschrieben. Aber bei größeren Teams tauchen Probleme auf: Die Übersicht über die Images geht verloren, notwendige Security Fixes können nur schwer eingespielt werden, jedes Dockerfile sieht anders aus und einige werden zu komplex.

    In diesem Talk zeige ich, wie man solche Probleme löst. Die vorgestellten Patterns und Prinzipien haben schon in mehreren Projekten ihre Nützlichkeit unter Beweis gestellt.

    Skills

    Docker-Grundlagen und ein bisschen praktische Erfahrung mit Docker

    Lernziele

    Mit relativ wenigen Konventionen und einfachen Tools kann eine Migration zum großen Einsatz von Docker viele Probleme verhindern. Es sollen Punkte aufgezeigt werden, welche oft erst relativ spät deutlich werden, aber mit einfachen Mitteln hätten verhindert werden können.

    Mehr lesen
  • Improving Your Software

    Vortrag Gernot Starke GOTO Berlin 2016

    As software developers, we spend most our time maintaining existing systems – under time and budget pressure.

    Building new business functionality tends to get more difficult, expensive and risky over time, due to increasing size, growing complexity and lack of conceptual integrity.

    Although we complain about technical debt, lack of innovation, and the architectural deficits of historically grown software, we often patch, fix or hack symptoms instead of curing the root causes of these problems.

    In this talk, you’ll get an overview of the Architecture Improvement Method, the open-source aim42 approach to systematical evolution, modernization and improvement of systems.

    Based upon examples from various organizations and industries, I’ll demonstrate the applicability of aim42 practices in real-life situations.

    You’ll see how to:

    • identify and analyze the worst problems in your systems
    • translate your problems to business & management terms
    • convince your management of corrective actions
    • integrate improvement with your day-to-day development.
    Mehr lesen

    Progressive Web Components

    Vortrag Stefan Tilkov, Frederik Dohr GOTO Berlin 2016

    Every now and then the dawn of a new web standard paves the way for a shiny new generation of web technology. Web components are right around the corner, and their impact on the way we develop applications on the web will be huge. They will finally enable a well-defined, common way to develop self-contained, reusable and interoperable front-end components. But can this piece of technology live up to the fundamental philosophies of the web? Can web components be used to progressively enhance the core functionality of web applications? This talk will try to answer these questions and provide some advice on how to use web components safely and responsibly now and in the future.

    Mehr lesen
  • ROCA: Why you shouldn’t build Web UIs the way you do

    Vortrag Stefan Tilkov Devoxx 2016

    Many people who build web UIs go about it the wrong way without knowing about it – and popular frameworks don’t help.

    In this session, we’ll take a look at the architectural patterns that form the foundation of what makes the browser unique, explore how a developer can use them to build better web UIs using the framework-less style known as ROCA – and see how relying on less fancy tooling can lead to user experiences that are actually vastly superior in many ways.

    Mehr lesen

    Microservices: Der Schnitt ist entscheidend!

    Vortrag Eberhard Wolff W-JAX 2016 Folien verfügbar

    Microservices ermöglichen es, dass Teams unabhängig voneinander arbeiten und neue Features ohne großen Aufwand in Produktion gebracht werden können. Und natürlich können Microservices einzeln skaliert werden, sodass bei hoher Last oft nur ein Service in mehr Instanzen laufen muss. Dazu muss die Aufteilung in Microservices aber stimmen – und das ist gar nicht so einfach. Dieser Vortrag zeigt, wie Microservices geschnitten werden und so die verschiedenen fachlichen, organisatorischen und technischen Rahmenbedingungen ideal unterstützen können.

    Mehr lesen
  • Clojure Web-Application 101

    Vortrag Michael Vitz Devoxx 2016 Folien verfügbar

    Clojure is a JVM language which makes the impossible come true: a pragmatic and usable Lisp for humans. Besides an short introduction to the language this talk introduces how to develop Web-Applications in Clojure.

    If you aren’t afraid of parenthesis you will quickly understand why a functional language like Clojure is a perfect choice for implementing Web-Applications and that it fits the stateless HTTP approach very nicely.

    The video recording of this talk can be found at https://www.youtube.com/watch?v=3Xm_nVqxowk

    Mehr lesen

    Wait, what!? Our microservices have actual human users?

    Vortrag Stefan Tilkov Devoxx 2016

    Microservice API styles, service lookups, datastores, scaling – all of our typical discussions about microservices seem to be centered around backend topics. But what about the user interface? How are we supposed to structure what is arguably the most important part of our applications – the one facing our users?

    In this session we’ll explore the role of the UI aspect in a microservice architecture, look at various methods of modularization, and derive a set of guidelines for avoiding monolithic frontends.

    The video recording of this talk can be found at https://www.youtube.com/watch?v=jJxmi8nrHwg

    Mehr lesen

    Was Sie über Security in Microservices-Umgebungen wissen sollten

    Vortrag Simon Kölsch W-JAX 2016

    Microservice sind momentan in aller Munde. In Abwägungen zwischen klassischen Systemen und Microservice-Umgebungen wird den unabweisbaren Vorteilen von Microservices – kleine und verständliche Einheiten, kurze Entwicklungszyklen, flexible Technologieauswahl usw. oft die Komplexität eines verteilten Systems als Nachteil gegenübergestellt. Selten wird jedoch der Sicherheitsaspekt in solchen Abwägungen berücksichtigt, obwohl dieser eine beträchtliche Herausfoderung darstellt: Statt einer monolithischen Applikation müssen nun eine Vielzahl von Microservices, teilweise in verschiedenen Programmiersprachen/Laufzeitumgebungen implementiert sowie abgesichert werden. Die Authentifizierungs-/Autorisierungskonzepte und Mechanismen müssen über Applikationen und Netzwerkgrenzen hinweg funktionieren. Es sind potenziell deutlich mehr Schnittstellen über das Netzwerk exponiert und bieten somit auch eine entsprechend größere Angriffsfläche. Regeln für Firewalls und Intrusion-Detection-Systeme werden deutlich komplizierter.

    In diesem Vortrag werden die typischen Security-Schwierigkeiten in Microservice-Umgebungen aufgezeigt und passende Lösungsansätze dargeboten, damit Ihnen zukünftig die Bewertung eines Micorservices-Ansatzes besser möglich ist.

    Mehr lesen
  • Datenarchitekturen nicht nur für Microservices

    Vortrag Eberhard Wolff W-JAX 2016 Folien verfügbar

    Microservices sollen keine gemeinsame Datenbank haben. Warum eigentlich? Und was ist mit der dabei entstehenden Redundanz? Viele Architekturen kranken an zu großen und inflexiblen Datentöpfen. Dieser Vortrag zeigt die Gründe für die Probleme: die Missachtung von Bounded Context und eine viel zu enge Kopplung der Datenmodelle. Ansätze wie CQRS (Command Query Responsibility Segregation) und Event Sourcing zeigen, wie solche Probleme gelöst werden können – ohne dass dabei zu große Redundanzen bei den Daten entstehen.

    Mehr lesen

    Microservices mit Spring Cloud und Spring Boot

    Vortrag Eberhard Wolff W-JAX 2016

    In diesem Lab bekommen Sie eine Microservices-Umgebung mit Spring Boot und Spring Cloud. Nach einer theoretischen Einführung können Sie in der Umgebung praktische Erfahrungen mit Hystrix für Resilience oder Ribbon für Load Balancing sammeln – oder wollen Sie lieber Monitoring mit Graphite oder Loganalyse mit dem ELK-Stack ergänzen? Das Lab bietet sich zur praktischen Vertiefung der Ansätze aus dem Microservices-Power-Workshop an.

    Mehr lesen
  • Microservices-Workshop: Architektur und Praxis

    Vortrag Eberhard Wolff W-JAX 2016

    Microservices sind in aller Munde. In diesem Workshop wollen wir nicht nur theoretisch über Microservices sprechen, sondern ganz praktisch ein System aus Microservices aufbauen und diskutieren. Zunächst gibt es eine Einführung in Microservices-Architekturen, ihre Vor- und Nachteile sowie wesentlichen Eigenschaften. Dann geht es in die Praxis: containerloses Deployment mit Spring Boot und Koordination der Anwendungen mit Spring Cloud und dem Netflix-Stack. Am Ende können wir eine Anwendung aus mehreren Microservices betreiben und weiterentwickeln.

    Mehr lesen
  • Self-contained Systems: Microservices-Archi­tekturen mit System

    Vortrag Eberhard Wolff rheinjug meetup Oktober 2016

    Microservices sind der aktuelle Hype in der Software-Architektur-Szene. Aber einfach nur kleine Dienste entwickeln, ist bei weiterm nicht genug. Self-contained Systems (SCS) fokussieren auf einen Architektur-Ansatz, der vor allem bei großen Systemen mit entsprechend komplexer Team-Struktur sinnvoll ist. Mit SCS kann in einem solchen Kontext auch langfristig produktiv Software entwickelt werden. Der Vortrag erläutert Self-contained Systems, ihre Vor- und Nachteile und die Abgrenzung zu Microservices.

    Mehr lesen
  • Nachhaltigkeit und Stabilität mit Microservices, Containern und DevOps

    Vortrag Eberhard Wolff, Martin Gutenbrunner OBJEKTspektrum Webinar

    Microservices sind der Architektur-Hype. Sie vereinfachen die Entwicklung, Container vereinfachen den Betrieb. Aber was sind Microservices eigentlich genau? Und welche Probleme löst dieser Architektur-Ansatz?

    Dieses Webinar zeigt verschiedene Spielweisen von Microservices, ihre Vor- und Nachteile und vermittelt so, wie diese Architektur gewinnbringend genutzt werden kann - und was dabei zu beachten ist.

    Daneben wird gezeigt, wo der dritte Begriff im Bunde - DevOps - eigentlich herkommt, und dass es kein Zufall ist, dass diese drei Begriffe beinahe zeitgleich aufgetaucht sind.

    Nach diesen 60 Minuten sind Sie mit den Ideen dieser Konzepte, dem Potential und leider auch deren gängigsten Missinterpretationen vertraut. Sie können gemeinsam mit Technikern die sinnvollste Lösung für Ihr Unternehmen skizzieren und erarbeiten.

    Mehr lesen

    Sichere Webanwendungen mit Clojure

    Vortrag Joy Clark, Simon Kölsch Düsseldorf Clojure Meetup Oktober 2016 Folien verfügbar

    In diesem Vortrag praesentieren wir Clojure als eine mögliche Sprache um mit wenig Aufwand sichere Webapplikationen zu bauen. Wir zeigen dabei mit welchen Features gängige Frameworks verschiedene Angriffe verhindern und zeigen, dass “Security” ein grundlegender Teil der Architektur sein muss.

    Wir leben in einer Welt in der das Web unseren Alltag durchdrungen hat. Die Frage nach Sicherheit wird dabei immer größer und ist schon lange ein Thema bei Endnutzern. Hacker können mit XSS, CSRF, DoS oder Injection-Attacken meine Applikation angreifen. Muss ich mich als Entwickler wirklich noch selbst um das Verhindern von solchen Angriffen kümmern? Regelmässig tauchen immer wieder neue Schwachstellen auf, deshalb ist es wichtig bei der Auswahl von Frameworks und Libraries auch auf Features im Bezug auf Security zu achten. Dazu kommt der Umgang mit Authentifizierung und Rollen/Rechte-Konzepten.

    Mehr lesen
  • Sichere Webanwendungen mit Clojure

    Vortrag Joy Clark CommitterConf 2016 Folien verfügbar

    Wir leben in einer Welt, in der das Web unseren Alltag durchdrungen hat. Die Frage nach Sicherheit wird dabei immer größer und ist schon lange ein Thema bei Endnutzern. Hacker können mit XSS, CSRF, DoS oder Injection-Attacken meine Applikation angreifen. Muss ich mich als Entwickler wirklich noch selbst um das Verhindern von solchen Angriffen kümmern? Regelmäßig tauchen immer wieder neue Schwachstellen auf, deshalb ist es wichtig bei der Auswahl von Frameworks und Libraries auch auf Features im Bezug auf Security zu achten. Dazu kommt der Umgang mit Authentifizierung und Rollen/Rechte-Konzepten.

    In diesem Vortrag präsentiere ich Clojure als eine mögliche Sprache, um mit wenig Aufwand sichere Webapplikationen zu bauen. Ich zeige dabei, mit welchen Features gängige Frameworks die verschiedenen Angriffe verhindern und dass “Security” ein grundlegender Teil der Architektur sein muss.

    Mehr lesen
  • Microservices: One size does not fit all

    Vortrag Stefan Tilkov GOTO London 2016 Folien verfügbar

    If you pay any attention to software technology trends at all, there is no way you can have missed the “microservices” architecture approach, which seems to be the cure to every problem anyone ever had. But (Micro-)services, bounded contexts, components, modules, classes, structs and records, procedures and functions – whatever structuring mechanism we’re talking about, a recurring challenge is to find the right size for things. In this session, we will look at opposing forces from both technical and organizational perspectives, and come up with strategies for finding a good balance between the number of things (in this case, microservices) and their size.

    Mehr lesen
  • Daten-Architekturen nicht nur für Microservices

    Vortrag Eberhard Wolff The Architecture Gathering 2016

    Microservices sollen keine gemeinsame Datenbank haben. Warum eigentlich? Und was ist mit der dabei entstehenden Redundanz? Viele Architekturen kranken an zu großen und inflexiblen Datentöpfen. Dieser Vortrag zeigt die Gründe für die Probleme: Die Missachtung von Bounded Context und eine viel zu enge Kopplung der Datenmodelle. Ansätze wie CQRS (Command Query Responsibility Segregation) und Event Sourcing zeigen, wie solche Probleme gelöst werden können - ohne dass dabei zu große Redundanzen bei den Daten entstehen.

    Mehr lesen

    Cloud Native Architecture - gebaut für die Cloud

    Vortrag Phillip Ghadir The Architecture Gathering 2016

    Heute lassen sich Systeme dank unterschiedlichster Cloud-Dienste softwareseitig anders schneiden als noch vor einigen Jahren. Ein System für die Cloud zu entwickeln, kann die Time-to-Market verkürzen oder auch die Skalierbarkeit und Elastizität verbessern, erfordert aber Infrastruktur-Knowhow. Dieser Vortrag stellt einige Infrastruktur- und Plattform-Services und sich daraus ergebende Architektur-Optionen vor.

    Mehr lesen

    Quo Vadis

    Vortrag Thomas Eichstädt-Engelen innoQ Themenzeit: Internet of Things

    Das Internet of Things bringt uns die vierte industrielle Revolution – so weitverbreitet der Tenor. Doch kann das Potenzial von IoT nur gehoben werden, wenn das vorherrschende Wirrwarr der Technologie und Standardisierung aufgelöst wird. Andernfalls wird IoT hinter den gesetzten Erwartungen bleiben. Es gibt Initiativen, die dieses Problem angehen. Wie und mit welchem Erfolg erklärt Thomas Eichstädt-Engelen.

    Mehr lesen

    Connected Mobility

    Vortrag Tom Acland innoQ Themenzeit: Internet of Things

    IoT ermöglicht ein individualisierteres Mobilitätsmanagement. Tom Acland zeigt, wie das Zusammenspiel von Mobile-Technologien und IoT zu neuer Wertschöpfung in der Mobilität führt. Als Mitgründer von COBI hat er ein vertieftes Verständnis, wie diese Digitalisierung die traditionelle Auffassung von urbaner Mobilität verändert und Potenziale für neue Geschäftsmodelle schafft. Hier werden nicht nur Firmen wie Uber die Mobilität von morgen prägen.

    Mehr lesen

    Free Floating

    Vortrag Martin Schmidt innoQ Themenzeit: Internet of Things

    Die Mobiliar entwickelt einen neuartigen Mobilititäts-Service für urbane Zentren. Hochwertige E-Bikes können nach einem Modell des Free Floating, also ohne fixe Bezugsstationen, gemietet werden. Martin Schmidt stellt das Pilotprojekt vor, das mit innoQ realisiert wird. Er erklärt, wie mittels IoT-Technologie ein neuer, flexibler Zugang zur Mobilität geschaffen wird und welche weiterführenden Ideen bestehen.

    Mehr lesen
  • Warum Architekten scheitern (Keynote)

    Vortrag Stefan Tilkov The Architecture Gathering 2016 Folien verfügbar

    Wir alle kennen die mit großen Visionen gestarteten Projekte, die im Disaster enden und bestenfalls noch als schlechtes Beispiel dienen können. Aber warum scheitern ambitionierte Architekturansätze? Warum wird „Architekt“ mittlerweile von Einigen schon als Schimpfwort benutzt? Und was können wir Architekten tun, um unseren Ruf zu retten?

    In diesem Vortrag sehen wir uns einige der häufigsten Gründe für das Scheitern an – und diskutieren Ansätze zu ihrer Vermeidung.

    Mehr lesen

    Managing Technical Debt

    Vortrag Sven Johann The Architecture Gathering 2016

    Viele Systeme haben allerhand unsichtbare Probleme, die man heutzutage als Technical Debt zusammenfassen kann: Code Smells, fehlende Tests und Dokumentation, schlechtes Design, unangemessene Architektur und/oder veraltete Technologie. Kleine Probleme wie Code Smells sind noch einfach zu beheben, aber substantielle Probleme, die große Teile der Codebase betreffen, sind aus vielen Gründen weitaus schwieriger anzupacken. Risiko, Kosten und Wert der “Rückzahlung” von Technical Debt sind zudem schwer abzuschätzen.

    Es heißt oft, dass Technical Debt zu vermeiden sei, dies ist aber letztenendes unmöglich. Deshalb rückt mehr und mehr das Maximieren des Wertes von “Technical Debt Management” in den Vordergrund.

    Dieser Vortrag diskutiert anhand mehrerer Beispiele, z.B. Ablösung von Alt-Frameworks oder Totalumbau eines Domänenmodells, angewandte Ideen, wie man mit Hilfe unterschiedlichster Ideen wie Shearing Layers oder Value-Chain-Analysis den Wert einer Verbesserung innerhalb eines Entwicklungsprozesses für alle Stakeholder sichtbar und nachvollziehbar machen kann, und wie man dies in einen Standard-Entwicklungsprozess wie z.B. Scrum einbetten kann.

    Mehr lesen

    Microservices lieben Domain Driven Design: warum und wie?

    Vortrag Michael Plöd The Architecture Gathering 2016 Folien verfügbar

    Zweifelsohne kann das Buch “Domain Driven Design” von Eric Evans als “Muss” für Software Architekten und Entwickler betrachtet werden. Die dort geschilderten Ideen sind heute im Kontext von Trends wie Microservices relevanter denn je. Dabei gilt es jedoch zu berücksichtigen, dass Domain Driven Design nicht einfach nur auf Aggregate, Entitäten und Services zu reduzieren ist, und dass es viel tiefergehende Zusammenhänge zwischen DDD und Microservices wie den Bounded Context gibt.

    An dieser Stelle setzt der Vortrag an: wir werden Schritt für Schritt erkunden, wie uns die Ideen und Patterns beim Aufbau und Design von Microservice-Landschaften helfen. Des Weiteren werden wir betrachten, wie wir mit Hilfe von Domain Driven Design eine bestehende Landschaft in Richtung von Microservices migrieren können.

    Mehr lesen
  • Microservices (TM): Redundancy = Maintainability!

    Vortrag Eberhard Wolff IT Arena 2016

    Microservices are not just a hype: they question some basic assumptions of software architecture. Should you really avoid redundancies? Is a clean architecture really the key to long-term maintainability? This keynote is about how Microservices enable productive software development with quite unorthodox approaches and how we have to rethink architecture even beyond Microservices.

    Mehr lesen
  • Architekturen für Agilität: Microservices und Self-contained Systems

    Vortrag Eberhard Wolff JUG Saxony Day 2016 Folien verfügbar

    Microservices haben einen breiten Einsatzkontext: Einzelnen Entwickler und kleinen Teams bieten sie Skalierbarkeit und einfaches Deployment. Großen Teams ermöglicht die Unabhängigkeit der Microservices eine parallele Entwicklung von Features. Für komplexe Web-Projekte nutzen Self-contained Systems (SCS) Ideen aus dem Microservice-Kontext, um agile Entwicklung in der Architektur zu unterstützen. Der Vortrag erläutert Microservices und SCS und ihre Vor- und Nachteile gerade bezüglich Agilität.

    Mehr lesen
  • Innovation vs. Stabilität – Architekturtransformation im Großen

    Vortrag Stefan Tilkov Software Architecture Summit 2016

    Eigentlich wollen alle nur das Beste – und doch ist es oft so schwer, sinnvolle Veränderungen durchzusetzen. Dieses Gefühl plagt IT-Konferenzbesucher, wenn sie frisch beflügelt von den großartigen Berichten über die Innovationsführer wieder „nach Hause” kommen und dort mit den tollen neuen Ideen vor Wände laufen.

    In diesem Vortrag werfen wir einen Blick auf die typischen Probleme und diskutieren Wege, sie zu überwinden. Dabei spielt neben PaaS, Continuous Delivery, Cloud und DevOps auch Politik und Betriebswirtschaft eine wichtige Rolle.

    Mehr lesen

    Self-contained Systems: Ein anderer Ansatz für Microservices (Teil 1 & 2)

    Vortrag Eberhard Wolff Software Architecture Summit 2016

    Microservices sind gerade der Architekturhype. Aber man braucht mehr als nur einige kleine Services. Self-contained Systems (SCS) sind ein auf Microservices basierender Architekturansatz, wie ihn auch Otto, Kaufhof oder Kühne+Nagel nutzten. SCS erlauben es, Software nicht nur in komplexen und großen Projekten auch langfristig effizient zu entwickeln, sondern sie passen auf sehr viele Szenarien. Dabei sind sie nicht besonders kompliziert.

    Dieser Workshop erläutert Self-contained Systems, ihre Vor- und Nachteile, den Unterschied zu Microservices und die Integration von Systemen im Frontend – eine wesentliche Basis für SCS. Wir erarbeiten außerdem eine fachliche und technische Architektur für ein SCS-System.

    Mehr lesen

    Typeclasses from the ground up

    Vortrag Daniel Westheide Honeypot Tech Meetup: Staying functional with Scala

    When it comes to typeclasses and implicits – the mechanism used for implementing this pattern in Scala – there appears to be a big gulf: They are widely used not only in many popular Scala libraries, but also in the standard library. On the other hand, many Scala developers are not familiar with them or find them too daunting.

    Since it is difficult to evade them when writing real world Scala code, I would like to encourage developers adopting Scala to overcome their fear of implicits and instead embrace the typeclass pattern. At the same time, I want to raise awareness of the problems that can arise when you do so too eagerly.

    In this talk, as an intermediate Scala developer, you will learn typeclasses from the ground up: What they are good for and how they compare to what you are familiar with from object-oriented languages, when you should and should not use them, how the pattern can be encoded in Scala and how to write your own typeclasses, how to provide instances of typeclasses for your own or existing types, and how to do all of this with minimal boilerplate. Throughout the talk, you will see numerous examples of typeclasses used in the Scala ecosystem and the standard library, and you’ll see that you don’t need to know anything about category theory to benefit from embracing type classes.

    Mehr lesen
  • Cloud Native Architectures an einem Beispiel

    Vortrag Phillip Ghadir Software Architecture Summit 2016

    Wenn wir Systeme für die Cloud bauen, stehen verschiedenste Infrastruktur- und Plattformdienste zur Verfügung. Die Optionen reichen von der einfachen Nutzung virtueller Maschinen bis hin zum Aufbau beliebig komplexer Datenverarbeitungslogik – ganz ohne (eigene) Server. Cloud-Anbieter erlauben uns, Services auf Knopfdruck zu abonnieren. Neue virtuelle Maschinen, Repositories, Datenbanken, Message-Queues und Event-Hooks sind nur wenige Mausklicks oder Cloud-API-Aufrufe entfernt.

    Dieser Workshop stellt verschiedene Architektur-Alternativen und unterschiedliche Cloud-Services an einem konkreten Beispiel vor und verknüpft dies mit den Themen aus den vergangenen Summits: der Kopplung von Self-Contained Systems & Microservices über Web-APIs und der Integration per Reactive Extensions.

    Mehr lesen
  • Fortgeschrittene REST-Architektur

    Vortrag Holger Kraus, Silvia Schreier Software Architecture Summit 2016

    REST als der Architekturstil des Webs ist mittlerweile keine Neuigkeit mehr, sondern in den meisten Fällen die bevorzugte Alternative für die Umsetzung von Web Services. Die Diskussion darüber hat sich mittlerweile von Einsteigerthemen und Rechtfertigungen weg und zu fortgeschrittenen Fragestellungen hin entwickelt.

    In diesem Workshop diskutieren Holger Kraus und Silvia Schreier mit den Teilnehmern fortgeschrittene Aspekte jenseits der Grundlagen. Zu den Themen gehören Versionierung, Dokumentation, Hypermedia, die Entwicklung von Clients, Teststrategien und vieles mehr. Dabei werden sowohl theoretische Architekturaspekte wie auch praktische Werkzeuge behandelt. Die Teilnehmer bekommen die Gelegenheit, alle Fragen zu stellen, zu denen sie noch nie befriedigende Antworten bekommen haben.

    Mehr lesen
  • Wie klein können Java-Microservices sein?

    Vortrag Eberhard Wolff Berlin Expert Days – BED-Con Folien verfügbar

    Bei Microservices denken die meisten an Frameworks wie Spring Boot und Docker Container. Es geht aber viel kleiner, wenn man technologische Kompromisse eingeht.

    Dieser Vortrag gibt einen Überblick über Microservice-Technologien wie Spring Cloud oder Spring Boot - und Ansätze wie Java EE, OSGi und Amazon Lambda, mit denen noch viel kleinere Systeme möglich ist. Dabei zeigt der Vortrag die Vorteile aber auch die Nachteile dieser Ansätze.

    Mehr lesen
  • Daten-Architekturen nicht nur für Microservices

    Vortrag Eberhard Wolff Berlin Expert Days – BED-Con Folien verfügbar

    Microservices sollen keine gemeinsame Datenbank haben. Warum eigentlich?

    Und was ist mit der dabei entstehenden Redundanz? Viele Architekturen kranken an zu großen und inflexiblen Datentöpfen. Dieser Vortrag zeigt die Gründe für die Probleme: Die Missachtung von Bounded Context und eine viel zu enge Kopplung der Datenmodelle. Ansätze wie CQRS (Command Query Responsibility Segregation) und Event Sourcing zeigen, wie solche Probleme gelöst werden können - ohne dass dabei zu große Redundanzen bei den Daten entstehen.

    Mehr lesen

    Clojure Web-Applikationen für Beginner

    Vortrag Michael Vitz Berlin Expert Days – BED-Con Folien verfügbar

    Clojure ist eine JVM-Sprache, die das Unmögliche möglich macht: Ein tatsächlich in der Praxis von normalsterblichen Entwicklern einsetzbares Lisp.

    Neben den Grundlagen von Clojure werden Sie in dieser Session auch lernen, wie man hiermit Web-Anwendungen umsetzten kann. Wenn Sie sich hierbei nicht von den Lisp-typischen Klammern abschrecken lassen, werden Sie schnell sehen, dass der Einsatz einer rein funktionalen Programmiersprache sehr gut zum statuslosen Ansatz von HTTP passt.

    Mehr lesen

    Blockchain – die langsamste (und spannendste) Datenbank der Welt

    Vortrag Stefan Tilkov Berlin Expert Days – BED-Con

    Als Fundament der virtuellen Währung Bitcoin ist das Blockchain-Verfahren mittlerweile die Basis für zahlreiche neue Geschäftsideen.

    Die üblichen Verdächtigen übertrumpfen sich gegenseitig mit Superlativen dazu, wie „disruptiv“ die darauf basierenden Startups sein werden. In diesem Vortrag betrachten wir zunächst die technischen Grundlagen und beleuchten Vor- und Nachteile. Danach identifizieren wir praktische Szenarien und diskutieren, wie man diese konkret umsetzt.

    Mehr lesen
  • Wait, what!? Our microservices have actual human users?

    Vortrag Stefan Tilkov Java User Group Darmstadt

    Microservice API styles, service lookups, datastores, scaling – all of our typical discussions about microservices seem to be centered around backend topics. But what about the user interface? How are we supposed to structure what is arguably the most important part of our applications – the one facing our users? In this session we’ll explore the role of the UI aspect in a microservice architecture, look at various methods of modularization, and derive a set of guidelines for avoiding monolithic frontends.

    Mehr lesen
  • Using Spring Boot as an example for DDD Strategic Design

    Vortrag Michael Plöd DDD Meetup Munich Folien verfügbar

    Einer der wertvollsten Bereiche von Domain Driven Design ist zweifelsohne das Strategic Design mit seinen Context Mapping Patterns. Allerdings wirken die meisten Beschreibungen der Patterns in textueller Form etwas abstrakt und schwer verdaulich. Im Rahmen dieses Vortrags werden die Patterns auf Basis einer einfachen Spring Boot basierten Anwendungslandschaft praktisch und greifbar erklärt und vorgestellt. Hierbei gehen wir unter anderem auf folgende Patterns ein: Customer/Supplier, Open Host Service, Anticorruption Layer, Conformist oder Separate Ways

    Mehr lesen
  • Auf die Daten kommt es an! Daten-Architekturen nicht nur für Microservices

    Vortrag Eberhard Wolff Herbstcampus 2016

    Microservices sollen keine gemeinsame Datenbank haben. Warum eigentlich? Und was ist mit der dabei entstehenden Redundanz? Viele Architekturen kranken an zu großen und inflexiblen Datentöpfen.

    Dieser Vortrag zeigt die Gründe für die Probleme: die Missachtung von Bounded Context und eine viel zu enge Kopplung der Datenmodelle. Ansätze wie CQRS (Command Query Responsibility Segregation) und Event Sourcing zeigen, wie solche Probleme gelöst werden können - ohne dass dabei zu große Redundanzen bei den Daten entstehen.

    Skills Grundlegendes Architekturwissen

    Lernziele * Warum sind Daten vor allem bei Microservices wichtig? * Welche technischen Gründe gibt es für die Aufteilung von Daten? * Wie sollten wir Daten fachlich modellieren und aufteilen? * Wie viel Daten-Redundanz braucht man in einem Microservices-System? * Die Bedeutung von Bounded Context aus Domain-Driven Design * Wie helfen Event Souring und CQRS bei der Aufteilung der Daten? * Sollten wir Systeme wirklich mit polyglotter Persistenz aufbauen?

    Mehr lesen
  • Einstieg in die Datenanalyse mit Python

    Vortrag Christine Koppelt ditact_women’s IT summer studies 2016

    Python ist aufgrund der zahlreichen verfügbaren Spezialbibliotheken für die Auswertung und Visualisierung von Daten eine beliebte Plattform für den Bereich Datenanalyse.

    Das Projekt Jupyter Notebooks (früher: iPython Notebook) ermöglicht es zusätzlich Dokumente bestehend aus ausführbaren Pythonfragmenten, Visualisierungen und Notizen komfortabel über eine Weboberfläche zu erstellen.

    Anhand eines kleinen Beispielprojektes mit einem vorgegebenen Datenset lernen die Teilnehmerinnen die folgenden Schritte kennen:

    • Einlesen eines Datasets
    • Auswertung der Daten mittels pandas
    • Visualisierung & Erstellung eines Reports
    Mehr lesen
  • Wait, What? Microservices Have Actual Human Users?

    Vortrag Stefan Tilkov PHP Usergroup Düsseldorf

    Microservice API styles, service lookups, datastores, scaling – all of our typical discussions about microservices seem to be centered around backend topics. But what about the user interface? How are we supposed to structure what is arguably the most important part of our applications – the one facing our users? In this session we’ll explore the role of the UI aspect in a microservice architecture, look at various methods of modularization, and derive a set of guidelines for avoiding monolithic frontends.

    Mehr lesen
  • Sichere Webanwendungen mit Clojure

    Vortrag Joy Clark, Simon Kölsch FrOSCon 2016 Folien verfügbar

    Wir leben in einer Welt, in der das Web unseren Alltag durchdrungen hat. Die Frage nach Sicherheit wird dabei immer größer und ist schon lange ein Thema bei Endnutzern. Hacker können mit XSS, CSRF, DoS oder Injection-Attacken meine Applikation angreifen. Muss ich mich als Entwickler wirklich noch selbst um das Verhindern von solchen Angriffen kümmern? Regelmässig tauchen immer wieder neue Schwachstellen auf, deshalb ist es wichtig, bei der Auswahl von Frameworks und Libraries auch auf Features im Bezug auf Security zu achten. Dazu kommt der Umgang mit Authentifizierung und Rollen/Rechte-Konzepten.

    In diesem Vortrag präsentieren wir Clojure als eine mögliche Sprache, um mit wenig Aufwand sichere Webapplikationen zu bauen. Wir zeigen dabei, mit welchen Features gängige Frameworks verschiedene Angriffe verhindern und zeigen, dass “Security” ein grundlegender Teil der Architektur sein muss.

    Sehen Sie das Video auf ccc-tv

    Mehr lesen
  • Java & relationale Datenbanken

    Vortrag Christine Koppelt, Lena Scheubert Informatica Feminale – Internationales Sommerstudium für Frauen in der Informatik

    Fünftägiger Workshop im Rahmen der Informatica Feminale – 19. Sommerstudium für Frauen in der Informatik

    Workshoptage:

    • Sa 20.8. 11.00–12.30 und 13.30–17.00 Uhr
    • So 21.8. 11.00–12.30 und 13.30–17.00 Uhr
    • Mo 22.8. 11.00–12.30 und 14.00–16.30 Uhr
    • Di 23.8. 09.00–12.30 und 14.00–16.30 Uhr
    • Mi 24.8. 09.00–10.30 Uhr

    Java-Anwendungen benötigen oftmals eine Anbindung an eine relationale Datenbank. Hierfür gibt es seit vielen Jahren etablierte Standards und Frameworks. Durch das Aufkommen neuer Programmierparadigmen, wie z.B. der reaktiven Programmierung, ergeben sich aber auch neue Ansätze für die Implementierung des Datenbankzugriffes.

    Im Rahmen des Kurses beschäftigen wir uns schwerpunktmäßig mit der Abbildung von Java Objekten in Datenbanken, der Formulierung von Anfragen und dem Testen des entsprechenden Quellcodes. Dabei kommen JDBC, JPA/Hibernate, Spring Data und weitere Bibliotheken zum Einsatz.

    Zusätzlich werden Wege für Änderungen am Datenbankschema und Möglichkeiten der Performanceoptimierung des Datenbankzugriffs, wie z.B. Caching und Connection Pooling, betrachtet.

    Wir werfen auch einen genaueren Blick auf die Datenbank selbst und geben tiefere Einblicke in Themen wie Datenmodellierung und Performanceoptimierung.

    Zielgruppe: offen

    Voraussetzung: Grundkenntnisse in Softwaretechnik, grundlegende Datenbankkenntnisse, solide Java-Kenntnisse. Eigener Laptop mit Installationsrechten und Systemkenntnis erforderlich.

    Sprache: Die Unterrichtssprache wird Deutsch sein. / The teaching language will be German. The Lecturer will provide support in English if needed.

    Anforderung: Informationsaustausch vor dem Sommerstudium, Übungen beim und für Credit Points Aufgabenbearbeitung nach dem Sommerstudium

    Teilnehmerinnen: 12

    Credit Points (ECTS): mit kleiner Ausarbeitung 1, mit großer Ausarbeitung 2

    Mehr lesen

    How to organize a CoderDojo

    Vortrag Lucas Dohmen FrOSCon 2016

    CoderDojo is a worldwide initiative to teach kids how to program. Each one is organized individually and the organizer can choose how to do it.

    I’ve been organizing the Dojo in Cologne for about two years now. In those two years we’ve grown from Dojos with four or five kids to Dojos with 14 (and sometimes even more than 20) participants each month.

    I will show you what we do at our Dojo in Cologne and share tips on how to organize a Dojo :)

    Mehr lesen
  • Wait, What? Microservices Have Actual Human Users?

    Vortrag Stefan Tilkov Goto Night Copenhagen August 2017

    Microservice API styles, service lookups, datastores, scaling – all of our typical discussions about microservices seem to be centered around backend topics. But what about the user interface? How are we supposed to structure what is arguably the most important part of our applications – the one facing our users?

    In this session we’ll explore the role of the UI aspect in a microservice architecture, look at various methods of modularization, and derive a set of guidelines for avoiding monolithic frontends.

    Mehr lesen
  • Einführung in die funktionale Programmierung mit Scala

    Vortrag Christine Koppelt informatica feminale Baden-Württemberg 2016

    Dreitägiger Workshop im Rahmen der informatica feminale Baden-Württemberg, 28.–30.07.2016

    Funktionale Programmierung ermöglicht es, Programme zu schreiben die weniger Quellcode erfordern, weniger fehleranfällig und einfacher für moderne Multi-Core Prozessoren zu parallelisieren sind. Funktionale Programme galten lange Zeit aber auch als ineffizient und schwer verständlich. In den letzten Jahren sind jedoch einige neue praxistaugliche funktionale Sprachen mit effizienten Compilern entstanden - eine der populärsten ist Scala. Scala ist eine funktionale und objektorientierte Programmiersprache auf Basis der JVM (Java Virtual Machine). Dank ausgereifter Frameworks verfügt sie über vielfältige Einsatzmöglichkeiten, beispielsweise in den Bereichen Webentwicklung, Datenanalyse und verteilte Anwendungen, was sie unter anderem bei Twitter, der New York Times und AutoScout24 unter Beweis stellt.

    In diesem Kurs geht es um eine Einführung in grundlegende Konzepte der funktionalen Programmierung am Beispiel der Programmiersprache Scala und die Unterschiede zur imperativen Programmierung. Eine große Rolle dabei spielen Funktionen erster Ordnung, einem zentralen Bestandteil funktionaler Programme. Außerdem beschäftigen wir uns mit dem Typsystem von Scala, Pattern Matching & Case Klassen, Fehlerbehandlung und der Collections API. Der Kurs besteht abwechselnd aus Vortragsblöcken und praktischen Übungsaufgaben.

    Mehr lesen
  • Wege in die Informatik - oder was macht eine Webentwicklerin so den ganzen Tag?

    Vortrag Ute Mayer 2. MINToring Symposium der Freien Universität Berlin

    Kaum ein Berufsbild ist so vielfältig und unterschiedlich wie das der InformatikerIn. Ebenso spannend und immer wieder anders ist auch der Berufsalltag einer SoftwareentwicklerIn.

    Aber was genau macht man dann eigentlich den ganzen Tag? Nur vor dem Rechner sitzen und Code schreiben? Und was kann ich tun, wenn ich mich für diesen Beruf interessiere? Dieser Vortrag soll hierzu eine kleine Einstiegshilfe bieten.

    Mehr lesen
  • Self-contained Systems – A Different Approach to Microservices

    Vortrag Eberhard Wolff Goto Night Berlin Juli 2016

    Microservices are the latest hype for software architectures. But just creating a set of small systems is by far not enough. Self-contained Systems (SCS) focus on an architecture approach based on Microservices. It is in particular useful for large systems and complex team structures. SCS allow to efficently develop software in such environments – even in the long run. The talk explains Self-contained Systems, their advantages and disadvantages and the difference to Microservices.

    Mehr lesen
  • HomeKit, Weave oder Eclipse SmartHome? Best Practices für erfolgreiche Smart-Home-Projekte

    Vortrag Sebastian Janzen, Thomas Eichstädt-Engelen Java Forum Stuttgart 2016

    Noch immer hat sich keine der zahlreichen Smart-Home-Allianzen im Markt durchgesetzt. Diese Tatsache bremst viele Projekte aus oder führt mindestens zu großer Unsicherheit, auf welches Pferd zu setzen ist. Statt auf “die Großen” zu warten und sich ihren eigennützigen Regeln unterzuordnen, sollte lieber auf wirklich offene Smart-Home-Plattformen wie Eclipse SmartHome gesetzt werden. Dieser Talk berichtet über die Lessons Learned aus einigen unserer Smart-Home-Projekte mit Eclipse SmartHome. Er beleuchtet wichtige Konzepte, zeigt die richtigen Einstiegspunkte vom OSGi-Backend bis zum AngularJS-Frontend und gibt zahlreiche Tipps für das eigene kommerzielle Smart-Home-Projekt.

    Mehr lesen

    Microservices lieben Domain Driven Design: warum und wie?

    Vortrag Michael Plöd Java Forum Stuttgart 2016 Folien verfügbar

    Zweifelsohne kann das Buch “Domain Driven Design” von Eric Evans als “Muss” für Software Architekten und Entwickler betrachtet werden. Die dort geschilderten Ideen sind heute im Kontext von Trends wie Microservices relevanter denn je. Dabei gilt es jedoch zu berücksichtigen, dass Domain Driven Design nicht einfach nur auf Aggregate, Entitäten und Services zu reduzieren ist und dass es viel tiefergehende Zusammenhänge zwischen DDD und Microservices wie den Bounded Context gibt.

    An dieser Stelle setzt der Vortrag an: wir werden Schritt für Schritt erkunden, wie uns die Ideen und Patterns beim Aufbau und Design von Microservice Landschaften helfen. Des Weiteren werden wir betrachten wie wir mit Hilfe von Domain Driven Design eine bestehende Landschaft in Richtung von Microservices migrieren können.

    Mehr lesen

    Software verbessern - aber richtig

    Vortrag Gernot Starke Java Forum Stuttgart 2016

    Unser berufliches Leben besteht zum größten Teil aus erweitern, korrigieren, ändern, patchen, fixen von Software, also Anpassungen bestehender Systeme.

    Genau diesen Teil ignoriert die klassische IT-Ausbildung, die primär auf die Neuerstellung fokussiert. Ich zeige im Vortrag pragmatische Wege, wie Sie die wesentlichen Aspekte Ihrer Systeme systematisch verbessern können.

    Sie lernen, wie Sie:

    • die schlimmsten Probleme finden,
    • Ihr Management von Umbaumaßnahmen überzeugen,
    • Verbesserungen mit Ihrem Tagesgeschäft verbinden,
    • mittel- und langfristige Verbesserungen angehen können.

    Dazu bekommen Sie einen Überblick über die Architecture Improvement Method, die (Open-Source) Methodik zur Verbesserung, Modernisierung und Evolution von IT-Systemen.

    Anhand realer Beispiele aus unterschiedlichen Domänen zeige ich die Anwendung dieser Praktiken auf mittlere und große IT-Systeme. Damit erhalten Sie konkrete Ansätze, Management und Projektleitung von Verbesserungen zu überzeugen.

    Mehr lesen
  • Wait, what!? Our microservices have actual human users ?

    Vortrag Stefan Tilkov SI-SE 2016

    Microservice API styles, service lookups, datastores, scaling – all of our typical discussions about microservices seem to be centered around backend topics. But what about the user interface? How are we supposed to structure what is arguably the most important part of our applications – the one facing our users?

    We’ll explore the role of the UI aspect in a microservice architecture, look at various methods of modularization, and derive a set of guidelines for avoiding monolithic frontends.

    Mehr lesen
  • Tutorial I : Advanced REST

    Vortrag Stefan Tilkov SI-SE 2016

    REST als der Architekturstil des Webs ist mittlerweile keine Neuigkeit mehr, sondern in den meisten Fällen die bevorzugte Alternative für die Umsetzung von nicht nur von Web­Services. Die Diskussion darüber hat sich mittlerweile von Einsteigerthemen und Rechtfertigungen weg und zu fortgeschrittenen Fragestellungen hin entwickelt.

    In diesem Workshop diskutiert Stefan Tilkov mit den Teilnehmern fortgeschrittene Aspekte jenseits der Grundlagen. Zu den Themen gehören Versionierung, Dokumentation, Hypermedia, die Entwicklung von Clients, Teststrategien und vieles mehr. Dabei werden sowohl theoretische Architekturaspekte wie auch praktische Werkzeuge behandelt. Die Teilnehmer bekommen die Gelegenheit, alle Fragen zu stellen, zu denen sie noch nie befriedigende Antworten bekommen haben.

    Mehr lesen
  • Microservices mit Java, Spring Boot und Spring Cloud

    Vortrag Eberhard Wolff Microservices Summit 2016

    In diesem Workshop geht es um die Implementierung von Microservices mit Java und Spring Boot. Spring Boot vereinfacht die Implementierung von Java-Anwendungen mit dem Spring-Framework. Es unterstützt den Betrieb von Anwendungen ohne Application Server und hat auch Ansätze für den Betrieb der Anwendungen.

    • Was ist Spring Boot?
    • Implementierung von REST-Services mit Spring Boot
    • Spring Boot mit oder ohne Application Server
    • Betrieb von Spring-Boot-Anwendungen

    Microservices sind verteilte Systeme. Sie stellen Entwickler vor völlig andere Herausforderungen als klassische Deployment-Monolithen. Spring Cloud löst diese Probleme durch eine Integration von Technologien aus dem Netflix-Stack, der sich für den Entwurf von Microservice-Systemen bewährt hat.

    • Spring Cloud: Grundlegende Ansätze und Überblick über die Technologien
    • Service Discovery mit Eureka
    • Ausfallsicherheit und Resilience mit Hystrix
    • Load Balancing with Ribbon
    • Routing mit Zuul
    Mehr lesen

    Self-contained Systems: Ein alternativer Ansatz für Microservices

    Vortrag Eberhard Wolff Microservices Summit 2016

    Microservices sind der Hype im Bereich Software-Architektur. Aber nur eine Menge von kleinen Services ist bei weitem nicht genug. Self-contained Systems stellen einen Architektur-Ansatz auf Basis von Microservices dar. Im Mittelpunkt sehen unabhängige Teams, UI-Integration und asynchrone Kommunikation. SCSs sind besonders sinnvoll für große Systeme und komplexe Teams und erlauben auch langfristig eine effiziente Software-Entwicklung in solchen Umgebung.

    Der Workshop erläutert Self-contained Systems, die Vor- und Nachteile und die Unterschiede zu Microservices.

    Mehr lesen

    Building Microservices in Clojure

    Vortrag Stefan Tilkov Joy of Coding

    One of the key tenets of the microservice architecture approach is isolation, allowing individual developers or teams to make local decisions. Clojure, a practical Lisp running on top of the JVM, has already done a lot to increase Lisp’s popularity outside of academic circles. Let’s combine the two to address the remaining doubts about its suitability for the real world! This talk will introduce both the architectural concept and the language, and show how you can combine tools from the Clojure and Java ecosystem to build Clojure-based microservices in practice.

    Mehr lesen
  • Dynamisch überwacht: Monitoring von Microservice-Architekturen

    Vortrag Alexander Heusingfeld, Tammo van Lessen Microservices Summit 2016

    Ein Softwaresystem kann nur dann erfolgreich betrieben werden, wenn es feinmaschig überwacht wird. Mit dem Aufschwung der Microservices-Architekturen reichen die traditionellen Monitoringmittel nicht mehr aus, denn sie erfordern ein hohes Maß an Flexibilität und Dynamik von Organisation und Infrastruktur. Wegen der Verteilung auf verschiedene Systeme ist es jedoch umso wichtiger, die einzelnen Dienste sorgfältig und nachhaltig zu überwachen und Verfügbarkeit, Performance (fachlich wie technisch), Zuverlässigkeit und Wirtschaftlichkeit kontinuierlich zu messen. So entsteht ein jederzeit aktuelles, vergleichendes Bild auf die Systemlandschaft. Dafür müssen allerdings neue Konzepte für Logging, Tracing und Alarming umgesetzt werden, die die Aggregation, Korrelation und Visualisierung von Laufzeitinformationen an zentraler Stelle erlauben.

    Das Trio Logs, Metriken und Tracingdaten stellt die Grundlage zur Verfügung, eine solche Beobachtungsstelle zu realisieren. Doch was sind eigentlich wichtige Logs? Welche Metriken soll ich erfassen? Wie finde ich Bottlenecks in meiner Architektur? Diese Fragen versuchen wir in der Session zu beantworten und stellen dazu die wichtigsten Ansätze und Werkzeuge zum Überwachen von modernen verteilten Systemen vor.

    Mehr lesen

    Don’t Fear the Implicits: Everything You Need to Know About Typeclasses

    Vortrag Daniel Westheide Scala Days Berlin 2016

    Developers who are new to Scala often shy away from coming into contact with implicits, and by extension, understanding typeclasses. In big organizations that have been adopting Scala at scale, you sometimes even come across hard rules that put a ban on the use of implicits because that language feature is considered to be too advanced and not understood by a lot of developers. On the other hand, implicits and typeclasses are used heavily not only by a lot of the most important Scala frameworks and libraries, but also in the standard library. Given the fact that it is so hard to evade them when writing real world Scala code, I would like to encourage developers adopting Scala to overcome their fear of implicits and instead embrace the typeclass pattern.

    In this talk, as an intermediate Scala developer, you will learn everything you really need to know about typeclasses: What they are good for and how they compare to what you are familiar with from object-oriented languages, when you should and should not use them, how the pattern can be encoded in Scala and how to write your own typeclasses, how to provide instances of typeclasses for your own or existing types, and how to do all of this with minimal boilerplate. Throughout the talk, you will see numerous examples of typeclasses used in the Scala ecosystem and the standard library, and you’ll see that you don’t need to know anything about category theory to benefit from embracing typeclasses.

    You can find a video of this talk here.

    Mehr lesen

    openHAB Rules mit JSR223, Homekit Integration & Lean Coffee

    Vortrag Sebastian Janzen, Henning Treu openHAB Meetup Düsseldorf

    Bei diesem Termin wird es zwei Vorträge geben:

    • „openHAB Rules in JavaScript und einen Ausblick auf die neue Rule Engine“ mit Sebastian Janzen, innoQ:

    Sebastian zeigt neben der alten Rule-Engine, wie man via JSR223 Regeln in anderen Sprachen schreibt. Er gibt außerdem einen Ausblick über die Zukunft der openHAB Regeln und wie diese über die REST API und Paper UI angelegt werden können.

    und

    • „openHAB Integration für Apple´s Homekit“ mit Henning Treu, codecentric:
      • Vorstellung Apple Homekit
      • Integration über nodeJS App
      • Unterstütze Items/Sitemap
      • Kurze Demo

    Den Rest des Abends können wir im Format eines Lean Coffee organisieren. Je nach Teilnehmerzahl teilen wir die Gruppe auf und diskutieren die gewählten Themen.

    Mehr lesen
  • Microservice-Architekturen zur Modernisierung von Bestandssystemen

    Vortrag Alexander Heusingfeld, Michael Vitz Microservices Summit 2016

    Ein klassisches Dilemma der IT: eine große, monolithische Anwendung, kritisch und wichtig, und innerlich ungeheuer schwer und aufwändig zu warten. Um auf fachliche Änderungen und dynamische Märkte schneller reagieren zu können, müssen wir dieses Altsystem modernisieren – nur wie? Erneuern wir nur den Technologie-Stack und bauen einen neuen Monolithen? Oder modularisieren wir und bauen strukturell sowie konzeptionell Neues? Wie können wir das entscheiden?

    Wir zeigen Ihnen in diesem Workshop anhand etablierter Praktiken und Patterns (aus dem Fundus von aim42.org) typische Möglichkeiten auf, solche Projekte anzugehen und die Systeme dabei (hoch) verfügbar zu halten. So können Sie Stück für Stück, gerade so wie es das Projektbudget zulässt, die Architektur des Gesamtsystems modernisieren, ohne ein Big-Bang-Release zu fürchten. Hierbei wollen wir uns auch mit der Frage beschäftigen, die so gern von unseren Vorgesetzten gestellt wird: “Können Sie mir mal vorrechnen, wieso eine Microservice-Architektur die finanziell bessere Entscheidung ist?“ Nach dem Workshop haben Sie einige anwendbare Muster kennengelernt, mit deren Hilfe Sie Ihre eigenen Monolithen wieder zu besser wartbaren Systemen migrieren können.

    Mehr lesen

    Microservices: Redundanz = Wartbarkeit!

    Vortrag Eberhard Wolff Karlsruher Entwicklertag 2016 Folien verfügbar

    Microservices sind nicht nur ein Hype: Sie stellen einige grundlegende Annahmen der Software-Architekturen in Frage. Soll man Redundanzen wirklich vermeiden? Ist eine saubere Architektur wirklich der Schlüssel zu langfristiger Wartbarkeit? Diese Keynote handelt davon, wie Microservices mit unorthodoxen Ansätzen eine produktive Software-Entwicklung erlauben und wie wir Architektur auch jenseits von Microservices neu denken müssen.

    Mehr lesen
  • Workshop: “Self-contained Systems: A Different Approach to Microservices”

    Vortrag Eberhard Wolff Goto Amsterdam 2016

    Microservices are the latest hype for software architectures. But just creating a set of small systems is by far not enough. Self-contained Systems (SCS) focus on an architecture approach based on Microservices. It is particularly useful for large systems and complex team structures. SCS allow to efficently develop software in such environments - even in the long run.

    The workshop explains Self-contained Systems, their advantages and disadvantages and the difference to Microservices.

    Mehr lesen
  • Microservices with Clojure

    Vortrag Joy Clark, Michael Vitz Microservices Meetup Rhein-Main Juni 2016 Folien verfügbar

    Microservices are especially characterized by their autonomy: the services are as loosely coupled as possible. For this reason, a microservice architecture allows different technologies to be deployed that are exactly suitable for the problem which needs to be solved and the skill set of the software engineer. In such an environment, the benefits of a modern language like Clojure can be invaluable: short and precise code, concurrent processing, and direct support for asynchronous programming.

    However, there are also particular challenges when dealing with microservices: How can a project be created with as little overhead as possible? How can services communicate with each other? How can I protect my service when other services fail? And once a service has been created, how can I deploy and monitor it?

    In this talk we will introduce the participants to Clojure step by step and, with the help of an example, introduce the Clojure libraries which can be used in order to tackle the previously stated challenges.

    Mehr lesen
  • Building reactive applications with the Grails 3 event system

    Vortrag Michael Plöd GR8Conf EU & Gradle Event Folien verfügbar

    Grails 3 introduced a brand new event system which is based on Reactor. This new feature allows developers to build reactive applications with Grails 3. In this talk we will cover the event system in Grails 3 in detail and explain how it can be used for asynchronous and decoupled communication between commands, services, and even plugins. In addition to that, I will also explain the characteristics of reactive applications and show in how far the Grails 3 event system will support you in developing such applications

    Mehr lesen

    Hands On Migration from Grails 2 to 3

    Vortrag Michael Plöd GR8Conf EU & Gradle Event Folien verfügbar

    Grails 3 is a substantial and radical change in the Grails Ecosystem which requires some effort in order to migrate applications from Grails 2 to the newest version. This presentation explains which steps have to be taken and which gotchas exist in the migration process. Apart from the theory we will also migrate an existing application that is productive (http://www.allschools.de) and running with Grails 2 to the newest version of Grails 3. This presentation will feature a few slides and tons of code.

    Mehr lesen
  • Why software architects fail – and what to do about it

    Vortrag Stefan Tilkov Goto Berlin 2016 Program Release Party

    We’ve all seen them: Ambitious projects, starting out with grand visions, ending up as costly lessons in what not to do, leaving behind the ruins of promising paradigms, technologies, tools, and careers. But why do architecture approaches sometimes hurt instead of providing value? Why has “architect” become a negative term for some people? And what can we do to improve our own work? We’ll look at some of the most common pitfalls that ensure you’ll come up with a disaster, and discuss how they can be avoided.

    Mehr lesen
  • Caching with Spring: Advanced Topics and Best Practices

    Vortrag Michael Plöd Spring I/O 2016 Folien verfügbar

    Caching is relevant for a wide range of business applications and there is a huge variety of products in the market, ranging from easy to adopt local heap based caches to powerful distributed data grids. This talk addresses advanced usage of Spring’s caching abstractions such as integrating a cache provider that is not integrated by the default Spring Package.

    In addition, I will also give an overview of the JCache Specification and its adoption in the Spring ecosystem. Finally, the presentation will also address several best practices for integrating various caching solutions into enterprise grade applications that don’t have the luxury of having „eventual consistency“ as a non-functional requirement.

    Mehr lesen
  • Event Sourcing – Einführung und Best Practices

    Vortrag Michael Plöd SEACON 2016 Folien verfügbar

    Unter Event Sourcing versteht man einen Architekturstil in dem Änderungen am Zustand der verwalteten Daten als eine Sequenz von Events festgehalten werden. Durch diese Herangehensweise können jederzeit Snapshots des Datenzustands erstellt und abgefragt werden. Des Weiteren ermöglicht uns das Persistieren von Events eine Optimierung der lesenden Zugriffe durch eine denormalisierung des ‘Lese-Modells’ der Daten. Letzerer Aspekt ist aktuell insbesondere durch den Architekturansatz CQRS in aller Munde.

    Im Rahmen des Vortrags werde ich Ihnen eine Einführung in das Thema Event Sourcing geben und gängige Patterns rund um das Thema vorstellen. Des Weiteren werden Themen wie Rollback von Events (Kompensation-Services), Möglichkeiten der Erstellung von Daten Snapshots und Änderungen durch externe Systeme vorgestellt. Abgerundet wird der Vortrag durch eine Diskussion möglicher Einsatzszenarien für Event Sourcing.

    Mehr lesen
  • Microservices love Domain Driven Design

    Vortrag Michael Plöd hmmh Digital Talk Mai 2016 Folien verfügbar

    Without any doubt Eric Evans’ book “Domain Driven Design” is being considered as a “must have read” among many IT specialists from various domains. With the emergence of Microservices, Domain Driven Design has become more relevant than ever.

    This talk explains how the patterns and concepts of Domain Driven Design relate to Microservice architectures. We will see that Microservices are not only about Bounded Contexts and that there is much more to Domain Driven Design than Entities and Aggregates. In addition to that I will show how Domain Driven Design will help you to structure and model your Microservices in terms of granularity, business context and interface design (just to name a few). Finally, we will look into migrating existing monolithic applications with the help of patterns laid out in DDD.

    Mehr lesen
  • Event Sourcing: Einführung und Best Practices

    Vortrag Michael Plöd juhg – Java User Group Hessen, April 2016 Folien verfügbar

    Unter Event Sourcing versteht man einen Architekturstil, in dem Änderungen am Zustand der verwalteten Daten als eine Sequenz von Events festgehalten werden. Durch diese Herangehensweise können jederzeit Snapshots des Datenzustands erstellt und abgefragt werden. Des Weiteren ermöglicht uns das Persistieren von Events eine Optimierung der lesenden Zugriffe durch eine Denormalisierung des “Lese-Modells” der Daten. Letzerer Aspekt ist aktuell insbesondere durch den Architekturansatz CQRS in aller Munde.

    Im Rahmen des Vortrags wird Michael Plöd eine Einführung in das Thema Event Sourcing geben und gängige Patterns rund um das Thema vorstellen. Des Weiteren werden Themen wie Rollback von Events (Kompensation-Services), Möglichkeiten der Erstellung von Daten-Snapshots und -Änderungen durch externe Systeme vorgestellt. Abgerundet wird der Vortrag durch eine Diskussion möglicher Einsatzszenarien für Event Sourcing.

    Eine Voranmeldung ist nicht nötig, der Eintritt ist frei.

    Mehr lesen
  • Architektur-Retreat

    Vortrag Eberhard Wolff, Martin Heider, Victor Sauermann, Robin Timmermann JAX 2016

    Architektur ist eher ein trockenes, theoretisches Thema. Nicht bei diesem Workshop! Wir werden ganz praktisch Architekturen entwerfen, kommunizieren und verbessern. So lernen wir, worauf es wirklich ankommt. In mehreren Iterationen lernen wir Konzepte kennen, mit denen die Qualität eines Softwareprojekts verbessert werden kann.

    Mehr lesen
  • Wie sieht ein Microservices-Technologiestack aus?

    Vortrag Eberhard Wolff JAX 2016

    Microservices stellen ganz neue technische Herausforderungen – schließlich laufen verteilte Dienste auf verschiedenen Servern im Netz. Wie finden sich die Services? Wie geht man mit dem Ausfall von Services um? Und wie verteilt die Last sich auf die Services? Dieser Vortrag zeigt, welche Herausforderungen durch welche Technologien gelöst werden, und gibt so eine Orientierung in diesem Bereich.

    Mehr lesen

    Software Architektur für Innovation

    Vortrag Stefan Tilkov OBJEKTspektrum Information Days 2016 Folien verfügbar

    Um Innovationen in einem Software-System zu ermöglichen, muss die Architektur der Software änderbar sein, schnell auf das Geschehen am Markt reagieren und neue Technologien einfach unterstützen. Der Vortrag stellt wichtige moderne Prinzipien wie Continuous Delivery und Microservices vor und erläutert, wie solche Ansätze umgesetzt werden sollen. Im Mittelpunkt steht die Funktionsweise dieser Techniken und welche Vorteile sie aus einer Geschäftsperspektive in einem innovativen Umfeld bieten.

    Mehr lesen

    Self-contained Systems: Microservices-Architekturen mit System

    Vortrag Eberhard Wolff JAX 2016

    Microservices sind der aktuelle Hype in der Software-Architektur-Szene. Aber einfach nur kleine Dienste entwickeln, ist bei weiterm nicht genug. Self-contained Systems (SCS, http:///scs-architecture.org ) fokussieren auf einen Architektur-Ansatz, der vor allem bei großen Systemen mit entsprechend komplexer Team-Struktur sinnvoll ist. Mit SCS kann in einem solchen Kontext auch langfristig produktiv Software entwickelt werden.

    Der Vortrag erläutert Self-contained Systems, ihre Vor- und Nachteile und die Abgrenzung zu Microservices.

    Mehr lesen
  • Value-based Improvement (wert-/nutzenbasierte Modernisierung)

    Vortrag Martin Schmidt, Gernot Starke Business Technology Days 2016 Folien verfügbar

    Wenn Softwaresysteme durch ständiges „Herumbasteln“ (sprich: Erhöhung der technischen Schulden) verrotten, dann werden fachliche Erweiterungen immer teurer und riskanter. Ein Teufelskreis – denn dann steigt gleichzeitig der Druck, neue Features liefern zu müssen.

    Im Vortrag zeigen wir systematische Auswege aus dieser Situation: Mit aim42-basierter Analyse identifizieren Sie die schlimmsten Wartungshindernisse und bewerten diese aus betriebswirtschaftlicher Sicht. Parallel zu fachlicher Erweiterung beseitigen Sie systematisch und kontinuierlich diese Hemmnisse – und balancieren damit Wartbarkeit und Business-Value. Klassischen Refactoring-Ansätzen fehlt dieser betriebswirtschaftliche Aspekt – daher stoßen sie bei Entscheidern so oft auf Widerstand.

    Mehr lesen

    Fünf einfache Schritte zu Continuous Delivery

    Vortrag Eberhard Wolff JAX 2016 Folien verfügbar

    Die Einführung von Continuous Delivery ist komplex. Prozesse müssen grundlegend geändert werden. Kaum ein Stein bleibt auf dem anderen. Die Gefahr ist groß, dass man das Ziel und den Weg aus den Augen verliert. Die vorgestellten fünf Schritte zeigen die Bereiche, auf die man sich fokussieren muss, und wo die meisten Stolpersteine sind. Continuous Delivery ist schließlich mehr als nur Infrastrukturautomatisierung oder nur eine Prozessoptimierung.

    Mehr lesen

    Microservices zur Architektur­modernisierung

    Vortrag Alexander Heusingfeld, Michael Vitz JAX 2016 Folien verfügbar

    Dieser Vortrag adressiert ein klassisches Dilemma der IT: eine große, monolithische Anwendung, kritisch und wichtig, und innerlich ungeheuer schwer und aufwändig zu warten. Um auf fachliche Änderungen und dynamische Märkte schneller reagieren zu können, müssen wir dieses Altsystem modularisieren und strukturell sowie konzeptionell modernisieren – dabei aber kontinuierlich (hoch) verfügbar halten. Ganz nebenbei verfügen wir natürlich nur über ein eingeschränktes Budget.

    Wir zeigen Ihnen anhand etablierter Praktiken und Patterns (aus dem Fundus von aim42.org) typische Möglichkeiten auf, solche Projekte anzugehen und Stück für Stück die Architektur des Gesamtsystems zu modernisieren. Hierbei unterstützen uns u. A. Bibliotheken wie Hystrix dabei, die Risiken dieser Umstellung zu managen und auch zu visualisieren. Nach dem Vortrag haben Sie einige anwendbare Muster kennengelernt, mit deren Hilfe Sie Ihre eigenen Monolithen wieder zu besser wartbaren Systemen migrieren können.

    Mehr lesen

    Raten, schätzen, zählen, rechnen: Praktische Tipps zum Umgang mit Unbekanntem

    Vortrag Gernot Starke JAX 2016

    Trotz #noestimates-Bewegung müssen wir dauernd Dinge schätzen, etwa Kosten oder Aufwände. Das macht uns ITlern keinen Spaß, kann jedoch für andere Stakeholder hilfreiche Informationen bzw. Entscheidungsgrundlage liefern. Im Vortrag lernen Sie, wie einfache Methodik und etwas Pragmatik zusammen Ihre Schätzaufgaben deutlich vereinfachen können. Ich beginne bei den Grundbegriffen (Schätzgegenstand und -parameter) und zeige an Beispielen, dass wir häufig „raten“ durch „zählen und rechnen“ ergänzen können. Wir klären die Ziele von Schätzungen und hören von einer Menge interessanter und wirtschaftlich sinnvoller Anwendungen von Schätzungen.

    Mehr lesen
  • Microservices-Workshop: Architektur und Praxis

    Vortrag Eberhard Wolff JAX 2016

    Microservices sind in aller Munde. In diesem Workshop wollen wir nicht nur theoretisch über Microservices sprechen, sondern ganz praktisch ein System aus Microservices aufbauen und diskutieren. Zunächst gibt es eine Einführung in Microservices-Architekturen, ihre Vor- und Nachteile sowie wesentlichen Eigenschaften. Dann geht es in die Praxis: containerloses Deployment mit Spring Boot und Koordination der Anwendungen mit Spring Cloud und dem Netflix-Stack. Am Ende können wir eine Anwendung aus mehreren Microservices betreiben und weiterentwickeln.

    Mehr lesen
  • Workshop: Einführung in JavaScript

    Vortrag Christine Koppelt Münchner Open-Source-Treffen

    Lange Zeit als Sprache für die Erstellung kleiner Web-Skripte belächelt, hat sich JavaScript mittlerweile zu einer Plattform mit einem breiten Einsatzgebiet entwickelt - von modernen Web-Frontends über Backend-Anwendungen bis hin zu Spielentwicklung und zur Erstellung von Programmen für Microcontroller.

    Der Workshop bietet eine grundlegende Einführung in die Programmierung mit JavaScript und vermittelt die Grundlagen, um mit JavaScript komplexe Anwendungen schreiben zu können.

    In Absprache mit den Teilnehmern wird eine Auswahl der folgenden Themen behandelt:

    • Grundlagen der Sprache (Spracheigenschaften, Datentypen, Syntax)
    • Fortgeschrittene Konzepte von JavaScript (Objektorientierung, Funktionale Konstrukte)
    • Modularisierung
    • Versionen & Varianten (EcmaScript 5/6, Transpiler, Engines)
    • Testen & Codeanalyse (mocha.js, JSHint)
    • Buildkripte & Paketmanagement mit npm
    • IDEs und Editoren

    Voraussetzung für die Teilnahme: Grundlegende Programmierkenntnisse und ein eigenes Laptop.

    Mehr lesen
  • Microservices with Clojure

    Vortrag Joy Clark, Michael Vitz Microservices Meetup Berlin April 2016 Folien verfügbar

    Microservices are especially characterized by their autonomy: the services are as loosely coupled as possible. For this reason, a microservice architecture allows different technologies to be deployed that are exactly suitable for the problem which needs to be solved and the skill set of the software engineer. In such an environment, the benefits of a modern language like Clojure can be invaluable: short and precise code, concurrent processing, and direct support for asynchronous programming.

    However, there are also particular challenges when dealing with microservices: How can a project be created with as little overhead as possible? How can services communicate with each other? How can I protect my service when other services fail? And once a service has been created, how can I deploy and monitor it?

    In this talk we will introduce the participants to Clojure step by step and, with the help of an example, introduce the Clojure libraries which can be used in order to tackle the previously stated challenges.

    Mehr lesen

    Microservices in Production

    Vortrag Timo Derstappen Microservices Meetup Rhein-Main April 2016

    innoQ is happy to host the next Microservices Meetup Rhein-Main in its office in Offenbach.

    Timo Derstappen, co-founder and CTO of Giant Swarm, will talk about the challenges of Microservices in production. Over the last few years we have heard a lot about the benefits of Microservices. But there are obviously also a lot of challenges involved to be successful with Microservices. In this talk, Timo wants to focus on the challenges to create stable production environments, container orchestration and failure domains. He will tell us how to evaluate architectural decisions and why our infrastructures need to stay flexible over the next years.

    Timo Derstappen is co-founder and CTO of Giant Swarm in Cologne. He has many years of experience in building scalable and automated cloud architectures. He likes his minimal linux desktop setup, puts nearly everything into containers, and thinks Minecraft is a gateway drug.

    Mehr lesen
  • Software modernisieren – aber richtig

    Vortrag Gernot Starke EuregJUG April 2016

    Bestehende IT-Systeme leiden oftmals an vielerlei Krankheiten, die Innovation und Weiterentwicklung behindern (und obendrein das Entwicklerleben erschweren).

    Systematische Modernisierung und Verbesserung muss parallel zum Tagesgeschäft und auch mit beschränkten Budgets funktionieren - gleichzeitig sowohl für Entwickler wie auch Manager nachvollziehbar sein. Genau hier setzt aim42 an, die (Open-Source) „Architecture Improvement Method“ - die schon vielen Teams pragmatische Wege aus dem Legacy-Chaos aufgezeigt hat.

    aim42 arbeitet iterativ und enthält eine Vielzahl etablierter, einfach umsetzbaren Praktiken rund um die Verbesserung. aim42 funktioniert komplett unabhängig von Technologie und ist sowohl in kleinen wie auch größeren Umfeldern einsetzbar.

    Der Vortrag zeigt Highlights und grundlegenden Ansätze von aim42, nutzt dazu Beispiele unterschiedlicher Fachdomänen.

    Einige Stichworte:

    • Problemanalyse muss Breiten- und Tiefensuche kombinieren
    • Böse Fallen statischer Codemetriken
    • Nichtlineare Beziehungen zwischen Problemen und Lösungen
    • Wie schlimm ist ein Problem wirklich?
    • Wie erkläre ich meinem Manager mein technisches Problem?
    • Kategorien von Verbesserungsmaßnahmen
    Mehr lesen

    Warum Architekten scheitern

    Vortrag Stefan Tilkov JUG Hamburg Special Day: Architektur Folien verfügbar

    Wir alle kennen die mit großen Visionen gestarteten Projekte, die im Disaster enden und bestenfalls noch als schlechtes Beispiel dienen können. Aber warum scheitern ambitionierte Architekturansätze? Warum wird „Architekt“ mittlerweile von Einigen schon als Schimpfwort benutzt? Und was können wir Architekten tun, um unseren Ruf zu retten? In diesem Vortrag sehen wir uns einige der häufigsten Gründe für das Scheitern an – und diskutieren Ansätze zu ihrer Vermeidung.

    Mehr lesen
  • Workshop: Microservices mit Java, Spring Cloud und Spring Boot

    Vortrag Eberhard Wolff Software Architecture Summit 2016

    Dieser Workshop zeigt die Implementierung von Microservices mit Java und Spring Boot. Spring Boot vereinfacht die Entwicklung von Java-Anwendungen mit dem Spring Framework. Es erlaubt den Ablauf von Anwendungen ohne Application Server und unterstützt auch sehr einfache Ansätze für den Betrieb. Spring Boot eignet sich daher sehr gut für Microservices.

    Themen:

    • Was ist Spring Boot?
    • REST-Services mit Spring Boot implementieren
    • Betrieb von Spring Boot Anwendungen

    Microservices sind verteilte Systeme. Die Herausforderungen bei der Implementierung solcher Systeme sind ganz anders als das Vorgehen bei klassischen Deployment Monolithen. Spring Cloud löst diese Probleme durch die Integration von Technologien aus dem Netflix-Stack – dem de-facto Standard für Microservices.

    • Spring Cloud: Grundlegender Ansatz
    • Überblick über die in Spring Cloud integrierten Technologien
    • Services Discovery mit Eureka
    • Resilience und Hochverfügbarkeit mit Hystrix
    Mehr lesen

    Event Sourcing in der Praxis Workshop

    Vortrag Michael Plöd Software Architecture Summit 2016 Folien verfügbar

    Unter Event Sourcing versteht man einen Architekturstil in dem Änderungen am Zustand der verwalteten Daten als eine Sequenz von Events festgehalten werden. Durch diese Herangehensweise können jederzeit Snapshots des Datenzustands erstellt und abgefragt werden. Des Weiteren ermöglicht uns das Persistieren von Events eine Optimierung der lesenden Zugriffe durch eine denormalisierung des „Lese-Modells“ der Daten. Letzerer Aspekt ist aktuell insbesondere durch den Architekturansatz CQRS in aller Munde.

    Im Rahmen des Workshops wird Michael Plöd eine Einführung in das Thema Event Sourcing geben und gängige Patterns rund um das Thema vorstellen. Des Weiteren werden Themen wie Rollback von Events (Compensation-Services), Möglichkeiten der Erstellung von Daten Snapshots und Änderungen durch externe Systeme vorgestellt. Der Workshop wird neben Schaubildern zahlreiche praktische Live-Coding Bestandteile (Java / Groovy / Spring) beinhalten.

    Mehr lesen
  • Microservices: Architektur & Deployment mit Docker

    Vortrag Eberhard Wolff Software Architecture Summit 2016

    Microservices verbessern Time-to-Market, ermöglichen einen flexibleren Umgang mit Technologien und erlauben auch langfristig wartbare Systeme. Dieser Workshop erläutert die Grundlagen von Microservices und zeigt, wie man Microservice-Architekturen entwirft.

    • Was sind Microservices?
    • Vorteile und Herausforderungen des Microservices-Ansatzes
    • Einfluss von Microservices auf die Organisation

    Außerdem lernen die Teilnehmer, wie Microservices mit Docker deployt werden können. Docker ist viel effizienter als Virtualisierung. Da Microservices eine große Anzahl an virtuellen Maschinen benötigen, hat Docker gerade für solche Architektur deutliche Vorteile.

    • Was ist Docker?
    • Applikationen mit Docker Containern und Docker Compose deployen
    • Umgebungen mit Docker Machine aufbauen
    Mehr lesen

    Microservices love Domain Driven Design: how and why?

    Vortrag Michael Plöd Microservices Meetup Munich March 2016 Folien verfügbar

    Without any doubt Eric Evans’ book “Domain Driven Design” is being considered as a “must have read” among many IT specialists from various domains. With the emergence of Microservices Domain Driven Design has become more relevant then ever. This talk explains how the patterns and concepts of Domain Driven Design relate to Microservice architectures. We will see that Microservices are not only about Bounded Contexts and that there is much more to Domain Driven Design than Entities and Aggregates. In addition to that I will show off how Domain Driven Design will help you to structure and model your Microservices in terms of granularity, business context and interface design (just to name a few). Finally we will look into migrating existing monolithic applications with the help of patterns laid out in DDD.

    Mehr lesen
  • Gebaut für die Cloud – Cloud-Native Architectures

    Vortrag Phillip Ghadir Software Architecture Summit 2016

    Dieser Vortrag stellt einige Infrastruktur- und Plattform-Services vor und zeigt, welche Art von Self-Services wichtig sind, um Systeme für die Cloud zu entwickeln.

    Beispiele für Services unterschiedlichster Abstraktionsebenen zeigen ein Spektrum relevanter Architektur-Entscheidungen auf.

    Am Beispiel der Amazon-WS wird gezeigt, wie sich moderne Softwarearchitekturen Cloud-technisch umsetzen lassen.

    Mehr lesen

    Fortgeschrittene REST-Architektur

    Vortrag Silvia Schreier, Stefan Tilkov Software Architecture Summit 2016

    REST als der Architekturstil des Webs ist mittlerweile keine Neuigkeit mehr, sondern in den meisten Fällen die bevorzugte Alternative für die Umsetzung von nicht nur von Web-Services. Die Diskussion darüber hat sich mittlerweile von Einsteigerthemen und Rechtfertigungen weg und zu fortgeschrittenen Fragestellungen hin entwickelt.

    In diesem Workshop diskutieren Silvia Schreier und Stefan Tilkov, zwei der Autoren des deutschsprachigen „REST und HTTP“-Buches, mit den Teilnehmern fortgeschrittene Aspekte jenseits der Grundlagen. Zu den Themen gehören Versionierung, Dokumentation, Hypermedia, die Entwicklung von Clients, Teststrategien und vieles mehr. Dabei werden sowohl theoretische Architekturaspekte wie auch praktische Werkzeuge behandelt. Die Teilnehmer bekommen die Gelegenheit, alle Fragen zu stellen, zu denen sie noch nie befriedigende Antworten bekommen haben.

    Mehr lesen

    Zukunftsweisende Architekturen: Microservices und Self-Contained Systems

    Vortrag Eberhard Wolff Heise Developer World 2016

    Microservices sind der aktuelle Hype in der Software-Architektur-Szene. Sie haben einen breiten Einsatzkontext: Einzelne Entwickler und kleine Teams nutzen sie wegen ihrer Skalierbarkeit und des einfachen Deployments. Große Teams ermöglicht die Unabhängigkeit der Microservices eine parallele Entwicklung mit wenig Overhead. Gerade für große, komplexe Projekte nutzen Self-contained Systems Ideen aus dem Microservice-Kontext, um auch langfristig produktiv Software zu entwickeln. Der Vortrag erläutert Microservices und Self-contained-Systeme sowie ihre Vor- und Nachteile.

    Mehr lesen
  • Smart Home? Ist nur was für Nerds! Ideen und Anwendungsszenarien aus dem Projekt QuartiersNETZ

    Vortrag Thomas Eichstädt-Engelen, Jonas Sorgalla Internet of Things Conference, Spring

    Auch wenn das Smart Home langsam auf dem Consumermarkt ankommt, fehlen immer noch die griffigen (Killer-) Use Cases, die über Klimasteuerung und Komfortfunktionen hinausgehen. Im Forschungsprojekt QuartiersNETZ beschäftigt sich das Smart Environments Engineering Laboratory (SEELAB) der FH Dortmund gemeinsam mit Partnern aus Wirtschaft, Gerontologie und Sozialwissenschaften damit, mit vorhandenen Smart-Home-Technologien echten Mehrwert zu stiften und damit ein längeres selbstbestimmtes Leben in den eigenen vier Wänden zu ermöglichen.

    In diesem Talk geben wir nicht nur Einblicke in einen ungewöhnlichen Requirements-Engineering-Prozess, sondern zeigen auch eine Reihe echter Anwendungsfälle für das Smart Home aus dem Bereich Ambient Assisted Living (AAL). Darauf aufbauend beleuchten wir, wie mithilfe der Integrationsplattform openHAB flexible und individualisierbare Bedienkonzepte im häuslichen Umfeld umgesetzt wurden.

    Mehr lesen

    HomeKit, Weave oder Eclipse SmartHome? Best Practices für erfolgreiche Smart-Home-Projekte

    Vortrag Thomas Eichstädt-Engelen, Sebastian Janzen Internet of Things Conference, Spring Folien verfügbar

    Noch immer hat sich keine der zahlreichen Smart-Home-Allianzen im Markt durchgesetzt. Diese Tatsache bremst viele Projekte aus oder führt mindestens zu großer Unsicherheit, auf welches Pferd zu setzen ist. Statt auf “die Großen” zu warten und sich ihren eigennützigen Regeln unterzuordnen, sollte lieber auf wirklich offene Smart-Home-Plattformen wie Eclipse SmartHome gesetzt werden.

    Dieser Talk berichtet über die Lessons Learned aus einigen unserer Smart-Home-Projekte mit Eclipse SmartHome. Er beleuchtet wichtige Konzepte, zeigt die richtigen Einstiegspunkte vom OSGi-Backend bis zum AngularJS-Frontend und gibt zahlreiche Tipps für das eigene kommerzielle Smart-Home-Projekt.

    Mehr lesen
  • Security – Every Developer’s Responsibility

    Vortrag Christoph Iserlohn Heise Developer World 2016 Folien verfügbar

    Fast tagtäglich werden neue Hacks und Datendiebstähle bekannt. Und niemand ist vor ihnen sicher: große Industrieunternehmen, globale Technologiekonzerne, Finanzinstutionen, Behörden; selbst IT-Sicherheitsdienstleister und den deutschen Bundestag hat es schon getroffen. Besorgnis erregend dabei ist, dass oft immer noch erfolgreich Angriffe benutzt werden, gegen die es längst bekannte und einfach zu implementierende Gegenmaßnahmen gibt. Ein Großteil der Sicherheitsprobleme lassen sich dabei auf Fehler im Design und in der Implementierung zurückführen. Lernen Sie in diesem Vortrag relevanten Grundlagen von Security kennen und verstehen Sie, warum gerade Entwickler eine besondere Verantwortung tragen.

    Mehr lesen
  • Die Drei von der Leitstelle – Logging, Metriken und Tracing in verteilten Anwendungen

    Vortrag Tammo van Lessen Frankfurter Entwicklertag 2016

    Aktuelle Trends sehen die Zerschlagung von Monolithen in kleine, in sich abgeschlossene Dienste, sogenannte Microservices, als Mittel zur Lösung typischer Probleme großer Softwaresysteme. Dieser Ansatz ermöglicht schnellere Reaktionszeiten auf Marktänderungen sowie mehr Flexibilität bei der Wartung. Wegen der Verteilung auf verschiedene Systeme ist es jedoch umso wichtiger, die einzelnen Dienste sorgfältig und nachhaltig zu überwachen und Verfügbarkeit, Performance (fachlich wie technisch), Zuverlässigkeit oder Wirtschaftlichkeit kontinuierlich zu messen. So entsteht ein jederzeit aktuelles, vergleichendes Bild auf die Systemlandschaft.

    Das Trio Logging, Metriken und Tracing stellt die geeigneten Mittel zur Verfügung, eine solche Beobachtungsstelle zu realisieren. Doch wie logge ich eigentlich richtig? Welche Metriken soll ich erfassen? Wie finde ich Bottlenecks in meiner Architektur? Diese Fragen möchten wir in der Session beantworten und stellen dazu die wichtigsten Ansätze und Werkzeuge zum Überwachen von modernen verteilten Systemen vor.

    Mehr lesen

    When Microservices Meet Real-World Projects: Lessons Learned

    Vortrag Alexander Heusingfeld JUG Dortmund Spring Event Folien verfügbar

    Als Berater sehen wir oft beide Seiten der Medaille: Auf der einen Seite arbeiten wir mit Leading-Edge-Technologien, die meist gerade erst marktreif sind. Auf der anderen Seite stehen Kunden mit sehr konservativen Betriebsabteilungen, Legacy-Systemen und strikten Reglementierungen zur Datensicherheit.

    In dieser Session möchten wir von den Erfahrungen berichten, die wir im Beratungsalltag sammeln durften. Was bedeutet eigentlich “pets vs. cattle”? Warum soll sich ein Entwickler mit den Business-Use-Cases auseinandersetzen? Warum können IT-Projekte auf Grund der Unternehmensorganisationen scheitern, und was hat eine DevOps-Mentalität mit Perspektivenwechsel zu tun? Wir zeigen Wege, wie wir eine Legacy-Anwendung iterativ modernisiert und in mehrere, leichter wartbare Self-Contained-Systeme aufgeteilt haben. Dabei werden nicht nur die unterschiedlichen Ebenen von Architekturentscheidungen herausgestellt, sondern auch die Auswirkungen auf die Organisationsstruktur und kritische Punkte auf dem Weg verdeutlicht.

    Mehr lesen
  • When Microservices Meet Real-World Projects: Lessons Learned

    Vortrag Alexander Heusingfeld, Tammo van Lessen JavaLand 2016 Folien verfügbar

    Als Berater sehen wir oft beide Seiten der Medaille: Auf der einen Seite arbeiten wir mit Leading-Edge-Technologien, die meist gerade erst marktreif sind. Auf der anderen Seite stehen Kunden mit sehr konservativen Betriebsabteilungen, Legacy-Systemen und strikten Reglementierungen zur Datensicherheit.

    In dieser Session möchten wir von den Erfahrungen berichten, die wir im Beratungsalltag sammeln durften. Was bedeutet eigentlich “pets vs. cattle”? Warum soll sich ein Entwickler mit den Business-Use-Cases auseinandersetzen? Warum können IT-Projekte auf Grund der Unternehmensorganisationen scheitern, und was hat eine DevOps-Mentalität mit Perspektivenwechsel zu tun? Wir zeigen Wege, wie wir eine Legacy-Anwendung iterativ modernisiert und in mehrere, leichter wartbare Self-Contained-Systeme aufgeteilt haben. Dabei werden nicht nur die unterschiedlichen Ebenen von Architekturentscheidungen herausgestellt, sondern auch die Auswirkungen auf die Organisationsstruktur und kritische Punkte auf dem Weg verdeutlicht.

    Mehr lesen

    Codegolfing

    Vortrag Lucas Dohmen Munich Rubyshift März

    Code golfing is an interesting sport: You try to write a program in the fewest characters necessary. Do you want to ship this code to production somewhere? Probably not, but just by trying this exercise you will learn a lot about your favorite programming language. You will also be surprised by how much you can do in just a few lines of code while the constraints will stimulate your productivity. Ruby is surprisingly good for golfing due to its Perl heritage.

    In this talk I will tell you a bit more about code golfing and then dive into some code I have golfed. I will show you some tricks I learned and how the desire to shave off a few more characters every time leads to new features in your tiny program that you thought would not fit in such a tiny program.

    Mehr lesen

    A journey into code

    Vortrag Ute Mayer Munich Rubyshift März Folien verfügbar

    Learning to code is a long road one has to follow. And sometimes you have to walk in darkness, fear and frustration, understanding nothing. In this talk I will tell you about some of the adventures a beginner might have to experience on this journey, the highs and lows, about allies and enemies and why this long rocky path is worth to wander…

    Mehr lesen
  • Nanoservices und Microservices mit Java

    Vortrag Eberhard Wolff JavaLand 2016 Folien verfügbar

    Es geht kleiner als Microservices: Nanoservices gehen zwar technologische Kompromisse ein, haben dafür aber auch einige entscheidende Vorteile gegenüber Microservices. Dieser Vortrag gibt einen Überblick über Microservice-Technologien wie Spring Cloud oder Spring Boot – und Java-Nanoservice-Ansätze wie Java EE, OSGi und Amazon Lambda.

    Mehr lesen
  • Viele Wege führen zu Microservices

    Vortrag Eberhard Wolff Gesellschaft für Informatik – Regionalgruppe Dortmund

    Microservices lösen viele Probleme aktueller Architekturen - sie helfen beim Skalieren agiler Prozesse, ermöglichen Continuous Delivery und machen Software robuster und besser skalierbar. Welcher Vorteil der wichtigste ist - davon hängt ab, wie man Microservices einführen sollte, wie die Architektur aussehen sollte und welchen Weg zu Microservices man einschlagen sollte. Dieser Vortrag zeigt die Vorteile - und die daraus resultierenden Ansätze zur Adaption von Microservices.

    Mehr lesen
  • Embrace the Browser, Architect’s Edition

    Vortrag Stefan Tilkov EnhanceConf 2016 Folien verfügbar

    Progressive enhancement is a technique mostly known to, and practiced by, front-end developers and designers. In many large projects, the most important decisions (a.k.a. “architecture”) are made by backend architects, who couldn’t care less about frontend “details”. But they should! In this talk, I’ll try to explore some reasons how adopting the architecture of the web in general, and the capabilities of the browser in particular, improves the overall architecture.

    Mehr lesen
  • Den Modernisierungsmotor anwerfen

    Vortrag Martin Schmidt innoQ-Themenabend: Digitale Transformation

    Die Digitale Transformation / Modernisierung stellt neue Herausforderungen an die IT. Martin Schmidt spricht in seinem Vortrag darüber, wie Sie den «Modernisierungsmotor» anwerfen können. Das Ziel ist es, Strategie, Organisation und Technologien in Einklang zu bringen. Dabei sind die richtigen Ansatzpunkte und die Modernisierung als stabilisierender Faktor für die Transformation entscheidend.

    Mehr lesen

    Fahrt aufnehmen

    Vortrag Gernot Starke innoQ-Themenabend: Digitale Transformation

    Gernot Starke zeigt auf, wie Sie durch strukturiertes Vorgehen bei der Digitalen Transformation / Modernisierung Fahrt aufnehmen. Er präsentiert praktische Beispiele dafür, wie Sie die IT-Mannschaft befähigen, Verbesserungsmöglichkeiten zu erkennen, zu bewerten und stringent umzusetzen. Erfahren Sie, wie Sie die erprobten Praktiken des Methodik-Frameworks aim42 effektiv für Ihre Systeme einsetzen.

    Mehr lesen

    Modernisierung in der Finanzbranche

    Vortrag Robert Mangelmann innoQ-Themenabend: Digitale Transformation

    Wenn nur noch 5 Prozent der Kontakte mit einer Bank über die Filiale erfolgen, sollte das filialzentrierte Geschäftsmodell modernisiert werden. Davon zeugt, dass 2014 weltweit Venture Capital von knapp 2,7 Milliarden USD in FinTech-Unternehmen investiert wurde.

    Robert Mangelmann, Senior Experience Consultant bei die firma.experience design und verantwortlich für die Bereiche Digital Finance sowie Business Design, erklärt in seinem Talk die Wirkungszusammenhänge dieser historischen Umwälzung und zeigt auf, wie Banken mit der Herausforderung umgehen sollten.

    Mehr lesen
  • Microservices with Java, Spring Boot and Spring Cloud

    Vortrag Eberhard Wolff Voxxed Days Vienna 2016

    Spring Boot makes creating small Java application easy - and also facilitates operations and deployment. But for Microservices need more: Because Microservices are a distributed systems issues like Service Discovery or Load Balancing must be solved. Spring Cloud adds those capabilities to Spring Boot using e.g. the Netflix stack. This talks covers Spring Boot and Spring Cloud and shows how these technologies can be used to create a complete Microservices environment.

    Mehr lesen
  • Clojure-Web-Applikationen für Beginner

    Vortrag Michael Vitz BOB Conference 2016 Folien verfügbar

    Clojure ist eine JVM-Sprache, die das Unmögliche möglich macht: Ein tatsächlich in der Praxis von normalsterblichen Entwicklern einsetzbares Lisp.

    Neben den Grundlagen von Clojure werden Sie in dieser Session auch lernen wie man hiermit Web-Anwendungen umsetzten kann. Wenn Sie sich hierbei nicht von den Lisp-typischen Klammern abschrecken lassen werden Sie schnell sehen, dass der Einsatz einer rein funktionalen Programmiersprache sehr gut zum statuslosen Ansatz von HTTP passt.

    Sehen Sie das Video auf Youtube!

    Mehr lesen
  • Microservices <3 Domain Driven Design, why and how?

    Vortrag Michael Plöd microXchg 2016 – The Microservices Conference Folien verfügbar

    Without any doubt Eric Evans’ book “Domain Driven Design” is considered as a “must read” among many IT specialists from various domains. With the emergence of Microservices, Domain Driven Design has become more relevant than ever. This talk explains how the patterns and concepts of Domain Driven Design relate to Microservice architectures. In addition, I will show how Domain Driven Design will help you to structure and model your Microservices in terms of granularity, business context and interface design (just to name a few).

    The video recording of this talk can be found at https://www.youtube.com/watch?v=lUCLFOISuXk

    Mehr lesen

    Don’t Fly Blind: Logging and Metrics in Microservice Architectures

    Vortrag Alexander Heusingfeld, Tammo van Lessen microXchg 2016 – The Microservices Conference Folien verfügbar

    While many organizations are keen on breaking up their monolithic applications and establishing microservice architectures, only few of them truly appreciate the impact on runtime information like log data and metrics. But without it you are almost blind in production. And without correlating events from different sources it becomes very difficult to make sense of your metrics and to draw accurate conclusions. If you want to break monoliths into a variety of distributed services, standard approaches are no longer sufficient. In this session, we will show the conceptual foundation and best-of-breed tooling for a monitoring solution of a decentralized and distributed application landscape.

    The video recording of this talk can be found at https://www.youtube.com/watch?v=nWgoyLl8wbM

    Mehr lesen

    Wait, what!? Our microservices have actual human users?

    Vortrag Stefan Tilkov microXchg 2016 – The Microservices Conference Folien verfügbar

    Microservice API styles, service lookups, datastores, scaling – all of our typical discussions about microservices seem to be centered around backend topics. But what about the user interface? How are we supposed to structure what is arguably the most important part of our applications – the one facing our users? In this session we’ll explore the role of the UI aspect in a microservice architecture, look at various methods of modularization, and derive a set of guidelines for avoiding monolithic frontends.

    The video recording of this talk can be found at https://www.youtube.com/watch?v=pU1gXA0rfwc

    Mehr lesen
  • Legacy Systeme modernisieren mit Microservices, Hystrix und RxJava

    Vortrag Holger Kraus, Arne Landwehr OOP 2016 – Software meets Business Folien verfügbar

    Als Software-Entwickler ist man nur sehr selten in der Situation, ein völlig neues System auf der Basis neuester Technologien entwickeln zu dürfen. Oft sollen bestehende Systeme nur um viele kleinere Features erweitert werden. Die Renovierung der grundlegenden Systemarchitektur und die Einführung neuer Programmierparadigmen sind in diesem Umfeld schwierig. Umso wichtiger ist es, dass man die Modernisierung von Altsystemen zu einem fortlaufenden Bestandteil auch des Feature-getriebenen Entwicklungsprozesses macht.

    In diesem Vortrag möchten wir zeigen, wie auch größere, monolithische Altsysteme mithilfe der offenen Netflix-Bibliotheken schrittweise in Richtung einer Microservice-Achitektur weiterentwickelt werden können. Hystrix kann dabei einen wertvollen Beitrag zur Gesamtstabilität des entstehenden verteilten Systems leisten.

    Der Einsatz von RxJava eröffnet eine gute Möglichkeit, den Anteil von asynchronen Prozessen innerhalb der Legacy-Architektur zu erhöhen. Der Vortrag wird anhand von Beispielen demonstrieren, wie der hier angedeutete Modernisierungsprozess umgesetzt werden kann.

    Mehr lesen
  • Bring Your Technology

    Vortrag Eberhard Wolff, Bernd Kolb OOP 2016 – Software meets Business

    Bernd Kolb und Eberhard Wolff laden verschiedene Sprecher der Konferenz dazu ein, ihre jeweilige, derzeitige Lieblingstechnologie vorzustellen. So erleben Sie kurz und prägnant in nur einer Session eine Vielzahl an interessanten Technologien. Lassen Sie sich überraschen!

    Mehr lesen

    Ab sofort alles anders: Was eine neue Ausgangslage für unsere Architekturen bedeutet

    Vortrag Stefan Tilkov OOP 2016 – Software meets Business Folien verfügbar

    In den meisten Fällen sind Veränderungen in Architekturthemen graduell – wir verbessern Ansätze, finden und dokumentieren Muster, wenden Altbekanntes neu an. Aber was passiert, wenn Innovationen völlig neue Architekturen ermöglichen? In diesem Vortrag beschäftigen wir uns u. a. mit Entwicklungen bei Netzwerkbandbreiten und Hauptspeichergrößen, der Explosion der Geräteanzahl, der Veränderung der Infrastruktur in allen Schichten und der immer stärkeren Automatisierung und untersuchen diese auf ihre Auswirkungen auf gängige Architekturen.

    Im Vortrag werden wir gemeinsam Stück für Stück eine Umgebung konstruieren, die viele der bestehenden Grenzen nicht kennt. Was bedeutet es, wenn wir beliebig viel Hauptspeicher haben? Wenn eine Netzwerkinteraktion nicht mehr (wesentlich) teurer ist als eine lokale? Wenn Hardware nicht mehr physisch, sondern rein virtuell ist und die Anschaffung und Optimierung der Server selbst Teil der Architektur wird? Wir werden uns ansehen, mit welchen Architekturansätzen man aus einer solchen Umgebung das meiste herausholen kann – sowohl im „modernen“ Cloud-/E-Commerce-Umfeld als auch bei klassischen Unternehmensarchitekturen.

    Danache werden Sie die Auswirkungen von folgenden Entwicklungen verstehen:

    • Netzwerkbandbreiten und Hauptspeichergrößen
    • die Explosion der Geräteanzahl
    • die Veränderung der Infrastruktur in allen Schichten
    • die immer stärkere Automatisierung auf gängige Architekturen

    Zielpublikum: Architekten, Entwickler
    Voraussetzungen: Projekterfahrung
    Schwierigkeitsgrad: Fortgeschritten

    Mehr lesen

    Event Sourcing: Tales from the hardside

    Vortrag Michael Plöd Topconf Linz 2016 Folien verfügbar

    Event Sourcing is an architectural style that is based on data being represented as a sequence (or stream) of events. This enables a very convenient way of storing and retrieving snapshots of data. From the event stream we can derive a highly optimized query model of the data. This aspect is a prominent part of the CQRS-Pattern.

    This talk will introduce Event Sourcing from the ground up and explain popular patterns surrounding the topic. In addition to that I will cover why Event Sourcing is an interesting architecture pattern for microservice architectures and reactive applications.

    Mehr lesen
  • One size does not fit all: Carving up stuff for fun and profit (Opening Keynote)

    Vortrag Stefan Tilkov Topconf Linz 2016 Folien verfügbar

    (Micro-)services, bounded contexts, components, modules, classes, structs and records, procedures and functions – whatever structuring mechanism we’re talking about, a recurring challenge is to find the right size for things. Opposing forces influence our decisions from both technical and organizational perspectives, and strategies for finding a good balance are few and far between. Let’s take a closer look at what works, what doesn’t, and why.

    Mehr lesen

    Microservices: Agilität mit Architekturen skalieren

    Vortrag Eberhard Wolff OOP 2016 – Software meets Business Folien verfügbar

    Das Skalieren von agilen Prozessen ist gerade ein sehr wichtiges Thema. Zu oft wird aber nur die Prozess-Sicht betrachtet. Dieser Vortrag zeigt, dass eine Architektur wie Microservices den Teams so viel Unabhängigkeit geben kann, dass eine übergreifende Koordination fast nicht mehr erforderlich ist. Dann können kleine Teams unabhängig voneinander agieren. So wird ein agiler Prozess durch die Architektur skaliert.

    Sie lernen:

    • Microservices kennenlernen
    • Auswirkungen von Microservices auf den Prozess und die Kommunikation
    • Optimierungspotentiale agiler Prozesse durch geschickte Architekturen abschätzen

    Zielpublikum: Architekten, Projektleiter, Manager, Entscheider
    Voraussetzungen: Grundlegendes Wissen über Architekturen und Organisationen
    Schwierigkeitsgrad: Anfänger

    Mehr lesen

    Wider die Mikroskop-Falle: Die wahren Probleme Ihrer Software finden

    Vortrag Gernot Starke OOP 2016 – Software meets Business Folien verfügbar

    Wenn wir Software verbessern oder bewerten wollen, müssen wir eine möglichst präzise Vorstellung der existierenden Probleme oder technischen Schulden erarbeiten. Vordergründig bietet sich Quellcode zur Suche an, die meisten der typischen Code- und Architektursmells werden Sie schon kennen. Ich zeige Ihnen jedoch einige weitere typische Problemzonen auf, etwa Daten- und Datenstrukturen, Schnittstellen, technische Infrastruktur, querschnittliche technische Konzepte, Entwicklungs- und Betriebsprozesse sowie die beteiligten Menschen – überall lauern Probleme und Risiken. Zusätzlich lernen Sie typische Fallen bei der Problemanalyse kennen, etwa die Mikroskopfalle oder die Widerstandspyramide, die Ihre Problemsuche schnell zu Albträumen werden lassen.

    Als Ausblick zeige ich Ihnen, ganz analog zur Bauch-Beine-Po Gymnastik, einige etablierte Praktiken zur Abhilfe auf und weise damit den Weg zur systematischen Verbesserung und Evolution von Software.

    Ich führe hier auf pragmatische Weise die Disziplin “Ganzheitliche System- und Architekturbewertung” ein, bei der Methoden wie ATAM in der Praxis nur einen zu kleinen Teil der gesamten Probleme erfassen. “Qualitative wie auch quantitative Analysen in erweitertem Suchraum” wäre wohl eine etwas seriösere Formulierung des Titels.

    Ich verspreche den Teilnehmern praxisnahe, umsetzbare Hinweise, um in eigenem Kontext/System Probleme und Risiken zu identifizieren - und parallel dazu typische Verbesserungsansätze zu erkennen.

    Mehr lesen

    Self-contained Systems: A Different Approach to Microservices

    Vortrag Eberhard Wolff Microservices Meetup Munich February 2016 Folien verfügbar

    Microservices are the latest hype for software architectures. But just creating a set of small systems is by far not enough. Self-contained Systems (SCS, scs-architecture.org) focus on an architecture approach based on Microservices. It is in particular useful for large systems and complex team structures. SCS allow to efficently develop software in such environments – even in the long run. This talk explains Self-contained Systems, their advantages and disadvantages and the difference to Microservices.

    Mehr lesen
  • Microservices: Architektur und Entwicklung

    Vortrag Eberhard Wolff OOP 2016 – Software meets Business

    Dieser Workshop gibt zunächst einen Überblick über Microservices-Architekturen. Dann wird praktisch ein System aus Microservices als Beispiel aufgebaut und diskutiert. Das System nutzt Java, Spring Boot und koordiniert die Anwendungen mit Spring Cloud und dem Netflix-Stack. Die Prinzipien lassen sich aber auch auf andere Technologien übertragen. Dann folgt das Deployment der Anwendungen mit Docker. Am Ende können die Teilnehmer eine Anwendung aus mehreren Microservices praktisch betreiben und weiterentwickeln.

    Zielpublikum: Architekten, Entwickler, technische Projektleiter
    Voraussetzungen: Grundlegendes Wissen über Java ist hilfreich, aber nicht unbedingt notwendig
    Schwierigkeitsgrad: Anfänger

    Sie lernen:

    • Einblicke in Microservices-Architekturen und ihre Anwendungsbereiche
    • Kenntnisse in einem Microservices Stack (Java, Spring, Spring Boot, Spring Cloud, Netflix)
    • Kenntnisse über das Deployment mit Docker
    Mehr lesen

    Microservices and Event Sourcing with Spring Boot

    Vortrag Michael Plöd, Agim Emruli Topconf Linz 2016

    This half-day workshop consists of two parts.

    Part 1: “Building Microservices with Spring Boot and Spring Cloud” by Agim Emruli

    Creating highly decomposed and distributed microservice architectures requires platforms with a minimal footprint and high productivity. Spring Boot allows developers to build microservices with a broad set of persistence, queueing and caching technologies and to run them with minimal system requirements. Spring Cloud supports the creation of distributed components and helps with integration into popular framework like the Netflix OSS. This talks will discuss and practically show how to build microservice based architectures using Spring Boot and Spring Cloud.

    Part 2: “Building Event Sourced Applications with Spring” by Michael Ploed

    This session will demonstrate how you can leverage components of the Spring Ecosystem in order to build applications that are based on the ideas behind the patterns Event Sourcing and CQRS (Command Query Responsibility Segregation). We will cover Spring Boot, lightweight messaging with Spring, as well as Spring Data for persistence.

    Mehr lesen
  • Caching for Business Applications: Best Practices and Gotchas

    Vortrag Michael Plöd Voxxed Days Berlin 2016 Folien verfügbar

    Caching is relevant for a wide range of business applications and there is a huge variety of products in the market ranging from easy to adopt local heap based caches to powerful distributed data grids. Most of these caches are being promoted with examples from applications that have the luxury of having “eventual consistency” as a non-functional requirement. Most business / enterprise applications don’t have that luxury. This talks aims at developers and architects that want to adopt a caching solution for their business application. I will present 15 caching patterns and best practices for these kinds of applications that address the typical questions being asked in that context. These questions might be: “what data can I cache?”, “how to I handle consistency in a distributed environment?”, “which cache provider to choose?” or “how do I integrate a cache provider in my application?”.

    This talk comes with many live demos, some of them are run on a distributed cache cluster on Raspberry Pis.

    Mehr lesen
  • Microservices with Java, Spring Boot and Spring Cloud

    Vortrag Eberhard Wolff Voxxed Days Berlin 2016 Folien verfügbar

    Spring Boot makes creating small Java application easy - and also facilitates operations and deployment. But for Microservices need more: Because Microservices are a distributed systems issues like Service Discovery or Load Balancing must be solved. Spring Cloud adds those capabilities to Spring Boot using e.g. the Netflix stack. This talks covers Spring Boot and Spring Cloud and shows how these technologies can be used to create a complete Microservices environment.

    Mehr lesen

    ReactiveX/RxJava vs. Zombies

    Vortrag Phillip Ghadir majug – Java User Group Mannheim Januar 2016

    Mit RxJava - dem Reactive Programming-Framework von Netflix - lassen sich Datenflüsse mit Komponenten programmieren, die strukturell unabhängig sind, ohne dabei auf Higher-Order-Functions wie map, reduce oder filter verzichten zu müssen. In diesem Vortrag stellt Phillip Ghadir Reactive Programming mit RxJava vor und zeigt, wie sich die Konzepte asynchrone Eventstreams und Observables verwenden lassen. Anhand der Grundidee des Computer-Spiels Plants vs. Zombies wird die Verwendung von RxJava demonstriert. Zu guter Letzt wird von dem Beispiel abstrahiert und skizziert, wie sich mit ReactiveX reaktionsfreudige Systeme bauen lassen.

    Mehr lesen