GraphQL ist eine Sprache zur Abfrage von Daten von einem Backend, mit der die Clients selber bestimmen, welche Daten sie je nach Use Case lesen oder schreiben wollen. GraphQL verspricht nicht nur Effizienz zur Laufzeit, sondern auch eine einfache Entwicklung, Pflege und Verwendung der entwickelten APIs.
In diesem Workshop stelle ich Grundlagen und Konzepte von GraphQL anhand einer Java-Anwendung vor, zeige, wie die Sprache aussieht und wie Du eine GraphQL-Schnittstelle definieren und in Java implementieren kannst, die dabei auf Daten aus unterschiedlichen Quellen (REST APIs, Datenbanken) zugreift. Wir werden kritisch prüfen, ob GraphQL hält, was es verspricht, und ob der Einsatz auch für deine Anwendung lohnenswert ist.
Asynchrone Nachrichten statt Methodenaufrufe, fachliche Actor-Hierarchien statt Schichtenarchitektur, Supervisor und "let it crash" statt langer Stack Traces, Zustand in Anwendungskomponenten statt zustandsloser Server, Sharding statt identischer Serverinstanzen - Akka erlaubt völlig andere Architekturen als z. B. Spring oder JavaEE. Es bringt andere Trade-offs mit als klassische Komponenten-Frameworks und eröffnet eine weitere Sicht auf Architektur jenseits etablierter Patterns.Dieser Workshop gibt eine praxisorientierte, quelltextzentrierte Einführung in Akka. Wir bauen ein lauffähiges System, an dem wir reaktive Patterns kennen lernen und neue architektonische Wege ausprobieren. Die Beispiele sind vollständig in Java, aber wenn jemand die Übungen lieber in Scala implementieren will, unterstütze ich ihn dabei gern.
Eine grundsätzliche Frage bei der Softwareentwicklung ist, wie man die Domäne richtig schneiden kann. In Zeiten von Microservices ist das besonders bewusst geworden, aber auch unabhängig davon muss man diese Frage beantworten. Ziel ist es, zu einer tragfähigen Architektur und einem guten Domänenmodell zu kommen. Dabei ist erstens wichtig, die Bounded Contexts und Subdomänen herauszuarbeiten; im zweiten Schritt werden die Kontexte mit Context Mapping miteinander verbunden. Der Workshop wird aus Vorträgen und Übungen bestehen. Dabei werden wir uns auch mehrere Beispiele aus der Praxis anschauen, und in den Übungen erarbeiten sich die Teilnehmer selbst an einer Beispieldomäne eine Aufteilung in Bounded Contexts.
Begrüßung und Einführung in den Agile Day
Wenn man eine Weile herumkommt, sieht man jede Menge Cargo Cult. Unternehmen führen Scrum ein, weil man das so macht. Oder OKR, weil Google das macht. Die ultimative Liste des Agile Health Check prüft, ob das Daily Standup durchgeführt wird und erklärt das Unternehmen für agil gesund. Dieser Vortrag zeigt die typischen Irrtümer und falsch verstandenen Kausalitäten bei der Einführung von Agilität. Eben den ganzen Cargo Cult. Ich erzähle davon, welche Dysfunktionalitäten gegenseitige Bewertung von Mitarbeitern haben kann und wieso Selbstorganisation nicht bedingt, dass alle Menschen im Unternehmen zu Unternehmern werden. Ich berichte, wie man mit falsch angewendeten Methoden aus dem Management 3.0 oder Augenhöhe mehr Schaden anrichtet als Nutzen stiftet.
Storystorming ist ein sofort anwendbares Workshopformat, mit dem man User Journeys, Arbeitsabläufe und ganze Geschäftsprozesse erkunden kann, indem man visuelle Geschichten erzählt und sich auf die Fachsprache fokussiert. Die Methode baut auf Ideen des Domain Storytelling, des Event Stormings, des User Story Mappings auf, aber auch auf der langjährigen Erfahrung des Vortragenden mit mächtigen Methoden der Modellierung, z. B. nach BPMN, die im „explorativen Miteinander“ Schwächen haben. Storystorming macht genau hier sein einzigartiges Angebot, nicht nur, aber gerade auch in Kombination mit solch mächtigen Werkzeugen der Prozessmodellierung. Durch die Fokussierung auf die grundlegende Struktur der Sprache „Subjekt - Verb - Objekt“ können Domainexperten ihre „Fachgeschichten“ auf natürlichste Art und Weise erzählen, ohne dazu mehr lernen zu müssen als fünf verschiedene Farben. Softwareentwickler wiederum können sofort behilflich sein, auch wenn sie zunächst gar nicht verstehen, worüber die Experten sprechen. Es mag wie ein Widerspruch klingen, aber Storystorming aktiviert das Zuhörvermögen durch Visualisierung der Sprache - und das ist sein besonderes Feature. Der natürlichste Weg, eine Sprache zu lernen, ist sicherlich, den Eltern zuzuhören, sie nachzuahmen und die Sprache dann selbst zu sprechen. Wenn wir scheinbar kompliziertes Fachchinesisch in erlebbare Geschichten fassen, erkennen wir die Zusammenhänge und können wesentlich schneller lernen.
Welche Anforderungen werden als IT-Chefs heute gestellt? Welchen Stellenwert hat eine werteorientierte Führung oder sind am Ende doch nur die Platzhirsche erfolgreich, die ihr Revier verteidigen und ihren Willen durchsetzen, koste es was es wolle? Wie schärfe ich als Vorgesetzte/r meine Persönlichkeit sowie meinen Führungsstil und was hat die Unternehmenskultur dabei für einen Einfluss? In dieser Session erfahren Sie so einiges über verschiedene Cheftypen und deren Erfolgsquoten. Hinterher wissen Sie die Antwort auf die Frage: Habe ich das Zeug zum Chef oder sollte ich meine Karriereplanung überdenken?
Agile Methoden dominieren die Softwareentwicklung und verändern die Unternehmenskultur. Kommunikation und Teamarbeit gelten als wichtigste Erfolgsfaktoren, Pair Programming, Coding Dojos und Daily Meetings unterstützen die Arbeit. Welche Auswirkungen haben diese Veränderungen auf Introvertierte? Was heißt überhaupt "introvertiert" und "extrovertiert"? Und was unterscheidet uns? Wo brauchen wir unterschiedliche Settings und wie bekommen wir das am besten hin? Gemeinsam schauen wir unsere Bedürfnisse an und entwerfen ein Arbeitsumfeld, in dem sich alle wiederfinden
Wenn man die Ideen von Lean, Agile, XP etc. ernst nimmt, müsste man alles daran setzen, seine Aufgaben zu priorisieren und die wichtigste Aufgabe möglichst zügig und gut an den Kunden auszuliefern. Leider sieht die Realität oft anders aus: Die individuelle Auslastung wird maximiert, die Entwickler arbeiten an vielen Aufgaben gleichzeitig. Die Features landen halbgar beim Kunden, die Entwickler müssen ständig Bugs fixen, und für fachliche Weiterentwicklung fehlt leider die Zeit. Als Lösung dieses Problems setzen wir auf Team-Building, arbeiten an der Kommunikation, machen Pair Programming, suchen Collective Code Ownership. In Zeiten von zunehmend komplexen Problemen ist das vielleicht nicht mehr genug - weil die Teams nicht nur das Ergebnis gemeinsam verstehen müssen, sondern auch den Weg der Problemlösung. Vor einigen Jahren kam die Idee auf, Softwareentwicklung wirklich durch das gesamte Team durchführen zu lassen - und zwar zusammen, Aufgabe für Aufgabe. "Mob Programming" war geboren. Die Blockaden während der Entwicklung verschwinden, weil sich alle nötigen technischen und fachlichen Ansprechpartner im selben Raum befinden. Klingt verrückt? Funktioniert aber! In diesem Talk werde ich die Grundlagen von Mob Programming vorstellen, die Gemeinsamkeiten und Unterschiede zum Pair Programming und wann sich das Arbeiten als "Mob" lohnt. Dazu gibt es Tipps aus der Praxis.
Zum Abschluss des Agile Days bietet sich Gelegenheit, mit den Sprechern zu diskutieren und die wichtigsten Fragestellungen zu vertiefen, die sich im Laufe des Tages ergeben haben. Besonders wichtig dabei: Die abschließende Diskussion bietet allen Teilnehmern Gelegenheit für Diskussionsbeiträge und Feedback.
Sebastian Meyen, Program Chair, begrüßt die Teilnehmer der W-JAX 2018, führt in das Programm ein und gibt wichtige Hinweise zum Ablauf der Konferenz.
In our industry, one of the only guarantees is change. Many of today’s tools, technologies, and business models will soon cease to exist, only to be replaced by newer ones. Architects face the challenge of planning for today’s systems knowing that the problems of tomorrow will be completely different from the problems of today. Evolutionary architecture is an architectural approach that prioritises change as a first principle but balances this need with delivering value early.
Die als experimentell eingestufte GraalVM ist eine universelle Virtuelle Maschine (VM) für Anwendungen, die in JavaScript, Python, Ruby, R oder mit den JVM-basierten Programmiersprachen Java, Scala, Kotlin, Clojure und LLVM-basierten Sprachen C/C++ geschrieben wurden. Im Jahr 2018 wurde die GraalVM 1.0 vorgestellt, mit Performanceverbesserungen und polyglotter Unterstützung für verschiedene Programmiersprachen. Sie ermöglicht damit die Interoperabilität in einer gemeinsamen Laufzeitumgebung. GraalVM kann eigenständig oder im Kontext von OpenJDK, Node.js, Oracle-Datenbanken oder MySQL betrieben werden. Mit der GraalVM-Ahead-of-Time-Fähigkeit kompilierte Native Images verfügen über eine optimierte Start-up-Zeit und verringern den Speicherverbrauch von JVM-basierten Applikationen. Die GraalVM kann wahlweise als Open Source Community Edition (CE) oder als Enterprise Edition (EE) mit OTN Lizenz verwendet werden. Im Vortrag wird die GraalVM-Architektur im Java-Ökosystem dargestellt und die Einsatzgebiete erläutert, beispielsweise der in Java entwickelte C2 JIT Compiler oder die Verwendung von GraalVM Native Images mit fn project & functions in der Cloud oder mit Quarkus.io.
Conway’s Law erlebt seit einigen Jahren ein Revival und wird gerne im Kontext von Softwarearchitektur referenziert. Mit diesem Vortrag soll Conway’s Law aus einer Perspektive betrachtet werden, die in der IT üblicherweise gar nicht vorkommt: Systemtheorie und Konstruktivismus. Was denken Softwarearchitekten über Softwarearchitekten, die Softwarearchitekten beim Systemdesign beobachten? Und warum beeinflusst uns das mehr als die Anzahl der Teile, aus denen unsere Organisation besteht? Was unterscheidet eigentlich ein IT-System von einem sozialen System? Eventuell nehmen Teil: Paul Watzlawick, Heinz von Foerster und Niklas Luhmann.
Planning to build microservices? The best practice of building a first-class microservice is to follow a 12-factor app. But how to fulfill the 12-factor app rules, e.g. how to achieve externalise the configuration, fault tolerance, etc? Come to this live coding session to build a 12-factor microservice using MicroProfile programming mode on stage. After this session, you should be able to build your own 12-factor microservices.
Du bist verantwortlich für das System: es fällt aus, die Benutzer merken es, informieren dich, und noch hast du keine Ahnung, was los ist, aber die Zeit läuft. Herzlich Willkommen in der DevOps-Hölle! In genau dieser Hölle fanden wir uns vor zwei Jahren mehr als einmal wieder. Da es so furchtbar ist, wie es sich anhört, machten wir uns auf die Reise, um dem Ganzen zu entkommen.
Um ehrlich zu sein, unser System fällt immer noch aus, aber wir haben viel dazugelernt. So sind wir heute in der Lage, rechtzeitig einzugreifen, sodass die Benutzer keine Auswirkungen zu spüren bekommen oder wir zumindest die Ausfallzeiten so kurz wie möglich halten.
Ich lade dich ein, uns auf der Reise zu begleiten und zu sehen, wie wir all die Dämonen besiegt haben, die wir unterwegs getroffen haben.
Softwareentwicklung ist Modellbildung. Wir bauen einen Teil der Wirklichkeit als Programm nach und verbessern sie so. Ein traditioneller Ansatz ist, die Domäne als Ganzes möglichst detailgenau nachzubilden. Aber ist das eigentlich der Zweck von Modellen? Wenn wir genau hinschauen, bemerken wir, dass ein Modell eigentlich genau das Gegenteil ist – nämlich eine Abstraktion der Wirklichkeit, in die nur das Wesentliche übertragen und das Unwesentliche weggelassen wird. Was wesentlich und was unwesentlich ist, ergibt sich aus dem Kontext. Ein einfaches Modell ist leichter zu verstehen als ein kompliziertes. Deshalb ist es eine gute Idee, von einer komplizierten Wirklichkeit mehrere einfache (und einfach verständliche) Modelle zu bilden. Genau diesen Effekt machen sich Microservices und DDD mit dem Strategischen Design zu nutze. Statt des einen großen unternehmensweiten Modells werden mehrere kleine, gut verständliche Modelle gebildet. In diesem Talk betrachten wir, welche Mittel uns zur Verfügung stehen, um gute Modelle zu bauen und die Domäne so aufzuteilen, dass wir auch mit mehreren sinnvoll und unabhängig arbeiten können.
Diese Session zeigt mit einem Minimum an Folien und viel Quelltext, was es Neues in Java gibt (einschließlich Version 13), was man damit praktisch anfangen kann und worauf man achten sollte. Hier werden nicht nur Featurelisten und Syntaxvarianten präsentiert, sondern die Neuerungen werden in einen alltagsrelevanten Kontext gestellt.
„Serverless“ ist in den letzten Jahren zu einem verbreiteten Architekturstil für moderne Cloudanwendungen geworden, da er Vorteile für Entwicklungsteams und Stakeholder in verschiedenen Aspekten bringen kann: Die plattformbasierte Entwicklung mit Serverless-Diensten kann Agilität und Time to Market verbessern. Die technologischen Gegebenheiten ermöglichen neue Architekturmuster und Entwicklungsvorgehen und machen viele Aspekte der Implementierung von Verfügbarkeit, Skalierbarkeit und Betrieb obsolet. Außerdem bieten die Kostenmodelle von Serverless-Produkten die Möglichkeit bedarfsgerechter Betriebs- und Entwicklungskosten bei hoher Skalierbarkeit.
Diese drei Säulen der Serverless-Architektur sollen im Rahmen des Vortrags vorgestellt werden, und es soll gezeigt werden, wie Anwendungen mit Serverless-Technologien umgesetzt werden können.
Das JavaScript Framework React hat im Jahr 2019 einige spannende Neuerungen bekommen: Das Hooks API erlaubt es, funktionale Komponenten mit nahezu allen Features zu bauen, die zuvor Klassenkomponenten vorbehalten waren. Dabei soll der Code aber einfacher und zudem besser wiederverwendbar sein, als bei Klassenkomponenten. In Verbindung mit dem Context API sprechen einige schon vom „Ende von Redux“. Das neue Suspense API soll das Arbeiten mit asynchronem Code vereinfachen und bietet dafür ein völlig neues Paradigma an, z. B. beim Laden von Daten oder Code Splitting. Und der neue Rendermodus Concurrent Mode soll durch Priorisierung des Renderings für eine noch flüssigere UI auch bei hoher Last sorgen. Das alles bedeutet, dass React-Anwendungen jetzt ganz anders gebaut werden können, als noch zu Anfang des Jahres. In diesem Talk zeige ich Ihnen die neuen APIs, welche Auswirkungen sie auf die Architektur von (bestehenden) React-Anwendungen haben und für welche Anwendungsfälle sie jeweils besonders geeignet sind.
Serverless Microservices: in dieser Session zeigt Christian Weyer neben den Grundlagen vor allem typische Serverless-Anwendungsszenarien für Azure Functions, Azure Service Bus und Co. Fokus soll dabei auf Event-getriebenen Microservices-Architekturen liegen. Lassen Sie uns doch mal über den Serverless-Tellerrand blicken. Denn nicht immer muss oder soll es AWS (Amazon Web Services) oder GCP (Google Cloud Platform) sein. Microsofts Azure bietet mittlerweile eine holistische Plattform für so gut wie jede Cloudanforderung an. Schaun mer mal.
.
In dieser slideless Session sehen Sie anhand einer Livedemo, wie mit Hilfe von Open-Source-Werkzeugen eine CI/CD Pipeline um automatisierte Securitychecks angereichert wird. Schwerpunkt bilden hierbei tiefgreifende Securitychecks auf dem Application Layer, wo bei individuellen Entwicklungsprojekten das größte Risiko liegt. Ebenso werden die Ergebnisse automatisch ausgewertet und in agilen Projekten Builds mit kritischen Findings rechtzeitig vor einem Go-live erkannt. Da es in dieser slideless Session keine Slides gibt, gäbe es auch nichts zum Mitnehmen, aber das wäre schade: Die Livedemo wird am Rechner als Screencast (Screen- und Speaker-Audio) aufgenommen und als digitale Dokumentation nach dem Talk als Take-away zur Verfügung gestellt.
Enterprise Java scheint mit seinem Memory- und Runtime-Overhead in Zeiten von Cloud-native und Serverless nicht wirklich gut für eine Zukunft gerüstet. Erschwerend kommt hinzu, dass viele Enterprise Frameworks mit Annotation Scanning, Aufbau von Proxies und Caches das Start- und Speicherverhalten weiter negativ beeinflussen. Bedeutet dies das Aus für Java in der Wunderwelt der Cloud? Mitnichten! Projekte wie GraalVM, Micronaut und Quarkus versuchen, Java in der Cloud zur Numero Uno werden zu lassen. Und das auf beeindruckende Art und Weise. Die Session zeigt anhand praktischer Beispiele, was heute bereits möglich ist
MQ-, ETL- und ESB-Middleware werden häufig als Integrationsbasis zwischen Legacy-Anwendungen, modernen Microservices und Cloudservices eingesetzt. Dies führt zu einigen Herausforderungen und Komplexitäten wie Punkt-zu-Punkt-Integration oder nicht skalierbare Architekturen. In diesem Vortrag wird diskutiert, wie eine vollständig eventgetriebene Streaming-Plattform unter Nutzung der Open-Source-Messaging-, Integrations- und Streamingkomponenten von Apache Kafka aufgebaut werden kann, um verteilte Verarbeitung, Fehlertoleranz, Rolling Upgrades und die Mehrfachverarbeitung von Events zu nutzen.
Erfahren Sie mehr über die Unterschiede zwischen einer eventgetriebenen Streamingplattform wie Apache Kafka und Middleware wie MQ, ETL und ESBs - einschließlich Best Practices und Anti-Patterns, aber auch, wie sich diese Konzepte und Tools in einer Unternehmensarchitektur ergänzen.
Digitale Assistenten sind aus so manchem Haushalt nicht mehr wegzudenken. Gerade Amazon ist hier, u. a. durch eine entsprechend aggressive Vermarktungspolitik, führend. Mit der Bereitstellung selbst geschriebener Skills für digitale Assistenten hat sich dabei ein neues, interessantes Anwendungsfeld für die cloudnative Entwicklung ergeben. Nach einem kurzen theoretischen Abriss zu diesem Thema zeigt der Vortrag anhand eines live entwickelten Beispiels, wie ein einfacher Alexa Skill sowohl per Web-Console als auch lokal per Development Kits implementiert werden kann. Das Zusammenspiel mit AWS Lambda ermöglicht dabei einen ersten, leicht spielerischen Kontakt und eine einfache Einführung in die Welt der Serverless-Programmierung innerhalb der AWS-Cloud.
Die Entwicklung einer Cloud-native-Anwendung ist nur eine Seite der Medaille, die andere Seite ist die Cloudumgebung, in der die Anwendung betrieben werden soll. Als Architekt muss man Entscheidungen treffen, die auch von der Laufzeitumgebung abhängig sind. Einige Aspekte, wie zum Beispiel Konfiguration, Resilienz, Health-Checks, Metriken, Request Tracing und Service Discovery besitzen eine starke Kopplung mit der Cloudumgebung. Istio, das als offene Plattform beispielsweise auf Kubernetes betrieben werden kann, bietet diese Funktionalitäten. Auf der anderen Seite besitzt MicroProfile auch eine Menge von Spezifikationen, die bei der Implementierung der Cloud-native-Anwendung hilfreich sein können. Die Session startet mit einer kurzen Einführung in Istio und MicroProfile. Im Anschluss wird gezeigt, wie diese beiden Welten in einer Cloud-native-Anwendung am besten miteinander kombiniert werden können.
Cloud Native is the modern architecture for the next twenty years of application development. Open source technologies combined with cloud have defined a new platform that allows developers to rapidly build and operate high scale applications. In this talk we will discuss the key role Kubernetes plays in this platform and the work underway to align 12-factor applications and serverless functions with Kubernetes through the Knative project. We will also learn about key concepts such as service meshes with Istio and how developers need to think differently about continuous delivery, the development process and application architectures.
Mit der JBoss EAP 7.2 hat Red Hat einige weitere Neuerungen und Optimierungen des JBoss Application Servers veröffentlicht. Neben einem Blick auf die neuen Möglichkeiten wird das Elytron Security Subsystem im Detail vorgestellt und in einer Hands-on-Umgebung konfiguriert und eingesetzt.
Event-driven architectures are on the rise. They promise both better decoupling of components by using an event bus and improved scalability in terms of throughput. Decoupled modules help to scale your software development efforts itself. Event streaming promises to handle ever-growing amounts of "data in motion" in real-time, event sourcing allows us to time travel, and domain events have turned out to be powerful building blocks that lead to a better understanding of underlying business requirements. But there are also pitfalls that you’d better be aware of. For example event-notifications used inappropriately can lead to tighter coupling or cyclic dependencies between components. It is also easy to lose sight of flows across service boundaries, making it hard to understand how core business logic is actually implemented. This can get even worse if you lack tooling to get insights into your event flows. Last but not least, the event-driven approach is not well-understood by most developers or business analysts, making it hard for companies to adopt. In this talk, I will quickly go over the concepts, the advantages, and the pitfalls of event-driven utopia. Whenever possible, I will share real-life stories or point to source code examples.
Es soll der Frage auf den Grund gegangen werden, was ein Microbenchmark ist und wann sein Einsatz sinnvoll ist. Hierbei werden die Optimierungen der JVM, die versteckt im Hintergrund ablaufen, beleuchtet, und es wird ein kleiner Ausflug in das Thema der Garbage Collectors vorgenommen. Der letzte Teil zeigt dann, wie man einen guten Microbenchmark mit JMH schreibt und ihn sauber und verständlich inklusive Set-up aufsetzen kann.
Sprachassistenten erfreuen sich im privaten Umfeld einer immer größeren Beliebtheit, sorgten aber gerade in jüngster Vergangenheit immer wieder für Schlagzeilen wegen zweifelhafter Praktiken im Umgang mit nutzerbezogenen Daten.
Voice und Conversational Interfaces sind aber auch in Unternehmensanwendungen und Speziallösungen der unterschiedlichsten Art auf dem Vormarsch. Gerade hier sind die Anforderungen an Datenschutz und die Möglichkeiten, individuelle, maßgeschneiderte Lösungen zu erstellen, besonders wichtig.
In dieser Session geben wir einen Überblick über die Funktionsweise und Architektur von Voice und Conversational Interfaces und gehen dabei auf die aktuellen Vorteile und Herausforderungen ein, wenn es darum geht, individuelle Lösungen zu konzipieren und umzusetzen.
Am Beispiel der erst in diesem Jahr veröffentlichten Microsoft Cognitive Container Services zeigen wir, wie individuelle Sprachlösungen aufgebaut und bei Bedarf auch On-Premises betrieben werden können.
Universal Music setzt Camunda BPM ein, um damit eine weltweit verwendete Distributionsplattform für digitalen Content zu steuern. Wir haben Camunda seit Jahren in unseren Systemen integriert, um Businesslogik auszuführen, Metadaten zu generieren, und um das Encoding sowie die Bereitstellung von Content zu koordinieren.
Als wir mit Camunda 2012 starteten, liefen unsere Systeme noch im eigene Data Center. Die Migration in die Cloud und die Umstellung auf DevOps haben dazu beigetragen, dass wir nun schneller und einfacher neue Lösungen für interne und externe Kunden bereitstellen können.
Businesslogik haben wir früher hauptsächlich in der Workflow Engine selbst implementiert bzw. in einige wenige Applikationen ausgelagert – in Zeiten von Microservices & Co. gehen wir nun dazu über, kleinere Deployment Units zu schaffen und verwenden Serverless Computing wann immer es Sinn macht.
Wenn wir über Preise sprechen, sprechen wir oft nur über Lambda-Kosten. In unseren Anwendungen verwenden wir jedoch selten nur Lambda. Normalerweise haben wir andere Bausteine wie API Gateway, Datenquellen wie SNS, SQS oder Kinesis. Außerdem speichern wir unsere Daten entweder in S3 oder in Serverless-Datenbanken wie DynamoDB oder kürzlich in Aurora Serverless. Alle diese AWS Services haben ihre eigenen Preismodelle, auf die wir achten müssen. In diesem Vortrag werden wir ein vollständiges Bild über die Total Cost of Ownership in Serverless-Anwendungen zeichnen und eine Entscheidungsliste für die Fragestellung präsentieren, ob und wann es sich lohnt, im Projekt auf das Serverless-Paradigma zu setzen. Dabei betrachten wir sowohl die Kosten- wie auch andere Aspekte, z. B. das Verständnis von Applikationslebenszyklus, Architektur, Plattformlimitierungen und organisatorischem Wissen.
Bei “API First” geht es alleine um das Interface, die Schnittstelle, und jedes System, jede Datenbank kommt quasi in eine Kiste von Legosteinen, von der sich Entwickler jeweils die besten heraussuchen um innovative Apps zu bauen. Dabei ist es zweitranging, ob es sich dabei um ein System auf einem Mainframe oder einen Raspberry Pi handelt, ob es im eigenen Rechenzentrum oder in der Cloud läuft, oder als SaaS angeboten wird. Prototypen sind also sehr schnell erstellt – aber wie hält man die verschiedenen Stränge zusammen, sobald man eine kritische Masse erreicht hat? Wie erreicht man die notwendige Verfügbarkeit, Skalierung und eine konsistente User Experience? In dieser Präsentation schauen wir uns unter anderem Microservices- und Service-Mesh-Konzepte an, sprechen über Hybrid Application Integration und stellen eine cloud-basierte Lösung vor die weit über klassisches API-Management hinausgeht und alle relevanten Integrationskonzepte in einer Plattform zusammenbringt.
Bei der Vorstellung der explosionsartigen Ausbreitung von immer mehr Microservices im Unternehmen wird vielen Architekten angst und bange: Wie sollen die Komplexität und ziemlich bald auch das Chaos beherrscht werden?
Wir besprechen, wie sich Workflowlogik, also fachliche Abläufe innerhalb einer Abteilung oder abteilungsübergreifend, in der Vergangenheit in Backend-Systemen und in Middleware versteckt hat. Das führte zu – oft nicht richtig verstandenen – Problemen: "Das ESB Team ist schuld." Wir diskutieren, wie genau dieses unbewusste "Einbacken" von Workflowwissen in Microservices die Komplexität gefährlich erhöht – und wie es verhindert werden kann.
Heute wird dazu oft wieder Workflowautomatisierung – als Orchestrierung – aus der Schmuddelecke gezogen, doch die autonome Intelligenz von Minibausteinen verträgt sich nicht gut mit langlaufenden visuellen Prozessen und Modellen, die selbst viel Logik enthalten.
Als Ausweg betrachten wir eine Art von Choreographie, die Workflowlogik radikal aufs nötigste reduziert: das Muster eines Command Bus. Er ist klein. Er erhält ein Ereignis wie "Antrag erstellt" und entscheidet für genau dieses Ereignis, was als nächstes geschehen soll. Das wars. Kein State, keine komplexen Workflowgraphen. "IF THIS THAN THAT" fürs Enterprise.
Der Command Bus lässt gut durch Miniprozesse in Camunda, micro-deployt in Docker-Containern realisieren.
Spendiert man jedem Microservice seine eigene Datenbank (Database-per-Service-Pattern), läuft man irgendwann unweigerlich in das Problem verteilter Businesstransaktionen. Die gute alte DB-Transaktion fällt per Definition aus dem Rennen. Lässt sich also aus fachlicher Sicht ganz auf Transaktionen verzichten? In vielen Fällen ist das durchaus möglich. Als Alternative zur Sicherstellung Service-übergreifender Datenkonsistenz bietet sich u. a. eine Realisierung auf Basis mehrerer lokaler, technischer Transaktionen an, auch Saga-Pattern genannt. Die Session führt in die Theorie des Saga-Patterns ein und zeigt dessen praktische Verwendung an verschiedenen Beispielen.
GitHub Actions ermöglicht nicht nur die Automatisierung von GitHub Workflows, sondern bietet nun auch eine moderne Plattform für CI/CD. In diesem Talk stellen wir diese Neuerungen von GitHub Actions vor und zeigen, wie sowohl Open-Source-Projekte, als auch Unternehmen und Entwickler hiervon profitieren. Anhand praktischer Beispiele wird verdeutlicht, wie eine zeitgemäße DevOps Pipeline in Actions aufgebaut werden kann. Entwickler können zudem Actions um eigene Actions erweitern und auf ein großes Ökosystem zahlreicher Actions zugreifen. Dieser Talk erleichtert Interessierten den Einstieg in Actions und zeigt wie einfach Actions an verschiedenste DevOps-Szenarien angepasst werden kann.
Reactive Programming ist in der Enterprise-Java-Welt angekommen. Frameworks wie Akka und RxJava waren Vorreiter, mit WebFlux und Project Reactor in Spring 5 ist ein weiteres prominentes Framework dazugekommen. Aber was steckt eigentlich hinter Reactive Programming? Wann ergibt der Einsatz Sinn und wie kann ich es in bestehende Anwendungen integrieren? Die Session gibt eine Einführung in das Programmiermodell, zeigt die Umsetzung in den verschiedenen Projekten, diskutiert, wann Reactive Programming Sinn ergibt, und liefert einen Ausblick, welche Themen im Bereich Reactive Programming in Zukunft kommen.
Nach Industrie 4.0 und digitaler Disruption ist Agilität das Buzzword der Stunde. Aber Agilität ist nicht agil! Dahinter steckt mehr als eine hippe Herangehensweise an Projektmanagement – es erfordert vor allem eine andere Perspektive auf Herausforderungen, es ist ein Mindset, dass gelebt werden muss.
Während unserer Mitarbeit an einer B2C-Enterprise-Portalanwendung, bestehend aus über fünfzehn lose gekoppelten Produktteams, haben wir uns vom Agile-Wasserfall-Hybriden in einen vollends agilen Berater für Softwareentwicklung transformiert.
Unser Vortrag zielt besonders auf die enge Zusammenarbeit von UI/UX-Designern mit Softwaredevelopern sowie den Product und Function Ownern innerhalb eines Produktteams ab. Wir zeigen mögliche Herangehensweisen, Problemlösungen und Tooling, um innerhalb cross-funktionaler Teams ein echtes agiles Bewusstsein zu schaffen, um so die tägliche Zusammenarbeit permanent zu hinterfragen und sie weiter zu optimieren.
Monolith application served us well but their days are numbered, and the countdown started with the advent of computer networks and of course the Internet.The fact that everyone is concerned with these issues now, is a simple consequence of Moore's Law and free markets. In this fast paced, actual future we live and work in, it has become increasingly important not fall behind and to stumble into development hell when deciding to go ahead with deconstructing your own monolith.
We will embark on a short journey of discovery of what is possible nowadays and what is dangerously unproductive and downright reckless when approaching the monolith deconstruction.
We will discover that, this approach will enable us to:
• develop technology agnostic
• develop faster
• test better
• ship fast
• keep up quality and innovation
At the end of this session we will have a lot more confidence in tackling such a monumental feat, because it will open up a lot more possibilities that we didn't know we had to begin with.
Das Open-Source-Projekt Fn wurde unter der Apache 2.0 Lizenz auf GitHub veröffentlicht und siedelt sich im Bereich der Container-Native-Serverless-Plattform an. In der Kategorie Function as a Service (FaaS) ist die Lauffähigkeit von Fn für Laptop und Server sowie mit jeder Cloudumgebung gegeben. Mit Fn werden verschiedene Programmiersprachen unterstützt. Für Java-Entwickler steht das spezielle Java Functions Developer Kit (FDK) auf JDK-Basis zur Verfügung, und andere Programmiersprachen wie Go, Ruby, Python, PHP, Rust und Node.js werden ebenfalls durch FDKs unterstützt. Fn unterstützt das AWS-Lambda-Format, sodass Importe ebenfalls nutzbar sind. Bei Fn läuft jede Funktion in einer eigenständigen VM, jeweils mit einem eigenen Docker-Container im gemeinsamen Pool. Durch den Fn-Hot-Functions-Mechanismus wird die schnelle Ausführung von neuen Funktionen nach Bedarf gewährleistet. Functions können auch als Managed Service in der Oracle-Cloud-Infrastruktur (OCI) verwendet werden. Im Vortrag werden die Projektbestandteile Fn Server, das Java FDK und Fn Flow vorgestellt und demonstriert.
Serverless und Functions as a Service sind „in“ – insbesondere da doch z. B. Amazon mit AWS Lambda, Google mit Google Cloud Functions und Microsoft mit Azure Functions aufwarten. Aber wie kann die eigene, bereits bestehende Infrastruktur genutzt werden? Mit OpenFaaS steht ein flexibles Framework zur Verfügung, um auf einer bestehenden Docker-Infrastruktur, sei es auf dem eigenen Laptop oder im Rechenzentrum, Functions as a Service zu betreiben und mit auf den Serverless-Zug aufzusteigen. In dieser Session betrachten wir die Grundlagen von OpenFaaS, und wie man auch Java nutzen kann, um Serverless Functions zu implementieren.
New tools and frameworks have popped up around workflow automation, sometimes framed as microservices or function orchestration engines. Many of these got their start "organically", where companies built a tool to solve their own problem. From Airbnb came Apache Airflow, from Netflix came Conductor, from Uber came Cadence, Amazon offers Step Functions, Google has Cloud Composer, and Camunda is working on Zeebe. So workflow automation is far more than human task management or the "BPM dinosaur". In this talk I discuss typical use cases of workflow automation, dive into philosophies and flow languages of relevant tools, and show concrete code examples and live demos. I will not only wear a developer's hat but also look at operations, DevOps and the link to business stakeholders. Afterwards, you'll better understand the role of workflow automation in your project and have some initial criteria for selecting a tool. As co-founder of a workflow automation vendor, I am definitely opinionated – but as workflow automation addict with 15 years of real-world experience, the presentation will be rooted in the frontline customer engagements that have formed those opinions.
Fast täglich liest man von Sicherheitsproblemen in (Web-)Anwendungen, zum Teil mit verheerenden Auswirkungen für Firmen und Verbraucher. Zum Schutz sensibler Daten müssen wir in der Entwicklung und im Betrieb stets sicherstellen, dass wir auf bekannte Schwachstellen reagieren und Systeme und Software auf dem aktuellsten Stand halten können.
Um möglichst schnelles Feedback über aktuelle Probleme zu bekommen, empfiehlt es sich, automatisiert nach bekannten Schwachstellen zu suchen. Hierzu bietet sich die Erweiterung bestehender Continuous Integration Pipelines an.
Im Vortrag mit Live-Demo werden mehrere Open Source Frameworks vorgestellt, mit deren Hilfe man automatisiert Schwachstellen in (Java-)Dependencies, Container Images und Webapplikationen finden kann. Hierzu werden OWASP Dependency Check, CoreOS Clair und OWASP ZAP genutzt.
Event Sourcing ist ein Architekturstil für den Umgang mit Daten: Man speichert und ändert nicht den Zustand der Entitäten, sondern die Liste aller Ereignisse, und rekonstruiert daraus den Zustand bei Bedarf. Damit kann man alle Änderungen nachvollziehen, rückwirkend Bugs fixen, komplexe Daten konsistent halten und gewinnt gleichzeitig Skalierbarkeit. Diese Session erklärt praxisnah eine alternative Form der Persistenz, die auch für Geschäftsanwendungen geeignet ist.
Bad actors have recognized the power of open source and are now beginning to create their own attack opportunities. This new form of assault, where OSS project credentials are compromised and malicious code is intentionally injected into open source libraries, allows hackers to poison the well. In this session, Brian Fox, 20 year open source developer and CTO of Sonatype, will explain how both security and developers must work together to stop this trend. Or, risk losing the entire open source ecosystem. Analyze, and detail, the events leading to today’s “all-out” attack on the OSS industry Define what the future of open source looks like in today’s new normal Outline how developers can step into the role of security, to protect themselves, and the millions of people depending on them.
Oracle hat sein Lizenzmodell geändert, ab JDK 11 kann es in Produktion nicht mehr kostenfrei eingesetzt werden. Seit Januar 2019 gibt es zudem keine freien Updates mehr für das momentan noch viel genutzte Oracle JDK 8. Was sind die Alternativen und wann ergibt der Einsatz welcher JDK-Version Sinn? Wir werfen einen Blick auf die Kosten für das Oracle JDK, auf die Preismodelle von anderen kommerziellen Anbietern wie Azul, IBM und RedHat sowie auf die freien Versionen Oracle OpenJDK, AdoptOpenJDK, Amazon Correto, Alibaba Dragonwell und SapMachine. Zudem werden wir uns die Alternative JVM Eclipse OpenJ9 anschauen, die für gewisse Szenarien Performancevorteile gegenüber der Hotspot Java Virtual Machine von Oracle verspricht. Wir diskutieren weiterhin, ob man bei Java 8 bleiben oder auf 11 bzw. das aktuellste JDK-Release wechseln sollte und welche Konsequenzen das mit sich bringt. Dazu werfen wir natürlich auch einen Blick auf die Neuerungen von JDK 9 bis 13 und besprechen Migrationspfade und Updatestrategien.
Inzwischen sind Microservices kein Hype mehr. Ganz im Gegenteil: Viele sind desillusioniert und glauben nun, dass Microservices viel zu komplex sind, um sie überhaupt erfolgreich zu nutzen. Dieser Vortrag zeigt, wo Microservices bisher erfolgreich eingesetzt worden sind und wo sie für Fehlschläge gesorgt haben. Aus diesen Erfahrungen kann man lernen, wie Softwarearchitektur jenseits von Microservices weitergedacht werden kann und so Softwarearchitekten den nächsten Schritt gehen können.
After this session you will be able to say garbage collection tuning isn’t rocket science, it’s common sense. You will learn key performance indicators (KPIs), useful tools, best practices and algorithms to tune your system’s garbage collection. Besides tuning, you will also learn how to use garbage collection metrics to troubleshoot and even forecast memory problems.
Der Einstieg in Kotlin fällt den meisten Java-Entwicklern nicht schwer. Die neue Syntax für Klassen, Funktionen und Properties ist schnell verinnerlicht. Andere Sprachfeatures, wie Lambdas with Receiver, Delegated Properties und Reified erschliessen sich nicht ganz so einfach. Mit diesen und weiteren Innovationen ist es möglich, die eigenen Basisfunktionalitäten so umzusetzen, dass der fachliche Code kompakt und elegant aussieht. Dieser Vortrag zeigt anhand von vielen Codebeispielen, welche erweiterten syntaktischen Möglichkeiten Kotlin bietet und wie man diese sinnvoll einsetzt.
Serverless klingt interessant? Doch wie kann man sich die Entwicklung mit Serverless-Technologien vorstellen? Und wo kann man starten? In dieser einstündigen Live-Hacking-Session können sie miterleben, wie eine komplette Webapplikation mit einem Serverless Backend von Grund auf entwickelt wird. Dabei werden wir auf Basis von Amazon Web Services (AWS) ein REST-API für dynamische Daten entwickeln, öffentlich bereitstellen und von einer Single-page-Webanwendung konsumieren. Auf dem Weg betrachten wir, wie Datenverarbeitung, Datenhaltung, API-Management, Security und Content Delivery im Serverless-Umfeld funktioniert und lernen dabei, wie man mit der Umsetzung eigener Anwendungsfälle starten kann.
Machine Learning (ML) wird in das Training von Modellen und die Vorhersage unter Verwendung des Modells unterteilt. ML Frameworks nutzen üblicherweise einen Big-Data-Speicher wie HDFS oder S3, um historische Daten zu verarbeiten und die analytischen Modelle zu trainieren. Dank einer modernen Streamingarchitektur können diese Speicher komplett vermieden werden.
In diesem Talk wird diese moderne Streamingarchitektur mit traditionellen Batch- bzw. Big-Data-Alternativen verglichen. Zudem werden die Vorteile, wie die vereinfachte Architektur, die Möglichkeit, Events wiederholt in der gleichen Reihenfolge zu verarbeiten, um verschiedene Modelle zu trainieren, und eine skalierbare, unternehmenskritische ML-Archtektur für Echtzeitvorhersagen, beleuchtet, und vorgestellt, wie sie aussehen können – ohne die üblichen Kopfschmerzen und Probleme.
Der Vortrag erläutert, wie Streamingdaten direkt über Apache Kafka aus einer beliebigen Quelle eingespielt, mit Kafka Streams oder KSQL verarbeitet, und danach direkt in TensorFlow für das Trainieren der Modelle und Vorhersagen genutzt werden können.
We tend to focus our energy on design, testing, and writing code, but programming is the easy part. It's the one part that we can't eliminate, but it's the one part that we can relatively easily learn to master. Programmers have the habit of undervaluing the other aspects of their work, even though those often interfere with their ability to design, test, and write code! I'd like to offer an overview of the key ideas that have helped me most in my career, related to improving design, organizing work, and navigating people.
Angular, React, Vue, Web Components? Ist es nicht egal, mit welchem Framework man seine Webanwendung entwickelt, solange es hinreichend verbreitet ist? Auch wir finden, dass man ein Single-Page Framework oft nach Geschmack aussuchen und man damit nicht viel falsch machen kann. Entscheidend ist die Developer-Experience, also womit sich die Entwickler am wohlsten fühlen. Allerdings gibt es dennoch einige Anforderungen, die das eine oder andere Framework als die bessere Wahl dastehen lassen. Welche das sind und was unsere persönlichen Erfahrungen und Vorlieben sind, erfahrt ihr in dieser Session.
Micro Frontends bringen das Konzept von Microservices in das Frontend.
Dieser Vortrag erzählt vom Scheitern mit Microservices-Architekturen und von den Vorteilen durch Micro Frontends.
Welche Probleme von Microservices lösen Micro Frontends in der Entwicklung von modernen Webapplikationen? Wie kann die Implementierung einer Micro-Frontend-Architektur konkret aussehen und welche Erfahrungen macht man dabei?
Das Ziel dieses Vortrags ist es, die Besucher davor zu bewahren, an Microservices zu scheitern. Micro Frontends sollen dabei unterstützen. Es wird gezeigt, welche Dinge man dabei unter anderem hinsichtlich Authentifizierung, Integrationsszenarien und User Experience beachten muss.
Eine Warnung vorweg: Micro Frontends sind nicht der Heilige Gral und man wird auch von ihnen enttäuscht, wenn man sich nicht von Domain-driven Design, Conway's Law und vor allen Dingen von den Benutzern helfen lässt.
Irgendwann ist es so weit: Man steckt in oder verantwortet sein erstes richtiges Microservices-Projekt und entdeckt ein Füllhorn an Technologien und Vorgehensweisen, die man so noch nicht (in größerem Umfang) verwendet hat. Damit der Einstieg nicht zur harten Bruchlandung wird, nimmt dieser Vortrag die ganz praktischen Aspekte der Microservices-Entwicklung unter die Lupe und zeigt, welche Sprungbretter nützlich sind, die Entwicklung zu beflügeln, und welche Schlaglöcher es zu umschiffen gilt. Anhand von Beispielen aus unterschiedlichen Bereichen wird gezeigt, welchen Einfluss Einzelentscheidungen auf den Fortschritt und die Effizienz des gesamten Projektes haben können. Und natürlich wird dabei ganz im Sinne von Dev(Sec)Ops auch über den Tellerrand der eigentlichen Entwicklung hinausgeschaut.
Quarkus makes it possible to write Java web applications ready to serve requests less than 20 milliseconds after start and occupying less than 20 MB of memory. At the same time, its programming model feels much like the one of a traditional application server: There is persistence with JPA, JAX-RS for REST, CDI, transactions, most MicroProfile specifications and even a compatibility layer for some Spring APIs. Come and see how Quarkus makes all the above possible on top of GraalVM using a new technique called Compile Time Boot. Learn how exactly Quarkus eliminates runtime costs and how it circumvents the limitations of GraalVM. An 8 ms demo will be included.
Service-Mesh-Technologien wie Istio und Linkerd versprechen, die Komplexität von Microservices-Architekturen massiv zu reduzieren. Sie führen flächendeckende Kontroll- und Beobachtungsmöglichkeiten für die Kommunikation zwischen Microservices ein. Funktionen zu Monitoring, Routing, Resilienz und Sicherheit werden auf die Infrastrukturebene gehoben. Auch Canary Releasing und beidseitige Authentifizierung (mTLS) werden mit einem Service Mesh endlich handhabbar.
So ein Service Mesh sollte sich also niemand entgehen lassen, der Microservices-Architekturen nutzt oder nutzen will – oder? Ganz so einfach ist es nicht. Dieser Talk möchte die individuelle Beantwortung dieser Frage erleichtern. Dazu werden Service Meshes für verschiedene Microservices-Architekturen wie z. B. asynchrone Kommunikation diskutiert. Außerdem werden verschiedene Service-Mesh-Technologien wie Istio und Linkerd vorgestellt und anhand der Features die Benutzbarkeit und Performance verglichen.
Für cloudnative Anwendungen liefern Kubernetes und Istio out of the box eine Vielzahl von Schlüsselfunktionen, die generisch für Microservices verwendet werden können, egal, in welcher Sprache sie implementiert sind, und ohne Änderungen an der Anwendungslogik. Einige Funktionen können jedoch nicht von Orchestrierungs-Frameworks und Service Meshes abgedeckt werden, sie müssen in der Geschäftslogik der Mikroservices gehandhabt werden, z. B. anwendungsspezifische Fail-over-Funktionalität, Metriken und fein abgestufte Autorisierungen. In dieser Session zeige ich anhand eines konkreten Beispiels, wie man Microservices mit Java EE und Eclipse MicroProfile erstellt und wie man sie auf Kubernetes und Istio ausrollt und betreibt. MicroProfile verfügt selbst über einige komfortable Funktionen, die man typischerweise bei der Entwicklung von Mikroservices benötigt, z. B. für die Aufrufe von REST APIs und ihre Implementierungen, einschließlich ihrer Dokumentation. Ich benutze für die Session mein Codebeispiel cloud-native-starter, das ich auf GitHub als Open Source veröffentlicht habe, zusammen mit Skripten zum schnellen Deployment auf Minikube und Anleitungen.
So mancher Entwickler empfindet die Einschränkungen durch die Same-Origin Policy (SOP) der Browser als lästig und umgeht sie durch den hastigen Einsatz von Cross-Origin Resource Sharing (CORS). Doch worauf wirkt sich die SOP genau aus und wie sollten die CORS-Header sinnvoll verwendet werden? Welche weiteren Einschränkungen können durch die vergleichsweise neue Cross-Origin Resource Policy (CORP) erzielt werden? Zusätzliche Sicherheit versprechen die Direktiven der Content Security Policy (CSP), die im Gegensatz zur SOP jedoch explizit aktiviert werden muss. Doch welche Direktiven gibt es, wie sind sie einzusetzen und worauf wirken sie sich aus? Aktuelle Browser unterstützen noch einige weitere Securityheader. Doch welche davon sind heute noch relevant und wie sollte man sie verwenden? Auf diese und weitere Fragen liefert dieser Talk Antworten. Anhand praxisnaher Beispiele wird verdeutlicht, wie durch den gezielten Einsatz dieser Sicherheitsmechanismen einigen Bedrohungen begegnet werden kann.
Modularisierung im Backend kann mit Microservices-Architektur als erledigt betrachtet werden. Doch was ist mit dem Frontend? Welche Ansätze gibt es hier, und welche eignen sich für einen modernen Entwicklungsstack? In dieser Session werden Architekturansätze vorgestellt und ihre jeweiligen Eigenschaften betrachtet. Neben Self-contained Systems (SCS) und Micro Frontends liegt ein Augenmerk auf den Chancen, die sich dank des etablierten Web-Components-Standard v1 ergeben. Für die praktische Umsetzung wird der Einsatz von Spring Boot und Angular sowie Angular Elements demonstriert.
JWT, Authentifizierung und Autorisierung, RX, swagger/openapi, effizientes Error-Handling, JSON-Serialisierung, fachliche Metriken, Implementierung von Timeouts, Retries, Fallbacks, Bulkheads und Circuit Breakers, verteiltes Logging, Cloudkonfigurationen und Staging, Testing, ... In dieser Session werden wir mit Jakarta EE/Java EE/ MicroProfile Tipps, Tricks und Workarounds aus Real-World-Projekten implementieren. Fragen und Anmerkungen der Teilnehmer sind jederzeit willkommen.
Die Session zeigt, wie es der DATEV gelingt, die Transformation für ca. 2 000 Entwickler in den Bereichen Technologie (Cloud-native, Big Data, Kafka, MongoDB, Ceph, Spring, Angular und vieles mehr), Kultur (Fehlerkultur, Full-Stack-Mindset, vom Softwareentwickler zum Engineer/Craftsman) und Organisation (Cross-functional Teams, Agilität) zu gestalten. Wichtig hierbei ist die Etablierung einer sich stetig anpassenden und organisationsweiten Basis zum interdisziplinären Erfahrungsaustausch und gemeinsamen Lernen. Dafür wurden ganzheitliche Onlineschulungen geschaffen, die immer an den jeweiligen Zielgruppen ausgerichtet sind. Das Plattformkonzept ging viral: Bisher wurden 300 Entwickler auf diesem Weg fortgebildet und vernetzt.
Heutzutage läuft eine Software nicht für sich alleine, sondern agiert mit Anderen. Die Kommunikation erfolgt meist über verschiedene Protokolle, sprich über verschiedene Infrastrukturkomponenten. Gerade beim Testen stellt sich die Frage, wie der Entwickler Tests so schreiben kann, dass sie von einem bestimmten Infrastruktur-Set-up unabhängig sind. Meistens gelingt es nicht und dieser Teil der Software wird erst spät bei den End-2-End-Tests geprüft. Doch gerade mit Microservices und dem Paradigma "Wenn etwas schiefläuft, dann so schnell wie möglich" möchte der Entwickler schon zu einem frühen Testzeitpunkt, z. B. bei Entwicklertests, erfahren, wenn bei diesem Teil der Software etwas schief läuft. Zudem macht die Infrastruktur nicht beim Anwendungscode halt. Mittlerweile wird die Infrastruktur immer mehr mit Hilfe von Code (Provisionierungsskripte, Dockerfiles, (Shell-)Skripte etc.) beschrieben und automatisiert. Auch bei diesem Code möchte der Entwickler sicher gehen können, dass er so funktioniert, wie er es erwartet. Dieser Vortrag zeigt am Beispiel einer Java-Anwendung, wie man mit Hilfe von 3rd Party Libraries die Infrastruktur in den Tests der Anwendung einbinden kann, ohne sich gleich von einer bestimmten Infrastruktur abhängig zu machen. Darüber hinaus wird darauf eingegangen, wie die Qualität des Infrastrukturcodes gesichert werden kann, angefangen bei klassischen Provisionierungswerkzeugen bis hin zu Containern.
In this session we will look at troubleshooting production problems which have caused outages in major enterprises. We will analyze the actual thread dumps, heap dumps, GC logs and related artifacts that were captured at the time of the problem. You will learn how to apply the right analysis patterns, tools and best practices to troubleshoot these complex problems. After this session, troubleshooting CPU spikes, OutOfMemoryErrors, response time degradations, network connectivity issues and application unresponsiveness will not stump you anymore.
Wenn die entwickelte Software nicht den Performance-Ansprüchen genügt oder gar instabil läuft, dann müssen zügig die Ursachen analysiert werden. Hierbei helfen die vielen Java-Profiling- und -Analysewerkzeuge. Aber welches ist eine effektive Vorgehensweise, um nicht tagelang im Nebel zu stochern? Wie werden zum Beispiel GC-Logs erstellt und analysiert? Wie finde ich Memory Leaks in Heap Dumps, bevor dem Server die Puste ausgeht? Wie werden Thread Dumps interpretiert und existieren eventuell Dead Locks oder Thread-Content-Probleme? Bremsen eventuell SQL-Hotspots oder Transaktionssperren die Anwendung aus? In der Session wird an praktischen Beispielen gezeigt, wie man sich systematisch einen Überblick über das Laufzeitverhalten einer Anwendung verschafft, um anschließend gezielt in die Detailanalyse oder der Optimierung gehen zu können.
Ausgerechnet für den immer wichtiger werdenden Aspekt der HTTP-Kommunikation mussten sich Java-Entwickler jahrelang mit der betagten HttpURLConnection herumplagen. Diese wurde mit Java 1.1 eingeführt und galt verständlicherweise als altmodisch und schwierig zu benutzen. In der Regel wurden daher externe Bibliotheken als Ersatz verwendet. Mit Java 9 wurde der neue HttpClient im Incubator vorgestellt, seit Java 11 ist er nun endlich offiziell eingeführt. Er bietet ein modernes Builder API, Unterstützung für HTTP/2 und Push Promises sowie die bequeme Definition mehrstufiger, asynchroner Abläufe mittels CompletableFuture. Für die Verarbeitung von Streams wurden zudem die Schnittstellen an das Flow API angepasst. Höchste Zeit also, den neuen HttpClient genauer unter die Lupe zu nehmen!
Metriken können effizient genutzt werden um u. a. die Wartbarkeit und Architekturqualität von Softwaresystemen zu messen. Sie eignen sich insbesondere auch als Frühwarnsystem, um rechtzeitig vor einer gefährlichen Akkumulation von technischen Schulden und Architekturdefiziten zu warnen. Der Vortrag wird einige Schlüsselmetriken erläutern, die jeder Architekt kennen sollte. Darüber hinaus werden wir einen Blick auf einige experimentelle Metriken werfen. Im Vortrag wird das kostenlose Werkzeug Sonargraph-Explorer benutzt, um diverse Open-Source-Systeme zu vermessen.
Informationen in Echtzeit sind heute Standard im Internet – ob auf Twitter, Gmail oder Facebook.
Wer kommt heute noch auf die Idee, eine Website neu zu laden? Die Implementierung ist dabei allerdings umso komplexer, je mehr Services am Backend beteiligt sind. Verwendet man eine moderne Microservices-Architektur, möchte man seine Services eigentlich stateless haben und sich nicht mit SSE-oder WebSocket-Verbindungen herumschlagen. Die ganze Logik, alles in ein Backend-for-Frontend zu stopfen, ist ebenfalls ungünstig, weil dann die Anforderungen mehrerer Frontend- und Backend-Teams dort zusammenlaufen würden.
Das Thema ist also live UI-Updates und Event-driven Microservices-Architektur.
Ich stelle das Reactive-Interaction-Gateway-Projekt vor – ein Accenture Open Source und CNCF Landscape Project, das dieses Problem möglichst elegant lösen soll.
Event Streaming lässt Unternehmen umdenken, wie sie implementieren, kommunizieren und wie Entscheidungen schneller aufgrund aktueller und historischer Informationen getroffen werden können. In einem so schnelllebigen Bereich wie der IT, ist es genauso essenziell, schnell und agil sein, wie auch (Geschäfts-)Wissen teilen zu können, z. B. auch unter Einbeziehung von AI und ML.
Viele Unternehmen bekommen gar nicht mit, dass sie schon in den Anfängen dieser Revolution stecken und eigentlich noch mehr in noch weniger Zeit erledigen könnten.
In diesem Vortrag stellen wir Use Cases aus Event-Streaming-Projekten unterschiedlichster Branchen vor und zeigen an Beispielen, wie für Entwickler, Admins und die Businessebene ein echter revolutionärer Mehrwert geschaffen werden kann.
Mit den stetig wachsenden Möglichkeiten, die Cross-Platform-Anwendungen bieten, wachsen auch die Anforderungen an deren Design. Skalierbarkeit, Flexibilität und Wandelbarkeit gehören zu den Grundprinzipien eines modernen User Interface.
Erfahren Sie in Andreas Wissels Session anhand von Beispielen aus der echten Welt, wie Sie Ihre User Experience genauso skalier- und wartbar gestalten wie Ihren Code. Die vorgestellten Tools wie Figma, Storybook und Angular bieten das nötige Handwerkszeug, um Teams unter dem Banner des Komponentengedankens zu vereinen.
Domain-driven Design ist derzeit eine sehr beliebte Vorgehensweise zur Umsetzung von Microservices. Diese Session soll Ihnen einen Überblick geben, wie Sie verschiedene Aspekte von Domain-driven Design mit Hilfe des Spring-Ökosystems umsetzen können. Wir werden einen Blick darauf werfen, wie Sie Ihre Microservices mit Bounded Contexts und Strategic Design modellieren können, danach werden wir in einen Microservice eintauchen und untersuchen, wie Sie beispielsweise Services, Aggregates, Repositories und Domain Events implementieren können. Dabei betrachten wir, welchen Mehrwert Spring-Technologien wie Spring Boot, Data und Cloud liefern und wo wir besser auf plain Java setzen. Dieser Vortrag besteht aus 20 Prozent Theorie und 80 Prozent Code.
Kubernetes ist mittlerweile in aller Munde - und das nicht erst, seit es Kelsey Hightower für „super dope“ befunden hat. Neben Google haben auch andere Anbieter wie Amazon mit EKS, Red Hat mit OpenShift und sogar auch Azure mit AKS Angebote rund um Kubernetes im Portfolio und machen die Plattform damit für jeden leicht zugänglich. Doch gerade diese Einfachheit birgt ein gewisses Risiko. Denn schnell ist ein Cluster aufgesetzt und mit der eigenen Anwendung bespielt - doch wehe, wenn die Konfiguration etwas zu offenherzig ist und unerwünschten Angreifern der Zugang zum System gewährt wird. In diesem Talk wollen wir unsere Erfahrung im Umgang mit Kubernetes teilen und erklären, wie sich die Sicherheit von Kubernetes mit Hilfe von HashiCorp Vault verstärken lässt. Dabei werden wir erklären, wie sich mit kurzlebigen Zertifikaten Zugänge für verschiedene Zielgruppen erstellen lassen, wie man eine sichere Kommunikation mit wechselnden Zertifikaten im Cluster aufbauen kann und schließlich, wie Passwörter und Zertifikate sicher aus dem Vault in den Container gelangen – Live-Coding inbegriffen!
Event Sourcing und CQRS sind zwei populäre Entwurfsmuster für die Umsetzung von Microservices-Architekturen. Beim Event Sourcing wird nicht nur der letzte Zustand eines Objekts gespeichert, sondern alle Events, die den Zustand eines Objekts beeinflussen. Ist der aktuelle Zustand eines Objekts gefordert, dann kann dies durch das Abspielen aller gespeicherten Ereignisse in der korrekten Reihenfolge jederzeit erzeugt werden. Im Gegensatz dazu verfolgt CQRS das Prinzip, schreibende Operationen (Command) und lesenden Operationen (Query) strikt voneinander zu trennen und dafür unterschiedliche Datenbanken bzw. Datenmodelle einzusetzen. Event Sourcing und CQRS werden häufig in Kombination eingesetzt. Während CQRS auch ohne Event Sourcing genutzt werden kann, ist Event Sourcing ohne CQRS weniger sinnvoll. Um Event Sourcing implementieren zu können, ist ein sogenannter Event Store notwendig, der die notwendigen Eigenschaften von Event Sourcing effizient zur Verfügung stellt. Was genau ist ein Event Store, und was muss er leisten? Ist ein Event Store auch notwendig, wenn man Event Sourcing mit CQRS kombiniert? Diese Präsentation zeigt erst auf, was ein Event Store an Eigenschaften mitbringen sollte. Danach wird gezeigt, inwieweit sich mit Apache Kafka ein Event Store sinnvoll umsetzen lässt und darauf eingegangen, was ein dezidiertes Event Sourcing Framework wie Axon für zusätzliche Vorteile bietet.
In einer Live-Coding-Session werde ich demonstrieren, wie über eine Continuous Deployment Pipeline in Kombination mit Consumer-driven Contracts und einem Pact Broker sichergestellt werden kann, dass sowohl auf der Integration Stage als auch in Produktion nur Services deployt werden (können), deren Schnittstellen kompatibel sind.
Was heißt es eigentlich Software-Architekt zu sein?
Allen neuen Technologie- und Methodentrends / Buzzwords hinterherzujagen?
Prinzipien und Best Practices zu definieren und sicherzustellen, dass diese befolgt werden?
Perfekte Designs zu entwickeln, die alle Eigenschaften erfüllen, die moderne Anwendungen haben sollten: Auto-Scaling, Resilience, etc.?
Und nicht zuletzte natürlich immer die besten/richtigen technischen Entscheidungen zu treffen?
Es lässt sich nicht leugnen, dass Technologie eine wichtige Rolle im Alltag von Software-Architekten spielt. Jedoch stand ich im Verlauf eines großen Projekts vor vielen Herausforderungen, bei denen (neue) Technologien keine Lösung waren: von Kommunikation und Kompromissen bis hin zu Kultur.
It is 2019. Most people have heard of Bitcoin, maybe Ethereum, too, and other altcoins. Having a current market cap of more than $309.71 billion it is definitely a technology, that we should be aware of, as well as know how we can implement any of the current decentralization solutions in our projects. In this session I want to talk about Blockchains and Ethereum as an introduction, to get a rough idea of how it works, followed by a showcase of a real use case demo, showing how to write our own Smart Contract using Solidity and the Ethereum Network, and finally talking about how we can interact with our Smart Contract from an Mobile Android Demo App, using either Kotlin or Java.
FTP File Exchanges gehören der Vergangenheit an, SOAP ist tot, von CSV-Importen, WebDAV und RPCs können nur noch Internetpioniere berichten. Heute ist alles REST und Hypermedia, mittels OpenAPI 3.0 dokumentiert und via OAuth2 autorisiert. Microservices müssen nur noch zusammengesteckt werden wie elegante Puzzleteile und sind dann unmittelbar produktionsreif.
Wer bis hierher gelesen hat, ohne rot zu werden, hat Integration über APIs nur in einem Spielprojekt ausprobiert, denn die Realität sieht meist fundamental anders aus. Doch woran liegt das?
Wir untersuchen anhand von jüngsten Erfahrungen die Hindernisse, denen man bei der Integration von Services immer wieder begegnet, und die trotz aller technologischen Revolutionen der Realisierung jener modernen Welt von APIs entgegenstehen, die der Branche so oft verheißen wird – sei es in Design, Dokumentation, Infrastruktur oder Security. Dabei illustrieren wir anhand eines Beispiels, wie einfach doch alles sein könnte bei der Entwicklung und Integration von APIs – wenn wir eben schon angekommen wären.
Verteilte Anwendungen sind ja super. Microservices sind der letzte Schrei. Crossfunktionale Teams bauen geniale Lösungen. Und was hat der Kunde und Anwender davon? Häufig liest man über ROCA, SPA und Webcomponents, aber wie geht es jetzt wirklich? Auf was ist zu achten? Wir zeigen, über welche Fragestellung wir gestolpert sind und wie unsere Lösungen aussehen. Wir stellen verschiedene Lösungsmuster vor, die für otto.de und OTTO Brand Connect ausprobiert wurden und im Einsatz sind. Dabei kommen wir vorbei an Themen der teamübergreifenden Zusammenarbeit, zeigen die Auswirkungen auf die Customer Journey und gehen auf die Frage ein, welche technische Abhängigkeiten sich zwischen Teams und Systemen ergeben.
Zwei Konkurrenten haben sich für eine ehrgeizige Weltraummission entschieden und treten gegen Spring Boot als schnellstes Microservices Framework im Java-Raum an! Jetzt ist der Kampf im Gange, aber es geht um mehr als nur um Geschwindigkeit. In dieser Session werde ich über Micronaut und Quarkus sprechen und sie mit ihrem Vater Spring vergleichen, der bereits seit langer Zeit das Sonnensystem bereist. Werden sie scheitern oder siegen? Gemeinsam werden wir herausfinden ...
In dieser Session werden ich eine PWA/SPA nur mit dem Einsatz von Webstandards wie ES 6, WebComponents, CSS 3, from scratch implementieren, strukturieren und erklären, Backend-Zugriff inklusive. Keine Frameworks, keine Buildsysteme, keine Migrationen. Fragen der Teilnehmer sind willkommen und werden mit Sourcecode beantwortet.
Alpha Go Zero versetzte uns in ungläubiges Staunen, dieDota2 und StarCraft2 Agenten noch mehr. Aber wie arbeiten diese Systeme? Wassteckt hinter diesem "Deep Reinforcement Learning"?
In dieser Session schauen wir uns zunächst die Grundkonzepte von ReinforcementLearning an: Was ist die Kernidee? Was braucht man dafür an Wissen (ohne zuviel Mathematik - versprochen!) und wie kommt man zu einem funktionierendenAgenten in Code? Danach erweitern wir den Ansatz um Neuronale Netze für DeepReinforcement Learning. Und schließlich gibt es noch ein Reihe Tipps für dieeigene Reise in das spannende Thema.
Nach der Session werden wir nicht das nächste Alpha Go Zero gebaut haben, aberIhr werdet eine Idee haben, wir Ihr das könntet ...
Um moderne Anwendungen in der Cloud zu betreiben, bieten sich Entwicklern heutzutage verschiedene Optionen. Containerisierung mit Docker ist bereits ein allgegenwärtiger Standard, um das Thema Kubernetes besteht ein riesiger Hype, es gibt Platform-as-a-Service-(PaaS-)Lösungen wie Cloud Foundry und im Blick in die nahe Zukunft kommt immer mehr das Thema Serverless in den Fokus. Mit diesen Optionen drängen sich natürlich auch Fragen auf: Welche Plattform ist für welchen Anwendungszweck die richtige? Was empfiehlt sich für neue Entwicklung, was zur Migration bestehender Legacy-Anwendungen? Wie viel nimmt die Plattform dem Entwickler ab? Wie viel "Ops"-Anteil wird vom Entwickler erwartet? Wie viele Schritte brauche ich von der Code-Repository bis zur Laufzeit in Produktion? Wie gut und einfach sind die Plattformlösungen verfügbar? Welche Anbieter gibt es? In meiner Rolle als Cloud-Advocate und Hochschuldozent für Cloud-native Software Development begegne ich diesen Fragen sehr oft sowohl bei Kunden als auch bei Studenten. Die Einsichten und Erkenntnisse, die ich in den letzten Jahren in diesem Bereich erhalten habe, möchte ich gern mit diesem Vortrag weitergeben.
The shift from monolithic applications to microservices led to many new challenges we haven’t had before. Especially analyzing problems and tracking down erroneous components in a distributed system has become much more difficult as slicing and decoupling applications advances. We now have to answer questions like: How do we find out which services were involved when processing a specific request and how long did it take to respond? How do we figure out which service is causing a request to fail and why? These issues are addressed by distributed tracing tools like Zipkin, Jaeger, OpenTracing and OpenCensus. But how can we leverage the data we are gathering using such tools to gain new insights into our business processes instead of just focussing on the technical aspects?
In this talk, we will give an introduction to distributed tracing focussing on the OpenTracing ecosystem, how it compares to similar tools and how you can benefit from using such tools. We will also show how you can take distributed tracing to the next level and turn it into distributed business tracing. We will use practical examples to show how this has changed our organization.
HashMap und ArrayList kennt jeder, na klar. Aber wann stellen sie eigentlich die richtige Wahl dar? Und vor allem: Wann nicht? Das Collections Framework enthält zahlreiche, zum Teil recht spezialisierte Implementierungen, doch viele Entwickler kennen nur einen kleinen Teil davon. Schon mal was von EnumSet oder WeakHashMap gehört? Und was ist eigentlich der Unterschied zwischen ConcurrentSkipListMap und ConcurrentHashMap? Je nachdem, welche konkreten Anforderungen jeweils umzusetzen sind, ist es wichtig, die Stärken und Schwächen der einzelnen Implementierungen zu kennen. Dieser Vortrag diskutiert Details wie Threadsicherheit, Laufzeitverhalten und sinnvolle Initialisierung anhand einiger ausgewählter Collection-Klassen.
Der Vortrag beschäftigt sich mit der Frage wie LPS die Dienste einer öffentlichen Cloud für die Umsetzung ihres Produkts Proximity genutzt hat. Nach einer kurzen Einführung in das Produkt wird seine generelle Architektur – bestehend aus einem Software Development Kit (SDK) für mobile Geräte, einer Verwaltungsoberfläche und verschiedenen Hintergrunddiensten – vorgestellt. Im Anschluss daran wird ausführlicher auf einige der Hintergrunddienste und ihre Implementierung eingegangen. Dieser Teil des Vortrags beschäftigt sich – unter anderem – mit Themen wie Serverless Computing mit AWS Lambda Functions, AWS Elastic Beanstalk sowie Datenanalyse mit Kinesis Streams, DynamoDB und Amazon Athena. Im abschließenden Teil des Vortrags wird auf betriebliche Aspekte wie Infrastructure as Code mit Terraform sowie Monitoring mit AWS Cloudwatch eingegangen.
Dieser Vortrag diskutiert die Schwierigkeiten, die bei der Implementierung einer modularen Anwendung auftreten, und zeigt anhand von vielen Codebeispielen, wie sie überwunden werden können. Wir werden uns auch den Einsatz von Build-Tools wie Gradle und Maven genauer ansehen, um modulare Anwendungen zu kompilieren, zu testen und auszuführen. Darüber hinaus werden wir eine Reihe von Plug-ins untersuchen, die bestimmte Aufgaben automatisieren, wie zum Beispiel:
Vergleicht man verschiedene Ansätze um Bounded Contexts zu implementieren, ist eine modulare aber monolithische Applikation oft eine pragmatische Alternative zu Microservices, die viele neue Herausforderungen und die Komplexität eines verteilten Systems erzeugen. Dennoch degenerieren die Modularität und Wart- bzw. Erweiterbarkeit monolithischer Applikationen über ihre Lebenszyklen signifikant. Der Vortrag identifiziert oft beobachte Phänomene in unstrukturierten Monolithen und diskutiert Ansätze zur Codeorganisation, Komponentenstruktur, dem Paketdesign, Transaktionen und der Nutzung von Events, um die Interaktion zwischen Bounded Contexts zu implementieren. Wir betrachten unterstützende Technologien und Features von Spring Boot und dessen Ökosystem, um architektonische Konzepte in modularen, monolithischen Applikationen zu implementieren, über die Zeit definierte Architektur zu erhalten und mehrere Systeme auf eine spätere Aufteilung vorzubereiten.
Continuous Delivery und Infrastructure as Code scheinen im Mainstream angekommen zu sein. Das bedeutet: Jeder macht es – irgendwie. Das Ziel ist es, schnell, mit hoher Frequenz und hoher Qualität Systeme automatisiert auszuliefern. Während wir in diesem Talk live ein wenig echten Infrastrukturcode laufen lassen, widmen wir uns mit viel Realitätsbezug folgenden Fragestellungen:
Mit Monorepos können große Anwendungen in kleine, übersichtliche Teile zerlegt werden. Dabei handelt es sich jedoch nur um eine Seite der Medaille: Zuvor gilt es nämlich festzulegen, anhand welcher Kriterien die Zerlegung erfolgen soll und wie die einzelnen Bibliotheken miteinander kommunizieren dürfen. Um diese Fragen zu beantworten, beleuchtet diese Session die Ideen von Strategic Domain-driven Design vor dem Hintergrund großer Angular-Anwendungen. Wir beschäftigen uns anhand einer Angular-basierten Fallstudie mit dem Bounded Context, der Definition von Subdomänen und Context Mapping. Anschließend sehen Sie, wie sich diese Ideen mit Angular und einem Monorepo realisieren lassen. Am Ende haben Sie nicht nur den nötigen technischen Überblick, sondern auch eine dazu passende bewährte Methodik für die Schaffung langfristig wartbarer Angular-Lösungen.
Seit dem ersten Talk über GitHubs DevOps-Praktiken auf der W-JAX 2016 hat sich einiges verändert: Mehr als 50 Millionen neue Repositories und 100 Millionen Pull Requests sowie völlig neue Teilsysteme wie Security Vulnerability Scanning und eine eigene CI/CD-Lösung sind hinzugekommen – auch die Mitarbeiterzahl hat sich ungefähr verdreifacht. Klar, dass nicht alle Praktiken, die mit 400 Mitarbeitern eine gute Idee waren, auch mit 1200 Mitarbeitern noch gut funktionieren. Andererseits müssen auch nicht alle bewährten Konzepte wie ChatOps und der weitgehende Verzicht auf interne Emails gleich über Bord geworfen werden. Wer sich dafür interessiert, wie sich Test- und Deployment-Praktiken für eine der meistbesuchten Webplattformen der Welt geändert und welche Prinzipien trotz großem Wachstum Bestand haben, ist in diesem Talk genau richtig.
Zurück in die Zukunft: Heute ist Pixelblockgrafik wieder in. Damals in den 80er Jahren war sie technischer State-of-the-Art. Die Zeiten als PAL oder NTSC einen großen Unterschied machten, als PEEK und POKE alles andere war als ein Kartenspiel und als 3-Kanal-Blechsound sich anhörte wie eine himmlisch süße Arie. Wir reden von der Ära der 8-Bit-Computer wie dem Commodore C64.
In einer lockeren Night Session wollen Jörg Neumann und Christian Weyer Sie mitnehmen in eine niemals zu vergessende Zeit. Was die einen “Retro” nennen, ist faktisch eine Hommage an eine Epoche der maßgeblichen Beeinflussung einer gesamten Computer-Generation und sogar einer gesamten Industrie. Die beiden Speaker wollen in gemütlicher Atmosphäre zurückblicken, mit dem C64 Spiele zocken, ein kleines bisschen BASIC und vor allem ein bisschen 6502 Assembler hacken – aber vor allem ganz viel positive Stimmung und Erinnerungen verbreiten. Lassen wir Datasette, Floppy, SID, VIC und Co. wiederaufleben – Erinnerungen und Gänsehaut garantiert.
Das Forschungsgebiet der Neurosciences und besonders die Entwicklung von Brain-Computer-Interfaces sind derzeit in schneller Bewegung. Dieses Jahr stellte Elon Musks Firma Neuralink neue Techniken für Hirnimplantate vor, während einschlägige Forschungsprojekte gleich mehrere Durchbrüche erzielten. Mittlerweile ist man in der Lage, Sprache aus Hirnströmen zu rekonstruieren. Doch wie funktioniert das Ganze eigentlich und was kann die Technik wirklich? Stehen womöglich maschinelles Gedankenlesen oder gar Brain-Uploads vor der Tür? Es ist derzeit nicht ganz einfach, realistische Perspektiven von Science Fiction zu trennen. Dieser Talk gibt einen Überblick über den Stand der Forschung.
Diese unterhaltsame und interaktive Night Session nimmt Sie mit auf eine Reise in die Untiefen der IT-Security … Es werden in einem Livequiz interaktiv mit Voting des Auditoriums typische und untypische Securitythemen beleuchtet. Dabei können Sie sich den Securitythemen anonym teilnehmend technisch und fachlich stellen. Treten Sie gegen den Rest der Zuhörerschaft im Saal an, nur mit Ihrem Smartphone zum Abstimmen der richtigen Antworten bewaffnet (Browser und ein frei wählbarer Nickname reichen aus). Wer am Ende die meisten Quizfragen richtig und schnell beantwortet und es in das Security-Leaderboard des Abends schafft, wird sich über thematisch passende Preise freuen können. Auch wer nicht mitvoten möchte, sei herzlich eingeladen, sich dem Thema passiv zu widmen und über die eine oder andere Securityfrage zu grübeln – oder mit einem spontan gebildeten Team gemeinsam anzutreten.
It is often said that the hardest problem to solve is when two people are talking about different things but believe they are talking about the same thing. As you grow in your engineering career being able communicate about problems effectively is perhaps your single most important skill. This keynote is about adding to a dictionary of common vocabulary. I'm here to arm you with the confidence and drive to revisit your technical communication skills and improve them.
Spring Framework 5.2 baut auf etablierten Themen aus Spring 5 auf: Java 8+, Kotlin, Functional, Reactive. Es integriert dabei die neuesten Technologien wie R2DBC und RSocket im Rahmen der Transaktions- und Messaging-Abstraktionen. Reflection-Optimierungen sowie flexibles Handling von Annotationen verbessern die Start-up-Zeit und erschließen neue Deployment-Szenarien, insbesondere hinsichtlich GraalVM und generierter Indizes.
APIs werden von Tag zu Tag wichtiger, bis hin zu dem Punkt, an dem Unternehmen ihr gesamtes Geschäftsmodell um ihre APIs herum organisieren. Oder anders ausgedrückt: Ihr API-Design wird in Zukunft Ihren Geschäftserfolg unmittelbar beeinflussen.
Aber gutes API-Design ist inhärent schwierig. Woran erkennt man denn überhaupt gutes API-Design? Gibt es hilfreiche Muster? Und was sollte man unbedingt vermeiden?
In dieser Session werden wir anhand eines Fallbeispiels zunächst einmal die Anforderungen an gutes API-Design herausarbeiten. Dann werden wir einen Blick auf einige zeitlose Grundlagen guten Schnittstellendesigns werfen, um diese dann auf unsere Herausforderungen und unser Fallbeispiel anzuwenden. Auf dem Weg werden wir zusätzlich noch eine Reihe von Anti-Pattern identifizieren. Und zum Abschluss der Session werden wir uns die Trade-Offs unserer Entscheidungen ansehen sowie mögliche Alternativen beleuchten.
Nach dieser Session werden Sie die Anforderungen an modernes API-Design sowie geeignete Lösungsoptionen besser verstanden haben.
IT-Forensiker benötigen für Ihre Arbeit - die forensische Untersuchung von IT-Systemen aller Art - zuverlässige Werkzeuge. Dies ist meist Spezialsoftware. IT-Forensik und Forensic Readiness betrifft jedoch jeden Entwickler und Architekten. Denn wenn es einmal zu einem IT-Sicherheitsvorfall kommt, sind Softwaresysteme besonders dann wertvolle Spurenträger, wenn bereits im Softwaredesign ein geeignetes und verlässliches Maß an Logging erkannt und berücksichtigt wurde. Und als Entwickler fragen wir uns vielleicht auch, welche Auswirkungen heutige Angriffe auf die eigene Entwicklungsumgebung haben können. IT-Forensik in Architektur und Software meint also nicht die Umsetzung von Härtungsmaßnahmen oder die Erstellung möglichst fehlerfreier Software, sondern die Reaktion auf eventuelle zukünftige IT-Sicherheitsvorfälle und die Untersuchung von zukünftigen Fragestellungen zu verschiedensten Sachverhalten, an denen IT-Systeme mit Software beteiligt waren. Dieser Talk führt kurz in die Grundlagen der IT-Forensik ein und motiviert dann, warum das Thema auch für Entwickler wichtig ist. Dazu betrachtet er einmal die Perspektive der Entwicklung von Software, die IT-forensische Untersuchungen durch gute Spurenlage bestmöglich unterstützt und die Perspektive der Entwickler selbst, die ihre eigenen Systeme schützen wollen und nach einem eventuellen Angriff richtig reagieren müssen. Der Talk beleuchtet auch das Spannungsfeld zwischen erwünschter Aufklärung und „Ausschnüffeln“.
Sie bauen eine umfangreiche Geschäftsanwendung mit einem Lebenszyklus von mehr als 10 Jahren. Was ist Ihr Worst-Case-Szenario?
Wie wäre es mit: Es entsteht eine Unmenge von JavaScript, HTML und CSS mit miserabler Wartbarkeit, hoher Fehleranfälligkeit und immer wieder neuen Erfahrungen im Cross-Browser-Einsatz. Und zur Belohnung wird mitten in der Entwicklung das Web UI Framework, das Sie verwenden, auf „deprecated“ gesetzt, weil die bislang treibende Firma einen inkompatiblen Nachfolger ausgerufen hat.
Zugegeben, es muss nicht immer soweit kommen! Aber: jeder von uns kennt genügend Fälle, in denen Teile der Ausführungen genau passen.
Die große Herausforderung und damit das Thema der Vortrags ist also: das Definieren und Etablieren von Architekturen, um diese Probleme zu vermeiden. Wichtige Frage ist hierbei das bewusste Entscheiden zwischen einer client- oder einer serverzentrischen UI-Architektur.
Und, ganz klar: im Vortrag geht’s um UI, deswegen wird auch eine Menge UI konkret gezeigt!
Gibt es ein Framework, das für alle Aufgaben die perfekte Lösung bietet? Natürlich nicht! Aber warum setzen dann so viele Projekte nur ein Framework für ihre Persistenzschicht ein? Die Folgen findet man dann auf Stack Overflow und Reddit oder hört sie an der Kaffeemachine: Es wird diskutiert, was Framework X nicht kann und was andere besser machen. Mit einer gut gewählten Kombination von Frameworks ließen sich die meisten Probleme und der damit verbundene Frust vermeiden. Wie in einem gut eingespielten Entwicklerteam gleichen die Frameworks dann ihre Schwächen gegenseitig aus, und man hat für jede Aufgabe eine gute Lösung zur Verfügung. Hibernate, jOOQ und Flyway sind ein perfektes Beispiel für eine solche Kombination. Mit ihnen erhält man eine gute Lösung für die Verwaltung von Datenbankschemata (Flyway), die Implementierung von Schreib- und einfachen Leseoperationen (Hibernate) und die Erstellung komplexer und z. T. datenbankspezifischer Abfragen (jOOQ).In diesem Vortrag werde ich die Stärken dieser drei Frameworks kurz vorstellen und zeigen, wie sie sich miteinander integrieren und verwenden lassen.
Der Betrieb einer Microservices- und/oder einer Containerinfrastruktur birgt im Logging - gelinde gesagt - Herausforderungen. Die Infrastruktur ist volatil, das Debugging einer Benutzersession über Logfiles eines einzigen Servers ist nicht mehr möglich. Eine zentrale Logging-Infrastruktur zum Einsammeln, Verarbeiten und Speichern von Logs muss her. Allerdings ist eine solche zentrale Logging-Infrastruktur nicht mit einer "Shared Nothing"-Architektur kompatibel. Konsequenterweise muss dort jedes Team seine eigene Logging-Infrastruktur betreiben. Doch dazu fehlen den meisten Teams Zeit und Wissen, weshalb der Architekturansatz hier bricht. Am Beispiel von Shopping24 zeigt dieser Talk, wie wir die Herausforderung mit Methoden der Softwareentwicklung gemeistert haben. Gemeinsam werden Schnittstellen definiert, es wird eine Default-Logging-Implementierung bereitgestellt, und die Teams können diese Implementierung nach Bedarf erweitern. Mit ein wenig Governance können wir dann sicherstellen, dass die Teams untereinander von neuen Features und Versionen profitieren.
"Ein Bild sagt mehr als 1 000 Worte" heißt es im Volksmund. In Zeiten der Digitalisierung könnte man diese Weisheit umformulieren: Eine Visualisierung sagt mehr als 1 000 Datenpunkte. Denn die menschliche Wahrnehmung kann die Fülle an Informationen, die besonders Sensoren im Millisekundentakt liefern, nicht schnell genug aufnehmen und verarbeiten, um daraus sinnvolle Handlungen abzuleiten.
Visualisierungen bieten hier eine gewinnbringende Hilfe, um die Aufmerksamkeit des Nutzers auf die entscheidenden Punkte zu lenken. Doch wie kommt man zu so einem Dashboard, das Daten visuell ansprechend darstellt und darüber hinaus ohne großen Aufwand konfigurierbar ist? Und was ist beim Aufbau zu beachten, damit die relevanten Informationen vom Nutzer schnell verarbeitet werden können?
Dieser Vortrag zeigt den Weg von der Erstellung einzelner Visualisierungen hin zu einem einsatzfähigen und flexiblen Dashboard. Dabei wird aufgezeigt, wie Datenmengen so aufbereitet werden können, dass daraus Geschäftsentscheidungen direkt abgeleitet werden können. Zudem werden verschiedenen Dashboardlösungen anhand ausgewählter Kriterien evaluiert, um dem Zuhörer zu ermöglichen, eigene, kostengünstige Dashboards zu erstellen. Basierend darauf wird gezeigt, wie eine solche Dashboardlösung hinsichtlich Datenquellen, Inhalt und Styling an die eigenen Bedürfnisse angepasst werden kann. Hierdurch wird dem Dashboardbenutzer ermöglicht, selbstständig datengetriebene Entscheidungen zu treffen.
Serverless Technologien bieten eine Vielzahl von Vorteilen bei der Entwicklung von Cloud-nativen Anwendungen und versprechen, z. B. unendliche Skalierbarkeit, geringe Latenz und niedrigere Kosten. Wir entwickeln und betreiben seit Jahren den Serverless Dienst "IBM Cloud Functions" und bedienen kritische Anwendungen von Kunden unterschiedlichster Industrien rund um den Globus. In diesem Vortrag wollen wir erläutern, warum Serverless eine so zentrale Rolle spielt, wie unsere Kunden davon profitieren und was es bedeutet einen Serverless Service in der Public Cloud zu betreiben. Dazu werden wir die Technologie "Knative" genauer beleuchten und dessen Stärken und Schwächen diskutieren. Zudem werden wir einen Blick hinter die Kulissen werfen und zeigen, welche Aspekte man bei der Entwicklung und beim Betreiben eines Serverless Dienstes berücksichtigen muss und mit welchen Herausforderungen das Betreiben eines Service at Scale verbunden ist. Der Vortrag ist interessant für Entwickler, Operator und Business Owner.
Fast jede Organisation hat Softwaresysteme, die zwar nach der Jahrtausendwende entwickelt wurden, aber trotzdem schon als Legacy-Code gelten, weil keiner sie gerne wartet und weiterentwickelt. Der Code hat schlechte Qualität, ist komplex, verknäult und voller technischer Schulden. Mit Domain-driven Design haben wir ein Werkzeug an der Hand, um unsere Legacy-Codebasis Schritt für Schritt zu verbessern.
Nur neue Projekte können von Microservices profitieren? Nein, gerade das Ergänzen und Ablösen von Legacy-Systemen und Monolithen ist eine Stärke von Microservices. Dieser Vortrag zeigt, wie man die Vorteile des Microservices-Ansatzes nutzen kann, um vorhandene Systeme zu verbessern und so schnell die Vorteile auszunutzen, ohne gleich die gesamte Architektur zu ändern. Dabei zeigt die Präsentation zahlreiche verschiedene Ansätze für die Migration und Verbesserung auf.
Die Idee von Micro Frontends ist sehr verlockend: Anstatt eines großen monolithischen Clients erstellt man entsprechend der Microservices-Philosophie mehrere kleine und gut wartbare UIs. Doch wie lassen sich diese einzelnen Inseln mit einem integrierten UI präsentieren? Framework-unabhängige Web Components, die sich dynamisch laden lassen, ermöglichen hier gleich mehrere attraktive Lösungsansätze. Hier erfahren Sie, wie Sie diese Idee mit Angular Elements umsetzen können und wie Sie durch den Einsatz des neuen Ivy-Compilers praxistaugliche Bundlegrößen für Ihre Web Components erreichen. Darauf aufbauend besprechen wir mehrere Umsetzungsstrategien und diskutieren die Vor- und Nachteile. Am Ende sind Sie in der Lage, die einzelnen Optionen für Ihre Vorhaben zu bewerten.
TensorFlow ist Googles Framework für Neuronale Netzwerke und auch über die Grenzen von Google hinaus ein Standard. In Version 2 hat sich vor allem das Low-Level-API stark verbessert. Damit werden wir beginnen, um Neuronale Netze von Null auf zu verstehen, ohne eine Zeile Mathematik zu benötigen. Danach sehen wir uns dasselbe mit der High-Level-Keras-API an, die das gleiche tut, aber von den von uns vorher gemachten Schritten abstrahiert. Du lernst dabei
Architektur im Kontext digitaler Transformation kann auf zwei Ebenen betrachtet werden: Auf der Produktebene bestehen wiederverwendbare Bausteine, die Lösungen umsetzen. Auf der Landschaftsebene geht es darum, den Gesamtnutzen über alle Produkte hinweg zu verbessern.
Produkte sollen so autonom wie möglich gemanagt werden, aber ihr Lebenszyklus soll in die Landschaft eingebettet und von ihr unterstützt werden. Continuous Architecting bietet eine Perspektive und Hilfestellungen, wie Architektur über diese beiden Ebenen hinweg so praktiziert werden kann, dass das resultierende Ökosystem an Produkten eine schnell und ständig verbesserte Grundlage für digitale Transformation bietet.
In diesem Panel berichten die Teilnehmer von Ihren Erfahrungen bei der Einführung von DDD bei verschiedenen Kunden. In welcher Situation eignet sich welche Technik oder welche Strategie am besten? Wie überzeugt man Management, Architekten und Entwicklungsteam von DDD? Wie lange dauert es in welcher Situation, bis die Vorteile von DDD sichtbar werden, und welche Fallstricke sind dabei zu beachten? Welche Trends sind gerade in der Diskussion?
„Pacta sunt servanda“, oder zu deutsch „Verträge sind einzuhalten“: In einer Microservices-Architektur entstehen viele Services, die sich über Schnittstellen unterhalten. Um sicherzustellen, dass diese Kommunikation dauerhaft stabil funktioniert, werden Consumer-driven Contracts eingesetzt. Hierzu werden Verträge (Contracts) vom aufrufenden Service (Consumer) definiert, die von dem aufgerufenen Service (Provider) eingehalten werden müssen. Hier wird also das Prinzip der Provider-Contracts, wie z. B. Swagger/OpenAPI oder WSDL, umgedreht. Dieser Vortrag zeigt, wie man mit dem Pact Framework und dem zugehörigen Pact Broker eine Continuous Integration Pipeline aufsetzt, die sicherstellt, dass fehlerhafte Änderungen an Schnittstellen schnell erkannt werden und nicht im Produktivsystem landen. Und das, ohne die Contracts zwischen den Microservices-Teams manuell hin- und herzuschicken.
Flutter ist Google's neues Cross-Plattform Framework für die Mobile-App-Entwicklung. Es ermöglicht das Schreiben nativer Apps für iOS und Android auf Basis von Dart. Dies dürfte besonders JavaScript-Entwicklern den Einstieg erleichtern. Zudem bietet Flutter interessante Features, wie z. B. ein Hot-Reload-Verfahren, das direkte Änderungen der laufenden App ermöglicht. Jörg Neumann stellt das Framework vor und beleuchtet Stärken und Schwächen gegenüber anderen Cross-Plattform-Technologien.
Ticketsysteme, Versionskontrolle, automatische Builds und viele weitere Tools gehören fest zu den Best Practices bei der klassischen Softwareentwicklung. Kommt bei einem Projekt Machine Learning ins Spiel, kommen neue Anforderungen hinzu, die von den bisherigen Tools und Arbeitsweisen nur teilweise abgedeckt werden können. Um den Machine Learning Lifecycle besser unter Kontrolle zu bekommen, entstehen zurzeit viele neue Tools, die versprechen, die besonderen Arbeitsabläufe eines ML-Projekts zu unterstützen. Eines davon ist MLflow, das plattform- und bibliotheksunabhängig Lernergebnisse, gelernte Modelle und Projekt-Set-ups verwaltet. In diesem Vortrag werden die besonderen Herausforderungen von ML-Projekten gegenüber klassischer Softwareentwicklung erläutert und es wird gezeigt, wie man MLflow nutzen kann, um den ML-Workflow besser unter Kontrolle zu bekommen. Dabei wird der Fokus auf einen Einsatz von MLflow in einer JVM-Umgebung und JVM-Machine-Learning-Bibliotheken gelegt.
Hier zeigen wir, wie man eine klassische Java-Desktopanwendung (Swing, JavaFX) modernisieren kann, hin zu zeitgemäßen Bedien- und Gestaltungsmustern wie Googles Material Design und Microsofts UWP. Dazu besprechen wir die Modernisierungen des Anwendungsrahmens (Navigation, Inhalte, Kommandos), wichtiger Seitentypen (Übersicht, Suche, Ergebnis- und Arbeitslisten, Objektanzeige etc.) geräteunabhängiges Layout und die damit einhergehenden Anforderungen an die Formulargestaltung und den Formularbau. Mit vielen Screenshots aus Überarbeitungen verdeutlichen wir die Umstellungen und ihre Alternativen.
Im Jahr 2005 war Google Maps noch wahlweise pure Magie oder arkane Geheimwissenschaft. Heute jedoch sind (fast) alle Rätsel gelöst und als Open-Source-Komponenten verfügbar. Freemium-Dienste aus der Cloud liefern passgenaue Geodaten, sodass man auch für hochaufgelöste Karten kein eigenes Data Center mehr benötigt. Kurzum: jeder kann heute Geofunktionalität in seine eigene Website integrieren, und in diesem Vortrag erkläre ich, wie. Dabei fangen wir im 16. Jahrhundert an und klopfen die Erde sukzessive flacher, bis wir dank euklidischer Geometrie genauso schnell (und ungenau) wie Google rechnen können. Anschließend machen wir den Planeten wieder rund und schauen, was PostGIS mit dem Datentyp Geography bietet. Im praktischen Teil bringen wir dann die wesentlichen Features eines geografischen Informationssystems (GIS) zusammen: Mapping, Geocoding, Reverse Geocoding, Routing und Spatial Functions. Mit dem PoHL-Stack (PostGIS, Hibernate Spatial, Leaflet) bauen wir ein System, das 2005 sicherlich pure Magie gewesen wäre, heute aber den Stand der Technik verkörpert und morgen vielleicht schon zum Basiswissen des umtriebigen Entwicklers gehört.
Mittlerweile werden in fast jedem Softwareprojekt APIs zur Verfügung gestellt und natürlich versucht jeder, seine APIs semantisch zu versionieren und abwärtskompatibel zu pflegen. Wie schwer das allerdings in der Praxis wirklich ist und welche Fallstricke dabei entstehen, zeigt der Vortrag am konkreten Beispiel. Zusätzlich werden notwendige technische und organisatorische Begleitmaßnahmen für die erfolgreiche API-Entwicklung und Wartung vorgestellt.
Niemand wartet gerne. Schon gar nicht auf einen Server, der mal wieder zu langsam ist. Am wenigsten Ihre Kunden. Doch was können Sie tun, wenn technisch keine Verbesserung in Sicht ist? Könnten Sie Ihre Applikation nicht einfach schneller erscheinen lassen als sie wirklich ist und obendrein die Wartezeit noch geschickt zu Ihren Gunsten nutzen?
Dieser Vortrag taucht ein in die menschliche Wahrnehmung und unsere unbewussten Annahmen, die wir über den Zustand der Welt treffen. Dabei lernen Sie, Fortschrittsanzeigen richtig einzusetzen und Wartezeiten geschickt zur Kundenbindung zu nutzen. Mittels Animationen, Content Placeholdern und Optimistic-UI-Elementen werden wir die Aufmerksamkeit so lenken, dass ein angenehmes Benutzererlebnis entsteht. So werden Wartezeiten nicht mehr als solche wahrgenommen und Ihre Nutzer behalten Sie positiv in Erinnerung.
Domain-driven Design ist ein Denkmuster, bei dem die Bedürfnisse der Kunden an oberster Stelle stehen. Beim Entwurf mit DDD liegt der Fokus auf der Fachsprache und der soziotechnischen Strukturierung der Fachlichkeit. Das Ergebnis dieser Entwürfe findet derzeit häufig Anwendung im Backend von Softwaresystemen und es scheinen Methoden zu fehlen, um das Domänenmodell und die Vorteile semantischer Codes in die Benutzeroberfläche zu übertragen.
In diesem Vortrag lernen Sie eine Reihe erprobter Praktiken und Muster kennen, aus denen Sie wählen können, wenn Sie Ihr UI entwickeln. Zudem erfahren Sie, wie diese Muster mit den bereits vorhandenen Architekturen und Mustern des DDD verbunden sind. Werden Sie ein wahrhafter Full Stack Domain-driven Designer!
Das Zerlegen einer monolithischen Altanwendung in eine Menge nach Subdomänen geschnittener Microservices mit gleichzeitiger Einführung einer private Cloud und DevOps ist technisch und organisatorisch anspruchsvoll. Die größte Herausforderung in einem aktuellen Projekt war allerdings, dass parallel zur Neuentwicklung des Anwendungssystems die Prozesse neu modelliert bzw. dokumentiert wurden.
Nicht nur, dass die technisch veraltete Altanwendung mit der Untersuchung der Prozesse, deren Modellierung in BPMN und der Diskussion mit den Anwendern, auf einmal auch fachlich nicht mehr zur Zieldomäne passte. Vielmehr ließen sich oftmals die von der zuständigen Abteilung modellierten Prozesse nicht unmodifiziert in einer Workflow-Engine ausführen.
Wir geben Beispiele für nicht ausführbare BPMN-Modelle und erläutern Lösungsansätze der Entwickler, die auf eine Modifizierung der BPMN-Modelle verzichten, sich aber u. U. von den parallel modifizierten Prozessen weg entwickeln können. Wir begründen, warum wir diese als architektonische Schulden betrachten, die wie die BPMN-Workflows im Rahmen von Refactorings regelmäßig überarbeitet werden müssen.
Ein Microservice kommt selten allein – und genau da liegt das Problem. Um an Ende nicht im Chaos zu versinken, benötigt auch eine Microservices-basierte Anwendung eine Architektur und die Verwendung von Patterns. Der Hands-on-Workshop stellt sich praxisnah den wesentlichen Herausforderungen auf dem Weg hin zu Microservices und zeigt passende Lösungsansätze und Best Practices. Am Ende steht eine flexible Architektur, die allen Herausforderungen gewachsen ist.
Erfahren Sie in diesem Workshop, welche Building Blocks Angular für Ihre erfolgreichen Projekte bietet. Lernen Sie dabei, wie Sie aus Java bekannte Konzepte wie Komponenten, Datenbindung und Dependency Injection mit Angular umsetzen und wie Sie dank TypeScript Klassen sowie statische Typisierung nutzen können. Ihr Workshoptrainer ist Manfred Steyer, Trusted Collaborator im Angular Team sowie Google Developer Expert. Er berät Firmen im gesamten deutschen Sprachraum, ist Autor zahlreicher Bücher und Sprecher auf einschlägigen Fachkonferenzen.
Wie überwacht man seine Betriebsumgebung und seine Anwendungen? Wie wende ich Monitoring-Prinzipien wie RED (Rate, Errors, Duration) und USE (Utilization, Saturation, Errors) an? Was sind die “Golden Signals” meiner Betriebsumgebung, wie verwalte ich Anwendungs- und Zugriffslogs für eine eventuelle Root-Cause-Analysis?
In diesem Workshop zeigen wir die Bausteine einer modernen Open Source Monitoring- und Observability-Infrastruktur (u.a. Filebeat, Logstash, Graylog, Elastic, Prometheus, Grafana). Wir zeigen auch neue (z.B. Loki) und alternative (z.B. Kibana) Lösungen. Jeder Teilnehmer startet mit einem eigenen, leeren Kubernetes Cluster und erweitert Schritt für Schritt die Monitoring-Infrastruktur. Wir testen unser Monitoring an typischen Spring-Boot-Anwendungen oder einem WordPress-Blog. Gemeinsam erarbeiten wir Monitoring-Strategien für Anwendungen, Ingresse und die gesamte Container-Betriebsumgebung.