Nov 15, 2019

A Field Report From the O’Reilly Software Architecture in Berlin

by Susanne Apel, Stephan Klapproth, Andreas Zitzelsberger

Last week, we were at the O’Reilly Software Architecture in Berlin. Apart from showing off our toys at our booth and chatting with the nice people at the conference, Leander Reimer presented a hitchhiker's guide to cloud native API gateways and we visited the conference talks. In this article we share our key learnings and takeaways with you. Slides or videos are provided where available.

Foto of our booth at the O'Reilly Sofware Architecture

Cognitive Biases in the architectures life - Birgitta Böckeler

[by Susanne Apel] [Video]

I was impressed of how honestly Birgitta spoke about past communications and decisions. She started her presentation by talking openly about how she feels about getting feedback to be ‘even more confident’ and having the immediate impulse to explain herself. This keynote was the profound answer that will hopefully get many minds contemplating about cognitive biases and confidence as a concept.
I was happy to see the topic of cognitive biases in the tech world underlined with good examples. To give one: Featuring the past decisions to use framework X should not be judged while disregarding the outcome bias. You do not know the future of framework X in advance (Reflux in this case). You should be aware of the source of a positive outcome: Was it the decision making or was it luck?
Birgitta is very much aware of the differences and encourages all of us to do the same. This will lead to the point where we will make fewer absolute and more relative statements.

The 3-headed dog: Architecture, Process, Structure - Allen Holub

[by Susanne Apel] [Video]

In addition to the three heads in the talk’s title, Allen also mentioned culture and physical work environment.
In agile teams, the real goal is to quickly add value to the product - and speed in gaining value can only be achieved by speeding up feedback cycles.
The teams should very much be autonomous and empowered to make decisions.
In my point of view, these are the underlying principles in agile software development, regardless of the particular framework used.
Allen points out the role of teams and offices and the real meaning of a MVP - a small solution that can be enlarged (as opposed to a throw-away product), demonstrated with impressive images of actual houses built this way. He emphasizes that if you want to change one head of the five-headed dog, you also have to change all of the other heads.

A CRDT Primer - John Mumm

[by Susanne Apel]

John explained conflict-free replicated data types (CRDT) with a clear motivation and a nice mathematical introduction providing an intuitive grasp of the topic.

From a computer science point-of-view, the talk seemed very mathematical, from a mathematical point of view it gave plausible explanations while leaving out the more subtle parts of definitions and proofs. The intuition is sufficient, the validity proven elsewhere.

John motivates the issue with a Twitter-like application where the number of likes is to be maintained 'correctly'. This is not a trivial task for a large scale application with many instances.
For the Twitter likes, assume that you cannot unlike a post after you liked it earlier. This gives the following implementation:
Each node maintains a local copy of the local likes of every node in the cluster. When the number of likes is requested, the node sums up the number of likes. If a user likes a tweet, the node 'n' answering the like request increases its own counter of likes. When there 'is time', the node 'n' broadcasts (gossips) the new local copy of its cluster-view. The other nodes will compare and see a higher number of number of ‘n’-likes and will incorporate this number in their own local copy. To be more precise, the node broadcasts its own internal state of all node. This makes the broadcasting more efficient. However, the principle of distribution just explains stays the same. The nice thing is that the broadcasting works very smoothly, and you do not have to think about order of events. It might be that the user sees old data, but there will be eventual consistency. And their own interactions are always reflected immediately.

Mathematics confirm that this works, also with data types other than counters - given that they do fulfill the mathematical relations. Roughly speaking, the relations can be put as following: You need to define lookup, update, merge and compare methods (or variations thereof. The CRDT Wikipedia page provides a good explanation).
If all of these functions together fulfill certain rules, you will get eventual convergence of the lookup value of the data type (monotonic join semi-lattice and the comparison function should be a partial order). Broadcasting is part of the very concept of CRDTs. The CRDTs provide the framework for the actual operations to be executed within the cluster.

The rise and fall of microservices - Mark Richards

[by Stephan Klapproth] [Presentation]

Mark talked about how these days microservices are everywhere. DDD, continuous delivery, cloud environments, agility in business and technology were some of the drivers of the rise of microservices. Unfortunately, projects that introduce microservice architectures often are struggling with the complexity. They often miss their project plans and budget.

So before jumping on the bandwagon, you have to be aware of the challenges such a highly distributed architecture comes with. In his talk Mark outlined several pitfalls and gave some best practices to stop the decline and fall of microservices.


How do we take architectural decisions in eBay Classifieds Group - Engin Yöyen

[by Stephan Klapproth]

In his talk Engin presents different approaches to cope with the challenges of a widely distributed team with hundreds of developers, forcing him to rethink the classical role model of a software architect.
Consensual high level architectures, empowering the engineers to lead, architects as supporting enablers (versus architects as governance), techniques like delegation levels and architecture decision records ensured the success of the project at eBay Classifieds Group.

Reactive domain-driven design: From implicit blocking to explicit concurrency - Vaughn Vernon

[by Andreas Zitzelsberger]

Vaughn Vernon took us on an elaborate journey to a reactive domain-driven world. I had two key takeaways:
1. An anemic model, that is a model consisting only of data types, is not sufficient for a reactive domain-driven world. Instead state changing actions should be properly defined. For instance, to provide a method Person.changeAddress instead of Person.setStreet, Person.setCity, … Vaughn pressed the point that this is a necessity for effective reactivity.
2. When migrating to reactive microservices, the strangler pattern is an effective approach. Vaughn pointed out two tools that can help to enable reactivity with the strangler approach: Debezium, which turns database changes into events and Oracle Golden Gate.

Nov 11, 2019

DevOps Enterprise Summit 2019

von Michael Rohleder (Bereichsleiter bei QAware)

Die IT-Transformation in Richtung DevOps beschäftigt aktuell sehr viele Unternehmen der Welt, unter anderem auch unsere Kunden BMW, Deutsche Telekom und Allianz. Grund genug also auf dem Enterprise DevOps Summit zu sehen, welche Trends die DevOps-Community beschäftigen und wie es den Unternehmen bei Ihrer Transformation geht. Gastgeber der Konferenz ist Gene Kim, Gründer von IT Revolution. Er ist bekannt als Autor von einigen erfolgreichen Büchern, z.B. The Phoenix Project, The DevOps Handbook und Accelerate. Brandneu erschienen ist sein Buch The Unicorn Project, welches auf der Konferenz heftig umworben wurde - so wie man das eben aus den USA kennt.

Dieser Artikel liefert eine Zusammenfassung meiner persönlichen Eindrücke zum Besuch des DevOps Enterprise Summits in Las Vegas und liefert Links zu Vorträgen und weiterführenden Inhalten.


Erfahrungsberichte


Die drei Tage der Konferenz waren geprägt von vielen anschaulichen und beeindruckenden Erfahrungsberichten von IT-Initiativen großer Unternehmen. So zeigte CSG wie sie in mehreren Jahren ihre veraltete Mainframe IT-Landschaft modernisiert und mit DevOps-Praktiken fit für die Zukunft gemacht haben. Walmart zeigte, wie sie ihren so kritischen und schwierigen Anwendungsfall zur Prüfung der Artikelverfügbarkeit in ihrer breiten Systemlandschaft umsetzen konnten. Grundlage war eine Umstellung ihrer synchron-orientierten Message-Architektur auf eine event-orientierte Message-Architektur. Viele weitere Initiativen wurden von Führungskräften der Unternehmen vorgestellt, z.B. von Adidas, John Deere, Optum, uvm.

Besonders gefreut hat mich der Vortrag unseres Kunden BMW. Ralf Waltram und Frank Ramsak stellten Ihre 100% Agile Journey bei BMW vor. Wunderbar zu sehen, wie sich unser Kunde in der IT weiterentwickelt. Ich hatte zudem den Eindruck, dass auch die Zuhörerschaft sehr beeindruckt von der Story war.


Psychological Safety


Der Erfolg der Unternehmen hängt immer maßgeblicher davon ab, wie sicher und wohl sich die Mitarbeiter im Unternehmen fühlen. Das wurde in vielen Vorträgen, aber auch Podiumsdiskussionen von Führungskräften untermauert. „Psychological Safety“ ist der Begriff, der in der Community schon länger als Erfolgsfaktor genannt wird. Nicht verwunderlich, dass der Begriff auch im neuen Buch von Gene Kim “The Unicorn Project” ein Thema ist. In diesem spricht er von “The Five Ideals”:
  • The First Ideal - Locality and Simplicity
  • The Second Ideal - Focus, Flow, and Joy
  • The Third Ideal - Improvement of Daily Work
  • The Fourth Ideal - Psychological Safety
  • The Fifth Ideal - Customer Focus

Auch Deloitte wirbt mit dem Slogan „better value sooner safer happier“ von Jonathan Smart, der in seinem Vortrag Risk and Control is Dead, Long Live Risk and Control eindrucksvoll erklärte, wie wichtig „Psychological Safety“ ist, um angemessen mit Risiken im Unternehmen umzugehen.


Produktivität


Der Accelerate State of DevOps Report repräsentiert die Forschungsergebnisse und Daten von mehr als 31.000 Umfrage-Teilnehmern weltweit. Er zeigt welche DevOps-Praktiken und Methoden zu mehr Software-Delivery- und Operational-Performance (SDO) führen. Dr. Nicole Forsgren, verantwortlich für den DevOps-Report, stellte die neuen Ergebnisse und Erkenntnisse auf dem Summit vor und zeigte was “DevOps Elite Performers” von “Low Performers” unterscheidet. Grundlage dafür sind genau vier Metriken “lead time”, “deployment frequency”, “mean time to restore (MTTR)” und “change fail percentage”. Thoughtworks hat diese vier Metriken auf ihrem Technologie Radar im April diesen Jahres von “Trial” auf “Adopt” gestellt, was einer Empfehlung zum Einsatz dieser Technik entspricht. Genauere Informationen zu den Ergebnissen des DevOps-Reports und zum wissenschaftlichen Vorgehen erläutert das Buch Accelerate. Den State of DevOps Report findet man bei Google, dort sind auch hilfreiche Beschreibungen zu DevOps-Praktiken und Methoden hinterlegt, die der Community bei der Umsetzung von DevOps in Ihrem Unternehmen helfen sollen.

Ein weiteres Finding auf der Konferenz ist für mich die Open Practice Library, die eine Sammlung von aktuellen DevOps-Tools und -Praktiken enthält, die durch die Community selbst entstehen.


“Project to Product” Bewegung


Die Umstellung der IT-Organisation von projektorientiertem Vorgehen hin zur Produktorientierung ist ein immer mehr gehörter Baustein in der IT-Transformation vieler Unternehmen. Hierzu gab es neben den Erfahrungsberichten der Unternehmen auch spannende Vorträge. Mik Kersten stellte in seinem Vortrag Project to Product sein Konzept des Flow Framework™ vor. Ein neuer Ansatz, der es Unternehmen ermöglichen soll, den “Flow of business value” im Software-Entstehungsprozess auf eine Weise zu messen, die sowohl IT als auch der Fachbereich verstehen soll. Weiterführende Informationen dazu gibt es in seinem Buch Project to Product.

Dominica DeGrandis versuchte Hilfestellung bei folgender Frage zu geben: “Do You Have the Right Teams to Manage Work by Product?”. Dabei zeigte sie auf, weshalb es “Full Stack Teams” braucht und keine “Full Stack Engineers”, welche neue Rollen man bei der Produktorientierung berücksichtigen sollte und wie man mit dem Team-Skillset umgeht.

Dominica ist auch bekannt als Autorin des Buchs Making Work Visible, in dem sie fünf Zeitdiebe in der Softwareentwicklung aufzeigt und erklärt, wie man sie abstellen kann.


Die Folien und Video-Aufzeichnungen zum DevOps Enterprise Summit sind erfreulicherweise öffentlich gestellt:


Interessante und spannende drei Tage in den USA, auf denen man den Spirit und den enormen Fortschritt der DevOps-Bewegung bei den Vorträgen und Podiumsdiskussionen und auch bei den Gesprächen mit anderen Teilnehmern spüren konnte. Zum Abschluss gab es auch noch ein schönes Mitbringsel nach Deutschland: eine erste Ausgabe des Buchs “The Unicorn Project” als Geschenk vom Gastgeber und Autor Gene Kim mit persönlicher Widmung. Vielen Dank!