You're seeing from to in
  • Monolithen – besser als ihr Ruf

    Talk Christoph Iserlohn IT Tage 2017

    ORB-Architekturen, SOA, Microservices: alle Jahre wieder wird eine neuer Ansatz zur Modularisierung durchs IT-Dorf gejagt. Verpackt mit ein paar netten Anekdoten, warum Firma X unglaublich erfolgreich mit dem neusten Trend Y ist, wird das Ganze als neuer Heilsbringer für die Unternehmens-IT verkauft. Doch die Wirklichkeit sieht meistens ganz anders aus: Für die Umsetzung sind strukturelle, organistorische und technische Änderungen nötig, die oft kaum zu stemmen sind. Im Gegenzug bekommt man die Fallstricke und Komplexität eines verteilten Systems – eine “lose-lose”-Situation.

    In diesem Vortrag klären wir Sie über die Risiken und Probleme der aktuellen Modularisierungs-Trends auf und erinnern an fast vergessene Modularisierungs-Techniken, bei denen nicht das ganze Unternehmen auf den Kopf gestellt werden muss. Damit man auch heute noch mit seinem Monolithen glücklich sein kann.

    Read more
  • Transklusion – Kitt für gut geschnittene Webanwendungen

    Talk Franziska Dessart IT Tage 2017

    Selbst kleinere Webanwendungen stammen heutzutage nur noch selten aus einer Quelle. Daten und Inhalte aus Drittsystemen oder Content aus dem CMS wollen integriert werden oder gar ein Altsystem schrittweise abgelöst werden. Auch Microservices oder Self contained Systems stellen Teile eines Frontends isoliert zur Verfügung, um den Frontendmonolithen zu vermeiden. Schön entkoppelt, aus Sicht der Architektur. Doch wie und wo bringe ich am Ende alle Einzelteile zusammen? Mit einer selbstgestrickten Lösung in meinem Backend? Alles clientseitig integriert? Welche Möglichkeiten es gibt und für welche Anwendungsfälle sie sich am besten eignen, soll das Thema dieses Vortrags sein.

    Read more
  • Sicherheit in Microservice-Umgebungen

    Talk Christoph Iserlohn IT Tage 2017

    Microservices sind momentan in aller Munde. Selten wird jedoch der Sicherheitsaspekt berücksichtigt, obwohl dieser eine beträchtliche Herausforderung darstellt: Statt einer monolithischen Applikation müssen nun eine Vielzahl von Microservices, teilweise in verschiedenen Programmiersprachen implementiert und abgesichert werden. Die Authentifizierungs-/Autorisierungskonzepte und -mechanismen müssen über Applikations- und Netzwerkgrenzen hinweg funktionieren. Mehr Schnittstellen sind über das Netzwerk exponiert und bieten eine größere Angriffsfläche.

    In diesem Vortrag werden die Herausforderungen im Bezug auf Security in Microservice-Umgebungen aufgezeigt und passende Lösungsansätze angeboten.

    Read more

    Die VENOM-Story: Von Leben, Leiden und Rettung eines großen (und gar nicht so hypothetischen) IT-Systems

    Talk Gernot Starke IT Tage 2017

    Darf ich Ihnen VENOM vorstellen – ein eCommerce-System für ziemlich komplizierte Produkte (Komplettausstattung von Supermärkten, Gartenplanung, Regal- und Möbelplanung und ähnlich abgefahrene Dinge) – inklusive kompletter Logistik, Lieferung, Verzollung, Aufbau, Abnahme, Inbetriebnahme… nennen wir es “very normal system”. Das System ist historisch/hysterisch gewachsen, wird von einer zerfahrenen, ziemlich desolaten Firma (SAMM Inc.) entwickelt und betrieben und drohte vor einiger Zeit, “den Bach hinunter” zu gehen. SAMM Inc. zog die Reißleine, und beauftragte ein (agiles) Team damit, die Rettung von VENOM (und SAMM) vorzubereiten und durchzuführen – “Succeed or die”, hieß die Devise. Diese (völlig fiktive) Situation ist in Wirklichkeit völlig real: Hören Sie über “rise and fall of the system”, sehen Sie die Auswirkungen desaströser Architekturarbeit und verkorkster Entwicklungs- und Betriebsprozesse.

    Erleben Sie anschließend, wie methodische Verbesserung von Software funktionieren kann, die Rettung von VENOM: Von der systematischen Architekturbewertung über die Entwicklung angemessener Verbesserungsmaßnahmen bis hin zur effektiven Umsetzung zeige ich auf, wie Modernisierung und Evolution sich mit Projektalltag und Feature-Druck vereinbaren lässt.

    Disclaimer: Eventuelle Ähnlichkeiten mit realen Softwaresystemen und Entwicklungsorganisationen wären rein zufällig – obwohl ich diverse der hier geschilderten Situationen selbst erleben durfte oder erleiden musste.

    Read more

    Schnelleinstieg in Go

    Talk Daniel Bornkessel, Christoph Iserlohn IT Tage 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 diese Session die nötigen Kenntnisse, um kleinere eigene Programme in Go zu schreiben und channels und go-routines zu nutzen.

    Read more
  • Microservices-Workshop: REST, Kubernetes, UI-Integration und asynchron als alternative Ansätze

    Talk Eberhard Wolff IT Tage 2017

    Dieser Workshop gibt zunächst eine Einführung in Microservices und zeigt dann drei konkrete Möglichkeiten zur Umsetzung von Microservices nicht nur mit Java: REST Microservices mit Kubernetes, UI-Integration auf Client oder Service und asynchrone Microservices mit Kafka. Konkrete Codebeispiele illustrieren die Ansätze und können ein Startpunkt für eine eigene Umsetzung sein. Die Teilnehmer können anschließend Vor- und Nachteile abwägen und die Implementierung von Microservices mit diesen Ansätzen starten.

    Read more
  • Mutation Testing in Continuous Delivery Pipelines

    Talk Jan Stępień Continuous Lifecycle 2017

    Mutation testing is a method of evaluating and improving the quality of our test suites. It introduces subtle bugs to source code of our projects and checks that our tests catch those synthetic faults. 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? How much of it can we automate? How can our version control system help us in the process?

    Let’s try to answer those questions together.

    Read more
  • Code Retreat – Best Practices ganz praktisch

    Talk Eberhard Wolff, Martin Klose W-JAX 2017

    “Wir spielen täglich ein Konzert. Ein Code Retreat ist die nötige Fingerübung, die jeder Musiker auch macht.” Üben Sie Test-driven Development – das Schreiben des Tests vor der Implementierung, Pair Programming – das Programmieren zu zweit, und Refactoring ganz praktisch. Dazu benötigen Sie lediglich einen Laptop mit installierter IDE und Spaß am Programmieren.

    Read more
  • Die VENOM-Story: Von Leben, Leiden und Rettung eines großen (und gar nicht so hypothetischen) IT-Systems

    Talk Gernot Starke W-JAX 2017

    Darf ich Ihnen VENOM vorstellen – ein E-Commerce-System für ziemlich komplizierte Produkte (Komplettausstattung von Supermärkten, Gartenplanung, Regal- und Möbelplanung und ähnliche abgefahrene Dinge) inklusive kompletter Logistik, Lieferung, Verzollung, Aufbau, Abnahme, Inbetriebnahme, nennen wir es „very normal system“.

    Das System ist historisch/hysterisch gewachsen, wird von einer zerfahrenen, ziemlich desolaten Firma (SAMM Inc.) entwickelt und betrieben und drohte vor einiger Zeit, „den Bach herunter“ zu gehen. SAMM Inc. zog die Reißleine und beauftragte ein (agiles) Team damit, die Rettung von VENOM (und SAMM) vorzubereiten und durchzuführen – „Succeed or die“ hieß die Devise.

    Diese (völlig fiktive) Situation ist in Wirklichkeit völlig real: Hören Sie über „rise and fall of the system“, sehen Sie die Auswirkungen desaströser Architekturarbeit und verkorkster Entwicklungs- und Betriebsprozesse.

    Erleben Sie anschließend, wie methodische Verbesserung von Software funktionieren kann, die Rettung von VENOM: Von der systematischen Architekturbewertung über die Entwicklung angemessener Verbesserungsmaßnahmen bis hin zur effektiven Umsetzung zeige ich auf, wie Modernisierung und Evolution sich mit Projektalltag und Featuredruck vereinbaren lassen.

    Disclaimer: Eventuelle Ähnlichkeiten mit realen Softwaresystemen und Entwicklungsorganisationen wären rein zufällig – obwohl ich diverse der hier geschilderten Situationen selbst erleben durfte oder erleiden musste.

    Read more
  • Beyond Microservices – ein Blick hinter den Hype

    Talk Eberhard Wolff W-JAX 2017

    Im Moment sind Microservices der Architekturhype, aber auch Microservices sind nicht die Lösung aller Probleme. Dieser Vortrag schaut hinter den Hype, analysiert die Vor- und Nachteile von Microservices und zeigt alternative Ansätze, die viele Nachteile vermeiden und immer noch die wichtigsten Vorteile bieten. So sind maßgeschneiderte Architekturansätze möglich, die je nach Szenario unterschiedliche Trade-offs umsetzen. Ideen wie Domain-driven Design, Optimierung des Deployments, konsequente Modularisierung und weitgehende Selbstorganisation der Teams spielen dabei eine Rolle.

    Read more

    Wie etabliert man DDD im Spannungsfeld zwischen Business und IT?

    Talk Michael Plöd, Carola Lilienthal W-JAX 2017

    DDD bietet eine Reihe von Konzepten und Lösungsvorschlägen, die nur dann funktionieren, wenn sich die Stakeholder aus den Fachbereichen und die Entwickler auf eine weitgehende Zusammenarbeit einlassen. Einerseits müssen die Stakeholder für eine umfassende Diskussion ihrer Fachsprache offen sein, damit in den verschiedenen Bounded Contexts jeweils eine einheitliche Ubiquitous Language entsteht. Andererseits müssen die Entwickler ihr gewohntes Terrain der technischen Abstraktionen verlassen. Eine einseitige Konzentration auf die Building Blocks von DDD (Aggregates, Entities, Value Objects …), führt dazu, dass das volle Potenzial von DDD nicht ausgeschöpft wird.

    Im Rahmen des Vortrags werden wir Ihnen vorstellen, wie Sie als Architekt in einem solchen Umfeld agieren können. Wir zeigen Ihnen Mittel, Wege und Moderationstechniken, wie Sie anfangs zurückhaltende Stakeholder doch noch überzeugen können, zusammen mit Ihnen effektiv Domain-driven Design zu praktizieren.

    Read more

    Spring Boot Microservices mit Domain Events

    Talk Michael Plöd W-JAX 2017

    Domain Events sind ein zentraler Aspekt des taktischen Domain-driven Designs und zudem die Basis für die Implementierung lose gekoppelter Microservices, die auf asynchrones Event Processing ausgelegt sind. In diesem Vortrag werden wir uns mit dem Konzept der Domain Events beschäftigen und kennen lernen, wie sie modelliert und genutzt werden können, um eine lose Kopplung ohne synchrone Kommunikation von Microservices erreichen zu können.

    Weiterhin werden wir das Konzept anhand eines konkreten Beispiels in die Praxis umsetzen. Hierbei werden wir Technologien wie Spring Boot, Spring Cloud Stream (Rabbit/Kafka) und Cloud Foundry verwenden, um anhand von Events und unterschiedlichen Modellierungsstilen von Events die Vor- und Nachteile des Ansatzes kennen zu lernen.

    Read more

    Microservices: Patterns und Antipatterns

    Talk Stefan Tilkov W-JAX 2017

    Man könnte glatt das Gefühl bekommen, sämtliche Probleme aller Arten von Systemen lassen sich auf einfachste Art lösen, wenn man nur einfach ganz viele kleine Module baut und sie „Microservices“ nennt. Tatsächlich ist eine Microservices-Architektur manchmal eine gute Lösung, oft aber nur eine Quelle zusätzlicher Frustration, die außer interessant aufgewerteten Lebensläufen nur wenig Nutzen bringt. In diesem Vortrag sehen wir uns gemeinsam an, welche Muster den Weg zum Erfolg weisen können – und welche eher ein Warnsignal vor einer falschen Abbiegung sind.

    Read more
  • Microservices-Workshop: REST, Kubernetes, UI-Integration und asynchron als alternative Ansätze

    Talk Eberhard Wolff W-JAX 2017

    Dieser Power-Workshop gibt zunächst eine Einführung in Microservices und zeigt dann drei konkrete Möglichkeiten zur Umsetzung von Microservices, nicht nur mit Java: REST Microservices mit Kubernetes, UI-Integration auf Client oder Service und asynchrone Microservices mit Kafka. Konkrete Codebeispiele illustrieren die Ansätze und können ein Startpunkt für eine eigene Umsetzung sein. Die Teilnehmer können anschließend Vor- und Nachteile abwägen und die Implementierung von Microservices mit diesen Ansätzen starten.

    Read more
  • OAuth2 und OpenID Connect

    Talk Christoph Iserlohn, Simon Kölsch heise devSec 2017

    Als Webnutzer möchte ich eigentlich nur eins: endlich keine 100 verschiedene Passwörter mehr und trotzdem sichere Authentifizierung. OpenID und OAuth sind aus diesen Problemen heraus entstanden und über mehrere Jahre zu einer komplexen Sammlung an unterschiedlichen Spezifikationen gewachsen.

    Diese Session gibt einen Überblick über die Ideen dahinter sowie über Funktionsweise, Einsatzzwecke und Schwierigkeiten.

    Vorkenntnisse

    Grundkenntnisse in der Entwicklung von verteilten Webanwendungen.

    Lernziele

    Nach dem Vortrag sollen die Besucher einen Überblick über die derzeit gängigen Authentifizierungs- und Autorisierungsverfahren im Web haben und wissen, welche Vor- und Nachteile mit ihnen verbunden sind.

    Read more

    Sicherheit in Microservice-Umgebungen

    Talk Christoph Iserlohn heise devSec 2017

    Microservices sind momentan in aller Munde. Selten wird jedoch der Sicherheitsaspekt berücksichtigt, obwohl er eine beträchtliche Herausfoderung darstellt: Statt einer monolithischen Applikation müssen nun eine Vielzahl von Microservices – teilweise in verschiedenen Programmiersprachen implementiert – abgesichert werden. Die Authentifizierungs-/Autorisierungskonzepte und Mechanismen müssen über Applikations- und Netzwerkgrenzen hinweg funktionieren. Mehr Schnittstellen sind über das Netzwerk exponiert und bieten eine größere Angriffsfläche.

    In diesem Vortrag werden die Herausforderungen in Bezug auf Security in Microservice-Umgebungen aufgezeigt und passende Lösungsansätze angeboten.

    Vorkenntnisse

    Grundkenntnisse in der Entwicklung von Microservices.

    Lernziele

    Die Besucher sollen nach dem Vortrag die typischen Securityprobleme in Microservice-Umgebungen kennen und wissen, wie sie gelöst werden können.

    Read more
  • Enemy of the State

    Talk Joy Clark Topconf Düsseldorf 2017

    Another term for technical debt is accidental complexity. This differs from the essential complexity that is inherent in the problem at hand because it refers to the unnecessary complexity that we add into our application. The state of an application refers to all of the information needed in order for the application to run correctly. When the state is accidentally modified due to unexpected side effects or when state is hidden and handled in an unexpected way, this is a huge source for accidental complexity.

    This talk will look at patterns for decreasing the state needed for an application and for handling the remaining state in such a way that it decreases the complexity of the application.

    Read more

    From Brownfield to DevOps

    Talk Sven Johann Topconf Düsseldorf 2017

    In urban planning, a brownfield is when we build on land that was previously used for industrial purposes, potentially contaminated with hazardous waste or pollution. In order to improve the land, existing structures need to be demolished or toxic materials need to be removed. In software development, a brownfield comes often with significant Technical Debt such as having no automated tests or running on unsupported platforms. A greenfield in software development means to start from scratch and worry less about existing code bases, processes and teams.

    Many people believe that DevOps, which requires a software architecture optimised for testability and deployability, is only possible for greenfield projects, but many companies, such as Etsy or LinkedIn showed how to close the large performance gap between what customers needed and what the organisation was able to deliver by selecting the right value streams and improving their software architecture along those value streams.

    This talk starts with defining the Technical Debt landscape from Code Smells to the Technology Gap and shows why solving the problems of the landscape unsystematically is neither economical nor goal oriented and won’t lead you anywhere. We then look at the specific goals DevOps wants to achieve and how certain parts of the Technical Debt landscape interfere with these goals unequally strong. The presentation will offer conceptual background and concrete steps and examples on how to understand and select the right value stream for a brownfield DevOps transformation, how to get started and measure progress, select the right technologies at a certain point in time and finally move towards continuous architecting for DevOps.

    Read more
  • Beyond Microservices

    Talk Eberhard Wolff Topconf Düsseldorf 2017

    Everyone is doing microservices these days - but they are no silver bullet. This talk reviews the advantages microservices bring - e.g. better modularization, many technical advantages and better support for continuous delivery. Then, the talk discusses the drawbacks, e.g. concerning operations. Finally, the talk shows several case studies with alternative approaches that provide some of the advantages, while avoiding the pitfalls. Domain-driven Design, optimizing the deployment, different approaches to modularization and self-organizing teams are important ingredients of these architectures.

    Read more
  • Java9 – Features abseits von Jigsaw und JShell

    Talk Michael Vitz BED-Con 2017 Slides available

    Spricht man mit Entwicklern über Java9 so fällt den meisten zuerst Jigsaw und nach einigem Überlegen noch JShell als neue Features ein. Neben diesen beiden, im Rampenlicht stehenden, Features bietet Java9 jedoch noch eine Menge an weiteren neuen Features. Einige dieser “Hidden” Features lernen Sie in dieser Session kennen. Und wer weiß, vielleicht ist auch eines dabei, dass Sie viel besser verwenden können als die beiden Großen.

    Read more

    Die Grenzen von Continuous Delivery

    Talk Eberhard Wolff BED-Con 2017

    “Schneller Software deployen ist ein wichtiger Wettbewerbsvorteil.”, so heißt es oft. Aber in der Realität haben viele Organisationen den Sprung noch nicht geschafft.

    Warum nicht? Wenn es so viele nicht tun - ist es dann überhaupt relevant? Dieser Vortrag beschäftigt sich mit der Frage, warum Continuous Delivery in der Praxis nicht funktioniert - und was wir dagegen tun können.

    Read more

    Property-based testing: You won’t look at your tests the same way ever again

    Talk Jan Stępień BED-Con 2017 Slides available

    Property-based testing changes the way you look at your test suites. Instead of specifying test cases one after another, this advanced testing technique enables you to use logic to automatically generate a stream of inputs. Despite its potential, property-based testing still remains under the radar within the Java community. Let’s try to uncover its strengths together.

    The talk will discuss how property-based testing compares to traditional testing methods and demonstrate its principles with simple examples. We will also see how it fits into a TDD workflow and a CD pipeline. In order to bust the myth of the inapplicability of property-based testing in a real-world setting we’ll bring up some use cases from industry. Finally, we’ll wander into the world of concurrency and the automation of race condition detection.

    Read more
  • Serverlose IoT-Applikationen

    Talk Niko Will BED-Con 2017 Slides available

    Softwareentwickler sehen sich heutzutage mit einer Vielzahl von Anforderungen konfrontiert. Bereits das Verstehen der Domäne für die Implementierung der Geschäftslogik kann beliebig komplex werden. Hinzu kommen nun immer mehr Themen wie Skalierung und Ausfallsicherheit. Ganz zu schweigen von Benutzerauthentifizierung und -autorisierung oder Logging, Monitoring und Betrieb der Anwendung. Im IoT-Umfeld bereiten uns zusätzlich noch die Anbindung von Geräten über unsichere und instabile Verbindungen Kopfzerbrechen.

    Andererseits bieten mittlerweile viele der großen Cloud-Plattformen zusätzlich zu Datenbanken und Messaging-Systemen auch ein reiches Portfolio an Diensten, die speziell auf die Bedürfnisse von IoT-Applikationen zugeschnitten sind. In Kombination mit serverlosen Funktionen lassen sich so bereits in einigen Tagen bis wenigen Wochen erste Konzepte praktisch erproben oder sogar komplett umsetzen. Darüber hinaus kann durch den Verzicht auf eigene Backend-Services ein Großteil der typischen Betriebsthemen entfallen.

    Dieser Vortrag zeigt am Beispiel von Amazon Web Services (AWS), wie sich Geräte schnell und sicher an eine Cloud-Plattform anbinden lassen. Außerdem lernen die Teilnehmer, wie sie durch Kombination der vorhandenen Dienste und einiger weniger serverloser Funktionen zu einer produktiv einsetzbaren IoT-Applikation kommen.

    Read more

    Modularisierte UIs für Microservices abseits von SPAs

    Talk Michael Vitz BED-Con 2017 Slides available

    Besonders aufgrund des aktuellen Trends zu Microservice-Architekturen bestehen aktuelle Systeme aus mehren Services. Häufig wird das User-Interface dabei als eigener Service realisiert und separat deployt oder es wird eine Single-Page-App genutzt. In dieser Session zeige ich Ihnen, dass es hierfür auch andere Möglichkeiten gibt. Neben den Vor- und Nachteilen werden dabei auch konkrete Technologien, wie z.B. Edge-Side-Includes oder Transklusion betrachtet.

    Read more

    Viermal Microservices anders - REST, Kubernetes, UI-Integration und asynchron

    Talk Eberhard Wolff BED-Con 2017

    Viele sagen: “Microservices sind kleine REST-Services”. Das ist aber nur eine Option.

    Dieser Vortrag zeigt vier völlig andere Ansätze: Asynchrone Microservices mit Kafka, asynchrone Microservices mit Atom-Feeds oder eine Integration auf UI-Ebene. Vor- und Nachteile aller Ansätze werden anhand praktischer Code-Beispiele beleuchtet - wie auch die jeweilige Komplexität. So können die Teilnehmer den für sie passenden Ansatz finden und umsetzten.

    Read more
  • Keynote: Architektur, Organisation, Prozesse – und Menschen

    Talk Stefan Tilkov Software Architecture Summit Berlin 2017 Slides available

    Keine Präsentation über moderne Architekturen ohne „Conways Law“: Der Zusammenhang zwischen Organisationsstruktur und Architektur ist mittlerweile fast ein Allgemeinplatz. Aber was machen wir aus dieser profunden und doch gleichzeitig trivialen Erkenntnis?

    Mit diesem Vortrag werden wir versuchen, gemeinsam einen Blick auf Herausforderungen, Patterns und Antipatterns von Architekturarbeit in der Praxis zu werfen – und daraus möglichst konkrete Empfehlungen für die tägliche Arbeit abzuleiten.

    Read more

    Beyond Microservices

    Talk Eberhard Wolff Software Architecture Summit 2017

    Jeder macht heutzutage Microservices – und es zeigt sich, dass auch Microservices nicht die Lösung aller Probleme sind. Dieser Workshop vermittelt, was Microservices bringen – bessere Modularisierung, eine Vielzahl technischer Vorteile, optimale Unterstützung für Continuous Delivery. Wir diskutieren dann die Nachteile, etwa erhöhte Komplexität, aufwändigerer Betrieb und Mehraufwand wegen der verteilten Kommunikation.

    Schließlich erörtern wir mögliche Lösungen und alternative Ansätze, die immer noch die meisten der Vorteile bieten, aber Nachteile vermeiden. Um die Ansätze konkret zu illustrieren, werden wir beispielhafte Architekturen erarbeiten.

    Read more
  • Keynote: Verbesserung eines großen IT-Systems – am (guten + schlechten) Beispiel

    Talk Gernot Starke Software Architecture Summit Berlin 2017

    Lernen Sie VENOM kennen, ein großes und über mehrere Jahre lang auch erfolgreiches IT-System. Hören Sie Erfolgsberichte begeisterter Anwender und Trauerreden beteiligter Entwicklerinnen, Horrorgeschichten aus Betrieb und Support. Die Protagonisten dieses Systems sind zufriedene und erschrockene Benutzer, motivierte, engagierte und frustrierte Entwickler, scham- und rücksichtslose, effektive und chaotische Manager, Admins und Betreiber und andere.

    VENOM stößt an vielerlei Grenzen, das Management wechselt häufig die Fahrtrichtung, das Entwicklungsteam alterniert zwischen Stress, Depression und Euphorie.

    Das Management beauftragt „Verbesserung“ – und dann erleben Sie, wie’s gehen kann. Soviel sei verraten: Nicht jeder Ansatz führt zu Erfolg – und manches drohende Desaster kann sich dann doch noch zum Positiven wenden. Außerdem sollen Vollbremsungen bei hoher Geschwindigkeit schon so manches Vehikel vor der Kollision mit der (harten) Wand bewahrt haben.

    Das hier beschriebene VENOM-System (für very normal system) ist einerseits völlig fiktiv, aber andererseits basieren viele der zugrunde liegenden Entscheidungen, Strukturen und Konzepte maßgeblich auf real existierenden Systemen. Die Verbesserungsansätze, die Sie erleben werden, entstammen sämtlich der Realität.

    Read more
  • Automatisiertes Testen mit Lognachrichten

    Article Matthias Putz

    Software-Systeme sind heute verteilt: Zahlreichen Microservices auf diversen Servern von verschiedenen Entwickler-Teams kommunizieren nicht mehr nur untereinander sondern auch mit, eher unzähligen, kleinen Systemen aus dem Internet der Dinge. Meist werden die notwendigen Integrationstests aufgrund der inhärenten Komplexität bei der Umsetzung und Ausführung manuell durchgeführt. Wie jedes System mit Hilfe der ohnehin vorhanden Lognachrichten einfach für automatisierte Integrationstests fit gemacht werden kann, soll im Folgenden beschrieben werden.

    Read more

    Hitchhikers Guide to Architecture Documentation

    Talk Gernot Starke, Ralf D. Müller Software Architecture Summit Berlin 2017

    Anhand eines großen Systems zeigen Ralf und Gernot, wie Sie mit ziemlich wenig Aufwand angemessene und vernünftige Dokumentation für unterschiedliche Stakeholder produzieren – sodass Entwicklungsteams dabei auch noch Spaß haben.

    Das Rezept: AsciiDoc mit arc42 mischen, Automatisierung mit Gradle und Maven hinzufügen und bei Bedarf mit PowerPoint, Grafik- oder Modellierungstools Ihrer Wahl kombinieren – schon bekommen Sie schicke HTML- und PDF-Dokumente generiert, auf Wunsch auch Confluence und docx als Zugabe.

    Wir zeigen, wie Sie Doku genau wie Quellcode verwalten können, stakeholderspezifische Dokumente erzeugen und Diagramme automatisiert integrieren können.

    Zwischendurch bekommen Sie zahlreiche Tipps, wie und wo Sie systematisch den Aufwand für Dokumentation reduzieren können, geschickt Aufgaben im Team verteilen und ganz nebenbei lesbare, verständliche und praxistaugliche Ergebnisse produzieren. Zum Schluss zeigen wir, wie Sie Teile dieser Doku automatisiert testen können.

    Read more
  • Self-contained Systems: Microservices-Archi­tekturen mit System

    Talk Eberhard Wolff Zalando Tech Talk Dortmund September 2017

    Eberhard Wolff gibt uns Einblicke wie Self-contained Systems (SCS) die Ideen von Microservices nutzen und Systeme in stark entkoppelte Anwendungen aufteilen. 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 Vortrag erklärt SCS und zeigt die Unterschiede zu Microservices.

    Read more
  • Modularisierung in Groß und Klein

    Talk Stefan Tilkov Java Forum Nord 2017 Slides available

    (Micro-)services, Bounded Contexts, Komponenten, Module, Klassen, Structs und Records, Prozeduren und Funktionen – was auch immer der Strukturierungsmechanismus ist, eine immer wiederkehrende Herausforderung ist, die richtige Größe für den gewählten Bausteintyp zu finden. In dieser Keynote betrachten wir einige der Kräfte, die Dinge zusammenfügen oder auseinander treiben, diskutieren, welche Effekte sich daraus auf unsere Archtitekturen ergeben und betrachten am Beispiel von Microservices einige erfolgversprechende, aber auch erfolgvernichtende Strategien.

    Read more
  • ROCA-Compliant Table Sorting

    Blog Post Philipp Neugebauer

    The article presents an easy way to enable table column sorting without JavaScript. In addition to the avoided complexity, the solution is also compliant to ROCA.

    Read more

    Transklusion – Kitt für gut geschnittene Webanwendungen

    Talk Franziska Dessart Herbstcampus 2017 Slides available

    Selbst kleinere Webanwendungen stammen heutzutage nur noch selten aus einer Quelle. Daten und Inhalte aus Drittsystemen oder Content aus dem CMS wollen integriert oder gar ein Altsystem schrittweise abgelöst werden. Auch Microservices oder Self contained Systems stellen Teile eines Frontends isoliert zur Verfügung, um den Frontend-Monolithen zu vermeiden. Schön entkoppelt, aus Sicht der Architektur.

    Doch wie und wo bringe ich am Ende alle Einzelteile zusammen? Mit einer selbstgestrickten Lösung in meinem Backend? Alles clientseitig integriert? Welche Möglichkeiten es gibt und für welche Anwendungsfälle sie sich am besten eignen, soll das Thema dieses Vortrags sein.

    • Was ist Transklusion, und für was brauche ich sie?
    • Welche Ziele verfolge ich beim Schneiden von Webanwendungen?
    • Wie schneide ich “an der richtigen Stelle”?
    • Wo transkludiere ich und mit welcher Methode?
    • Gibt es verwandte Konzepte, die hilfreich sein könnten?
    Read more
  • Microservices – Umsetzungen nicht nur mit Java

    Talk Eberhard Wolff Herbstcampus 2017

    Der Microservices-Trend hat eine Vielzahl neuer Technologien hervorgebracht. Viele Projekte nutzen diesen Architekturansatz – setzen ihn aber völlig unterschiedlich um.

    Dieser Vortrag zeigt verschiedene Microservices-Spielarten und die technischen Implikationen, die sich daraus ergeben – nicht nur in der Java-Welt. So gibt der Vortrag einen Leitfaden für das Umsetzen einer Microservices-Architektur und die Auswahl von Technologien.

    Skills

    • Grundlegendes Verständnis von Softwarearchitektur und -entwicklung
    • Idealerweise ein grober Überblick über Microservices
    • Grundlegendes Wissen über die Entwicklung mit Java

    Lernziele

    • Welche technischen Möglichkeiten gibt es zur Umsetzung von Microservices mit Java?
    • Welche Rolle spielen klassischen Technologien wie Java EE oder OSGi?
    • Wie können Ablaufumgebungen wie der Netflix-Stack, Kubernetes oder AWS Lambda helfen?
    • Was benötigt man zur Umsetzung webbasierter Microservices (Self-contained Systems)?
    • Warum sind Programmiersprachen wie Go interessant für Microservices?
    Read more
  • Entwicklung im Feierabendmodus

    Podcast Lucas Dohmen, Robert Glaser

    In dieser Episode spricht Lucas Dohmen erneut mit Robert Glaser über den Reisekosten Gorilla. Dieses mal geht es aber um die technologische Perspektive: Wie wählt man den richtigen Tech-Stack für ein Projekt, was vor allem Abends nach der Arbeit im Feierabendmodus entwickelt wird? Welche Technologien kamen zum Einsatz? Warum wird auf AWS gehosted? Wieso ein Monolith und keine Microservices? Wie arbeitet man asynchron und verteilt? Read more
  • Property-based testing: You won’t look at your tests the same way ever again

    Talk Jan Stępień Lightweight Java User Group München August 2017 Slides available

    Property-based testing changes the way you look at your test suites. Instead of specifying test cases one after another, this advanced testing technique enables you to use logic to automatically generate a stream of inputs. Despite its potential, property-based testing still remains under the radar within the Java community. Let’s try to uncover its strengths together.

    The talk will discuss how property-based testing compares to traditional testing methods and demonstrate its principles with simple examples. We will also see how it fits into a TDD workflow and a CD pipeline. In order to bust the myth of the inapplicability of property-based testing in a real-world setting we’ll bring up some use cases from industry. Finally, we’ll wander into the world of concurrency and the automation of race condition detection.

    Read more
  • Introducing structure

    Talk Jan Stępień Functional Programming Wroclaw #16 Slides available

    Once you’ve got a couple of Clojure katas under your belt you start to wonder how to structure an entire application. Where does the logic go? Where do you respond to HTTP requests? Where to connect to the database and how to pass the connection to code which needs it? Let’s see what the best practices are and which Clojure libraries can help us.

    Read more
  • Der Reisekosten-Gorilla

    Podcast Lucas Dohmen, Robert Glaser, Stefan Tilkov

    Vier innoQ-Mitarbeiter entwickeln eine Lösung zur Reisekostenabrechnung für Unternehmen. Robert Glaser und Stefan Tilkov beantworten Lucas Dohmen alle Fragen zum Reisekosten-Gorilla. In dieser Folge erläutern wir außerdem, welche Rolle innoQ dabei spielt und wie Mitarbeiter mit Hilfe des Mitarbeiterinnovationsprogramms ihre Ideen neben ihrem Job umsetzen können. Read more
  • Git - Gewusst wie

    Talk Christine Koppelt Informatica Feminale – Internationales Sommerstudium für Frauen in der Informatik

    Bei der Entwicklung von Software in Teams müssen Arbeitsstände regelmäßig zusammengeführt und miteinander abgeglichen werden. Git wurde genau dafür entwickelt und ist aus dem Arbeitsalltag einer Softwareentwicklerin nicht mehr wegzudenken.

    Im Rahmen des Kurses lernen die Teilnehmerinnen die Konzepte von Git und das Arbeiten mit dem Git-Kommandozeilenclient kennen - unter anderem werden wir uns intensiv mit den Themen Branching, Rebasing und Merging beschäftigen. Außerdem diskutieren wir etablierte Vorgehensweisen beim Einsatz von Git in Entwicklungsteams und die Teilnehmerinnen erfahren etwas über GitHub und andere Möglichkeiten Repositories zu hosten. Ziel ist es, dass ihr nach dem Kurs effizient mit Git arbeiten könnt und alltägliche und weniger alltägliche Probleme selbständig lösen könnt.

    Read more
  • Microservices – der aktuelle Stand

    Article Eberhard Wolff

    Microservices sind in aller Munde. Gerade bei Software-Entwicklung machen solche Hypes misstrauisch. Schließlich steckt hinter einem Hype oft wenig Substanz. Es ist also Zeit ein erstes Fazit zu ziehen.

    Read more
  • Warum wollen Sie Microservices einführen?

    Article Alexander Heusingfeld

    Mit diesem Artikel möchte ich Ihnen die Frage stellen, warum Sie eigentlich Microservices einführen wollen. Denn es ist immens wichtig, sich der Gründe und Ziele bewusst zu sein. Leider habe ich zu oft erlebt, wie die glänzenden, neuen Technologien die eigentlichen Ziele des Unternehmens in Vergessenheit geraten lassen und zum Selbstzweck werden.

    Read more
  • Topconf Düsseldorf 2017

    News

    Vom 4. - 6. Oktober 2017 trifft sich die Softwareindustrie bei der international besetzten Konferenz Topconf Düsseldorf. An drei vollgepackten Tagen gibt es Workshops und Vorträge mit über 50 hochkarätigen Rednern. In 9 verschiedenen Tracks bietet die Konferenz ein breites Themenspektrum von “Hidden Challenges” über “Modern Languages” oder “Dealing with Data” hin zu “Disruption”. Das gesamte Programm finden Sie hier. Read more
  • Combating spam, or how I befriended the Killer Rabbit of Caerbannog

    Talk Jan Stępień Munich Datageeks July 2017 Slides available

    You might have received an unwanted email at some point. We all have. According to some studies, between 80 and 90 percent of all email is spam. Those of us with accounts at established email providers can rely on their hosts’ filters to keep their inboxes manageable. What if you’re hosting your email on your own, though? Off-the-shelf open source solutions are there when you need them, but that’s not where the fun is. Combining existing tools, building your own classifiers, and seeing them work in practice is far more exciting. Let me tell you a story, one with rabbits.

    Read more
  • Datenarchitekturen – nicht nur für Microservices

    Article Eberhard Wolff

    Microservices werfen wichtige Fragen für Software-Architektur auf. Besonders wichtig ist es, wie die Microservices mit Daten umgehen. Diese Konzepte lassen sich für viel mehr nutzen als nur für Microservices und werfen grundlegende Fragen über Modularisierung auf.

    Read more
  • Berufseinsteiger und Mentoring in der IT

    Podcast Joy Clark, Lucas Dohmen

    Lucas Dohmen und Joy Clark geben Berufseinsteigern Tipps für den leichteren Start in die IT. Aber auch erfahrene EntwicklerInnen können hier lernen, wie sie Neulinge beim Berufseinstieg besser unterstützen. Unsere Themen sind zum Beispiel: Alte, langweilige Technologien vs. neu und shiny? Wie profitierst Du von Meetups und Sketchnotes? Was ist der "richtige" erste Arbeitgeber? Das Gefühl, ein Tintenfisch zu sein. Außerdem geht es ums "Das ist doch ganz einfach", Meinungsvielfalt, Mentoring und Fehler machen. Read more
  • Simple AND Secure?

    Talk Joy Clark EuroClojure 2017

    Clojure is great for programming simple, elegant web applications. But is it possible to actually maintain a simple Clojure application without sacrificing web security?

    We may not be security experts, but we still need to protect our application against common attacks and take care of user authentication and authorization. Security should not be an afterthought but rather a fundamental part of the application architecture. This talk will cover basic principles to follow and introduce the main libraries available in the Clojure world for developing secure web applications.

    You can find a short interview with Joy about this talk here.

    Read more
  • Mit Bounded Contexts einen tragfähigen Systemschnitt finden

    Talk Oliver Tigges DDD Meetup Köln/Bonn #2 Slides available

    Microservices-Architekturen und der Ansatz der Self-contained Systems (SCS) helfen, ein Gesamtsystem in kleinere, beherrschbare und unabhängige Teilsysteme aufzuteilen. Aber wie können diese Teilsysteme und ihre Grenzen identifiziert werden?

    In diesem Vortrag stelle ich vor wie das Konzept der Bounded Contexts aus dem Domain Driven Design dabei hilft, einen optimalen Systemschnitt für Microservices/SCS zu finden. Anhand eines Praxisbeispiels wird gezeigt, welche Abwägungen in einem iterativen Prozess getroffen werden müssen, um stabile und tragfähige Systemgrenzen zu finden, die Autonomie von Teams, Systemen und Services fördern.

    Read more

    Simple AND Secure? (EuroClojure Preview)

    Talk Joy Clark Leipzig Clojure Meetup

    Clojure is great for programming simple, elegant web applications. But is it possible to actually maintain a simple Clojure application without sacrificing web security? We may not be security experts, but we still need to protect our application against common attacks and take care of user authentication and authorization. Security should not be an afterthought but rather a fundamental part of the application architecture. This talk will cover basic principles to follow and introduce the main libraries available in the Clojure world for developing secure web applications.

    Read more

    Structuring Clojure Apps

    Talk Jan Stępień Leipzig Clojure Meetup Slides available

    Once you’ve got a couple of Clojure katas under your belt you start to wonder how to structure an entire application. Where does the logic go? Where do you respond to HTTP requests? Where to connect to the database and how to pass the connection to code which needs it? Let’s see what the best practices are and which Clojure libraries can help us.

    Read more
  • Strategisches Design (DDD) für Microservices

    Talk Michael Plöd RheinJUG Juli 2017 Slides available

    Zweifelsohne kann das Buch „Domain-Driven Design“ von Eric Evans als „Muss“ für Softwarearchitekten 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 (DDD) 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 Microservices-Landschaften helfen. Des Weiteren werden wir betrachten, wie wir mithilfe von DDD eine bestehende Landschaft in Richtung von Microservices migrieren können.

    Read more
  • Domain Events und Event Storming

    Talk Michael Plöd Java Forum Stuttgart 2017 Slides available

    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 Vortrag 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.

    Read more

    Bis an den Abgrund - und zurück: Aufstieg, Krise und Rettung einer (gar nicht so) hypothetischen Software

    Talk Gernot Starke Java Forum Stuttgart 2017

    Unser “ganz normales System” (VENOM, "very normal system“) unterstützt eCommerce-Prozesse für ziemlich komplizierte Produkte (Komplettausstattung von Kaufhäusern und Apotheken, Gartenplanung, Regal- und Möbelplanung und ähnliche abgefahrene Dinge) - inklusive kompletter Lieferung, Verzollung, Aufbau, Abnahme, Inbetriebnahme….

    Das System, über viele Jahre eher hysterisch als historisch gewachsen, wird von einer ziemlich desolaten organisierten Firma (SAMM Inc.) entwickelt und betrieben. Es drohte vor einiger Zeit, „den Bach herunter“ zu gehen. SAMM Inc. zog die Reißleine, und beauftragte ein (agiles) Team damit, die Rettung von VENOM (und SAMM) vorzubereiten und durchzuführen - „Succeed or die", hieß die Devise.

    Diese (überaus fiktive) Situation ist in Wirklichkeit völlig real. Lernen Sie „rise and fall of a system“ aus der Nähe kennen, sehen Sie die Auswirkungen desaströser Architekturarbeit sowie verkorkster Entwicklungs- und Betriebsprozesse. Und dann - erfahren Sie von Maßnahmen, die wirklich helfen könnten (oder auch nicht) - und sehen Sie (am realen Beispiel), wie methodische Verbesserung von Software(architektur) funktionieren kann.

    Disclaimer: Ähnlichkeit mit real existierenden Unternehmen ist rein zufällig.

    Read more
  • Advanced Scala – Teil 2

    Podcast Stefan Tilkov, Daniel Westheide

    In dieser Folge setzen Daniel Westheide und Stefan Tilkov ihre Unterhaltung über fortgeschrittene Konzepte der Programmiersprache Scala fort. Diesmal geht es vor allem um Type Level Programming: logische Programmierung im Scala-Typsystem und generische Programmierung mit der Library Shapeless, aber auch um einen Vergleich zu Clojure, der anderen großen funktionalen Sprache auf der JVM. Read more
  • Leben, Leiden und Rettung eines IT-Systems

    Talk Gernot Starke Java User Group Köln Juli 2017

    Der ganz normale Wahnsinn - vom Leben, Leiden und der Rettung eines (gar nicht so) hypothetischen Systems

    VENOM (das „very normal system“) unterstützt eCommerce-Prozesse für ziemlich komplizierte Produkte (Komplettausstattung von Supermärkten, Gartenplanung, Regal- und Möbelplanung und ähnliche abgefahrene Dinge) - inklusive kompletter Lieferung, Aufbau, Abnahme, Inbetriebnahme….

    Das System ist über gute 20 Jahre historisch/hysterisch gewachsen, wird von einer zerfahrenen, ziemlich desolaten Firma (SAMM Inc.) entwickelt und betrieben und drohte vor einiger Zeit, „den Bach herunter“ zu gehen. SAMM Inc. zog die Reißleine, und beauftragte ein (agiles) Team damit, die Rettung von VENOM (und SAMM) vorzubereiten und durchzuführen - „Succeed or die", hieß die Devise.

    Diese (völlig fiktive) Situation ist in Wirklichkeit völlig real. Hören Sie über „rise and fall of the system“, sehen Sie die Auswirkungen desaströser Architekturarbeit und verkorkster Entwicklungs- und Betriebsprozesse. Diskutieren Sie mit mir, welche Maßnahmen helfen könnten (oder auch nicht) - und sehen Sie (am realen Beispiel), wie methodische Verbesserung von Software funktionieren kann.

    Disclaimer: Ähnlichkeit mit real existierenden Unternehmen ist rein zufällig.

    Read more
  • Tooling für JavaScript-Frontends

    Article Michael Vitz

    Nahezu jede Webanwendung besitzt einen Anteil an JavaScript im Frontend. Im Vergleich zu früher haben sich jedoch viele Dinge geändert. So sind heute zahlreiche Tools üblich, die den Entwickler unterstützen. Dieser Artikel gibt einen Überblick über aktuell genutzte Entwicklungswerkzeuge für die Entwicklung von JavaScript-Frontends.

    Read more
  • Innovation Tokens – Gegen Informatikerromantik und Technologieüberflutung

    Article Alexander Heusingfeld

    Zu oft werden in Softwareprojekten zu viele neue Dinge gleichzeitig ausprobiert, ohne dass der Business Value erkennbar wäre- und vor allem, ohne die Risiken vorher abzuschätzen. Eine Möglichkeit, die unnötige Technologieüberflutung zu vermeiden, sind Innovation Tokens. Mit diesen lassen sich Innovationen in geregeltere Bahnen lenken und bieten eine Grundlage für weniger emotionale Technologiediskussionen.

    Read more

    Domain Driven Design für Microservices

    Talk Michael Plöd DWX Developer Week 2017 Slides available

    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 tiefer gehende 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.

    Read more
  • Stateful Apps mit Kubernetes

    Blog Post Christopher Schmidt

    Moderne Microservice-Architekturen lassen sich gut durch Container und Container Manager in Produktion bringen. Durch sie werden die aktuellen Anforderungen an Skalierbarkeit und Verfügbarkeit einfacher realisierbar – zumindest dann, wenn einzelne Container keine persistente Daten haben müssen. Aber auch dann ist klar: jedes System benötigt an irgendeiner Stelle Persistenz.

    Read more
  • Akka Cluster Management and Split Brain Resolution

    Talk Niko Will ScalaSwarm 2017 Slides available

    Akka is a toolkit that brings the actor model to the JVM and helps developers to build scalable, resilient and responsive applications. With location transparency and asynchronous message passing it is designed to work distributed from the ground up.

    While distributed systems help to solve some problems like availability, a new set of problems arise. For example how do we scale the cluster up or down? What happens if the network is at least partially not available? Akka provides a comprehensive set of cluster features that enable developers to monitor and manage the cluster manually or in most cases even automatically.

    In this talk I will introduce some of these features and explain what you need to be aware of. You will learn how to start a cluster correctly and add / (gracefully) remove nodes to / from a running cluster. Additionally I will show how to handle failure scenarios like network partitions by using an existing or implementing a custom split brain resolver.

    Read more
  • Many roads lead to microservices

    Talk Eberhard Wolff Industry Talk, AMOS course, Uni Erlangen

    Microservices solve a lot of problems with current architectures: E.g. they help with agile processes, enable Continuous Delivery and increase robustness and scaling. But what is the best way to create a Microservices architecture? That depends on the concrete scenario – and can be very different for each individual project. This talk shows the many value propositions of Microservices and how to find the best way to a Microservices architecture.

    Read more
  • Konferenzsommer: Developer Week und Java Forum Stuttgart

    News

    In den nächsten Wochen sind wir auf zwei Konferenzen zu Gast. Vom 26.–29. Juni findet in Nürnberg die Developer Week statt. Das Event auf dem Nürnberger Messegelände bietet Workshops, Vorträge und eine Fachmesse für Softwareentwickler und IT-Entscheider. Read more

    Microservices: Deployment und Continuous Delivery

    Talk Eberhard Wolff Microservices Summit 2017

    Microservices lösen viele Probleme in der Software-Entwicklung. Aber die große Anzahl an Services macht das Deployment wesentlich aufwändiger. Dieses Tutorial zeigt die Herausforderungen rund um Deployment und die Continuous-Delivery-Pipeline für Microservices auf und zeigt mögliche Lösungen, um Microservices mit wenig Risiko zu deployen und zu testen. Neben konkreten Technologien zeigt das Tutorial auch Lösungen auf der Ebene von Architektur und Organisation.

    Read more
  • Blockchain: The Slowest (and most fascinating) Database in the World

    Talk Stefan Tilkov GOTO Amsterdam 2017

    As the foundation of Bitcoin’s virtual currency, the blockchain technique is now the starting point for numerous new business ideas.The usual suspects surpass each other with superlatives how “disruptive” the Blockchain based startups will be.

    In this talk, we look first at the technical foundations and then examine the advantages and disadvantages. We then identify practical scenarios and discuss how to implement them in practice.

    You can find a video of the talk here.

    Read more

    Advanced Scala

    Podcast Daniel Westheide, Stefan Tilkov

    In dieser Folge unterhalten sich Daniel Westheide und Stefan Tilkov über einige fortgeschrittene Konzepte der Programmiersprache Scala. Was sollte man bei der Verwendung von Case Classes beachten? Welche Fallstricke gibt es beim Pattern Matching? Und was sind eigentlich Type Classes? Read more
  • Self-contained Systems: A Different Approach to Microservices

    Talk Stefan Tilkov GOTO Amsterdam 2017

    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.

    Read more
  • Introducing structure

    Talk Jan Stępień Clojure Vienna Meetup Juni 2017 Slides available

    Once you’ve got a couple of Clojure katas under your belt you start to wonder how to structure an entire application. Where does the logic go? Where do you respond to HTTP requests? Where to connect to the database and how to pass the connection to code which needs it? Let’s see what the best practices are and which Clojure libraries can help us.

    Read more
  • Warum ein Container Manager das bessere Microservice Framework ist

    Article Christopher Schmidt

    Überall schießen Microservice Frameworks wie Pilze aus dem Boden – sei es für Java, sei es für NodeJS. Dabei sind Container Manager, unabhängig von jedem Framework, viel besser geeignet, Microservice Architekturen in Produktion zu bringen.

    Read more
  • Introducing structure

    Talk Jan Stępień Clojure Meetup Munich Juni 2017 Slides available

    Once you’ve got a couple of Clojure katas under your belt you start to wonder how to structure an entire application. Where does the logic go? Where do you respond to HTTP requests? Where to connect to the database and how to pass the connection to code which needs it? Let’s see what the best practices are and which Clojure libraries can help us.

    Read more
  • Implementing loosely coupled microservices with Grails

    Talk Michael Plöd GR8Conf EU 2017 Slides available

    Grails 3 is a great starting point for creating microservices, and many projects are following this path. However, many microservice landscapes are still based on synchronous calls to REST resources which obviously increases coupling between those applications. This talk focusses on building loosely coupled microservices that are based on Domain Events, which are becoming more and more popular in the Domain Driven Design community. We will take a look at how Grails 3 helps us in building such systems by introducing the Grails 3 event system and by taking a look at how we can leverage Domain Events for a decoupled communication between Grails applications.

    The talk will have slides for the theory and many practical examples.

    Read more
  • Microservices with Java, Spring Boot and Spring Cloud

    Talk Eberhard Wolff Bucharest Technology Week 2017

    Spring Boot makes creating small Java application easy - and also facilitates operations and deployment. But 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 the Netflix stack, for instance. This talks covers Spring Boot and Spring Cloud, and shows how these technologies can be used to create a complete Microservices environment.

    Read more
  • Self-Contained Systems – Teil 2

    Podcast Stefan Tilkov, Eberhard Wolff

    In der zweiten Folge des Podcasts zum Thema "Self-contained Systems (SCS)" mit Eberhard Wolff und Stefan Tilkov geht es um die Motivation für SCS, um die sinnvollen und weniger sinnvollen Einsatzszenarien und die Auswirkungen auf die Evolution der Architektur insgesamt. Außerdem diskutieren die beiden Mikro- und Makro-Architektur sowie den Geltungsbereich bestimmter Regeln in diesen Perspektiven. Schließlich diskutieren sie Sinn und Unsinn von Frontend-Monolithen und die Herausforderungen von UI-Integration, die Historie des Begriffs "SCS" und die Möglichkeiten zur Mitwirkung an der Weiterentwicklung der Definition. Read more
  • Remain resilient, fail fast

    Blog Post Jan Stępień

    Keep your systems resilient to broken connections and unreliable networks. Unless it’s start-up time.

    Read more
  • Leveraging Domain Events in your Spring Boot Microservices (Workshop)

    Talk Michael Plöd Spring I/O 2017

    Domain Events are a part of Domain-Driven Design’s internal building blocks and they also play a central role during the implementation of loosely coupled Microservice landscapes. In this workshop we will take a deep dive into the concept of Domain Events and learn how to model and design Domain Events. We will also address how they can be used for the internal and external communication between Spring Boot applications.

    The workshop will consist of theoretical explanations using slides as well as a substantial hands-on live coding part in which you will learn how to work with Domain Events in Spring Boot. We will conclude the session by taking a short look at topics like Event Sourcing and CQRS.

    Read more
  • DDD Strategic Design with Spring Boot

    Talk Michael Plöd Spring I/O 2017

    One of the most valuable parts of Domain Driven Design are the concepts of Strategic Design. These concepts include Bounded Context, Context Map and the patterns that are being documented in the Context Map.

    This talk explains all of these topics mentioned above as well as practical usage scenarios such as migrating a monolithic landscape to Microservices. In order to get hands-on, I will also demonstrate the concepts surrounding Strategic Design with an application landscape of various Spring Boot Applications.

    Read more
  • Caching for Business Applications: Best Practices and Gotchas

    Talk Michael Plöd geeCON 2017 Slides available

    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: ‘which data can I cache?’, ‘how can 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

    Read more
  • Marrying Rails, Turbolinks and JavaScript Custom Elements

    Blog Post Robert Glaser

    Rails 5.1 just arrived and brought with it a curated setup for webpack. Think what you want about webpack, but it’s the new default for JavaScript module loading and bundling in Rails and therefore here to stay. So here’s a quick post on how to get the new JavaScript goodness up and running with your existing Turbolinks setup.

    Read more

    Continuous Delivery im Expertencheck, Teil 2

    Link Eberhard Wolff

    Der Einfluss von Continuous Delivery reicht nicht nur bis in die Produktion, sondern auch in den Designprozess. jaxenter.de hat sechs Continuous-Delivery-Experten gefragt, welche Auswirkungen CD auf die Softwarearchitektur hat. Außerdem geben sie Tipps, mit welchen Tools man die CD-Toolchain am besten bändigen kann.

  • Der ganz normale Schrecken – interaktive Geschichte eines großen IT-Systems

    Talk Gernot Starke JAX 2017

    Erleben Sie die Geschichte von VENOM, einem großen erfolgreichen, aber auch chaotischen IT-System aus der Sicht verschiedener Beteiligten. Unsere Protagonisten sind zufriedene und erschrockene Benutzer, motivierte, engagierte und frustrierte Entwickler, scham- und rücksichtslose, effektive und chaotische Manager, Admins und Betreiber und andere.

    Die Story beginnt schon in den 1990er-Jahren, als Netscape noch das Gesicht des Internets war, bis in Zeiten resilienter, containerbasierter Microservices. VENOM stößt dabei an vielerlei Grenzen, das Management wechselt häufig die Fahrtrichtung, das Entwicklungsteam alterniert zwischen Stress, Depression und Euphorie.

    Sie lernen eine Modernisierungs- und Verbesserungsinitiative kennen, die nach diversen Reviews und Diskussionsrunden gestartet werden soll.

    Und dann sind Sie, wertes Publikum, gefragt: Kann der Plan zur Modernisierung von VENOM aufgehen? Kann VENOM an frühere Erfolge anknüpfen? Findet die Entwicklung in ruhige Fahrwasser zurück?

    Read more
  • Dokumentation am (Riesen-)Beispiel – arc42, AsciiDoc und Co. in Aktion

    Talk Gernot Starke, Ralf Müller JAX 2017 Slides available

    Anhand eines großen Systems zeigen Gernot und Ralf, wie Sie mit ziemlich wenig Aufwand angemessene und vernünftige Dokumentation für unterschiedliche Stakeholder produzieren – sodass Entwicklungsteams dabei auch noch Spaß haben.

    Unser Rezept: AsciiDoc mit arc42 mischen, Automatisierung mit Gradle und Maven hinzufügen und mit Diagramm- oder Modellierungstools Ihrer Wahl kombinieren. Schon sind schicke HTML- und reviewfähige PDF-Dokumente fertig. Auf Wunsch gibts DOCX und Confluence als Zugabe. Wir zeigen, wie Sie Doku genau wie Quellcode verwalten können, stakeholderspezifische Dokumente erzeugen und Diagramme automatisiert integrieren können. Einige Teile dieser Doku können Sie sogar automatisiert testen.

    Zwischendurch bekommen Sie zahlreiche Tipps, wie und wo Sie systematisch den Aufwand für Dokumentation reduzieren können, und trotzdem lesbare, verständliche und praxistaugliche Ergebnisse produzieren.

    Read more
  • Spring Boot als Beispiel für DDD Strategic Design

    Talk Michael Plöd JAX 2017 Slides available

    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, Anti-Corruption Layer, Conformist oder Separate Ways.

    Read more

    Datenarchitekturen nicht nur für Microservices

    Talk Eberhard Wolff JAX 2017 Slides available

    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 Datenreplikation zeigen, wie solche Probleme gelöst werden können, ohne dass dabei zu große Redundanzen bei den Daten entstehen.

    Read more

    Strategisches Design (DDD) für Microservices

    Talk Michael Plöd JAX 2017 Slides available

    Zweifelsohne kann das Buch „Domain-Driven Design“ von Eric Evans als „Muss“ für Softwarearchitekten 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 (DDD) 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 Microservices-Landschaften helfen. Des Weiteren werden wir betrachten, wie wir mithilfe von DDD eine bestehende Landschaft in Richtung von Microservices migrieren können.

    Read more

    Cloud-native Java

    Talk Michael Plöd JAX 2017

    “It is not necessary to change. Survival is not mandatory.” W. Edwards Deming

    Work takes time to flow through an organization and ultimately be deployed to production where it captures value. It’s critical to reduce time-to-production. Software – for many organizations and industries – is a competitive advantage.

    Organizations break their larger software ambitions into smaller, independently deployable, feature-centric batches of work – microservices. In order to reduce the round-trip between stations of work, organizations collapse or consolidate as much of them as possible and automate the rest; developers and operations beget “devops”, cloud-based services and platforms (like Cloud Foundry) automate operations work and break down the need for ITIL tickets and change management boards.

    But velocity, for velocity’s sake, is dangerous. Microservices invite architectural complexity that few are prepared to address. In this talk, we’ll look at how high performance organizations like Ticketmaster, Alibaba, and Netflix make short work of that complexity with Spring Boot and Spring Cloud.

    Read more
  • Microservices-Workshop: Architektur und Technik

    Talk Eberhard Wolff JAX 2017

    Microservices sind in aller Munde. In diesem Workshop wollen wir nicht nur theoretisch über Microservices sprechen, sondern ein ganzes System aus Microservices 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 Docker und 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.

    Read more

    Cloud-native Java (the Workshop)

    Talk Michael Plöd JAX 2017

    In this workshop we’ll look at how to build cloud-native Java applications. A cloud-native application is one that is designed to fully exploit a cloud platform both in the application layer – where things decompose into microservices – and at the data layer where NoSQL offers better horizontal scaling and fitness for specific purpose. We’ll look at:

    • writing services and handling non-functional requirements like metrics and logging with Spring Boot
    • scaling out safely and building fault-tolerant systems using Spring Cloud and its support for distributed systems patterns like the circuit breaker, service registration and discovery, and centralized configuration management.
    • offloading as much operational work as possible to the platform, Cloud Foundry
    Read more
  • Continuous Delivery im Expertencheck

    Link Eberhard Wolff

    Continuous Delivery (CD) verspricht schnellere Release-Zyklen und eine bessere Softwarequalität. Oft sieht das Ergebnis aber ganz anders aus. Eberhard Wolff und fünf weitere Continuous-Delivery-Experten erklären auf jaxenter.de, welche Hindernisse auf jeden Fall aus dem Weg geräumt werden müssen, damit CD erfolgreich umgesetzt werden kann.

  • Serverlose IoT-Applikationen

    Talk Niko Will building IoT 2017 Slides available

    Softwareentwickler sehen sich heutzutage mit einer Vielzahl von Anforderungen konfrontiert. Bereits das Verstehen der Domäne für die Implementierung der Geschäftslogik kann beliebig komplex werden. Hinzu kommen nun immer mehr Themen wie Skalierung und Ausfallsicherheit. Ganz zu schweigen von Benutzerauthentifizierung und -autorisierung oder Logging, Monitoring und Betrieb der Anwendung. Im IoT-Umfeld bereiten uns zusätzlich noch die Anbindung von Geräten über unsichere und instabile Verbindungen Kopfzerbrechen.

    Andererseits bieten mittlerweile viele der großen Cloud-Plattformen zusätzlich zu Datenbanken und Messaging-Systemen auch ein reiches Portfolio an Diensten, die speziell auf die Bedürfnisse von IoT-Applikationen zugeschnitten sind. In Kombination mit serverlosen Funktionen lassen sich so bereits in einigen Tagen bis wenigen Wochen erste Konzepte praktisch erproben oder sogar komplett umsetzen. Darüber hinaus kann durch den Verzicht auf eigene Backend-Services ein Großteil der typischen Betriebsthemen entfallen.

    Dieser Vortrag zeigt am Beispiel von Amazon Web Services (AWS), wie sich Geräte schnell und sicher an eine Cloud-Plattform anbinden lassen. Außerdem lernen die Teilnehmer, wie sie durch Kombination der vorhandenen Dienste und einiger weniger serverloser Funktionen zu einer produktiv einsetzbaren IoT-Applikation kommen.

    Read more
  • Self-Contained Systems – Teil 1

    Podcast Stefan Tilkov, Eberhard Wolff

    Self-contained Systems sind ein Mittel zur Modularisierung von Systemen. Sie übernehmen viele gute Ideen des Microservices-Konzepts. In dieser Episode geht darum, was Self-contained Systems eigentlich ausmacht und welche Vorteile dieser Ansatz hat. Außerdem sprechen Eberhard und Stefan über die Dinge, auf die man bei der Umsetzung achten muss. Read more
  • Rendering Self-Contained Custom Elements

    Blog Post Frederik Dohr

    This is a response to Paul Kinlan’s post on creating custom elements, explaining how JSX can be used for declarative templating.

    Read more

    Cloud for Breakfast: innoQ at AWS Tech Talks

    News

    From 26 April to 2 May, Amazon Web Services is offering a series of “Tech Breakfast” talks with a focus on Microservices. All events include an introduction to “Microservices on AWS” with Sascha Möllering (AWS) and a talk by our colleagues Jerry Preissler and Alexander Heusingfeld. In this session, they will take a closer look at “Pragmatic Software Engineering – when theory meets real life”. Read more
  • Servicemanagement mit systemd

    Talk Christine Koppelt Augsburger Linux-Infotag 2017

    systemd ist ein System- und Service-Management-Framework für Linux, das unter anderem von Ubuntu, Debian, Arch, Fedora und Red Hat verwendet wird. Es wird beim Booten als erster Prozess gestartet und sorgt dafür, dass alle weiteren Prozesse wie Systemdienste, Systemkomponenten und dauerhaft laufende Anwendungen automatisiert gestartet, überwacht und lauffähig gehalten werden.

    Im Rahmen des Workshops lernt Ihr, wie Ihr eigene Startskripte, sog. Unit-Files, erstellen könnt und wie man damit Abhängigkeiten zu anderen Diensten, zeitgesteuerte Ausführung und Bedingungen für automatische Neustarts definieren kann. Außerdem schauen wir uns an, wie man die Logmeldungen der gestarteten Dienste mit Bordmitteln effizient auswerten kann.

    Read more
  • heise SoftwareArchitekTOUR Podcast, Episode 55: Pro und Contra von Web Components

    Link Falk Hoppe, Stefan Tilkov

    Falk Hoppe war zu Gast beim heise SoftwareArchitekTOUR-Podcast, um über Vor- und Nachteile von Web Components zu diskutieren, dem Web-Standard für die Entwicklung portabler, Framework-unabhängiger Browser-Komponenten. Nach einer Vorstellung der Bestandteile (HTML Templates, Custom Elements, Shadow DOM und HTML Imports) geht es vor allem um die Praxistauglichkeit und die Relevanz in Zeiten mächtiger Single-Page-App-(SPA)-Ansätze.

  • Building Component-Based Front Ends with Rails

    Blog Post Frederik Dohr, Lucas Dohmen

    Our latest Ruby on Rails front-end project strongly emphasizes a component-based approach. In this post, we briefly explain how a tiny helper not only helped us render UI components, but also resulted in better components thanks to well-defined contracts and effortless composition.

    Read more
  • Event Sourcing und CQRS – Teil 2

    Podcast Niko Will, Lucas Dohmen

    In dieser Folge unterhalten sich Niko Will und Lucas Dohmen zum zweiten Mal über Event Sourcing und Command Query Responsibility Segregation, kurz CQRS. Nachdem wir in Teil 1 über die Vor- und Nachteile sowie einige technische Details gesprochen haben, geht es dieses Mal mehr um die Besonderheiten auf Ebene der Architektur. Wie fügen sich diese Patterns in eine verteilte Architektur ein? Auf was muss ich bei der Implementierung achten? Wie erreiche ich eventual consistency in Event-getriebenen Architekturen? Read more
  • Kontextfrei: A new approach to testable Spark applications

    Talk Daniel Westheide Scalar 2017 Slides available

    Apache Spark has become the de-facto standard for writing big data processing pipelines. While the business logic of Spark applications is often at least as complex as what we have been dealing with in a pre-big data world, enabling developers to write comprehensive, fast unit test suites has not been a priority in the design of Spark. The main problem is that you cannot test your code without at least running a local SparkContext. These tests are not really unit tests, and they are too slow for pursuing a test-driven development approach. In this talk, I will introduce thekontextfrei library, which aims to liberate you from the chains of the SparkContext. I will show how it helps restoring the fast feedback loop we are taking for granted. In addition, I will explain how kontextfrei is implemented and discuss some of the design decisions made and look at alternative approaches and current limitations.

    Read more
  • Akka Cluster Management and Split Brain Resolution

    Talk Niko Will Scalar 2017 Slides available

    Akka is a toolkit that brings the actor model to the JVM and helps developers to build scalable, resilient and responsive applications. With location transparency and asynchronous message passing it is designed to work distributed from the ground up.

    While distributed systems help to solve some problems like availability, a new set of problems arise. For example how do we scale the cluster up or down? What happens if the network is at least partially not available? Akka provides a comprehensive set of cluster features that enable developers to monitor and manage the cluster manually or in most cases even automatically.

    In this talk I will introduce some of these features and explain what you need to be aware of. You will learn how to start a cluster correctly and add / (gracefully) remove nodes to / from a running cluster. Additionally I will show how to handle failure scenarios like network partitions by using an existing or implementing a custom split brain resolver.

    Read more
  • Self-contained Systems: Microservices-Archi­tekturen mit System

    Talk Eberhard Wolff Softwerkskammer Leipzig April 2017 Meetup

    Self-contained Systems (SCS) 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.

    Zunächst erklärt ein Vortrag die Prinzipien von SCS. Dann werden wir einige Beispiele für Frontend-Integration auf Code-Ebene nachvollziehen, um so ein Technik für die lose Kopplung von Microservices auf UI-Ebene kennenzulernen und damit einen wesentlichen Bestandteil von SCS besser zu verstehen.

    Read more
  • Docker Compose – Komplette Systeme mit Docker managen

    Article Michael Vitz

    Der Einstieg in Docker ist einfach. Schnell hat man gelernt, mit Dockerfiles Images zu erzeugen und die ersten Container laufen bereits. Dann wird es wirklich spannend. Wie manage ich mehrere Container, die zusammen eine ganze Umgebung bilden? Dieser Artikel liefert Ihnen die Antwort auf diese Frage.

    Read more
  • Schnelleinstieg in Go

    Talk 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.
    Read more

    Microservice mit Spring Boot und Spring Cloud

    Talk 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.

    Read more

    Webinar: Strategic (Domain Driven) Design with Spring Boot

    Talk Michael Plöd Spring Webinar

    This talk will focus on one of the most precious parts of Domain Driven Design, the concept of Strategic Design, as well as Bounded Context, the Context Map and the patterns that are being documented in the Context Map.

    An explanation of these principles as well as practical usage scenarios such as migrating a monolithic landscape to microservices is planned for discussion. And, using a hands-on approach, we will demonstrate the concepts surrounding Strategic Design with an application landscape of various Spring Boot Applications.

    Read more
  • JAX 2017 mit Michael Plöd, Gernot Starke und Eberhard Wolff

    News

    Vom 8. bis 12. Mai findet in Mainz die JAX 2017 statt. Ein besonderer Fokus der beliebten Konferenz liegt auf Java Core- und Enterprise-Technologien, Microservices, dem Spring-Ökosystem, JavaScript, Continuous Delivery und DevOps. Im umfangreichen Programm von über 200 Vorträgen und Workshops ist innoQ mit sieben Sessions vertreten. Read more
  • Wait, what!? Our microservices have actual human users?

    Talk Stefan Tilkov EuregJUG Maas-Rhine March2017

    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.

    Read more
  • Event Sourcing und CQRS – Teil 1

    Podcast Niko Will, Lucas Dohmen

    In dieser Folge unterhalten sich Niko Will und Lucas Dohmen über Event Sourcing und Command Query Responsibility Segregation, kurz CQRS. Wozu kann man diese Patterns verwenden? Was sind Vor- und Nachteile gegenüber anderen Ansätzen? Warum sind sie besonders in verteilten Anwendungen wie in Microservice Architekturen oder Self-Contained Systems (SCS) interessant? Read more
  • Design Patterns: Noch nie so wertvoll wie heute?

    Blog Post Frank Buschmann

    In einem Gastbeitrag diskutiert Frank Buschmann, Co-Autor der Buchreihe “The "Pattern-Oriented Software Architecture”, warum Patterns zur Zeit eine Renaissance erleben.

    Read more
  • How Browsers Load and Process JavaScript

    Blog Post Frederik Dohr

    This is a rundown of how browsers process JavaScript references within HTML.

    Read more
  • Self-contained Systems oder Microservices – Hauptsache SOA

    Talk 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.

    Read more
  • Architecture Fishbowl

    Talk 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.

    Read more

    New School of Enterprise Architecture

    Talk 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.

    Read more
  • The Power of the HTML Form

    Blog Post Joy Clark

    The HTML form is a powerful tool for telling a server what you want to do. But does everybody know how it works? With the multifarious JavaScript frameworks currently available today, software developers in the industry today often do not know how to create a web application without JavaScript. Is there an alternative? The web has been around for ages. What did people do before JavaScript?

    Read more

    Domain Events und Event Storming

    Talk 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.

    Read more

    KEYNOTE: Architekturtransformationen in der Praxis

    Talk 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.

    Read more
  • DDD Workshop

    Talk Michael Plöd MAJUG März 2017

    In diesem Workshop werden wir die grundlegenden Konzepte und Ideen von Domain Driven Design und seine Evolution betrachten und kennenlernen. Dabei werden nicht nur reine Patterns betrachtet, sondern auch eruiert in wie weit DDD organisatorische, (Team-)politische und kommunikative Aspekte beeinflusst. Der Workshop bespricht dabei die grundlegenden Eigenschaften und “Attitüden”, die DDD ausmachen. Im nächsten Teil geht es detailliert um den Bereich der Internal Building Block, dem wohl bekanntesten DDD-Teil: die Entitäten, Value Objects oder Aggregates.

    Schließlich werden wir das Thema Strategic Design beleuchten und lernen in wie weit uns Bounded Contexts und Context Maps dabei helfen, bestehende Systemlandschaften oder Systeme zu analysieren und warum vor allem die Context Map mit ihren Klassifizierungen ein sehr guter Ausgangspunkt für künftige IT-Transformationen ist. Abschließend werfen wir noch kurz einen Blick auf neuere Trends im DDD-Umfeld, wie zum Beispiel Domain Events, Event Sourcing oder CQRS.

    Der Workshop wird sowohl einen theoretischen, wie auch einen praktischen Teil mit Beispielen und kurzen Übungen beinhalten.

    Read more
  • Serverless

    Blog Post Niko Will

    Um den Begriff serverless gibt es immer noch hitzige Diskussionen. Einige halten ihn für einen Hoax und setzen ihn mit “useless” gleich, andere schwören darauf, dass serverless bald alle anderen Architekturstile ablösen wird.

    Read more
  • Web Applikationen mit Clojure

    Talk Michael Vitz rheinjug Slides available

    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 an diesem Abend auch Schritt für Schritt sehen, wie man hiermit eine Web-Anwendungen entwickeln kann. Wenn Sie sich hierbei nicht von den Lisp-typischen Klammern abschrecken lassen, werden Sie schnell sehen, dass die Ausdrucksstärke von Clojure und der Einsatz einer rein funktionalen Programmiersprache für Web-Applikationen sehr gut passt.

    Read more
  • Prolog

    Podcast Joy Clark, Lucas Dohmen

    In dieser Folge unterhalten sich Joy Clark und Lucas Dohmen über logische Programmierung und über die Programmiersprache Prolog. Was ist logische Programmierung? Wo spielt es seine Stärken aus? Read more
  • Testing with mutants

    Talk Jan Stępień :clojureD 2017 Slides available

    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.

    A video of this talk is now available here.

    Read more
  • Implementierung einer einfachen Zustandsmaschine (state machine) in Java

    Blog Post Florian Miess

    Eine simple Zustandsmaschine (state machine) in Java

    Read more

    The Hidden Nature of Data

    Talk Martin Kühl BOB 2017 Slides available

    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.

    Read more
  • In-Depth: Practical Microservice Modelling with DDD’s Strategic Design

    Talk 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.

    Read more
  • Testing with mutants

    Talk 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.

    A video of this talk is now available here.

    Read more
  • Lokale Datenanalyse mit Data Frames

    Article Michael Vitz, Michael Krämer

    Der Wunsch, aus Geschäftsdaten Erkenntnisse gewinnen zu wollen, ist in der Breite der Unternehmen angekommen. Häufig werden dabei technologische Aspekte wie Machine-Learning-Algorithmen und Cluster-Lösungen als Schlüssel betrachtet, um viele Fragen quasi automatisch zu beantworten. Doch muss es für einen Einstieg in dieses Thema immer direkt ein Big-Data-Framework oder ein Cluster für Machine Learning sein? Dieser Artikel zeigt Ihnen, wie Sie ganz einfach lokal auf Ihrem Rechner die ersten Schritte im Data-Science-Umfeld gehen können und dabei einen Überblick über die Vorgehensweise erhalten.

    Read more

    Web Applications in Clojure

    Talk Joy Clark Clojure Meetup Munich Februar 2017 Slides available

    Clojure, as a Lisp dialect running on the JVM, is a purely functional language that also takes advantage of the great library support available in the Java world.

    As a functional language, it provides great abstractions for developing web applications, particularly because of how it handles HTTP, which is a fundamentally stateless protocol. In this talk, I will explain the fundamental concepts behind Clojure web applications and how the Clojure libraries harness the power of the existing Java infrastructure in order to provide state of the art server technology.

    Read more
  • Wie wichtig ist SW-Architektur noch für agile Projekte?

    Talk Gernot Starke Agile Nacht Stuttgart

    Erfahrungsbericht: Analyse, Verbesserung und Dokumentation eines (gar nicht so) hypothetischen Systems im agilen Umfeld

    Ein eCommerce-System für ziemlich komplizierte Produkte (Komplettausstattung von Supermärkten, Gartenplanung, Regal- und Möbelplanung und ähnliche abgefahrene Dinge) - inklusive kompletter Lieferung, Aufbau, Abnahme, Inbetriebnahme… das ist VENOM (very normal system).

    Das System ist historisch/hysterisch gewachsen, wird von einer zerfahrenen, ziemlich desolaten Firma (SAMM Inc.) entwickelt und betrieben und drohte vor einiger Zeit, „den Bach herunter“ zu gehen. SAMM Inc. zog die Reißleine, und beauftragte ein (agiles) Team damit, die Rettung von VENOM (und SAMM) vorzubereiten und durchzuführen - „Succeed or die", hieß die Devise.

    Diese (völlig fiktive) Situation ist in Wirklichkeit völlig real. Hören Sie über „rise and fall of the system“, sehen Sie die Auswirkungen desaströser Architekturarbeit und verkorkster Entwicklungs- und Betriebsprozesse. Diskutieren Sie mit mir, welche Maßnahmen helfen könnten (oder auch nicht) - und sehen Sie (am realen Beispiel), wie Dokumentation (arc42, was sonst) auch in hochgradig agilem Umfeld funktioniert.

    Disclaimer: Ähnlichkeit mit real existierenden Unternehmen ist rein zufällig.

    Read more

    Self-contained Systems und Frontend-Integration – Teil 2

    Podcast Falk Hoppe, Till Schulte-Coerne, Eberhard Wolff

    Im zweiten Teil des Podcasts über Self-contained Systems (SCS) und Frontend-Integration geht es um Alternativen zu Single Page Apps (SPAs) und darum, wie Entwickler ganz konkret erste Schritte hin zu einer Frontend-Integration und Self-contained Systems gehen können. Read more
  • Self-contained Systems: Ein anderer Ansatz für Microservices

    Talk 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

    Read more
  • Microservices sind ganz anders als man denkt!

    Talk 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

    Read more
  • Architekturmodernisierung mit SCS und Microservices

    Talk Alexander Heusingfeld, Michael Vitz OOP 2017 Slides available

    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

    Read more

    Die Jagd läuft – Digitalisierung im Unternehmen

    Talk 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

    Read more
  • Clojure-Web-Applikationen für Beginner

    Talk Michael Vitz OOP 2017 Slides available

    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

    Read more

    Mutation Testing in Continuous Delivery Pipelines

    Talk Jan Stępień Continuous Delivery Meetup München Slides available

    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.

    Read more

    Microservices: Redundanz = Wartbarkeit!

    Talk 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.

    Read more
  • heise Developer Continuous Architecture Blog, „Meine Datenbank gehört mir!”

    Link Eberhard Wolff

    Datenbanken gemeinsam zu nutzen erscheint sinnvoll – schließlich sind Daten das neue Öl. Das widerspricht aber einer wesentlichen Grundlage für moderne Softwareentwicklung – der Modularisierung. Die neueste Kolumne von Eberhard Wolff für den heise Developer Blog.

  • arc42 - die Siebte

    Blog Post Gernot Starke

    Das bewährte arc42 Template ist gerade in Version 7 erschienen - mit deutlichen Erweiterungen im Ökosystem. Grundsätzlich bleibt arc42 V7 kompatibel mit den Vorgängerversionen, ist insgesamt noch kompakter und pragmatischer geworden.

    Read more

    Strategic Design aus Domain Driven Design mit Spring Boot

    Talk Michael Plöd JUG Nürnberg Januar 2017 Meetup Slides available

    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

    Read more
  • UI Engineering Podcast, S01E06, Interview mit Falk Hoppe

    Link Falk Hoppe

    Falk Hoppe war zu Gast bei UI Engineering Podcast. Er unterhält sich mit den beiden Gastgebern des Podcasts, Jan Persiel und Dennis Reimann, über Styleguides und Pattern Libraries sowie verschiedene Tools und deren Einsatz.

  • Meetups in Süddeutschland

    News

    In den kommenden 14 Tagen finden in München, Nürnberg und Stuttgart einige Meetups mit innoQ Beteiligung statt. Die Teilnahme ist bei allen Events kostenlos, allerdings muss man sich gegebenenfalls vorher anmelden. Read more
  • The Empathic Programmer

    Link Daniel Westheide

    In an article published on his personal blog, Daniel Westheide shares his take on empathy, and lack thereof, in the tech community and at the workplace, and how it relates to inclusion and diversity.

  • Self-contained Systems und Frontend-Integration – Teil 1

    Podcast Falk Hoppe, Till Schulte-Coerne, Eberhard Wolff

    Self-contained Systems (SCS) stellen einen Ansatz zur Modularisierung von Systemen dar. Sie übernehmen viele gute Ideen des Microservices-Konzepts. Eine wichtiges Element ist die Frontend-Integration auf der UI-Ebene als Alternative zur Integration im Backend. Darum geht es in zwei Podcast-Episoden. In dieser ersten Episode stellen Falk Hoppe und Till Schulte-Coerne im Gespräch mit Eberhard Wolff das SCS-Konzept vor. Sie diskutieren zudem die Vor- und Nachteile der Frontend-Integration sowie Single-Page Apps (SPA) als eine mögliche Implementierung des Frontends. Read more
  • Caching with Spring - Advanced Topics and Best Practices

    Talk 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.

    Read more

    Don’t Fear the Implicits

    Talk 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.

    Read more
  • Software Engineering Daily Podcast, „Self-Contained Systems“ with Eberhard Wolff

    Audio Eberhard Wolff Software Engineering Daily

    Self-contained Systems (SCS) is an architectural approach that separates the functionality of a system into many independent systems. Each self-contained system is an autonomous web application, and is owned by one team. Communication with other self-contained systems or 3rd party systems is asynchronous where possible.

    As Eberhard Wolff explains in this episode, self-contained systems is not the same thing as microservices, but they are not mutually exclusive. Organizations often adopt a mix of architectural ideas, and it is worth understanding these different models so you can decide which of them to apply to your own projects.

  • Simplicity - Fighting Complexity At All Costs

    Blog Post Joy Clark

    My colleague recently wrote an excellent post discussing the functional and object-oriented paradigms. As someone who comes from a functional programming background, I definitely agreed with one thing: We need to stop building arbitrary walls that prevent us from learning from and helping each other.

    Read more
  • FP vs. OO

    Blog Post Lucas Dohmen

    I recently came across a tweet stating that there were no people who “defend OO vs. FP” that actually used FP in real projects. This is not the first time I came across statements like this (like in a blog posts portraying functional programmers as being higher on the “evolutionary ladder” than object-oriented programmers). Another claim I hear again and again is that “only Functional Programming can solve the problems of the modern age (like multi-core computing)”. I disagree with both claims.

    Read more
  • Vault

    Article Simon Kölsch

    Eigentlich ist man sich einig, dass durch immer größere und komplexere Netze und Systemlandschaften das Thema “Sicherheit” nicht einfach durch die eine grosse Perimeter-Firewall erledigt ist. Trotzdem fehlt es häufig an Infrastruktur, die dabei unterstützt zum Beispiel mit Zugangsdaten automatisiert und sicher umzugehen. Vault unterstützt hier als “a tool for managing secrets” dieses Problem anzugehen.

    Read more
  • Microservices lieben Domain Driven Design, warum und wie?

    Article Michael Plöd

    Das Buch Domain Driven Design, welches Eric Evans vor gut 13 Jahren publizierte, galt schon seit jeher als herausragende Referenz für die fachlich getriebene Modellierung von IT-Systemen. Mit dem Einzug von Microservices erfährt Domain Driven Design eine Renaissance, denn die beiden Ideen lassen sich wunderbar miteinander kombinieren. Im Laufe des Artikels werden Sie kennenlernen, wie Sie mit Hilfe der Ideen von Domain Driven Design technisch wie fachlich tragfähigen Microservice Landschaften entwickeln können.

    Read more
  • Self-contained Systems: Microservices-Architekturen mit System

    Talk 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.

    Read more
  • Digitale Transformation, Clojure und Self-Contained Systems – innoQ bei der OOP 2017

    News

    „Details matter“, so lautet das Motto der OOP 2017. Vom 30. Januar bis 03. Februar 2017 treffen sich wieder Softwareentwickler, Software-Architekten und IT-Führungskräfte in München, um eine Vielzahl an Workshops und Vorträgen zu Themen wie “Modern Architecture”, “Successful IT-Organzations”, “Modern Programming” oder “Integrating Everything” teilzunehmen. Read more
  • Wo bist du?

    Article Simon Kölsch

    HashiCorp hat mit Consul eine inzwischen fest etablierte Service-Discovery-Lösung geschaffen. Ein Konsul ist ein entsandter Beamter, der in einem fremden Staat die Interessen der eigenen Bevölkerung wahrt und den Handel fördert. Betrachtet man eine Microservice-Landschaft als fremdes Land und die Einwohner als einzelne Services, die sich austauschen, kann man mit etwas Wohlwollen die Namensgebung nachvollziehen. Einen Überblick über Einsatzzweck, Features und Aufbau bietet dieser Artikel.

    Read more

    Software verbessern – aber richtig (mit aim42)

    Talk Gernot Starke .NET Developer Conference 2016 Slides available

    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.

    Read more
  • Progressive Web Components

    Blog Post Frederik Dohr

    This is a write-up of the “Progressive Web Components” presentation at GOTO Berlin.

    Read more
  • Microservices à la Netflix

    Article Carsten Pelka, Michael Plöd

    Netflix hat in den letzten Jahren sehr interessante Open Source Frameworks wie beispielsweise Eureka, Hystrix oder Zuul via GitHub publiziert. Parallel dazu hat das Spring Team mit Spring Boot und Spring Cloud zwei hoch interessante Module für Cloud basierte Microservice Architekturen veröffentlicht. Wie passen diese beiden Dinge nun zusammen?

    Read more

    Mutants

    Talk Jan Stępień Clojure eXchange 2016 Slides available

    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.

    Read more
  • Services: SOA, Microservices und Self-contained Systems

    Article Eberhard Wolff

    Die Aufteilung komplexer Software-Systeme in Services ist nicht neu: Service-orientierte Architekturen (SOA) nutzen diese Idee schon lange. In letzter Zeit sind Microservices als neuer Ansatz hinzugekommen. Microservice-Architekturen sind sehr flexibel und breit einsetzbar. Self-contained Systems verwenden Microservices, um große und komplexe Systeme in unabhängige Module aufzuteilen. Das unterstützt die Zusammenarbeit der Teams. Dieser Artikel gibt einen Überblick über SOA, Microservices und Self-contained Systems.

    Read more

    Dynamisch überwacht: Monitoring von Microservice-Architekturen

    Talk 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.

    Read more

    Event Sourcing - Einführung und Best Practices

    Talk 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.

    Read more
  • Self-contained Systems: A Different Approach to Microservices

    Article Eberhard Wolff

    Microservices are the current hype in the Software Architecture community. However, microservices can be used in many different scenarios to reach different goals. Self-contained Systems (SCSs) are one approach to achieve some of those goals while avoiding many common pitfalls.

    Read more

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

    Talk 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.

    Read more

    Microservices mit Java, Spring Boot & Spring Cloud

    Talk 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
    Read more
  • Microservice-Infrastruktur

    Article Michael Vitz

    Die Cloud und darauf aufbauend Microservices haben in den letzten Jahren die Softwareentwicklung stark beeinflusst. Vor allem im Bereich der Infrastruktur tut sich hier auch heute noch einiges. Dabei wird man den Eindruck nicht los, dass jede Woche ein neues Produkt veröffentlicht wird. In diesem Artikel versuche ich, Ihnen durch diesen Dschungel zu helfen.

    Read more
  • Software-Architektur für Innovation

    Article Eberhard Wolff

    Software ist mittlerweile in praktisch allen Wirtschaftsbereichen zentraler Teil der Wertschöpfung. Also sollte Software auch Innovationen ermöglichen. Die Frage ist, wie Software dazu beschaffen sein muss.

    Read more
  • Lean Prinzipien und das Management von Technical Debt

    Talk 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.

    Read more

    “Microservices: Redundancy = Maintainability!” A Talk by Eberhard Wolff

    Link Eberhard Wolff youtube

    In October, Eberhard Wolff gave a keynote at IT Arena 2016 in Lviv, Ukraine. His talk focussed on Microservices and how this concept is questioning some basic assumptions of software architecture. Should you really avoid redundancies? Is a clean architecture really the key to long-term maintainability? The keynote shows how Microservices enable productive software development with quite unorthodox approaches and how we have to rethink architecture even beyond Microservices.

    You can find a video of the talk on YouTube.

  • Command Line Tools in Swift: Words

    Blog Post Martin Kühl

    Let’s write a simple command line utility in Swift.

    Read more
  • Microservices: Architekturen und Technologien

    Talk 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
    Read more
  • Vault – Virtueller Schlüsselkasten

    Talk Simon Kölsch Continuous Lifecycle 2016 / Container Conf 2016 Slides available

    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.

    Read more

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

    Talk 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
    Read more

    Self-contained Systems: A Different Approach to Microservices

    Talk 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.

    Read more

    Clojure Grundlagen

    Talk 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.

    Read more
  • Wie deploye ich richtig? Ansätze im Vergleich

    Talk Eberhard Wolff Continuous Lifecycle 2016 / Container Conf 2016 Slides available

    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
    Read more

    5 Docker-Tipps aus der Praxis

    Talk 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.

    Read more
  • The perils of shared code

    Blog Post Daniel Westheide

    In this blog article, I want to examine why using a sharing code between microservices may sound attractive in the first place and why it can cause bigger problems than the ones you try to solve.

    Read more

    Improving Your Software

    Talk 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.

    A video of this talk is available.

    Read more

    Progressive Web Components

    Talk 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.

    Read more
  • Spring Boot für Microservices

    Article Eberhard Wolff

    Die Implementierung von Microservices stellt im Vergleich zu monolithischen Anwendungen Entwickler vor einige Herausforderungen. Spezialisierte Technologien wie Spring Boot unterstützen die Umsetzung von Microservices und machen so den Projekten das Leben leichter.

    Read more
  • ROCA: Why you shouldn’t build Web UIs the way you do

    Talk 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.

    Read more

    Microservices: Der Schnitt ist entscheidend!

    Talk Eberhard Wolff W-JAX 2016 Slides available

    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.

    Read more
  • Clojure Web-Application 101

    Talk Michael Vitz Devoxx 2016 Slides available

    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

    Read more

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

    Talk 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

    Read more

    Was Sie über Security in Microservices-Umgebungen wissen sollten

    Talk 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.

    Read more
  • Datenarchitekturen nicht nur für Microservices

    Talk Eberhard Wolff W-JAX 2016 Slides available

    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.

    Read more

    Microservices mit Spring Cloud und Spring Boot

    Talk 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.

    Read more
  • Microservices-Workshop: Architektur und Praxis

    Talk 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.

    Read more
  • Wie kommt man zu Self-Contained Systems?

    Article Phillip Ghadir

    Self-Contained Systems bezeichnet ein Konzept für Softwarebausteine, das klare Integrationsregeln auf der Makro-Ebene definiert: Systeme werden in eigenständige Teilsysteme zerlegt, die zu einem Gesamtsystem integriert werden. Häufig wird vorgeschlagen, Systeme entlang von Domänen in Self-Contained Systems zu zerlegen. In diesem Artikel wird ein alternativer Ansatz für das Schneiden einer Architektur in föderierte Self-Contained Systems vorgestellt.

    Read more
  • Requirements Engineering

    Article Martin Weck

    Im Alltag vieler Softwareprojekte wird Requirements Engineering oftmals nur eingeschränkt berücksichtigt, obwohl es aufgrund seiner nachgewiesenen Wichtigkeit eine Grundvoraussetzung für effiziente Softwareentwicklung ist. Ziel dieses Artikels ist es, die Kernaussagen des Requirements Engineering in Erinnerung zu rufen und ein Modell vorzustellen, das einen vereinfachten Einstieg in das Requirements Engineering im Projektalltag erlaubt.

    Read more
  • Self-contained Systems: Microservices-Archi­tekturen mit System

    Talk 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.

    Read more
  • Horden von Zombies

    Article Phillip Ghadir

    Kennen Sie das Computer-Spiel „Plants vs. Zombies“? Das Szenario ist einfach: Zombies stürmen auf unser Haus zu. Als Spieler haben wir eigentlich nur eine Chance, der Übermacht zu begegnen: Wir müssen die Verteidigungsmechanismen vorbereiten, die wir im Eifer des Gefechts brauchen werden. Paprikaschoten, Erbsen und Walnüsse werden uns helfen, die Angriffswut der Zombies zu stoppen. In dieser Ausgabe nutze ich die Kulisse des Spiels, um ein paar Eigenschaften von Reactive Extensions vorzustellen.

    Read more
  • Features in Java 9

    Article Michael Vitz

    Passend zum Schwerpunktthema “Java – die Neunte” dreht sich auch diese Kolumne um Neuigkeiten, die uns mit Java 9 zur Verfügung gestellt werden. Da sich den großen neuen Themen wie Jigsaw, JShell und HTTP/2 in diesem Heft eigene Artikel widmen, stelle ich Ihnen ein paar der vielen weiteren, jedoch deutlich kleineren Neuerungen vor. Freuen Sie sich also auf ein buntes Sammelsurium.

    Read more
  • Deployment und Monitoring von Microservices

    Article Alexander Heusingfeld

    Beim Deployment von Microservices verschwimmen die Grenzen zwischen Mikro- und Makroarchitektur. Während das Team die Mikroarchitektur für jeden Service individuell entscheiden kann, muss man sich bei Makroarchitektur-Themen mit anderen Teams zusammensetzen, um die beste Lösung für Themen zu finden, die mehrere Services betreffen. In diesem Artikel wollen wir uns ansehen, welche Entscheidungen ein Team für sich treffen kann und welche mit anderen Teams abgestimmt werden müssen. Zu diesem Zweck möchte ich beispielhaft den Lernprozess beschreiben, den ich in Teams erleben durfte, die “einfach mal” mit Microservices angefangen haben.

    Read more

    Nachhaltigkeit und Stabilität mit Microservices, Containern und DevOps

    Talk 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.

    Read more

    Sichere Webanwendungen mit Clojure

    Talk Joy Clark, Simon Kölsch Düsseldorf Clojure Meetup Oktober 2016 Slides available

    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.

    Read more
  • Microservices - eine Bestandsaufnahme

    Article Eberhard Wolff

    Kaum ein Thema ist im Moment so ein Hype wie Microservices. Welche Gründe gibt es dafür? Und wie kann man Microservices gewinnbringend einsetzen? Welche Herausforderungen gibt es? Dieser Artikel gibt einen Überblick über den Architektur-Trend und beantwortet die wichtigsten Fragen.

    Read more

    Sichere Webanwendungen mit Clojure

    Talk Joy Clark CommitterConf 2016 Slides available

    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.

    Read more
  • Software systematisch verbessern

    Article Gernot Starke

    Es ist ein bekanntes Phänomen: Obwohl zu Beginn beim Entwickeln des Projekts alles sauber und ordentlich zuging, degeneriert das System mit der Zeit – das Phänomen der „verfaulenden Software“ schlägt zu. Änderungen werden dann immer riskanter, schwieriger und langwieriger. In der Entwicklung und im Betrieb mehren sich die Probleme, die zu beheben immer mehr Zeit in Anspruch nimmt. Gleichzeitig steigen aber auch Änderungs- und Betriebskosten, während die Zufriedenheit von Entwicklern, (fachlichen) Auftraggebern, Testern, Administratoren und anderen Beteiligen ständig abnimmt. Vermutlich kennt jeder Leser diese Situation: Willkommen in der Legacy-Hölle.

    Read more
  • Ordnung durch minimale Regeln

    Article Stefan Tilkov, Phillip Ghadir, Oliver Wolf

    Wie viele andere Unternehmen dieser Branche auch ist innoQ in der Boomzeit der Jahrtausendwende entstanden. Mit einigem Frust aus vorangegangenen Tätigkeiten gründeten wir damals mit einigen Gleichgesinnten ein Unternehmen mit dem Anspruch, Dinge anders und natürlich besser zu machen, als wir sie vorher bei unseren Arbeitgebern erleiden mussten. Daraus hat sich mittlerweile ein System entwickelt, das nicht nur die Geschäftsleitung, sondern nahezu alle Mitarbeiter bei innoQ sehr schätzen – und das Erstaunen, dass uns beim Erklären des Modells häufig entgegenschlägt, war Motivation genug, die wesentlichen Aspekte in diesem Artikel näher zu beschreiben. Sicher passen nicht alle unserer Lehren zu jedem Unternehmen, aber vielleicht können sie Ihnen als Inspiration dienen. Für uns hat es bislang sehr gut funktioniert – nicht mehr, aber auch nicht weniger.

    Read more

    Microservices: One size does not fit all

    Talk Stefan Tilkov GOTO London 2016 Slides available

    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.

    Read more
  • Content Security Policy

    Blog Post Simon Kölsch

    Cross-Site-Scripting ist seit Jahren eines der Security Probleme im Web. Neben anderen sicherheitsrelevanten HTTP-Headern gibt es seit geraumer Zeit auch die Möglichkeit, dem Browser eine “Content Security Policy” mitzuteilen. Dieser Blogpost erklärt deren Zweck und Einsatz.

    Read more

    Daten-Architekturen nicht nur für Microservices

    Talk 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.

    Read more

    Cloud Native Architecture - gebaut für die Cloud

    Talk 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.

    Read more

    Quo Vadis

    Talk 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.

    Read more

    Connected Mobility

    Talk 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.

    Read more

    Free Floating

    Talk 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.

    Read more
  • Warum Architekten scheitern (Keynote)

    Talk Stefan Tilkov The Architecture Gathering 2016 Slides available

    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.

    Read more

    Managing Technical Debt

    Talk 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.

    Read more

    Microservices lieben Domain Driven Design: warum und wie?

    Talk Michael Plöd The Architecture Gathering 2016 Slides available

    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.

    Read more
  • Goto Berlin 2016 - es ist wieder soweit!

    News

    Im November ist so einiges los im Konferenzkalender. Vom 14.–16.11. findet die diesjährige GOTO Berlin statt. Die Konferenz, die sich an Entwickler, Softwarearchitekten und Projektmanager richtet, hat einen neuen Veranstaltungsort. Das bcc, direkt am Alexanderplatz, bietet ausreichend Platz für 4 parallele Tracks, in denen die wichtigsten Trends der Software Community diskutiert werden. Read more
  • Der Softwarelieferheld

    Article Thorsten Kamann, Carsten Pelka, Daniel Bornkessel

    Können Sie diese Frage beantworten: „Wie lange dauert es in Ihrem Unternehmen, bis eine Änderung deployt ist, die nur aus einer Zeile geändertem Code besteht?“. Und ebenfalls die anschließende Frage: „Passiert dies auf einer wiederholbaren und zuverlässigen Basis?“. Wenn Ihnen die Beantwortung der beiden Fragen Kopfschmerzen bereitet, lohnt ein Blick auf diese fünf Systeme für die Implementierung von Continuous-Delivery-Pipelines.

    Read more
  • Zwei Jahre nach dem Tod der Java Application Server

    Article Eberhard Wolff

    Vor zwei Jahren wurde der Tod der Java Application Server ausgerufen. Zeit also ein Fazit zu ziehen und die Thesen aus dem Artikel einem kritischen Review zu unterziehen.

    Read more
  • innoQ Themenzeit: Internet of Things – Die smarte Nutzung von intelligent vernetzten Geräten

    News

    Am 13. Oktober findet die erste innoQ Themenzeit in Zürich statt. Unter diesem Titel organisiert innoQ Schweiz regelmäßig Veranstaltungen, bei denen jeweils ein zeitaktuelles Thema betrachtet wird. Eine Kombination aus Impulsreferaten und einem informellen Gedankenaustausch ermöglicht es den Teilnehmern, neue Ideen und Ansätze für ihre individuelle Thematik mitzunehmen. Read more
  • Microservices (TM): Redundancy = Maintainability!

    Talk 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.

    Read more
  • Architekturen für Agilität: Microservices und Self-contained Systems

    Talk Eberhard Wolff JUG Saxony Day 2016 Slides available

    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.

    Read more

    heise Developer Continuous Architecture Blog: Softwareentwicklung ist nicht schnelllebig

    Link Eberhard Wolff

    Ohne Zweifel ist Softwareentwicklung anspruchsvoll. Viele Projekte laufen nicht reibungslos oder erreichen nicht die eigentlich erwarteten Ergebnisse. Als Grund wird oft die Schnelllebigkeit und das geringe Alter der Branche angeführt. Es gibt einfach zu wenig Erfahrungen. Wenn es Erfahrungen gibt, sind sie oft auch schon überholt. Aber stimmt das wirklich, fragt sich Eberhard Wolff in seinem neuesten Beitrag für heise Developer.

  • Microservices bei der W-JAX

    News

    Am 7. bis 11. November sind wir vor Ort auf der W-JAX 2016. Die Herbst-Ausgabe der Konferenz für „Java, Architektur- und Software-Innovationen“ findet traditionell in München statt. Neben Special Days zu Themen wie Agile Entwicklung, UX oder Security liegt auch diesmal ein Fokus auf dem Thema Microservices. An gleich zwei Tagen gibt es dazu neun Sessions. Read more
  • Innovation vs. Stabilität – Architekturtransformation im Großen

    Talk 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.

    Read more

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

    Talk 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.

    Read more

    Typeclasses from the ground up

    Talk 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.

    Read more
  • Cloud Native Architectures an einem Beispiel

    Talk 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.

    Read more
  • Consumer-Driven Contracts – Testen von Schnittstellen innerhalb einer Microservices-Architektur

    Article Michael Vitz

    In einer Microservices-Architektur entstehen viele Services – potenziell in den verschiedensten Programmiersprachen. Um eine reibungslose Kommunikation zwischen diesen zu gewährleisten, müssen die Schnittstellen passen und auch über längere Zeit stabil bleiben. Consumer-Driven Contracts stellt hierzu einen Ansatz dar, der zudem die Schnittstellen und deren Aufrufer noch zusätzlich testet.

    Read more

    Fortgeschrittene REST-Architektur

    Talk 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.

    Read more
  • What’s in a Name: Architecture

    Blog Post Gernot Starke

    The term architecture is used with slightly different meanings throughout the IT industry. This post clarifies what (software) architecture is all about - and which misunderstandings might linger on your way to common understanding.

    Read more
  • Web Components mit Polymer

    Article Ruben Wagner, Simon Jost

    Wie im ersten Teil dieses Artikels bereits angekündigt wurde, beschäftigt sich dieser zweite Teil mit der technischen Anwendung von Polymer 1.0. Wo der erste Teil die Spezifikation und den Einsatz der Technologie aus einer Vogel-Perspektive zeigt, werden wir hier die konkreten APIs vorstellen.

    Read more
  • Wie klein können Java-Microservices sein?

    Talk Eberhard Wolff Berlin Expert Days – BED-Con Slides available

    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.

    Read more
  • Daten-Architekturen nicht nur für Microservices

    Talk Eberhard Wolff Berlin Expert Days – BED-Con Slides available

    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.

    Read more

    Clojure Web-Applikationen für Beginner

    Talk Michael Vitz Berlin Expert Days – BED-Con Slides available

    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.

    Read more

    Blockchain – die langsamste (und spannendste) Datenbank der Welt

    Talk 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.

    Read more
  • Wait, what!? Our microservices have actual human users?

    Talk 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.

    Read more
  • Interview mit Stefan Tilkov: “Ich bin keinesfalls der Meinung, dass man immer Microservices einsetzen sollte”

    Article Stefan Tilkov

    Im Vorfeld des Software Architecture Summit ist auf jaxenter.de ein kurzes Interview mit Stefan Tilkov zur Frage „Microservices oder Software-Monolithen“. Dabei kommt auch das Problem in den Blick, wie Legacy-Anwendungen an moderne Architektur-Ansätze herangeführt werden können.

  • Buchbesprechung: arc42 in Aktion

    Link Gernot Starke

    Auf heise Developer wird das neue Buch „arc42 in Aktion: Praktische Tipps zur Architekturdokumentation“ von Gernot Starke und Peter Hruschka besprochen. In diesem Buch werden zahlreiche konkrete Tipps zur Nutzung dieses Dokumentations-Template geboten.

  • JAX TV: Wie sieht ein Microservices-Technologie-Stack aus?

    Link Eberhard Wolff

    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 sich die Last auf die Services? In diesem Video seines Vortrags bei der Jax 2016 zeigt Eberhard Wolff, welche Herausforderungen durch welche Technologien gelöst werden, und gibt so eine Orientierung.

  • Using Spring Boot as an example for DDD Strategic Design

    Talk Michael Plöd DDD Meetup Munich Slides available

    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

    Read more
  • Domain-driven Design im Experten-Check: Wie kann DDD in die Praxis umgesetzt werden?

    Link Eberhard Wolff, Michael Plöd

    Acht Experten für Domain-driven Design, u.a. Michael Plöd und Eberhard Wolff, geben Einblicke in ihre Praxiserfahrungen mit DDD. Im dritten Teil der jaxenter.de-Reihe wurden sie gebeten, einen Tipp zu geben, wie man DDD in realen Projekten erfolgreich einsetzen kann. Außerdem: Weshalb profitieren Microservice-Architekturen von DDD?

  • Domain-driven Design im Experten-Check: Was sind die typischen Probleme bei der Umsetzung von DDD?

    Link Eberhard Wolff, Michael Plöd

    Die Prinzipien für Domain-driven Design sind meist grundsätzlich bekannt – allein die Umsetzung in der Praxis ist alles andere als trivial. Der zweite Teil des jaxenter.de Experten-Checks geht deshalb der Frage nach, auf welche typischen Probleme man bei der Umsetzung von DDD stößt. Außerdem: Wann sollte man von DDD lieber die Finger lassen?

  • Domain-driven Design im Experten-Check: Warum ist DDD heute relevanter denn je?

    Link Eberhard Wolff, Michael Plöd

    Sieben Experten für Domain-driven Design, darunter Michael Plöd und Eberhard Wolff, geben für jaxenter.de in kurzen Statements Einblicke in ihre Praxiserfahrungen mit DDD. Im ersten Teil geht es darum, was DDD für die heutige Software-Architektur so relevant macht – und welche Projekte sich besonders für Domain-driven Design eignen.

  • Nachhaltige Webarchitekturen

    Article Silvia Schreier

    Heutzutage gewinnt man leicht den Eindruck, dass es für moderne Webanwendungen nur einen einzig wahren Architekturansatz gibt: REST und Single-Page-Anwendungen (SPAs). Doch ist alles, was REST genannt wird, wirklich REST? Sind REST und SPAs immer die beste Lösung? Um diese Fragen beantworten zu können, sollte man sich anschauen, was REST eigentlich ist, wofür es gedacht ist und ob es möglicherweise auch Alternativen zu SPAs gibt; insbesondere mit dem Blick auf Nachhaltigkeit, also Wartbarkeit und Erweiterbarkeit.

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

    Talk 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?

    Read more

    Interview mit Eberhard Wolff zu Self-contained Systems

    Link Eberhard Wolff

    Der Begriff der Self-contained Systems fällt im Zusammenhang mit Microservices immer häufiger. Doch was unterscheidet die beiden Architekturkonzepte? Im Jaxenter-Interview gibt Eberhard Wolff einen Einblick in das Konzept von Self-contained Systems und zeigt, wo ihre praktischen Einsatzfelder liegen.

  • Der Architektenaufzug: Öfters mal nach oben fahren

    Blog Post Gregor Hohpe

    In einem Gastbeitrag geht Gregor Hohpe der Frage nach, welche Rolle Softwarearchitekten in Zeiten der Digitalen Transformation spielen, und welche Relevanz diese Aufgabe für die Zukunft von Unternehmen hat.

    Read more

    Einstieg in die Datenanalyse mit Python

    Talk 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
    Read more
  • The Architecture Gathering 2016

    News

    Am 12. und 13. Oktober findet das zweite Architecture Gathering in München statt. Die Konferenz wird veranstaltet vom iSAQB (International Software Architecture Quality Board) und ist ein wichtiger Treffpunkt für Softwarearchitekten und Entwickler. An beiden Konferenztagen gibt es parallele Tracks, Keynotes und Diskussionsrunden rund um aktuelle Architekturthemen. Read more
  • Entwicklertag 2016: Microservices: Redundanz = Wartbarkeit!

    Link Eberhard Wolff

    Die Keynote des Karlsruher Entwicklertags 2016 von Eberhard Wolff beschäftigte sich mit Softwarearchitektur-Thema des Stunde. 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.

  • Wait, What? Microservices Have Actual Human Users?

    Talk 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.

    Read more

    Continuous Architecture Blog: Was ist ein Festpreisprojekt wert?

    Link Eberhard Wolff heise Developer

    Festpreise sind eine wichtige Projektart in der Softwareentwicklung. In diesem Blogpost für heise Developer diskutiert Eberhard Wolff die Frage, ob es aber wirklich sinnvoll ist, sich auf das Preisrisiko zu fokussieren.

  • JAX TV: Legacy-Systeme mit Microservices, Hystrix und RxJava modernisieren

    Link Arne Landwehr, Holger Kraus

    In ihrem Vortrag bei der WJAX 2015 zeigen Arne Landwehr und Holger Kraus, 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 ist 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.

  • Clojure Web Apps und mehr – BED-Con 2016

    News

    Die Berlin Expert Days 2016 (BED-Con) finden am 15. und 16. September statt. Das breit aufgestellte Programm umfasst Themenbereiche wie Java und andere Programmiersprachen, aktuelle Frameworks, DevOps oder Responsive Design. innoQ ist mit folgenden Vorträgen dabei: Read more
  • Sichere Webanwendungen mit Clojure

    Talk Joy Clark, Simon Kölsch FrOSCon 2016 Slides available

    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

    Read more
  • Java & relationale Datenbanken

    Talk 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

    Read more

    How to organize a CoderDojo

    Talk 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 :)

    Read more
  • Wait, What? Microservices Have Actual Human Users?

    Talk 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.

    Read more
  • ROCA vs. SPA

    Blog Post Lucas Dohmen, Marc Jansing

    Currently, a lot of companies are migrating from Desktop applications (mostly written in Java) to Web applications for their products as well as for their internal tooling. When they start with this process they often ask themselves: Which technologies should we use to build our Web application? Should we use Angular.js or React? Or should we go with recommendations like ROCA instead of a Single Page Application?

    Read more
  • JAX TV: arc42 Reality Check

    Link Gernot Starke

    Seit über zehn Jahren gibt es arc42, die pragmatische Vorlage/Arbeitshilfe für Architekturdokumentation. Im diesem Vortrag von der W-JAX 2015 stellt Gernot Starke diverse Optionen für den Praxiseinsatz von arc42 vor - von Werkzeugen bis hin zur Organisation von Dokumentation im Projekt.

    Anhand von Beispielen wird gezeigt, wie Architektur- und Codedokumentation zusammenspielen und wie eine pragmatische und nützliche (technische) Projektdokumentation aufgesetzt werden kann. Insbesondere sehen Sie textbasierte (AsciiDoc-)Dokumentation im Zusammenspiel mit Modellierungswerkzeugen wie Enterprise Architect und Visual Paradigm im Einsatz - und wie das zusammen mit Git auch entwicklerfreundlich funktioniert.

  • „Pattern Language for RESTful Conversations“ veröffentlicht

    News

    Patterns sind im Software Engineering eine verbreitete Möglichkeit, um Best Practices zu dokumentieren. So gibt es neben den bekannten Design Patterns der „Gang of Four“ auch Patterns in vielen anderen Bereichen, wie zum Beispiel für verteilte Systeme. Read more

    Einführung in die funktionale Programmierung mit Scala

    Talk 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.

    Read more
  • Heise Developer Continuous Architecture Blog, „DevOps ist keine Organisation”

    Link Eberhard Wolff

    In seinem neuesten Beitrag zum „Continuous Architecture“-Blog auf heise Developer macht sich Eberhard Wolff Gedanken über das Zusammenwachsen von Entwicklung und Betrieb zu DevOps. Oft wird dies als eine organisatorische Änderung verstanden – schließlich erzwingt eine Kollaboration eine andere Teamzusammenstellung. Oder doch nicht?

  • Software Engineering Radio Podcast, Episode 263: Camille Fournier on Real-World Distributed Systems

    Audio Stefan Tilkov, Camille Fournier Software Engineering Radio

    In this episode of the SE Radio podcast, Stefan Tilkov talks to Camille Fournier about the challenges developers face when building distributed systems. Topics include the definition of a distributed system, whether developers can avoid building them at all, and what changes occur once they choose to. They also discuss the role distributed consensus tools, such as Apache Zookeeper, play, and whether and when they are needed, and give some examples from Fournier’s experience building real-world systems at Goldman Sachs and Rent the Runway.

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

    Talk 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.

    Read more
  • AWS Lambda

    Article Michael Vitz

    Seit Kurzem gibt es von verschiedenen Cloud-Anbietern Services für die Entwicklung serverloser Event-getriebener Anwendungen in der Cloud: Google (Cloud Functions), IBM (OpenWhisk), Microsoft (Azure Functions) und allen voran AWS Lambda von Amazon. Dieser Artikel beschreibt am Beispiel von AWS Lambda das Programmiermodell und hilft bei der Beantwortung der Frage, ob sich der Einsatz für Ihre Anwendung lohnt.

    Read more
  • What’s in a Name: Bimodale IT

    Blog Post Gernot Starke

    Der Ausdruck “bimodale IT”, manchmal auch “IT der zwei Geschwindigkeiten”, steht seit einiger Zeit auf der Agenda vieler IT-Manager ziemlich weit oben. Daher möchte ich hier einerseits den Begriff erklären, andererseits einige (persönliche) Einschätzungen dazu abgeben.

    Read more
  • Web Components mit Polymer

    Article Martin Schmidt, Christopher Schmidt

    Die vom W3C standardisierten Web Components erleichtern die komponentenbasierte Entwicklung von Benutzungsoberflächen für Webanwendungen. 2013 hat Google die Open-Source-Bibliothek Polymer initiiert, die Entwicklern beim Einsatz von Web Components Unterstützung an die Hand gibt. Mit der Vorstellung von Version 1.0 dieses Frameworks stellt sich die Frage, ob Polymer nun produktionsreif ist und in realen Projekte eingesetzt werden kann. Im ersten Teil der Serie stellen wir die Version 1.x vor und prüfen die Möglichkeit der Nutzung für Geschäftsanwendungen.

    Read more
  • Self-contained Systems – A Different Approach to Microservices

    Talk 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.

    Read more

    JAX TV: Know your Enemies – Problembewusstsein als Grundlage von Änderungs- und Evolutionsprojekten

    Link Gernot Starke

    Die meiste Zeit verbringen Softwareentwickler mit Änderungen oder Verbesserungen bestehender Systeme. In seiner Session von der W-JAX 2015 zeigt Gernot Starke, wie man systematisch die aus langfristiger und ökonomischer Sicht schlimmsten Probleme in Softwarearchitekturen und -systemen finden kann.

  • Buildumgebung in Gefahr!

    Article Andreas Krüger

    Wer für eine Anwendung Verantwortung trägt, kennt den Alptraum, dass ein Angreifer Schadfunktionalität hinein schmuggeln könnte. Um diesen Alptraum zu verhindern, härten wir Anwendungen gegenüber feindseliger Interaktion, schützen Produktionsumgebungen und schotten sie ab. Aber Angreifer können auch versuchen, “über Bande zu spielen” und in eine Anwendung einzubrechen, indem sie ihre Buildumgebung manipulieren.

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

    Talk 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.

    Read more

    Microservices lieben Domain Driven Design: warum und wie?

    Talk Michael Plöd Java Forum Stuttgart 2016 Slides available

    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.

    Read more

    Software verbessern - aber richtig

    Talk 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.

    Read more
  • Java Forum Stuttgart 2016

    News

    Am Donnerstag dieser Woche findet das 19. Java Forum Stuttgart statt. Das Programm ist in verschiedene Themenschwerpunkte unterteilt, wie z.B. Core Java, Enterprise Java oder Architektur. Read more
  • Software Engineering Radio Podcast, Episode 261: David Heinemeier Hansson on the State of Rails, Monoliths, and More

    Audio Stefan Tilkov, David Heinemeier Hansen Software Engineering Radio

    David Heinemeier Hansson, creator of the Ruby on Rails framework and a partner at the software development company Basecamp, talks to Stefan Tilkov about the state of Ruby on Rails and its suitability for long-term development. He addresses some of the common criticisms of Rails, such as perceived usefulness for only simple problems, claimed lack of scalability, and increasing complexity. David also talks about the downsides of building JavaScript-centric, “sophisticated” web UIs, and why he prefers well-structured, “majestic” monoliths to microservices.

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

    Talk 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.

    Read more
  • Tutorial I : Advanced REST

    Talk 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.

    Read more

    Caching with Spring: Advanced Topics and Best Practices

    Link Michael Plöd

    This is a video of a talk Michael Plöd gave at the Spring I/O conference 2016 in Barcelona in May. This talk addresses advanced usage of Spring’s caching abstraction such as integrating a cache provider that is not integrated by the default Spring Package. In addition, Michael also gives an overview of the JCache Specification and it’s adoption in the Spring ecosystem. Finally, the presentation addresses various best practices for integrating various caching solutions into enterprise grade applications. This talk comes with many live demos.

  • Microservices mit Java, Spring Boot und Spring Cloud

    Talk 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
    Read more

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

    Talk 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.

    Read more

    Building Microservices in Clojure

    Talk 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.

    Read more
  • Dynamisch überwacht: Monitoring von Microservice-Architekturen

    Talk 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.

    Read more

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

    Talk 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.

    Read more

    openHAB Rules mit JSR223, Homekit Integration & Lean Coffee

    Talk 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.

    Read more
  • Error Handling in Go

    Blog Post Martin Kühl

    Two commonly perceived problems of the programming language Go are that

    • handling errors is verbose and repetitive
    • parametric polymorphism is not available

    This post is about the intersection of those problems and Rob Pike’s recommendation on the former.

    Read more

    Microservice-Architekturen zur Modernisierung von Bestandssystemen

    Talk 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.

    Read more

    Microservices: Redundanz = Wartbarkeit!

    Talk Eberhard Wolff Karlsruher Entwicklertag 2016 Slides available

    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.

    Read more
  • Web Scraping mit PhantomJS-CEF

    Blog Post Andreas Knuth

    In Anlehnung an den Blogbeitrag von Martin Weck zu Beginn des Jahres, stellt Gastautor Andreas Knuth in diesem Artikel mit PhantomJS-CEF ein weiteres Tool vor, mit dem sich effizientes Web Scraping betreiben lässt.

    Read more
  • Workshop: “Self-contained Systems: A Different Approach to Microservices”

    Talk 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.

    Read more
  • Microservices with Clojure

    Talk Joy Clark, Michael Vitz Microservices Meetup Rhein-Main Juni 2016 Slides available

    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.

    Read more
  • Solving the wrong problems

    Blog Post Daniel Westheide

    Instead of rushing to an engineering solution to a problem, we would often be better off by lying back and determining the root cause of our engineering problem, which is often an architectural one.

    Read more
  • Eindrücke des Texteditors Atom

    Blog Post Martin Kühl

    Ich vertrete ja die Meinung, dass es eine Gute Idee™ ist, immer mal wieder seine Werkzeuge zu wechseln. Dabei schließe ich auch Texteditoren ein. Das selbst ist ein Thema für ein anderes Mal, aber es ist auch der Grund, weshalb ich seit März eine Weile (etwa 7 Wochen) lang primär mit Atom gearbeitet habe.

    Read more

    Building reactive applications with the Grails 3 event system

    Talk Michael Plöd GR8Conf EU & Gradle Event Slides available

    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

    Read more

    Hands On Migration from Grails 2 to 3

    Talk Michael Plöd GR8Conf EU & Gradle Event Slides available

    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.

    Read more
  • The Web Ahead, Episode 116: Preserving the Architecture of the Web with Stefan Tilkov

    Audio Stefan Tilkov thewebahead.net

    Stefan Tilkov joins Jen Simmons of “Web Ahead” podcast to talk about the architectural style of the web, and how to understand to best create an application on the web.

  • Heise Developer Continuous Architecture Blog, „Hat Betrieb eine Zukunft?”

    Link Eberhard Wolff

    Gerade der Betrieb ist für die Zukunft der IT entscheidend – und sollte goldenen Zeiten entgegengehen. Aber durch die Relevanz steigt auch der Druck: Nur ein Betrieb, der den Anforderungen genügt, hat eine Zukunft. Dazu ist kürzlich ein neuer Blogpost von Eberhard Wolff für heise Developer erschienen.

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

    Talk 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.

    Read more

    Video-Interview mit Stefan Tilkov

    Link Stefan Tilkov

    Beim Software Architecture Summit im März 2016 wurde Stefan Tilkov unter anderem zum Thema „Fortgeschrittene REST-Architekturen“ interviewt. Im Gespräch geht es um die Umsetzung dieses Architekturstils in der Praxis, Fortbildung für Softwarearchitekten und mehr.

  • Java-Web-Frameworks von innen?

    Article Michael Vitz, Phillip Ghadir

    Web-Frameworks für Java gibt es nun bereits seit fast 20 Jahren. Diese nehmen dem Anwendungsentwickler eine Menge Arbeit ab und sorgen dafür, dass dieser sich nicht auf Infrastruktur konzentrieren muss, sondern die Anwendungslogik im Vordergrund steht. Doch was genau tut so ein Web-Framework eigentlich? Dieser Artikel zeigt, was heutige Web-Frameworks leisten und wo diese sich dann doch in Nuancen unterscheiden.

    Read more
  • Girls’Day 2016 – Spaß mit Scratch, Java und Webapps

    News

    Am 28. April trafen sich in unseren Büros in Monheim und Berlin wieder Schülerinnen im Alter von 10 bis 17 Jahren zum diesjährigen Girls’Day. Beide Angebote waren schnell ausgebucht. Read more

    Caching with Spring: Advanced Topics and Best Practices

    Talk Michael Plöd Spring I/O 2016 Slides available

    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.

    Read more
  • What’s in a Name: Transparency

    Blog Post Gernot Starke

    The term transparent denotes something translucent, where light can shine through. It is, for example, used in context of economics (transparent markets), meaning markets where much is known by many, and nothing is hidden.

    Sometimes geeks tend to inverse this meaning, saying transparency where they mean opaqueness. This post illustrates that your favorite XY-framework by no means makes XY transparent for developers.

    Read more

    Software Engineering Radio Podcast, Episode 257: Michael Nygard on Clojure in Practice

    Audio Stefan Tilkov, Michael Nygard Software Engineering Radio

    Michael Nygard of “Release It!” fame talks with Stefan Tilkov about his experience using the Clojure programming language. Topics include the tool chain and development process, the Clojure learning curve, and on-boarding new developers. Michael explains the similarities and differences compared to typical OO languages when implementing domain logic, and uses both game development and typical web development projects as examples. Finally, the two discuss how well Clojure can be used in the face of long-running projects, and some typical obstacles and strategies for introducing it to real-world scenarios.

  • Event Sourcing – Einführung und Best Practices

    Talk Michael Plöd SEACON 2016 Slides available

    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.

    Read more
  • Microservices love Domain Driven Design

    Talk Michael Plöd hmmh Digital Talk Mai 2016 Slides available

    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.

    Read more

    Video-Interview mit Phillip Ghadir zu Cloud-native Architectures

    Link Phillip Ghadir

    Die Entwickler Akademie interviewte Phillip Ghadir beim Software Architecture Summit im März 2016. Er spricht im Interview unter anderem über Möglichkeiten, die sich durch Infrastrukturdienste der Amazon Web Services bieten.

  • Scala Days zurück in Berlin

    News

    Nach dem letzten Gastspiel in 2014 finden die international besetzten Scala Days vom 13. bis 17. Juni 2016 erneut in Berlin statt. Die Konferenz bietet neben zweitägigen Trainingsworkshops zahlreiche Vorträge rund um Scala und verwandte Technologien. Read more
  • Eberhard Wolff on Microservices

    Link Eberhard Wolff

    At JAX 2016, Eberhard Wolff gave a short interview about advantages and pitfalls of microservices infrastructures, and on how to decide on the right infrastructure.

  • Objektorientierung mit Go

    Blog Post Kai Spichale

    Klassen und ein hierarchisches Typsystem sind der Programmiersprache Go völlig fremd. Trotzdem kann man mit Go auch objektorientiert programmieren. Welcher alternative Ansatz dahinter steckt, stellt dieser Blogpost vor.

    Read more

    Event Sourcing: Einführung und Best Practices

    Talk Michael Plöd juhg – Java User Group Hessen, April 2016 Slides available

    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.

    Read more

    Microservices sollten kein technischer Selbstzweck sein

    Link Michael Vitz

    Die Aufgabe, Altanwendungen zu modernisieren, kommt früher oder später auf jeden Entwickler zu. Wann es dann sinnvoll ist, bei der Modernisierung an eine Microservices-Architektur zu denken, darüber hat jaxenter.de mit unserem Kollegen Michael Vitz im Vorfeld seines Workshops beim nächsten Microservices Summit gesprochen.

  • Die Sprache Go

    Blog Post Kai Spichale

    Go ist eine kompilierbare Programmiersprache mit starker und statischer Typisierung. Mit den Adjektiven imperativ, objektorientiert und modular lässt sich Go gut beschreiben. Im ersten Blogpost zu diesem Thema werden wichtige Grundlagen vorgestellt.

    Read more
  • Transclusion in self-contained systems

    Blog Post Till Schulte-Coerne

    Frontend integration in the web is a huge topic. This post deals with the aspect of transclusion of other systems’ content in the DOM of a web page.

    Read more

    When Option is not good enough

    Link Daniel Westheide

    In an article published on his personal blog, Daniel Westheide explains why overloading the semantics of Scala’s Option type can lead to confusion and why introducing custom algebraic data types leads to code that is easier to read, less error-prone and closer to the language of the domain.

  • Microservices - Agilität durch Modularisierung

    Article Eberhard Wolff

    Microservice-Architekturen sind der neue Hype. Viele denken: Alles wird einfacher mit diesem Ansatz - Software ist langfristig wartbar, die Entwicklung wird schneller und die Software skaliert besser. Es ist aber an der Zeit für einen detaillierten kritischen Blick.

    Read more
  • Architektur-Retreat

    Talk 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.

    Read more
  • Software Engineering Radio Podcast, Episode 249: Vaughn Vernon on Reactive Programming with the Actor Model

    Audio Stefan Tilkov, Vaughn Vernon Software Engineering Radio

    In this episode, SE Radio Host Stefan Tilkov talks to Vaughn Vernon about the topic of his most recent book, Reactive Messaging Patterns with the Actor Model. Vaughn explains the concepts and history of reactive programming, the actor model and its consequences, actors and their relation to object orientation, a typical approach for designing a system made of actors, Scala/Akka and Erlang, and the role of enterprise integration patterns.

    Building Microservices with Event Sourcing and CQRS

    Video Michael Plöd

    In his talk at SpringOne2GX 2015 Michael Plöd focusses on distributed data management challenges that arise in a microservices architecture and how they can be solved using an event-driven architecture. Michael describes how event sourcing is a great way to implement an event-driven application. He talks about Command Query Responsibility Segregation (CQRS) and how it’s a key part of an architecture based on event sourcing.

  • Triple Booting a Mac

    Blog Post Michael Neuweiler

    Installing a triple-boot environment on a Macbook Pro is not as straight-forward as one might think or read on the internet. This guide explains how to install Windows 10 and Linux (Ubuntu) alongside with OSX and share data via a common partition. As an add-on, I explain how to access the raw partitions to boot the foreign OS not only natively but also in a virtual machine.

    Read more

    Wie sieht ein Microservices-Technologiestack aus?

    Talk 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.

    Read more

    Software Architektur für Innovation

    Talk Stefan Tilkov OBJEKTspektrum Information Days 2016 Slides available

    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.

    Read more

    Self-contained Systems: Microservices-Architekturen mit System

    Talk 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.

    Read more
  • Value-based Improvement (wert-/nutzenbasierte Modernisierung)

    Talk Martin Schmidt, Gernot Starke Business Technology Days 2016 Slides available

    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.

    Read more

    Fünf einfache Schritte zu Continuous Delivery

    Talk Eberhard Wolff JAX 2016 Slides available

    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.

    Read more

    Microservices zur Architektur­modernisierung

    Talk Alexander Heusingfeld, Michael Vitz JAX 2016 Slides available

    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.

    Read more

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

    Talk 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.

    Read more
  • Microservices-Workshop: Architektur und Praxis

    Talk 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.

    Read more

    Software Engineering Radio Podcast, Episode 251: Martin Klose on Code Retreats

    Audio Eberhard Wolff, Martin Klose Software Engineering Radio

    Back in March, Eberhard Wolff met with Martin Klose at our office in Berlin for the SE Podcast to talk about Coderetreats – events where developers practice techniques like test-driven development or refactoring in a safe environment to develop software craftsmanship. In this episode, Martin talks about how Coderetreats work and why they help you to become a better developer. He explains different types of Coderetreats and the Global Day of Codereat. Finally, he recalls how he got started with this practice and what it takes to not just participate but to actually do your own Coderetreat.

    Software Engineering Radio Podcast, Episode 253: Fred George on Developer Anarchy

    Audio Eberhard Wolff, Fred George Software Engineering Radio

    At GOTO Conference, Fred George talked with Eberhard Wolff about “Developer Anarchy” – a development approach Fred has been using very successfully in different organizations. Developer Anarchy is a manager-less process. All team members write code. There are no stories. Instead, developers figure out how to reach specific business goals. Besides writing code some team members have additional responsibilities: Ambassadors communicate with other teams, lead developers mentor the team and concierges solve issues like getting required hard- or software. The teams decides who has those roles. The approach is very successful in fuzzy environments such as web advertising. It is important to try out new ideas quickly in those environments – therefore Developer Anarchy is often combined with microservices to allow for quick and easy deployment.

  • Workshop: Einführung in JavaScript

    Talk 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.

    Read more
  • Microservices with Clojure

    Talk Joy Clark, Michael Vitz Microservices Meetup Berlin April 2016 Slides available

    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.

    Read more

    Microservices in Production

    Talk 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.

    Read more
  • Transklusion in Self-Contained Systems

    Blog Post Till Schulte-Coerne

    Frontend-Integration im Web ist ein riesiges Themengebiet. Dieser Post befasst sich mit dem Teilaspekt der Transklusion “fremder” Inhalte in den DOM einer anderen Seite.

    Read more

    Scala Enthusiasts bei innoQ in Zürich

    News

    Die Workshop-Serie „Functional Programming in Scala“ startete bereits im letzten Herbst. Bis jetzt stellte innoQ in Zürich einmal im Monat die Räumlichkeiten zur Verfügung. Nun treffen sich die Zurich Scala Enthusiasts alle zwei Wochen bei uns, um gemeinsam das gleichnamige Buch zu besprechen, zu programmieren und sich auszutauschen. Read more

    REST 2015 – Video des WJAX-Vortrags von Silvia Schreier

    Link Silvia Schreier

    REST-konforme Anwendungen sind State of the Art. Allerdings wird der zentrale „Hypermedia as the engine of application state“-Aspekt zurzeit noch als die neue Entdeckung schlechthin gehandelt, auch wenn er das eigentlich gar nicht ist. Oft stellt sich dann die Fragen: Wie baut man denn nun solche „Hypermedia-Services“? Was muss man dazu wissen?

    In dieser Session beantwortet Silvia Schreier diese Fragen und zeigt außerdem, was man im Jahr 2015 sonst noch rund ums Thema REST wissen sollte.

  • Software modernisieren – aber richtig

    Talk 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
    Read more

    Warum Architekten scheitern

    Talk Stefan Tilkov JUG Hamburg Special Day: Architektur Slides available

    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.

    Read more
  • Spaß beim Programmieren erleben – Der Girls’Day 2016

    News

    Auch in diesem Jahr beteiligen wir uns wieder am Girls’Day, dem bundesweiten „Zukunftstag für Mädchen“. Dieser findet am 28. April statt. Dann öffnen zahlreichen Hochschulen und Unternehmen ihre Türen für Mädchen ab der 5. Klasse, um ihnen Berufe in IT, Handwerk, Naturwissenschaften und Technik näher zu bringen. Read more
  • Microservices im Experten-Check, Teil 3: Wie groß sollte ein Microservice sein?

    Link Alexander Heusingfeld, Eberhard Wolff, Stefan Tilkov, Uwe Friedrichsen, Jörg Müller, Alexander Schwartz, Stefan Toth, Oliver Wehrens

    Acht Microservice-Experten, Autoren des Java Magazins und Sprecher auf den Microservice Days der JAX 2016, geben in kurzen Statements Einblicke in ihre Praxiserfahrungen mit Microservices. Teil 3 beschäftigt sich mit der Frage, wovon man sich bei der Aufteilung von Microservices leiten lassen sollte, und wie groß so ein Microservice eigentlich werden sollte.

  • Microservices im Experten-Check, Teil 2: Wann man Microservices nutzen sollte und wann eher nicht

    Link Alexander Heusingfeld, Eberhard Wolff, Stefan Tilkov, Uwe Friedrichsen, Jörg Müller, Alexander Schwartz, Stefan Toth, Oliver Wehrens

    Teil 2 der Diskussion vom acht Microservice-Experten auf jaxenter.de. Sie geben in kurzen Statements Einblicke in ihre Praxiserfahrungen mit Microservices. Sie klären auf, wann man mit Microservices lieber erst gar nicht anfängt und auf welche erste Erfolge sie zurückblicken.

  • Microservices im Experten-Check, Teil 1: Warum eigentlich Microservices?

    Link Alexander Heusingfeld, Eberhard Wolff, Stefan Tilkov, Uwe Friedrichsen, Jörg Müller, Alexander Schwartz, Stefan Toth, Oliver Wehrens

    Was ist eigentlich der Sinn von Microservices, einer Continuous-Delivery-Pipeline und dem ganzen Rest? Acht Microservice-Experten, Autoren des Java Magazins und Sprecher auf den Microservice Days der JAX 2016, bringen in dieser Serie auf den Punkt, warum das Konzept der verteilten Anwendungen so genial ist. Außerdem zeigen sie auf, wo die Knackpunkte liegen und ob das ganze Brimborium um den Kulturwandeln gerechtfertigt ist.

  • Episode 52: Microservices und Self-contained Systems

    Audio Christian Weyer, Stefan Tilkov Heise Developer 18.03.2016

    In dieser Episode des heise Developer Podcast sprechen Christian Weyer und Stefan Tilkov über Microservices jenseits des Hypes. Zu den Themen gehören neben der Rolle von Microservices für Architekturarbeit die unterschiedlichen Varianten, die sich aktuell etablieren, Self-contained Systems, Pro und Contra von Monolithen, polyglotter Programmierung, die Auswirkungen auf die Organisation und die Rolle von Benutzerschnittstellen.

  • Ein Domänenmodell für das SmartHome

    Article Phillip Ghadir, Thomas Eichstädt-Engelen

    Es gibt in der Domäne SmartHome viele unterschiedliche Sichtweisen, proprietäre Produktfamilien, einige offene Standards und verschiedene Konsortien, die versuchen, langfristig tragfähige, standardisierte Kommunikationsstandards zu definieren. Wir skizzieren für das Umfeld des sogenannten Ambient Assisted Living eine mögliche API für die relevanten Anwenderrollen.

    Read more

    Workshop: Microservices mit Java, Spring Cloud und Spring Boot

    Talk 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
    Read more

    Event Sourcing in der Praxis Workshop

    Talk Michael Plöd Software Architecture Summit 2016 Slides available

    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.

    Read more
  • Microservices: Architektur & Deployment mit Docker

    Talk 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
    Read more

    Microservices love Domain Driven Design: how and why?

    Talk Michael Plöd Microservices Meetup Munich March 2016 Slides available

    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.

    Read more
  • Gebaut für die Cloud – Cloud-Native Architectures

    Talk 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.

    Read more

    Fortgeschrittene REST-Architektur

    Talk 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.

    Read more

    Zukunftsweisende Architekturen: Microservices und Self-Contained Systems

    Talk 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.

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

    Talk 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.

    Read more

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

    Talk Thomas Eichstädt-Engelen, Sebastian Janzen Internet of Things Conference, Spring Slides available

    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.

    Read more

    Eberhard Wolff on Microservices

    Link Eberhard Wolff

    Our colleague Eberhard Wolff was interviewed about Microservices by Stephen Chin for his Nighthacking series at the last JavaLand Conference.

  • Best Practices für erfolgreiche Smart-Home-Projekte

    Article Thomas Eichstädt-Engelen, Sebastian Janzen

    HomeKit, Weave oder Eclipse SmartHome? Keine der zahlreichen Smart-Home-Allianzen hat sich bislang auf dem Markt durchgesetzt. Wie sieht also ein erfolgreiches Smart-Home-Projekt aus? Thomas Eichstädt-Engelen und Sebastian Janzen erzählen in diesem kurzen Interview mit entwickler.de, wie man mit der eigenen Lösung durchstarten kann.

    Security – Every Developer’s Responsibility

    Talk Christoph Iserlohn Heise Developer World 2016 Slides available

    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.

    Read more
  • Wider den Blindflug: Logging und Metriken in verteilten Anwendungen

    Link Alexander Heusingfeld, Tammo van Lessen

    Ein Softwaresystem kann nur dann erfolgreich betrieben werden, wenn es feinmaschig überwacht wird. In dieser JAX 2015-Session beschäftigten sich unsere Kollegen Alexander Heusingfeld und Tammo van Lessen mit der Evolution von verteilten Anwendungen und deren Monitoring. Sie zeigen, welche Metriken erfasst und welche Informationen geloggt werden sollten, wie man sie zentral aggregiert und auswertet, und welche freien Tools dabei helfen, so einen reibungslosen Betrieb zu sichern.

  • Treffen wir Sie auf der JAX 2016?

    News

    Vom 18. bis 22. April ist wieder JAX-Zeit in Mainz. Bei dieser Konferenz finden Sie uns nicht nur mit einigen Vorträgen im Programm, sondern auch von Dienstag bis Donnerstag an unserem Stand in der Ausstellung. Dort können Sie Ihre Fragen diskutieren und sich über unser Beratungsangebot und Schulungen informieren. Außerdem haben wir die neue Microservices-Broschüre von Eberhard Wolff dabei. Kommen Sie vorbei, wir freuen uns auf Sie! Read more

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

    Talk 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.

    Read more

    When Microservices Meet Real-World Projects: Lessons Learned

    Talk Alexander Heusingfeld JUG Dortmund Spring Event Slides available

    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.

    Read more
  • When Microservices Meet Real-World Projects: Lessons Learned

    Talk Alexander Heusingfeld, Tammo van Lessen JavaLand 2016 Slides available

    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.

    Read more

    Codegolfing

    Talk 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.

    Read more

    A journey into code

    Talk Ute Mayer Munich Rubyshift März Slides available

    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…

    Read more
  • Nanoservices und Microservices mit Java

    Talk Eberhard Wolff JavaLand 2016 Slides available

    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.

    Read more
  • Viele Wege führen zu Microservices

    Talk 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.

    Read more
  • Why RESTful communication between microservices can be perfectly fine

    Blog Post Daniel Westheide

    Recent debates about REST versus message passing in microservice communication have led to some confusion. What is meant with asynchronous communication in this context and why is REST a perfectly valid choice?

    Read more
  • Embrace the Browser, Architect’s Edition

    Talk Stefan Tilkov EnhanceConf 2016 Slides available

    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.

    Read more

    Codepancake Spotlight 51: Introducing senior consultant Silvia

    Link Silvia Schreier codepancake.com

    The website CodePancake is a platform for anyone interested in learning how to code and a magazine for and about women in tech. Last week, it featured an interview with our colleague Silvia Schreier about her career in IT.

  • Den Modernisierungsmotor anwerfen

    Talk 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.

    Read more

    Fahrt aufnehmen

    Talk 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.

    Read more

    Modernisierung in der Finanzbranche

    Talk 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.

    Read more
  • Microservices with Java, Spring Boot and Spring Cloud

    Talk 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.

    Read more
  • Clojure-Web-Applikationen für Beginner

    Talk Michael Vitz BOB Conference 2016 Slides available

    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!

    Read more
  • Horizontal automation – a waste of time.

    Blog Post Andreas Krüger

    Automation of server administration tasks is a waste of time.

    Read more
  • Microservices <3 Domain Driven Design, why and how?

    Talk Michael Plöd microXchg 2016 – The Microservices Conference Slides available

    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

    Read more

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

    Talk Alexander Heusingfeld, Tammo van Lessen microXchg 2016 – The Microservices Conference Slides available

    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

    Read more

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

    Talk Stefan Tilkov microXchg 2016 – The Microservices Conference Slides available

    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

    Read more
  • Legacy Systeme modernisieren mit Microservices, Hystrix und RxJava

    Talk Holger Kraus, Arne Landwehr OOP 2016 – Software meets Business Slides available

    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.

    Read more
  • Bring Your Technology

    Talk 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!

    Read more

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

    Talk Stefan Tilkov OOP 2016 – Software meets Business Slides available

    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

    Read more

    Event Sourcing: Tales from the hardside

    Talk Michael Plöd Topconf Linz 2016 Slides available

    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.

    Read more
  • Entwicklung einer skalierbaren Webanwendung mit Amazon Web Services

    Article Christine Koppelt, Martin Eigenbrodt, Oliver Tigges

    Gemeinsam mit Heraeus Kulzer hat innoQ eine Cloud-basierte Plattform für die Abwicklung von Beauftragungsprozessen im Dentalbereich entwickelt. In dieser Fallstudie stellen wir die Rahmenbedingungen und Anforderungen des Projektes vor und zeigen, wie die technische Lösung mittels Amazon Web Services aussieht.

    Read more

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

    Talk Stefan Tilkov Topconf Linz 2016 Slides available

    (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.

    Read more

    Microservices: Agilität mit Architekturen skalieren

    Talk Eberhard Wolff OOP 2016 – Software meets Business Slides available

    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

    Read more

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

    Talk Gernot Starke OOP 2016 – Software meets Business Slides available

    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.

    Read more

    Self-contained Systems: A Different Approach to Microservices

    Talk Eberhard Wolff Microservices Meetup Munich February 2016 Slides available

    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.

    Read more
  • Microservices: Architektur und Entwicklung

    Talk 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
    Read more

    Microservices and Event Sourcing with Spring Boot

    Talk 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.

    Read more

    Docker

    Podcast Lucas Dohmen, Simon Kölsch

    In dieser Folge unterhalten sich Simon Kölsch und Lucas Dohmen über Docker und erklären, wann man es braucht und wie Docker funktioniert. Außerdem sprechen sie über die Tools, die im Docker-Ökosystem zur Verfügung stehen. Read more
  • Web Scraping

    Blog Post Martin Weck

    This blog post provides examples how to implement web scraping using HtmlUnit, Selenium, ui4j or jaunt and compares them.

    Read more

    Caching for Business Applications: Best Practices and Gotchas

    Talk Michael Plöd Voxxed Days Berlin 2016 Slides available

    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.

    Read more

    Warum Programmierer an ihren Software-Systemen riechen müssen

    Link Gernot Starke

    Die Redaktion von jaxenter.de hat sich am Rand des Software Architecture Summit in Berlin mit Gernot Starke über die Evolutions on Softwaresystemen unterhalten. Wenn Ihr Softwaresystem langsam ist und Schwierigkeiten damit hat, sich “weiterzuentwickeln”, ist es gut möglich, dass Ihr Team nur eindimensional arbeitet. Lesen Sie mehr dazu im Interview.

  • git pull gotchas

    Blog Post Andreas Krüger

    The ever-so-convenient git pull isn’t really all that convenient all that often. This piece explains why not, and what to do instead.

    Read more

    Microservices with Java, Spring Boot and Spring Cloud

    Talk Eberhard Wolff Voxxed Days Berlin 2016 Slides available

    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.

    Read more

    ReactiveX/RxJava vs. Zombies

    Talk 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.

    Read more
  • Microservices in the Real World

    Link Alexander Heusingfeld, Tammo van Lessen

    InfoQ did an interview with our colleagues Alexander Heusingfeld and Tammo van Lessen about getting people from operations involved in architecture and dealing with “us vs. them” behavior when applying DevOps. They also talked about what the Self-Contained Systems approach is and how it can be used to modernize software systems, similarities and differences between the Self-Contained Systems approach and microservices, improving deployment pipelines and using measurements in deployment, and about their experiences with a “getting out of your comfort zone” program.

  • Eclipse Smarthome, UI und so

    Blog Post Jörg Plewe

    Wie funktionieren die UI-Systeme für Eclipse Smarthome? Und warum nicht? Ein Überblick und ein Vorschlag für ein neues Schweizer Taschenmesser für Daheim.

    Read more
  • Kriterien zur Bewertung von ROCA Komponenten

    Blog Post Till Schulte-Coerne

    Mal angenommen, jemand wollte ROCA machen. Wie müssten dann JavaScript-Komponenten aussehen, die zu diesem Zweck benutzbar wären?

    Read more
  • innoQ Themenabend: Modernisiert in die Zukunft – Die Digitale Transformation am Beispiel der Finanzbranche

    News

    Beim nächsten innoQ Themenabend am 03. März in Zürich geht es um das brandaktuelle Thema „Digitale Transformation“. Die dadurch veränderten Businessmodelle bringen die Unternehmens-IT mit etablierten Organisationsformen, Methoden und Werkzeugen häufig an ihre Grenzen. Read more
  • Software Architecture Summit 2016

    News

    Vom 16. bis 18. März findet der nächste Software Architecture Summit in München statt. Das große Trainingsevent bietet auch diesmal 12 halbtägige Workshops, drei Keynotes und Softwarearchitektur-Speed-Dating, bei dem sich Teilnehmer zu ihren individuellen Herausforderungen austauschen können. Read more
  • Workshop zu Herausforderungen moderner Webarchitekturen

    News

    Unsere Kollegen Daniel Lübke, Tammo van Lessen und Silvia Schreier organisieren den First International Workshop on Sustainable Web Architectures. Dieser wird im Rahmen der International Conference on Web Engineering (ICWE) im Juni 2016 in Lugano stattfinden. Read more
  • Voxxed Days Berlin 2016

    News

    Am 28. und 29. Januar finden zum ersten Mal die Voxxed Days Berlin statt. Diese Konferenz gehört zu einer Serie von Events, die jeweils von regionalen Communities organisiert werden. Die Voxxed Days bietet eine Mischung aus international und national bekannten Java-Experten. Wir freuen uns, die Konferenz als Sponsor zu unterstützen. Read more
  • microxchg 2016 – Die Microservices Konferenz in Berlin

    News

    Nach der erfolgreichen ersten Auflage der Berliner Microservices-Konferenz microxchg in 2015 findet diese am 4. und 5. Februar zum zweiten Mal statt. Die international besetzte Konferenz bietet eine Mischung aus Grundlagen-Vorträgen, Erfahrungsberichten zur praktischen Umsetzung dieses Architektur-Ansatzes sowie viel Raum zu Diskussionen und zum Netzwerken. Read more
  • Redis in der Praxis

    Podcast Lucas Dohmen, Stefan Tilkov

    In dieser Episode unterhalten sich Lucas Dohmen und Stefan Tilkov über Redis, eine NoSQL-Datenbank aus der Key-Value-Kategorie, die sich insbesondere durch ihre hohe Geschwindigkeit und ihre intelligenten Datenstrukturen auszeichnet. Dabei werden nicht nur die Features aufgezählt, sondern auch praktische Hinweise zum Einsatz gegeben. Read more
  • innoQ beim OOP-Jubiläum

    News

    Vom 01. bis 05. Februar findet wieder die OOP statt. Die Konferenz feiert in diesem Jahr ein besonderes Jubiläum. Zum 25. Mal treffen sich IT-Profis unter dem Motto “Software meets Business” in München. Selbstverständlich lassen wir uns dieses Event nicht entgehen. Read more
  • iOS: Writing to Core Data in your Today extension

    Blog Post Carmen Burmeister

    This blog post gives guidance on how to propagate changes in Core Data made by a Today extension to the host app and handle them properly.

    Read more

    Gedanken über das Wachstum

    Blog Post Oliver Wolf

    innoQ wächst – aber wie gehen wir mit dem Wachstum um? Was bedeutet das für unsere Kultur? Und warum schreibe ausgerechnet ich diesen Post?

    Read more