Yearly Archives

2019

Evolutionary architectures and fitness functions — session at O’Reilly Software Architecture Conference

By | Publikationen, Vorträge | No Comments

OReilly Media Logo Evolutionary architectures and fitness functions – a pragmatic approach!
Speaker: René Weiss

O’Reilly Software Architecture Conference
Thursday, 7 November 2019, 16:50–17:35
CityCube Berlin, 14055 Berlin
@OReillyMedia  #OReillySACon

Sourcecode & demo apps on Github
slide download (PDF)

Evolutionary Architectures? Fitness Functions? How can those approaches help teams develop software systems more effectively? Modern software is developed iteratively, enhanced actively and released often to production. Hence it is essential to know if a system fulfills required qualities like performance, security, maintainability and fault tolerance while the software is being constantly changed.

Fitness functions allow to test software architecture for these qualities and therefore enable effective incremental software development. I want to show useful applications of small and pragmatic fitness functions but also talk about bigger approaches and tools used for Chaos Engineering at Netflix and others. Practical examples with live coding show how these tools can be used in CI/CD pipelines, evolutionary experiments with A/B testing on code level or how to do your first small chaos engineering experiment.

This talk is for software developers and architects who want to gain practical ideas on how fitness functions can be used in day to day use cases.

follow us on Twitter – @embarced

W-JAX 2019: Mit welchem Framework soll ich meine Single-Page-App bauen?

By | Publikationen, Vorträge | No Comments
„Mit welchem Framework soll ich meine Single-Page-App bauen?“
Logo W-Jax
„Mit welchem Framework soll ich meine Single-Page-App bauen?“
Sprecher: Nils Hartmann und Oliver Zeigermann
Vortrag auf der W-JAX 2019
Mittwoch, 06. November 2019, 10:00 – 11:00 Uhr
The Westin Grand in München (Location)
@jaxcon

Foliendownload (Github)

Angular, React, Vue, Web Components? Ist es nicht egal, mit welchem Framework man seine Webanwendung entwickelt, solange es hinreichend verbreitet ist? Auch wir finden, dass man ein Single-Page Framework oft nach Geschmack aussuchen und man damit nicht viel falsch machen kann. Entscheidend ist die Developer-Experience, also womit sich die Entwickler am wohlsten fühlen. Allerdings gibt es dennoch einige Anforderungen, die das eine oder andere Framework als die bessere Wahl dastehen lassen. Welche das sind und was unsere persönlichen Erfahrungen und Vorlieben sind, erfahrt ihr in dieser Session.

Weiterführende Informationen:

 

 

 

 

 

 

Buch: React
Grundlagen, fortgeschrittene Techniken und Praxistipps – mit TypeScript und Redux
2., überarbeitete und erweiterte Auflage, 2020

 

weitere Infos: reactbuch.de

 

 

 

 

 

Architektur-Spicker Nr. 9: Moderne Frontend-Architektur
Single-Page Applications (SPAs) verschieben den Schwerpunkt einer Anwendung in Richtung Browser. Wie gehen Sie mit den daraus resultierenden architektonischen Herausforderungen um? Unsere Spicker-Ausgabe Nr. 9 unterstützt Sie bei dieser Aufgabe!

 

Download Architektur-Spicker Nr. 9: Moderne Frontend-Architektur

embarc auf dem Architecture Gathering 2019 in München

By | Publikationen, Vorträge | No Comments

Beim Architecture Gathering im Oktober in München hat Oliver Zeigermann nützliche Anwendungsbeispiele für Machine Learning im Gepäck und wir sind mit unserem Team und einem Konferenzstand vor Ort mit dabei: 

TAG Logo

Wieso Sie sich jetzt mit Machine Learning beschäftigen sollten
Sprecher: Oliver Zeigermann
The Architecture Gathering 2019
16. Oktober 2019, 17:00 – 17:45 Uhr
Hotel NH München Ost Conference Center, München, Anfahrt
@tag_conference #TAG2019

Foliendownload (github)

Anders als in der klassischen Software-Entwicklung werden im Machine Learning anhand von Beispiel-Daten Zusammenhänge erlernt, die von den ursprünglichen Daten abstrahieren.

Während sich die Boulevard-Presse entweder mit Horror- oder Heils-Szenarien überschlägt, möchte Oliver Zeigermann in diesem Talk praktisch und konkret darauf eingehen, warum es sich lohnen kann, sich mit Machine Learning zu beschäftigen.

Oliver zeigt dazu 4 Beispiele von Anwendungen aus unterschiedlichen Bereichen, die Sie mit klassischer Programmierung nicht erzielen könnten, die aber dennoch erstaunlich nützlich sind.  Zudem erhalten Sie hierbei Einblicke in Supervised, Unsupervised und Reinforcement Learning am Beispiel von TensorFlow.

 

follow us on Twitter – @embarced

CONSTRUCT: Aufbauen (5C Design, Teil 6)

By | Allgemein, Inhaltliches | No Comments

Eine Bausteinstruktur kann auf einer Ebene selbst wieder unübersichtlich werden. Baue Systeme höherer Komplexität durch Zusammenfassen von Bausteinen einer Ebene zu einem neuen Baustein einer nächsthöheren Ebene. Dabei sind weiterhin dieselben Handlungsmaximen anzuwenden.

  1. Software-Entwurf: Ein Blick zurück und nach vorn
  2. CUT: Richtig schneiden
  3. CONCEAL: Verbergen
  4. CONTRACT: Schnittstelle festlegen
  5. CONNECT: Verbinden
  6. CONSTRUCT: Aufbauen
  7. Its a Wrap: Zusammenfassung

In den bisherigen Artikeln ging es darum, wie man ein System auf einer Ebene effizient in einzelne Module zerlegt. Bei entsprechend großem Umfang der Lösung kann dabei nach wie vor Folgendes passieren: Die schiere Anzahl der Module wächst Ihnen über den Kopf und das gesamte System ist im Endeffekt wieder unübersichtlich. Was kann man in so einem Fall tun? Eine schlechte Idee wäre, mehr Logik in die einzelnen Module zu geben, sodass die Gesamtzahl an Modulen wieder überschaubar wird. Dadurch würde nur Komplexität in die Module hinein verlagert. Die Alternative ist Strukturen auf der nächst höheren Abstraktionsebene zu bilden. Wir zoomen aus unserer Architektur heraus und bauen dann modulare Strukturen nach denselben Regeln, nach denen wir schon die Module auf der unteren Abstraktionsebene entworfen hatten. Während dies den Vorgang eher bottom-up beschreibt, so ist dasselbe Ergebnis natürlich auch top-down zu erreichen. 

Whole-Part Pattern

Ein fast schon in Vergessenheit geratenes Muster, das dabei hilfreich sein kann, ist das Whole-Part Pattern. Vorgestellt wurde es in einem zeitlosen Klassiker der Software-Architektur namens “Pattern-Oriented Software Architecture” aus dem Jahr 1996. Als Beispiel dient uns der Motor eines Autos. Er besteht aus vielen Einzelteilen, wie dem Kolben, der Kurbelwelle und den Zündkerzen. Der Motor selbst ist aber wiederum nur ein Teil des Autos, das außerdem noch aus Dingen wie dem Lenkrad, der Karosserie, den Rädern und dem Auspuff besteht. Vor dem Fahrer wird diese Komplexität weitestgehend verborgen. Er dreht den Schlüssel um, beschleunigt mit dem Gaspedal und beeinflusst mit dem Lenkrad die Fahrtrichtung. Einmal im Jahr kommt das Auto in die Werkstätte zur Wartung. Dass dort der Filter der Klimaanlage genauso gewechselt wird wie das Motoröl kann dem Fahrer egal sein. Die Abstraktion “Auto” verbirgt all diese Komplexität vor seinem Nutzer so gut es geht.

Das Beispiel mit dem Auto könnte man sogar noch weiterdenken. Ein Robotertaxi-Service könnte eine weitere Abstraktionsebene darstellen. Eine Serversoftware weiß wo sich die einzelnen selbstfahrenden Taxis gerade befinden. Wenn ein Kunde per App eines der Taxis anfordert wird die Software des nächstbesten Robotertaxis dieses zum Kunden bewegen und ihn in weiterer Folge an sein gewünschtes Ziel bringen. Das Auto, die Software darin, die Software am Server und die App am Handy des Kunden bilden dann in Summe eine weitere Abstraktionsebene, die die Mobilität für den Kunden noch weiter vereinfacht.

In einer komplexen Enterprise Architektur können Sie sich dieses Prinzip wie folgt zu Nutze machen: Die Unternehmensarchitekten legen fest, wie sich die Systemlandschaft in einzelne Subsysteme zerlegt. Sie kümmern sich außerdem um Themen, die über die einzelnen Subsysteme hinaus gehen, wie die Wahl der Technologie zur Integration der einzelnen Systeme. Für die Implementierung der einzelnen Subsysteme selbst wird aber nur der grobe Rahmen definiert. Die Verantwortung für die korrekte Umsetzung wird in den einzelnen Teams belassen. Zu klären, wie sich ein konkretes Subsystem selbst dann weiter in Module zerlegt, ist also wiederum Aufgabe eines der Teams. Die Unternehmensarchitekten kümmern sich in einem solchen Modell um die strategischen Themen und überlassen die Taktik den einzelnen Teams.

Self-Contained Systems

Da die Gedanken bisher eher abstrakt waren, möchte ich noch einen konkreten Architekturstil vorstellen, mit dem man das Prinzip der hierarchischen Zerlegung prima umsetzen kann, nämlich Self-Contained Systems (oder kurz: SCS). Diese setzen explizit auf eine sehr lose Kopplung zwischen den einzelnen Teilsystemen. Bevorzugt wird eine Integration über das User-Interface. Ansonsten ist zeitliche Abhängigkeit zwischen den Systemen durch synchrone Kommunikation (wie über SOAP-RPC) eher verpönt und man sollte stattdessen auf asynchrone Integration (wie über Messaging) und Datenreplikation setzen.

Damit das klappt muss anfangs strategisch festgelegt werden, an welchen Grenzen sich das System gut in solch lose gekoppelte Subsysteme zerlegen lässt. Wenn das allerdings klappt, können die einzelnen Teams relativ isoliert voneinander an ihrem jeweiligen Subsystem arbeiten. Die Art der Umsetzung der einzelnen Teilsysteme kann sich dabei auch stark voneinander unterscheiden. So kann es sich bei einem der Subsysteme um einen Legacy-Deployment-Monolithen handeln, während ein anderes auf einer Microservice-Architektur aufbaut.

Im nächsten und bereits letzten Beitrag dieser Artikelserie fass ich das Thema noch einmal kurz zusammen. Außerdem zeige ich Möglichkeiten, wie man eine Architektur nach 5C umsetzt.

Schwerpunkt im Java Magazin 11/2019: Evolutionäre Architektur

By | Artikel, Publikationen | No Comments

Evolutionäre Architektur

Im aktuellen Java Magazin bestreiten wir mit zwei Artikeln den Schwerpunkt zum Thema „Evolutionäre Architektur“.

erschienen am 2. Oktober 2019 im Java Magazin 11/2019

 

Über die Kernelemente evolutionärer ArchitekturenÜber die Kernelemente evolutionärer Architekturen

Bewegung im Architektur-Genpool — Über die Kernelemente evolutionärer Architekturen 
Autor: Stefan Toth
Java Magazin 11/2019, Seiten 10-19

 

Microservices sind in aller Munde und meist auch schon in Produktion. Mit einem technischen Trend allein ist es jedoch nicht getan, wenn es darum geht, die zentralen Versprechungen rund um Langlebigkeit, Innovationsfähigkeit, Geschwindigkeit und Zuverlässigkeit einzulösen. Dieser Artikel verbreitert die Basis der Diskussion und führt in das ADES Framework ein.

 

Zielgerichtete Evolution mit Fitness FunctionsZielgerichtete Evolution mit Fitness Functions

Software-DNA entschlüsselt — Zielgerichtete Evolution mit Fitness Functions
Autoren: Rene Weiß, Stefan Zörner
Java Magazin 11/2019, Seiten 20-27

 

Wie kommen Sie zu einer dauerhaft guten Softwarelösung? Fitness Functions machen die Zielerreichung automatisch und kontinuierlich messbar, auch wenn das Team von eingeschlagenen Wegen abweicht und Experimente wagt. Dieser Beitrag zeigt, wie die Idee auch in Ihr Vorhaben Eingang finden kann.

Evolutionäre Architekturen und Fitness Functions – Rene Weiß auf der Basta!

By | Publikationen, Vorträge | No Comments

Evolutionäre Architekturen und Fitness Functions – ein pragmatischer Zugang!

 

 

„Evolutionäre Architekturen und Fitness Functions – ein pragmatischer Zugang!“
Sprecher: René Weiß
Basta!
Donnerstag, 26. September 2019, 17:00 – 18:00 Uhr
Rheingoldhalle Mainz (Anfahrt)
@BASTAcon

Foliendownload (PDF)

Evolutionäre Architekturen? Fitness Functions? Wie können diese Ansätze bei der (Weiter-) Entwicklung von Software helfen? Moderne Software-Systeme werden iterativ entwickelt und im Betrieb aktiv erweitert und verbessert. Dabei ist es essentiell wichtig zu wissen, ob das System die geforderten Qualitäten, wie z.B. Performance, Sicherheit, Wartbarkeit, Fehlertoleranz usw. erfüllt. Fitness Functions ermöglichen die Software-Architektur dahingehend zu testen und gezielt und inkrementell weiterzuentwickeln.

René Weiß geht in seinem Vortrag auf mögliche Einsatzbereiche von klein & pragmatisch bis hin zu den großen Tools im Bereich des Chaos Engineerings bei Netflix & Co ein. Praktische Beispiele mit live Coding zeigen zudem Umsetzungsmöglichkeiten in CI/CD Pipelines, evolutionäre Experimente mit A/B Testing auf Code-Ebene oder Mini-Chaos-Engineering.

Dieser Talk richtet sich an Entwickler und -Architekten, die praktische Ideen für den Einsatz von Fitness Functions kennenlernen möchten.

 

follow us on Twitter – @embarced

JUG Darmstadt: Die neue Schule der Softwarearchitektur

By | Publikationen, Video, Vorträge | No Comments

Die neue Schule der Softwarearchitektur

JUG_darmstadt_logo

„Die neue Schule der Softwarearchitektur“
Sprecher: Stefan Toth
Vortrag bei der Java User Group Darmstadt
26. September 2019, 18.30 – 20.00 Uhr
Accso GmbH, Berliner Allee 58, 64295 Darmstadt 
@JUG_DA

Foliendownload (PDF)
Vortragsmitschnitt (Youtube)

In der heutigen Architekturpraxis sind unterschiedliche Denkschulen und Hintergründe anzutreffen. Vertreter der klassischen Architektursicht gehen dabei drastisch anders mit Architekturproblemen um als es Vertreter der neuen Schule machen, die in Start-ups und IT-First-Unternehmen zu finden sind.

In dieser Session stellt Stefan Toth die Sichtweisen, Konzepte, technischen und organisatorischen Prinzipien der beiden Ansätze einander gegenüber und diskutiert die Auswirkungen und wichtigsten Vorteile sowie Nachteile. Evolutionäre Architekturansätze, Eventual Integrity, geringe Zähigkeit als Möglichkeit der weichen Governance, Servant-Leadership-Modelle für Architekten, breite Verantwortung und Crowd-Sourcing-Ideen für technische Teilaspekte sind ein Thema. Stefan möchte auch diskutieren, inwiefern Themen der klassischen Architekturschule aufgeweicht werden – konkret Konzepte wie Zentralisierung und Wiederverwendung.

follow us on Twitter – @embarced

Kim Duggen über Organisationsentwicklung und mehr – im Podcast mit Lena Wittneben

By | Allgemein, Publikationen | No Comments

Kim Duggen über ihre persönliche Sicht auf Organisationsentwicklung im Podcast von und mit Lena Wittneben

Kim Nena Duggen im Gespräch mit Lena „There is a crack in everything – Wünsche, Ziele, Wendepunkte!“
Kim Nena Duggen und Lena Wittneben
Podcast über Organisationsentwicklung, Erfahrungswerte und vieles mehr..
September 2019
lena_wittneben

„Für mich ist Kim eine absolut positive „Sprechdenkerin“ (ihre Selbstbezeichnung), die mit maximal Herz, Hirn, Humor und Haltung intelligent-inspierende Ideen in die Welt bringt.“ (Zitat Lena Wittneben)

Was bedeutet Selbstorganisation für Kim und welche Erfahrungen hat sie in ihren beruflichen Umfeldern in den letzten Jahren gemacht? Wie haben die skandinavische und die chinesische Kultur sie beeinflusst und welche Rolle spielt ein wichtiger Sparringspartner schon seit Kindertagen in ihrem Leben? – nicht nur wenn es um Organisationsentwicklung geht.

Und wenn Sie auch noch wissen will, warum Kim beim Karaoke immer das gleiche Lied auswählt? Hören Sie selbst..

Moderne Frontend Architektur – auf dem Java Forum Nord 2019

By | Publikationen, Vorträge | No Comments
„Moderne Frontend-Architektur für Single-Page Applications“
Logo Java Forum Nord
Moderne Frontend-Architektur für Single-Page Applications
Sprecher: Oliver Zeigermann
Vortrag auf dem Java Forum Nord 2019
Donnerstag, 24. September 2019
Hannover Congress Centrum, Theodor-Heuss-Platz 1-3, 30175 Hannover
@JavaForumNord

Foliendownload (Github)

Architektur verstehen wir als Summe wichtiger Entscheidungen. Entscheidungen, die ein Projekt scheitern lassen können.

Anhand von typischen Anforderungen an ein Single-Page Application (SPA) Projekt gehen wir in dieser interaktiven Session durch die Auswahl des Frameworks (oder keines) und klären wie man einen Anwendungsteil in Komponenten aufteilt und diese zusammensetzt.

Anschließend sehen wir uns an, wie man für eine Anwendung im größeren Stil eine SPA in möglichst unabhängige Teile zerlegen und dann wieder zu einem möglichst konsistenten Ganzen zusammenführen kann.

Du lernst einen Prozess kennen, mit dem du die Anforderungen einer SPA erfasst und dazu die passende Architektur bestimmst.

follow us on Twitter – @embarced