Java-EE-Anwendungen lassen sich sehr schnell entwickeln, einfacher sogar als im Standalone-Umfeld. Und esoterische Frameworks werden nicht benötigt: Der Standardstack reicht für serverseitige Anwendungen vollkommen aus. Wir bauen in diesem Workshop eine durchgängige Beispielanwendung auf und nutzen dazu JPA, CDI, JAX-RS als Backend sowie Angular im Browser. Je nach Wunsch der Teilnehmer gehen wir am Ende auf weitere Teile der Plattform wie JSF, Timer oder Batch ein.Das Beispiel wird interaktiv entwickelt und steht allen Teilnehmern als Git Repository zum aktiven Mitmachen zur Verfügung. Benötigt wird nur ein Notebook mit Java 8, Maven, einer IDE mit Maven-Unterstützung und einem Java-EE-Server wie WildFly, Payara oder WebSphere LP. Details zur Vorbereitung stehen ab Mitte Oktober auf https://github.com/GEDOPLAN/javaee-ohne-ballast.
In diesem Workshop erfahren Sie von Manfred Steyer, Google Developer Expert und Microsoft MVP, alles, was Sie für den erfolgreichen Projektstart mit dem populären und weit verbreiteten Webframework Angular benötigen. Sie erfahren, auf welche Weise aus .NET bekannte Konzepte wie Komponenten oder Dependency Injection mit Angular umgesetzt werden und wie Sie dank TypeScript Klassen und eine statische Typisierung nutzen können. Zum Einstieg generiert Manfred mit dem Angular CLI eine bewährte Projektstruktur und entwickelt eine Komponente für einen ersten Anwendungsfall. Dabei zeigt er, wie Sie Web-APIs einbinden und was die Reactive Extensions for JavaScript (RxJS) damit zu tun haben. Anschließend geht er auf die verschiedenen Arten der Datenbindung ein und zeigt on the fly die Möglichkeiten von TypeScript auf. Danach erfahren Sie, wie man allgemeine Routen in Services auslagert und mit Dependency Injection die Flexibilität einer Anwendung steigert. Im Laufe der Zeit wird die Anwendung um zusätzliche Komponenten erweitert, anhand derer Manfred weitere Konzepte von Angular erklärt. Navigationsstrukturen werden mit dem Angular Router geschaffen, und zur Testautomatisierung kommt das Framework Jasmine zum Einsatz. Am Ende des Workshops liegt eine Angular-Anwendung vor, die alle wichtigen Konzepte enthält.
Alle reden von der Cloud, nur man selbst scheint noch meilenweit davon entfernt. Zu viele offene Fragen, zu wenig konkrete Antworten. Und genau das soll sich in diesem Workshop ändern. Gemeinsam nehmen wir uns ein typisches Anwendungsszenario aus dem Enterprise-Umfeld vor und migrieren es Schritt für Schritt in die Cloud. Beginnend bei der Plattforminfrastruktur (DB, Storage etc.) über Standardservices (User Management) bis hin zur anwendungsspezifischen Businesslogik. Am Ende steht eine rein Cloud-basierte Lösung und natürlich die Diskussion, ob wir es nicht evtl. ein wenig übertrieben haben. Denn nicht alles, was technologisch möglich ist, macht auch für jeden Kontext Sinn. Getreu dem Motto "mittendrin statt nur dabei" darf jeder auch gerne selber Hand anlegen.
Dieser Power Workshop gibt zunächst eine Einführung in Microservices und zeigt dann drei konkrete Möglichkeiten zur Umsetzung von Microservices nicht nur mit Java: REST Microservices mit Kubernetes, UI-Integration auf Client oder Service und asynchrone Microservices mit Kafka. Konkrete Codebeispiele illustrieren die Ansätze und können ein Startpunkt für eine eigene Umsetzung sein. Die Teilnehmer können anschließend Vor- und Nachteile abwägen und die Implementierung von Microservices mit diesen Ansätzen starten.
To make the complex, distributed and highly interconnected system landscapes of today robust, responsive and highly available, we need to implement resilience into them at application level.Many patterns for implementing resilience into an application exist. The daunting questions are how to slice (design) an application and which patterns to pick and combine in order to match your specific needs best.This workshop will address those questions in three parts:* In the first part you will learn about the challenges how to design applications in a resilient way, get an overview about the resilience pattern landscape, learn some of the most important patterns and when to apply them.* In the second part you will have the opportunity to apply the just learned contents to a real-life case study and design and discuss your own resilient solution.* In the last part we will complete the workshop with a peek in some complementing topics, like some advanced patterns, a resilient design cycle and how to introduce the topic into the software development process.After this workshop, you will have a much deeper understanding how to design solutions that satisfy your specific robustness needs
In den Zeiten von Microservices wird klar, wie wichtig Domain-driven Design (DDD) nach wie vor ist. Denn nur mit strategischem Design (also DDD im Großen) und dem Aufteilen der Domäne in Bounded Contexts kann ein sinnvoller Schnitt für die Microservices gefunden werden. Aber auch taktisches Design (also DDD im Kleinen) mit der Ubiquitous Language und den "Building Blocks" Entities, Value Objects, Aggregates, Services und Co. hat nichts an Aktualität verloren. In diesem Workshop nehmen wir uns einen Tag Zeit, um DDD näher anzuschauen. Der Workshop besteht aus abwechselnd Vortrag, Diskussion und Übungen.
Begrüßung und Einführung in den Agile Day.
Softwareentwicklung und Integration von Software in vorhandene IT-Landschaften ist aufgrund der damit verbundenen Komplexität eine Expedition ins Ungewisse. Um diese Ungewissheit in den Griff zu bekommen, versuchen viele Organisationen mit einem Pflichtenheft vorab möglichst präzise zu beschreiben, was die gewünschte Software können und was sie als Festpreis kosten soll. Im behördlichen Umfeld ist die Vergabe ohne Pflichtenheft, Festpreis und präzisem Plan für die gesamte Projektlaufzeit häufig sogar undenkbar. Die Praxis zeigt, dass dieses Vorgehen regelmäßig scheitert: Anforderungen und Schnittstellen können im Vorweg nicht eindeutig, widerspruchsfrei und vollständig beschrieben werden. Innovative Systeme, die für die Organisation neu sind und ihre Prozesse verändern werden, können eigentlich nur agil und mit einem sich im Entwicklungsprozess verändernden Ziel entwickelt werden. Hält man sich sklavisch an das fixe Pflichtenheft, dann muss an der Software über lange Zeit nachgebessert werden. Viel Geld wird verschenkt und Innovationszyklen werden verpasst.Den Ausweg aus diesem Dilemma – das agile Pflichtenheft – haben wir in den vergangenen Jahren in verschiedenen Kundenprojekten erprobt. Ich berichte von unseren Erfahrungen der letzten Jahre und wie es uns gelungen ist, Festpreisprojekte mit Pflichtenheft und agilem Vorgehen zu verheiraten.
Sie wollen agil werden. Also benennen Sie die Rollen in Ihren Teams um, machen alle Meetings und Rituale, über die Sie im Scrum Guide gelesen haben, und machen Zwei-Wochen-Sprints.
Aber das ist nicht genug. Um wirklich agil zu werden - um schneller nützliche Software an echte Kunden zu liefern, und das zuverlässiger und mit weniger Risiko - müssen Sie in allem, was Sie tun, ausgesprochen gut werden.
In diesem Vortrag erkläre ich, warum "Excellence" in Produktmanagement, Entwicklung, Test und Operations notwendig ist, und wie sie dort hin kommen.
Unvollständige Anforderungen, zahlreiche technische Probleme, ein unrealistischer Zeitplan - wer kennt das nicht? Dabei soll es erstmal nicht um Softwareentwicklung gehen, sondern um das Apollo-Programm. Ohne dass je ein Amerikaner im Erdorbit war, sollte innerhalb von neun Jahren ein Mensch auf dem Mond landen. Unvorstellbar! Aber IT kann man nicht mit Raketentechnik vergleichen - oder doch? Wie sind die echten Raketentechniker mit Unklarheiten umgegangen? Wie haben die Teams aus Fehlern gelernt? Wie hat Mission Control für einen stabilen Ablauf gesorgt? Und vor allem: Welche Charakterköpfe haben das Projekt geleitet, und welche Ideen hatten sie über Teams und deren Führung? Dieser Blick über den Tellerrand zeigt, wo wir bei Agilität und DevOps auf dem richtigen Weg sind, warum manches auch mit einem agilen Vorgehen schwierig ist und wo wir noch ein paar gute Ideen für agile Teams, Leadership und Zusammenarbeit übernehmen können.
Zum Abschluss des Agile Days bietet sich Gelegenheit, mit den Sprechern des Agile Days zu diskutieren und die wichtigsten Fragestellungen, die sich im Laufe des Tages ergeben haben, zu vertiefen. 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 2017, führt in das Programm ein und gibt wichtige Hinweise zum Ablauf der Konferenz.
The world is changing fast. More precisely, the world is changing at increasing speed. This means things that were not possibly five years ago come into reach. Incumbent organizations need to adopt fast to keep up with new competitors that use new technologies easier, faster and better than they do. As a result, every aspect of software changes towards smaller. Smaller teams, less management, flatter organizations, shorter cycles and smaller components. During this energizing and fast-paced talk Sander discusses the Cynefin model, shows why software development goes so terribly wrong, how to move beyond Scrum and enterprise agile, why self-organization is not as easy as it looks like, why continuous delivery leads to not doing projects or estimates anymore and why microservices are hard, but essential as underlying foundation.
Was lange währt wird endlich gut: Java EE 8 ist da! Das neue Release bietet eine ganze Reihe
interessanter neuer Features und Weiterentwicklungen. In diesem Vortrag werden die wichtigsten
Neuigkeiten vorgestellt. Hierzu zählen u.a. JAX-RS 2.1 mit Support für Server-Sent Events
und einer neuen reaktiven Client API, das neue JSON Binding, Servlet 4.0 mit Support für HTTP/2
und Server Push, sowie CDI 2.0 mit zahlreichen Verbesserungen, insbesondere im Bereich der
CDI Events. Darüber hinaus werfen wir einen Blick in die Zukunft, also auf EE4J. Es wird
diskutiert, was die Weiterentwicklung der Plattform durch die Eclipse Foundation erwarten
lässt, und wie sich die MicroProfile Initiative zum Innovationsmotor entwickelt hat.
This talk shows how to productionize Deep Learning models built by data scientists – a key challenge in most companies. The first part introduces Deep Learning using open source frameworks like TensorFlow, Deeplearning4j or H2O. The second part shows how to deploy the built analytic models to mission-critical and scalable real time applications by leveraging Apache Kafka as streaming platform.
Everybody hates a lying hobbit... But are profilers broken or are we naive in our expectations? In this talk we will re-visit some broken assumptions and try and get to grips with the limitations of our tools. We'll cover:
— Fiction of instruction level profiling — Skid and PEBS
— Safepoint bias, theory and practice
— JMC blindspots, theory and practice
— Honest-Profiler vs. Async-Profiler
— Profilers vs. Inlining and Inlining vs. Programmer
— Profilers vs. Multi-threading
Sie glauben JavaFX wird nicht eingesetzt und ist irrelevant? Diese Session wird Sie vom Gegenteil überzeugen. Wir stellen Ihnen eine Vielzahl von Anwendungen aus Luftfahrt, Handel und Finanzwesen vor, die mit JavaFX entwickelt wurden und zumeist kritische Geschäftsprozesse abbilden.
Microservices haben etwas sehr verführerisches – sie versprechen, das Chaos in der IT zu bewältigen – und diesmal nicht mit den Mitteln aus der übergreifenden Enterprise- und Softwarearchitektur. Sie befreien die Microservices-Teams also von zentraler Kontrolle. In der Session wird aus der Praxis berichtet, dass und wie das funktioniert – und wann nicht, etwa, wenn das Prinzip einer engen Zusammenarbeit zwischen Fachseite und Entwicklern aufgrund von organisatorischen und kulturellen Gegebenheiten nicht realisierbar ist. Es wird ein Vorschlag abgeleitet, wie mit einem Minimalset an zentralen Standards – etwa für Logging und Sicherheit - maximale Autonomie im Team erreicht werden kann.
Viele Softwareanwendungen müssen in der Lage sein, eine große Anzahl an Nutzeranfragen zu verarbeiten. Mithilfe von Last- und Performancetests kann bereits in frühen Phasen der Softwareentwicklung sichergestellt werden, dass diese Anwendungen auch unter produktiver Last zuverlässig funktionieren. Jedoch sind Last- und Performancetests oft ein stiefmütterlich behandelter Bereich. In der Praxis gibt es vielerlei Gründe, weshalb diese Tests vernachlässigt werden - etwa weil nicht genügend Zeit im Releaseplan eingeplant wurde, weil die notwendigen finanziellen Ressourcen fehlen oder schlicht, weil das Thema Performance als unwichtig erachtet wird. Dabei ist die Performance einer Softwareanwendung ein entscheidender Faktor, der den Unterschied zwischen schnellen und langsamen Anfragen, zufriedenen und frustrierten Nutzern und somit zwischen Geschäftserfolg und -misserfolg ausmachen kann. Somit darf es keine Rechtfertigung geben, um auf Last- und Performancetests zu verzichten. Es ist notwendig, aber bitte richtig! Die Durchführung von Last- und Performancetests ist jedoch nicht einfach, da ein tief greifendes technisches und fachliches Verständnis über die Softwareanwendungen benötigt wird. Dieser Vortrag stellt die Herausforderungen dar, gibt Tipps, um sie zu adressieren und macht Tooling-Vorschläge aus dem Open-Source-Bereich. Erfahren Sie, wie Last- und Performancetests zielgerichtet und effektiv ausgeführt werden können, sodass Ihre Anwendung schnell ist, deren Nutzer zufrieden sind und Ihr Geschäft erfolgreich ist.
Die Softwareentwicklung mit Continuous Delivery macht es möglich, neue Technologien schnell und effizient in die Unternehmensprozesse zu integrieren. Grundlage dafür ist eine flexible, modulare Microservices-Architektur. Experten der Volkswagen Group IT entwickelten nach diesen Parametern die Lizenzmonitoringsoftware VWLIC. Im Vortrag erklärt Sebastian Bindick, welche Methoden zum Einsatz kamen, um dem Anwender in sehr kurzer Zeit ein erstes System zur Verfügung zu stellen. Er greift auf, welchen Stellenwert Test-driven Development für die Entwicklung der Software hat und welche Vorteile Microservices mit sich bringen.
Die Bundesagentur für Arbeit setzt für ihr Internetportal Mesosphere DC/OS als containerbasierte Platform as a Service (PaaS) für Microservices ein. Diese Lösung befindet sich seit 2017 im Produktionsbetrieb. Genügend Zeit also, um neben einer kurzen Vorstellung von DC/OS ein erstes Fazit zu ziehen und diese Erfahrungen zu teilen.
Erfüllte das Produkt die Erwartungen? Was zeichnet DC/OS im Vergleich zu ähnlichen Plattformen aus? Wie gestaltete sich die Integration in eine umfangreiche bestehende Infrastruktur? Welche Besonderheiten und Stolpersteine traten im Entwicklungs- und Produktionsbetrieb auf?
Diese und viele andere Fragen werden in dem Vortrag aus den verschiedenen Perspektiven von Architektur, Softwareentwicklung, Projekt und Betrieb beleuchtet.
Der Java-Enterprise-Standard Java EE scheint weder für Microservices-basierte Architekturen noch für die Cloud wirklich gut geeignet zu sein - so zumindest die landläufige Meinung. Zu komplex die Fülle der APIs, zu schwergewichtig die Runtime namens Application Server. Was aber bedeutet das für die vielen, vielen Teams, die seit Jahren entsprechende Erfahrungen aufgebaut haben? Gibt es für sie noch Hoffnung, ihr Expertenwissen auch in zukünftigen Projekten weiter nutzen zu können. Die Session zeigt, wie auch Java-EE-Teams problemlos in die Wunderwelt der Microservices und Cloud eintauchen können, ohne dabei auf ihre jahrelange Enterprise-Erfahrung verzichten zu müssen. Natürlich wartet die eine oder andere Herausforderung, aber ohne wäre es ja auch langweilig.
Outfittery's mission is to provide relevant fashion to men. In the past it was our stylists that put together the best outfits for our customers. But since about a year ago we started to rely more on intelligent algorithms to augment our human experts. This transition to become a data driven company has left its marks on our IT landscape: In the beginning we just did simple A/B tests. Then we wanted to use more complex logic so we added a generic data enrichment layer.Later we also provided easy configurability to steer processes.And this in turn enabled us to orchestrate our machine learning algorithms as self contained Docker containers within a Kubernetes cluster. All in all it's a nice setup that we are pretty happy with.
It then really took us some time to realise that we actually had built a delivery platform to deliver just any pure function that our data scientists come up with - directly into our microservices landscape. We just now started to use it that way; we just put their R&D experiments directly into production... :-)
This talk will guide you through this journey, explain how this platform is built, and what we do with it.
W-JAX is bringing you some of the most cutting edge topics in development and architecture. Not only are you seeing changes in coding practices but you are seeing them throughout the entire application development, test, and deployment lifecycle. This keynote wants to try to address the business problems these innovations are trying alleviate and well as discuss some of the current trends in relation to containers and orchestration. The speaker will bring it all together looking at real world innovations on infrastructure, runtimes, collaboration platforms, and even team organization. Come for a thought provoking overview of where we are going in application development from soup to nuts with a demo or two to highlight what can be achieved today.
Artificial Intelligence (AI) and Machine Learning (ML) are all the rage right now. In this session, we'll be looking at engineering best practices that can be applied to ML, how ML research can be integrated with an agile development cycle, and how open ended research can be managed within project planning According to a recent Narrative Science survey, 38 per cent of enterprises surveyed were already using AI, with 62 per cent expecting to be using it by 2018. So it’s understandable that many companies might be feeling the pressure to invest in an AI strategy, before fully understanding what they are aiming to achieve, let alone how it might fit into a traditional engineering team or how they might get it to a production setting. At Basement Crowd we are currently taking a new product to market and trying to go from a simple idea to a production ML system. Along the way we have had to integrate open ended academic research tasks with our existing agile development process and project planning, as well as working out how to deliver the ML system to a production setting in a repeatable, robust way, with all the considerations expected from a normal software project.
Durch J(2)EE haben wir in der Vergangenheit verlernt, durchgängig objektorientiert zu denken. Viele Anwendungen nutzen anämische Fachobjekte und platzieren die Geschäftslogik in separate Services, was einen Bruch der Prinzipien der Objektorientierung darstellt. Kann man das denn mit Java EE richtig machen, lässt Java EE Domain-driven Design zu? Die Antwort ist ein klares "Ja", wenn man die ausgetretenen Pfade der massenhaften Tutorials verlässt. In dieser Session wird gezeigt, wie die Building Blocks des DDD auf Java-EE-Elemente abgebildet werden können, um übersichtliche und wartbare Anwendungen zu erhalten, die sich zudem leicht in lose gekoppelte Teile aufteilen lassen.
Es gibt kaum ein Thema, das im Enterprise-Umfeld so umstritten ist wie die Wahl des richtigen Webframeworks. Die perfekte Universallösung gibt es wie so oft nicht, und Unwissenheit über Vor- und Nachteile verschiedener Ansätze führt häufig zu folgenschweren Fehlentscheidungen. Dabei können oftmals einfache grundsätzliche Fragestellungen die Auswahl drastisch minimieren. Der Vortrag bietet einen praxisnahen Überblick zu existierenden Ansätzen für MVC-Webframeworks im Java-Umfeld (Component-oriented vs. Action-oriented) und beleuchtet zusätzlich ihre jeweiligen Vor- und Nachteile.
Static program analysis is the analysis of software at compile time without executing it. Static analyzers allow various actors of the Software Development Lifecycle to proactively detect software issues such as security vulnerabilities (e.g., SQL injections), and leaks of private information. However, in the Java world most of the commercial tools perform syntactic analyses providing superficial feedback and their use is often seen as “too much pain, too little gain“.
In this talk, we will discuss and demo various syntactic and semantic static analyses presenting different applications of these tools. We will explore the possibilities new techniques offer from the point of view of efficiency and precision, in particular when it comes to security vulnerability and data leakage detection. Finally, we will look into how these tools can be used to support IT teams’ efforts in complying with the new European GDPR regulation, effective in May 2018.
Angular verfolgt einen relativ klassischen MVC-Ansatz mit Two-Way Data Binding. Das erleichtert den Einstieg und ist für einfache Anwendungen ausreichend. Bei komplexer werdenden Anwendungen kann dieser Ansatz aber für Schwierigkeiten in der Nachvollziehbarkeit der Datenflüsse sorgen und damit die Wartbarkeit und Erweiterbarkeit beeinträchtigen. Eine Alternative dazu ist Redux, das sich in der React-Welt weitgehend durchgesetzt hat. Redux ist sowohl ein Pattern als auch eine Bibliothek, die auf Prinzipien der funktionalen Programmierung setzt, um den Zustand einer Anwendungung zu managen. Durch die Beschränkung auf unidirektionalen Datenfluss und die explizite Modellierung von Aktionen sorgt es nicht nur für ein besseres Verständnis der Abläufe in der App, sondern auch für eine saubere Trennung der einzelnen Aspekte und Zuständigkeiten. Redux ist aber nicht auf React beschränkt, sondern technologieneutral und lässt sich ebenfalls mit Angular einsetzen. Im Vortrag werden zunächst die Idee und Funktionsweise von Redux erklärt und es wird anschließend gezeigt, wie Redux mit Angular angewendet werden kann.
In Projekten wird auf die Leichtgewichtigkeit einer Technologie penibel geachtet, ohne zu erwähnen, wie die “Leichtgewichtigkeit” eigentlich definiert ist oder welchen funktionalen oder nicht funktionalen Mehrwert sie dem Kunden bringen soll.
Heavyweight Java-EE-Server werden durch leichtgewichtige Frameworks und Bibliotheken ersetzt. Sogar der Trend zu “do it yourself” ist wieder erkennbar.
In dieser Session werden der Memory Footprint, Deployment-Größe, Cloud-Fähigkeit und Deployment-Zeiten von Java-EE-Servern mit Plain-Java-SE-“Hello World”-Anwendungen verglichen und diskutiert. Fragen und Anmerkungen der Teilnehmer werden während der Session diskutiert.
Im Mai 2018 kommt die europäische Datenschutzgrundverordnung (DSGVO) zur Anwendung und löst damit das bis dahin geltende Bundesdatenschutzgesetz (BDSG) ab. Darauf sind Unternehmen kaum vorbereitet. Doch angesichts drastisch erhöhter Bußgelder und der bald in Kraft tretenden Änderungen besteht Handlungsbedarf. Der Vortrag leitet kurz in die bestehende Gesetzgebung ein, zeigt dann, wieso und in welchem Umfang die EU-Gesetzgebung in Deutschland greift, bietet daraufhin einen leicht verständlichen Überblick zu den Hintergründen und den Änderungen der DS-GVO und gibt schließlich praktische Tipps zu den Anforderungen in der alltäglichen Arbeit – auch und gerade mit externen Unternehmen und Freelancern -, für Einwilligungen, Onlinemarketing und die Auftragsverarbeitung. Wie betrifft mich die DS-GVO als Arbeitnehmer und Entwickler? Welche Rechte habe ich als Bürger? Ein aktiver Frage- und Antwortteil rundet den Talk ab.
In einem verteilten System hat man es mit vielen Schnittstellen zwischen einzelnen Komponenten zu
tun. Da sich diese Schnittstellen während der Entwicklung eines Systems durchaus ändern können, müssen Integrationstests her. Um die Integrationstests auszuführen, braucht man eine
Integrationsumgebung. Aber will man wirklich bei (fast) jedem CI-Build eine Integrationsumgebung mit dem aktuellen Stand aller Komponenten bespielen? Das passt nicht zusammen mit parallel arbeitenden Teams und Continuous Delivery. Zur Rettung kommen Consumer-driven Contracts. Beide Seiten einer Schnittstelle testen gegen einen Contract anstatt gegen einen echten Schnittstellenpartner. Dieser Vortrag stellt das Konzept der Consumer-driven Contracts vor, erläutert Vor- und Nachteile aus der Praxis und gibt einen praktischen Einstieg anhand lauffähigen Codes.
Nobody likes to wait for web pages to load in the browser. The longer it takes, the more dissatisfied the users become. Slow web pages lead to a higher bounce rate and the loss of customers. To solve this kind of problems can be very hard sometimes. Before you even start to optimise your page, you have to understand the workflows a browser performs in order to display a page on the screen. In this talk you will get some insights in the critical rendering path and the javascript engine of your browser that help you to find performance problems and solve them. I will show you also some tools and best practices that make your life easier when it comes to performance.
Frontends für operativ genutzte, umfangreiche, langlebige Geschäftsanwendungen: darum geht's! - Wir, eine Community mittelständischer Softwarehäuser, kamen von Swing, hielten uns eine Weile mit JavaFX auf - und wollten aber eigentlich immer direkt in den Browser hinein. Doch die Versuche scheiterten: Performanceprobleme, Kompatibilitätsprobleme und Layoutingprobleme trieben Entwicklungs- und Wartungskosten in die Höhe.Und dann schafften wir den Umschwung auf einmal doch - und schnell! Das Zauberwort hieß bei uns "RISC-HTML" und ist eine etwas andere Weise, mit dem Browser umzugehen als dies gewöhnliche HTML Frameworks tun. RISC-HTML verwendet vom Browser nur einige, wenige ultra-stabile Grundkomponenten und baut auf diesen die funktionalen Komponenten auf. Themen wir Browser-Kompatibilität, langfristige Robustheit und - das war eine Überraschung! - auch Performance werden deswegen architektonisch sauber gelöst.Erfahren Sie im Vortrag anhand einiger Live-Beispiele und Demos, was hinter RISC-HTML steckt und wie es sich mit anderen Frameworks vergleicht. - Lassen Sie sich überraschen!
Asynchrone Kommunikation zwischen Microservices führt zu einer losen Kopplung und zu besserer Resilience. Und Event Sourcing bietet sogar noch weitere Vorteile. Dieser Vortrag zeigt, wie asynchrone Microservices mit Kafka und Atom implementiert werden können und was es dabei zu beachten gilt.
Wer programmiert, leidet: Die Tipparbeit beim Programmieren muss der Mensch derzeit weitgehend selber machen. (Von den trivialen Codeschnipseln mal abgesehen, die Eclipse einem auf Knopfdruck hinwirft.) Das ist nicht nur viel Arbeit, sie ist auch ziemlich fehleranfällig. Moderne Typsysteme sind schon ziemlich gut dabei, einen auf Fehler hinzuweisen, das Programm korrektfrickeln muss man aber immer noch selber. Dabei ist doch das meiste Domänenwissen schon in den Typdefinitionen und -signaturen: Program by Design heißt das Zauberwort.
Mit noch ein bisschen mehr Spezifikation könnte doch der Computer den Code schreiben? Zukunftsmusik oder Irrsinn? Eine neue Generation von Programmiersprachen wie Agda und Idris mit dazu passenden IDEs setzt den alten Traum Schritt für Schritt um: Diese Werkzeuge werden langsam zu echten Partnern bei der Entwicklung. Das Programmieren macht da nicht nur mehr Freude, sondern senkt auch die Fehlerquote dramatisch. So können sich Entwickler auf die individuellen Aspekte der Software konzentrieren, anstatt wiederkehrende Patterns immer und immer wieder umzusetzen. Sie können damit ihre Aufmerksamkeit auf die Domäne und schlussendlich auf die Interaktion mit den Anwendern richten.
Diskutieren Sie mit den Sprechern des Java Enterprise Day die Gegenwart und Zukunft von Java Enterprise, was von den neuesten strategischen Entscheidungen von Oracle zu halten ist und welcher Einfluss nun durch die Eclipse Foundation zu erwarten ist und vieles weitere ...
Many big companies struggling with the new topics as automated delivery, automated testing, consolidating technologies on new platforms or setups. How do I start? How can I convince the upper management to do this step? Do I have a convincing enough business case?
But is it really required to do a big first step? The answer is no! In most of the cases it is way easier to divide the mission in several sub-steps, helping me validating the new approach and also giving the possibility to give feedback to the upper management on regular bases and getting their buy-in.
This procedure is shown on a real case where a Swiss banks development was moved to the public cloud.
Die ersten Projekte werfen Gewinne ab, das eigene Produkt ist als MVP verfügbar und die Nachfrage übersteigt die Kapazität. Ein Ende ist nicht in Sicht, und so läuft die Hiring-Maschine auf Hochtouren. Dass unter der Haube des Start-ups ein gewaltiger Umbruch bevorsteht, sieht man nicht nur an dem dringend nötigen Umzug aufgrund rar gewordener Arbeitsplätze. Doch wie viel Struktur und Prozess sind nötig, ohne die Agilität und die Identität der Firma zu riskieren? Und wo ist die Grenze, um die Belegschaft auf diesem Weg nicht zu verlieren? Dieser Vortrag beleuchtet mögliche nötige Schritte und Risiken, die ein Start-up in der Transition zur Professionalisierung beachten sollte.
Wer heutzutage professionelle Webanwendungen bauen will, kommt an JavaScript nicht vorbei. Für viele Nicht-JavaScript-Entwickler ist diese Vorstellung aber immer noch ein Graus, so kursieren immer noch Aussagen wie: JavaScript hat kein Typsystem, erlaubt kein Refactoring und ist unwartbar! Die durchschnittliche Lebensdauer eines JavaScript-Frameworks liegt unter zwei Tagen (außerdem gibt es viel zu viele davon!) und überhaupt: Warum ist "undefined not a function"?In dieser Session werden wir uns moderne JavaScript-Stacks ansehen, um zu überprüfen, wie viel von diesen Aussagen heutzutage noch stimmt, und eine Orientierung durch das auf den ersten Blick schier undurchschaubare JavaScript-Ökosystem zu bekommen. Damit es beim nächsten Projekt vielleicht heißt: "Hurra, ich darf JavaScript programmieren!"
Microservices stehen zurzeit hoch im Kurs. Durch bestechende Vorteile, wie z. B. bedarfsgerechte Skalierung und bessere Wartbarkeit, setzen immer mehr Firmen auf dieses Architekturmuster. Besonders erfolgreiche Umsetzungen der Webgiganten Netflix, Amazon und Twitter haben auch kleinere Unternehmen überzeugt.Dies sorgt dafür, dass die Anzahl der verfügbaren Microservices-Frameworks stetig steigt. Lagom, Micro und MSF4J sind nur ein paar der allein im Jahre 2016 erstmals veröffentlichten Frameworks. Sie bieten dabei immer neue Ansätze, wie z. B. reaktive Web Services, um gegebene Aufgaben besser zu lösen. Oder sie sind besonders leichtgewichtig und schnell, um die Effizienz weiter zu steigern.So bleibt den Softwarearchitekten die Qual der Wahl. Dank der losen Kopplung der Microservices kann für jeden kleinen Service ein eigenes Framework gewählt werden. Mit der Vielzahl an Frameworks lässt sich somit das beste Hilfsmittel für das gegebene Problem auswählen.Doch welches Framework ist das richtige, und wie lässt sich dies eindeutig feststellen? René Zarwel zeigt in seinem Vortrag, wie durch eine einfache Bewertungsmethode und klar definierte Anforderungen Ordnung in den Auswahlprozess gebracht werden kann. Dabei wird zuerst die Methode vorgestellt und anschließend an einem Beispiel näher erläutert. Hype oder etabliert, mit fundierten Kenntnissen steht dem Erfolg nichts im Weg.
Einsatzgebiete für leichtgewichtige Workflow-Engines oder Zustandsautomaten werden immer vielfältiger, entsprechend steigen die Anforderungen an deren Skalierbarkeit. Eine stetig steigende Anzahl an Nutzern, Systemen oder "Things" sorgt dafür, dass heutige Engine-Architekturen an ihre Grenzen stoßen, da sie auf Transaktionalität und relationale Datenbanken vertrauen.Über die letzten Jahre haben wir viele Aspekte einer "next generation engine" verprobt und inzwischen eine Engine als Open-Source-Projekt releast, die im Herz vollständig anders tickt. Im Vortrag möchte ich zeigen, wie eine solche Engine dank Event-Sourcing-Zustand aus einem Event-Stream ableitet und horizontale Skalierbarkeit erreicht. Persistenz ist beliebig austauschbar, sodass auch NoSQL möglich wird. Anhand konkreter Beispiele diskutiere ich Architekturoptionen und untermauere sie mit konkreten Codebeispielen. Ich zeige verschiedene Use Cases für "Flows" und wie sie sich entwicklerfreundlich auch ohne grafische Oberflächen definieren lassen. Ich grenze diese Lösung zu Netflix Orchestrator und AWS Step Functions ab und zeige, wie sich eine solche Technologie mit aktuellen Paradigmen wie z.B. Microservices verheiraten lässt.
Unterehmen verabschieden sich immer mehr von isolierten Datensätzen und wollen stark verknüpfte Informationen und Daten im Alltag nutzbar machen. Dies bedeutet den Einsatz von polyglotten Architekturen: klassische RDBMS-Technologie und Graphdatenbanken müssen gemeinsam eingesetzt werden, um vernetzte Daten in Echzeit in Betrieb nehmen zu können. In diesem Vortrag soll gezeigt werden, wie RDBMS und Graphen in unterschiedlichen Umgebungen koexistieren können und wie durch dieses Zusammenspiel aktuelle, aber auch zukünftige Fragestellungen gelöst werden können. Neben einem theoretischen Teil soll der Vortrag mit Beispielen und Case Studies von Unternehmen angereichert werden, die bereits heute Neo4j als Teil ihrer IT-Infrastruktur verwenden.
Software development would be so nice if we knew all requirements before we start a project. And of course they would never change. We could come up with a rock solid plan and would always deliver on time. But yeah, reality is different... We will practice how to react to new feature requests, changing requirements and shuffling priorities. We will see how to go fast by going slow, how to be ready when change comes, how IDEs can support us in that regard, and of course why good tests are indispensable in such a world.This workshop contains heavy portions of coding, so please bring a laptop with an installed IDE and an empty project with a failing unit test.
Bei der Entwicklung großer Enterprise-Anwendungen mit Angular kommen rasch einige Fragen auf: Wie kann die Anwendung in mehrere Module und npm-Pakete untergliedert werden? Wie können bestehende Identity-Lösungen, wie Active Directory, integriert und Single Sign-on realisiert werden? Wie kann die Performance beim Einsatz großer Clients sichergestellt werden, und wie hilft AOT, Tree Shaking und Lazy Loading dabei? Wie kann die Anwendung internationalisiert werden, und wie ist mit globalen Zuständen umzugehen? Soll das viel diskutierte Redux-Muster zum Verwalten globaler Zustände umgesetzt werden oder eignen sich andere Ansätze besser? Diese Session liefert anhand einiger Beispiele Antworten auf all diese Fragen.
Docker ist in aller Munde und wird gerne als Allheilösung für Deployment Probleme propagiert. Das führt zu der Annahme, automatisierte Deployments wären nur mit Docker möglich, obwohl Provisionierungswerkzeuge wie Ansible Lösungen außerhalb der Container-Welt anbieten. Deren Einsatz wird oft gar nicht in Betracht gezogen, weil irgendwann - in Ferner Zukunft - doch Docker im Unternehmen eingesetzt werden soll. Die Automatisierung wird immer weiter verschoben, weil der Aufwand in einem Schritt zu groß ist, obwohl Ansible mit wenig Mühe in der Gegenwart helfen könnte. Die Verwirrung wird dadurch vergrößert, dass die Einsatzszenarien von Provisionierungswerkzeugen und Container-Technologien fälschlicherweise vermischt und somit als Konkurrenz betrachtet werden. Dieser Vortrag erklärt anhand von Ansible und Docker worin sich ein Provisionierungswerkzeug von einer Container-Technologie unterscheidet. Es wird gezeigt, wie Ansible auf dem Weg zu einer Dockerisierung der Infrastruktur jetzt schon Probleme lösen kann und wie ein gemeinsamer Einsatz beider Technologien die Vorteile beider Welten kombiniert.
This session will explain how to build modern and scalable applications, while efficiently adding business value. With the right tools, technical decisions can be deferred and problems can be solved according to business needs instead. Payara Micro - an open source MicroProfile-compatible runtime - provides these tools in an easy-to-use package, allowing developers to focus on getting the job done. In addition, it can be connected using a standard API to Apache Kafka or Amazon SQS for high performance messaging.
In this talk, you’ll learn how to create an architecture around all these tools to get as much flexibility as possible and be ready to deploy your applications into cloud. During a live demonstration, you’ll see how a Java EE application can benefit from dynamic clustering, MicroProfile API, distributed configuration and scalable cache built into the Payara Micro runtime.
Auto-code generation is a very powerful tool that every software engineer should use. It avoids coding that tedious and repetitive boilerplate that nobody should ever have to write, primarily because it is usually uninteresting code and highly prone to error. This talk will briefly show the annotation processor. We will understand what are the annotation processors and their defined role and then focus on how to get started writing your own annotation processor to generate source code automatically, as well as how popular frameworks such as Dagger, Butterknife or such work in the background. Will help you simplify your code by pushing the burden of the boilerplate on automated tooling.
Plattformökonomie ohne APIs? Ohne APIs sind plattformbasierte Geschäftsmodelle nicht umsetzbar. Diese Session gibt eine Einführung in plattformbasierte Geschäftsmodelle sowie APIs und betrachtet in diesem Kontext APIs aus einer strategischen und geschäftlichen Perspektive. Außerdem werden Best Practices im Kontext API-Management geteilt und das API Business Design Canvas dargestellt. Angereichert wird diese Session mit Erfahrungen aus meinem Projektalltag.
Web- und Desktoptechnologien verschmelzen mehr und mehr. Dabei spielen Frameworks wie Angular eine große Rolle. Ihre durchdachten Konzepte ermöglichen es, komplexe und anspruchsvolle Oberflächen zu implementieren, die als Single Page Applications (SPA) bekannt sind. Von Hause aus werden diese SPAs jedoch von Webservern an die Nutzerbrowser ausgeliefert und benötigen zumindest initial eine Verbindung zum Server. Was kann man jedoch tun, wenn die Anwendung offlinefähig sein muss? Eine mögliche Lösung für das Problem ist Electron - ein Container, mit dem Desktopanwendungen auf der Basis von Webtechnologien entwickelt werden können. Die Session gibt eine kurze Einführung in Angular und zeigt, wie mithilfe von Electron eine Desktopanwendung mit Zugriff auf Betriebssystemfunktionen implementiert werden kann.
Wer sich die Mühe macht, bei der Softwareentwicklung auf die Sicherheit zu achten, sollte die Einhaltung möglichst aller Vorgaben und gleichzeitig die Sicherheit der gesamten Webanwendung beim Build soweit möglich automatisch überprüfen. Dafür steht eine ganze Reihe von Open-Source-Tools zur Verfügung, die etwa bei der Continuous Integration in Jenkins integriert werden können. Die Session stellt dazu einige Tools vor, mit denen sich Themen rund um die Sicherheit einer Webanwendung automatisiert prüfen lassen, und gibt Vorschläge für deren Konfiguration und Einsatz in Java-Entwicklungsprojekten.
Mit Microservices und noch mehr, dem Trend zu Serverless, bewegt sich die Welt auf ereignisgesteuerte Architekturen zu. Diese setzen sich aus global verteilten Services und inhaltlich sehr verschiedenartigen Systemen zusammen. Die Abwicklung kompletter Geschäftsfälle und End-to-End-Prozesse überschreitet dabei oft die Grenzen einzelner Services und stellt somit eine besondere Herausforderung dar. Ereignisgesteuerte Service-"Choreographien" sind zwar fundamental, um gut entkoppelte Systeme zu verwirklichen, komplexe "Ereignisketten" können jedoch neue Probleme verursachen. Ich möchte aufzeigen, warum "ereignisverliebte" Entwickler ihre Systeme nur allzu leicht stärker miteinander koppeln, als unbedingt nötig und warum es wichtig ist, Ereignisse am richtigen Punkt in Kommandos umzuwandeln. Weiters möchte ich besprechen, wie man einerseits vermeidet, den Überblick zu verlieren, und andererseits die Fachlichkeit der Aufgabenstellung entlang organisatorischer Strukturen so herunterbricht, dass der Gedanke der Decentral Governance von Microservices nicht unterlaufen wird. Schließlich möchte ich diskutieren, wie vorhandene Technologien dazu genutzt werden, die schwierigeren Aspekte langlaufender Services zu bewältigen, etwa die fachlich und technisch richtige Reaktion auf Fehler, den Umgang mit Time-outs und die Rückabwicklung bereits durchgeführter Schritte. Ich werde meine Praxiserfahrung kompakt zusammenfassen und mithilfe konkreter Codebeispiele alternative Wege illustrieren.
Flame Graphs provide a great visual of where 'time' is spent and in what context and can be powerful aids in performance analysis. Now that the JVM better supports the Linux perf profiler we can have mixed Java/JVM/Native/OS Flame Graph profiles to aid our performance investigations. This is a powerful tool, but the information it offers is often foreign to us.
In this talk we will explore the benefits of this new tool chain, explore the new data and its meaning, and see how the tool chain can be further expanded to the Java community benefit.
Das Ausführen mehrerer Microservices-Instanzen als Docker-Images oder in der Cloud ist aktuell weit verbreitet. Aber wie sieht es mit der Anwendungskonfiguration und den sensiblen Daten aus? Werden diese Daten mehrfach in lokalen Konfigurationsdateien abgelegt? Werden dabei die sensiblen Daten womöglich immer noch unverschlüsselt im Klartext gespeichert? Falls die Daten wie z. B. Passwörter verschlüsselt sind, wo wird dann der Schlüssel für deren Entschlüsselung gespeichert? Werden Datenbankzugangsdaten regelmäßig geändert?
In der Session von Andreas Falk wird gezeigt, wie man die Anwendungskonfiguration mit Spring Cloud Config auslagern und sensible Daten sicher mit dem kürzlich veröffentlichten Spring-Cloud-Vault-Config-Projekt speichern kann. Nach einer allgemeinen Einführung in das Projekt Vault wird dargestellt, wie Spring Cloud Vault Config die Integration von Vault in die Anwendung vereinfacht.
Nach dieser Session gibt es keine Ausreden mehr, Konfigurationen redundant immer wieder lokal abzulegen sowie sensible Daten unsicher zu verwalten.
Dazu gibt es natürlich begleitend entsprechende Livedemos, um die vorgestellten Konzepte in der Praxis zu zeigen.
Das Thema Authentifizierung und Autorisierung wirft immer wieder Fragen auf: Wie können sich Benutzer bei einer Angular-Anwendung anmelden, und wie können existierende Identity-Lösungen, wie Active Directory oder LDAP-Server, integriert werden? Wie werden Benutzersitzungen repräsentiert, und was ist zu machen, wenn eine Benutzersitzung abläuft? Wie kann eine Single Page Application im Namen des Benutzers auf das Backend zugreifen und dabei Single Sign-on realisiert werden? Diese Session präsentiert anhand einer Beispielanwendung einige Muster, die sich in der täglichen Arbeit bewährt haben, und Antworten auf diese Frage. Zusätzlich erfahren Sie, welche Vor- und Nachteile die einzelnen Ansätze bringen und wo eventuelle Gefahren lauern.
Im Jahr 2016 wurden bei der Bank11 die Systeme für die Finanzierungsabwicklung vollständig neu entwickelt. Durch eine sinnvolle Kombination von Technik und Methodik ist in kürzester Zeit eine Lösung entstanden, die Anwender begeistert und Wettbewerbsvorteile schafft. Im Zentrum steht eine moderne Architektur, die Prozesse, Services und Regeln vereint und die Menschen in den Mittelpunkt stellt. Die Session stellt die Architektur und Technologien vor und beleuchtet wichtige Designentscheidungen und Lösungsansätze aus der Praxis. Sie vermittelt, welchen konkreten Nutzen der zielgerichtete Einsatz aktueller Technologien und Methoden haben kann, und zeigt die Relevanz für den praktischen Einsatz.
Das automatisierte Konfigurieren von Servern ist dank Orchestrierungswerkzeuge wie Puppet und Chef heute kein Problem mehr. Doch eignen sich diese Werkzeuge wenig für die regelmäßige Softwareverteilung von typischen Java-Webapplikationen. Ansible hat dieses Problem erkannt und liefert Lösungen für das Konfigurationsmanagement und für die Softwareverteilung aus einer Hand. Diese Session erklärt am Beispiel einer Infrastruktur für eine Java-Webapplikation die Funktionsweise von Ansible. Dabei wird sowohl auf die Serverkonfiguration als auch auf das Deployment der Anwendung eingegangen. Zusätzlich wird gezeigt, warum Ansible vor allem für Entwickler interessant sein kann. Dabei wird beschrieben, wie Continuous Deployment auch in einer klassischen Unternehmungsstruktur umsetzbar ist.
In der Wertschöpfungskette der 1&1 Telecommunication SE kommen hoch automatisierte Prozesse zum Einsatz. Die Fachbereiche modellieren die Prozessabläufe standardisiert mit BPMN 2.0 und orchestrieren dabei eine Vielzahl unterschiedlicher Services. Die Prozesse werden in einem Workflow-Management-System technisch ausgeführt. Sowohl der hohe Automatisierungsgrad mit großem Datenaufkommen als auch die starke Verteilung der Service- und Prozesslandschaft sind Herausforderungen für die Überwachung der laufenden Geschäftsvorfälle.
Wir stellen eine Lösung zur Nachverfolgung, Messung und Überwachung betrieblicher Aktivitäten vor. Insbesondere gehen wir auf hilfreiche Business-Activity-Monitoring-Konzepte ein und erläutern unsere Anforderungen an ein geeignetes Überwachungssystem. Wir geben einen Überblick zur aktuellen Systemarchitektur und nennen wichtige Anwendungsfälle. Aufbauend auf den Grundlagen, zeigen wir die Realisierung ausgewählter Anwendungsfälle für die nachgelagerte Datenanalyse und das Monitoring, basierend auf technischen Werkzeugen wie ELK und Apache Spark.
In vielen Unternehmen ist man der Meinung, agil zu entwickeln und Kulturen bzw. Methoden wie DevOps und Scrum zu leben. Bei genauerer Betrachtung zeigt sich jedoch, dass es zur vollständigen Umsetzung der genannten Methoden noch an einigen Kleinigkeiten mangelt. Nicht selten ist dies die für Continuous Delivery notwendige vollständige technische Automatisierung des Deployment-Prozesses.
Im Vortrag wird anhand der Automic-internen Transformation aufgezeigt, welche Herausforderungen auf dem Weg zu Continuous Delivery auftreten können und welche Vorteile sich durch die Implementierung eines vollautomatischen Deployment-Prozesses, von der Entwicklung bis in die Produktion, ergeben.
KSQL is an open-source, Apache 2.0 licensed streaming SQL engine on top of Apache Kafka which aims to make stream processing available to everyone. This session introduces the concepts, architecture use cases and benefits of KSQL. A live demo shows how to setup and use KSQL quickly and easily on top of your Kafka ecosystem.
Oftmals sind unsere Anwendungen Teil des öffentlichen Internets, und wir wollen mit unserem Content, Shop oder Webanwendung von Kunden oder Interessenten gefunden werden. Dabei kümmern wir uns entweder selbst um das Thema Onlinemarketing, haben eine externe Agentur oder gar eine eigene interne komplette Abteilung dafür. Ich entdecke bei meinen Kunden und Partnern immer wieder dieselben Muster und Konflikte in Zusammenarbeit mit den Themen aus dem Onlinemarketing.
In meinem Vortrag geht es um diese Beobachtungen, Probleme, Ursachen und Lösungen. Dabei werden konkrete Implementierungen angerissen wie der "No-Index Feature Toggle", "Graceful degraded Dead Links" oder "Header-based A/B Testing".
Des Weiteren möchte ich unserer Java-Community zeigen, dass uns SPA oder Tools wie React zwar wunderbar bei der Umsetzung helfen, aber K.o.-Kriterien und Horrorszenarien für Google-Optimierungen werden können.
Mein Appell dabei an alle Architekten und Entwickler von öffentlichem Content ist es, onlinemarketingorientierte Architekturen zu entwerfen und entsprechende Konzepte umzusetzen.
Wer kennt das nicht: Über fünfzehn Jahre alter Java-Code, angewachsen auf mehrere Millionen LOCs und bei einer größeren Menge Kunden im operativen Einsatz. Eine ausreichende Testabdeckung sucht man vergeblich. Immer wieder stellt sich im Laufe eines Produktlebenszyklus die Frage, wie man dem Stand der Technik folgen kann, ohne auf der einen Seite alles wegzuwerfen und nicht mit einem großen neuen Projekt alles zu riskieren, und auf der anderen Seite nicht viel zu langsam zu modernisieren. In diesem Talk möchte ich Einblicke in die Strategien, Techniken, Tools und Patterns geben, die in dem aktuellen Projekt seit fast drei Jahren nun zum Einsatz kommen. Hierbei handelt es sich um ein Projekt mit mehreren Millionen LOCs, das als Produkt in mehreren Versicherungen zum Einsatz kommt.
Business Process Management: Ist das nicht der verstaubte Bruder von SOA und ESBs? Führen aktuelle Trends nicht zu reaktiven Microservices-Architekturen, die ohne BPM auskommen? Ist Orchestrierung nicht gar ein Antipattern? Oder ist es ganz anders und der Bedarf nach BPM steigt, um Ordnung in dieses Chaos zu bringen? Wie können wir zum Beispiel vermeiden, dass Fachabteilungen oder Businessanalysten das Handtuch werfen, wenn sich die IT mit resilienten und elastischen Systemen austobt, in denen aber nicht mehr erkennbar ist, wie Geschäftsprozesse "Ende zu Ende" ablaufen? Und kann moderne BPM-Technologie Entwicklern nicht auch bei handfesten Problemen helfen? Tools und Methoden haben doch eine große Reife erlangt. Was können wir davon weiter nutzen, und was sollten wir vielleicht bleiben lassen?
Im Fishbowl-Format diskutieren die Sprecher des BPM Days mit Ihnen, um zu klären, welche Zukunft BPM hat.
Through conversational experiences people can interact with applications easier than ever before. For developers this means they have to understand how to build these natural user interfaces in addition to browser interfaces and mobile apps. In this session we will demonstrate live how to develop a chatbot for Slack. Via Node.js and the open source project botkit we’ll connect to Slack’s WebSocket API. In order to define the conversation flow we’ll leverage intents, entities and dialogs from IBM Watson’s Conversation service.
Was tun, wenn der Chef ein Choleriker ist oder der Projektleiter immer einen Schuldigen sucht? Der Umgang mit schwierigen Kollegen und Vorgesetzten kann einem den Berufsalltag so richtig vermiesen, selbst wenn die Arbeit an sich Spaß macht. Wie reagiere ich auf die cholerischen Attacken meines Chefs, und wie neutralisiere ich Konflikte im Team? Deeskalation oder Hyperventilation? Welche Strategie führt zum Ziel, und wie sehen geeignete Maßnahmen aus? In gewohnt unterhaltsamer und informativer Manier lernen die Teilnehmer in dieser Session, wie man Konflikten im Team begegnet und zukünftig Eskalationen vermeidet.
Zurück in die Zukunft: Heute ist Pixelblockgrafik wieder in. Damals in den 80er-Jahren war es technisch State of the Art: die Zeiten, als PAL oder NTSC einen großen Unterschied machten, als PEEK and POKE alles andere war als ein Kartenspiel. Und als 3-Kanal-„Blech“-Sound sich anhörte wie eine himmlisch süße Arie. Wir reden von der Ära der 8-Bit-Computer und ihren Vertretern wie dem Commodore C64. In einer lockeren Night Session wollen Jörg Neumann und Christian Weyer Sie in eine niemals zu vergessende Zeit mitnehmen. Was die anderen „Retro“ nennen, ist faktisch eine Hommage an eine Epoche der maßgeblichen Beeinflussung einer gesamten Computergeneration und sogar einer gesamten Industrie. Die beiden BASTA!-Haudegen 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. wieder aufleben: Come and have some fun!
If you create software that is planned for continuous enhancements over several years then you'll need a sustainable strategy for code quality. Code coverage by automated tests is one important metric, and its value should equal 100 per cent at all times. This talk will show why this is so and how it can be achieved in real world software.
Mit dem Release 9 hat Java ein Modulsystem bekommen. Das Modulsystem hat zwei relevante Aspekte. Es bedeutet einerseits, dass das JDK selbst modular ist. Wir wollen u. a. der Frage nachgehen: Welche Konsequenzen hat das modulare JDK für unsere Java-Applikationen? Darüber hinaus bietet das Modulsystem die Möglichkeit, die eigenen Applikation oder Bibliotheken zu modularieren. Was muss man dafür tun? Wir schauen uns die Syntax und die Werkzeuge für die Definition eigener Module an und diskutieren den Migrationspfad von der nicht modularen zur modularen Anwendung.Bitte Notebooks mit JDK 9 mitbringen; wir wollen einige der Prinzipien an kleinen Beispielen üben und ausprobieren.
Wer kennt es nicht: Man hat eine schöne neue Bibliothek gefunden, die alle Probleme löst. Doch die Dokumentation lässt viele Fragen offen, wie sie benutzt wird. Oder was passiert, wenn ich diese oder jene Zeile in unserem Projekt ändere? Und was für ein Ergebnis gibt mir nochmal "Hallo Welt".substring(3,6) zurück? Während man so darüber nachdenkt, schaut man neidisch zu seinem Scala/Clojure/Haskell-Kollegen rüber, der diese Fragen in sekundenschnelle in seiner REPL ausprobiert. Mit Java 9 hält endlich auch eine REPL namens JShell Einzug ins Java-Universum. In diesem Vortrag werde ich zeigen, was JShell kann und wie es an vielen Stellen den Alltag als Java-Entwickler verbessern kann.
Drei Jahre nach dem letzten Major-Release erschien im Spätsommer 2017 die fünfte Generation des Applikationsframeworks Spring. Der Vortrag gibt einen Überblick über die wesentlichen Neuerungen: Updates bzgl. Infrastruktur und Abhängigkeiten, neue Containerfeatures sowie das reaktive Webframework WebFlux. Weiterhin werfen wir einen Blick auf die Integration mit Ökosystemprojekten und wie sich diese Neuerungen in Spring Boot 2.0 niederschlagen.
Scala hat sich hinter Java als Sprache Nummer Zwei auf der JVM etabliert. Populäre Frameworks wie Spark, Kafka, Flink sind in Scala geschrieben, Firmen wie SAP und IBM bekennen sich zu Scala und unterstützen öffentlich das Scala Center. Und als wären das nicht genug Gründe, sich den aktuellen Stand der Scala-Entwicklung anzusehen, scheinen einige geplante neue Java-Features Scala als Blaupause zu haben (z.B. Data Classes, Pattern Matching usw.) - ein genauerer Blick auf Scala ist also vielleicht auch ein Blick auf die Zukunft von Java. Am Anfang steht die Bestandsaufnahme: Scala 2.12. Die aktuelle Scala-Version ist das "Scala für Java 8" - wie sieht es mit der Interoperabilität von Scala und Java 8 aus? Und wie groß sind eigentlich noch die Unterschiede, wo doch Java mit Lambdas nun auch "Higher Order Functions" kennt? Davon ausgehend der Überblick über einige interessante, aktuelle Projekte in der Scala-Welt: Scala.js, Scala Native und Metaprogrammierung mit Scalameta.Schließlich der Blick in die nahe Zukunft: Was ist geplant für Scala 2.13, und was verrät uns Martin Oderskys Forschungsprojekt "Dotty" über Scala 3.0?
Web-APIs sind allgegenwärtig und haben sich als Mittel zur Systemintegration in der Breite durchgesetzt – nicht zuletzt auch deshalb, weil sie als leichtgewichtig und einfach umsetzbar gelten. Doch ist es wirklich so einfach? Spätestens beim ersten größeren Projekteinsatz wird deutlich, dass eine Reihe von Herausforderungen zu meistern ist. Wie geht man mit vorübergehend nicht erreichbaren Endpunkten um? Bietet SSL in allen Umgebungen ausreichende Sicherheit? Wer kümmert sich um ungültig werdende Zertifikate? Und wie setzt man langlaufende Prozesse am besten um? Dieser Talk liefert zahlreiche Tipps aus dem Projektalltag.
Serverless Architekturen basieren auf Function-as-a-Service-Angeboten, wie zum Beispiel AWS Lambda, welche den Kleber für Serverless Ressourcen darstellen. Genauer gesagt ist AWS Lambda eine elegante und skalierbare Lösung für die Verarbeitung von Events in der Cloud. Geeignete Beispiele sind die Analyse von eingehenden E-Mails und das Konvertieren von Dateiuploads in andere Formate. In Kombination mit serverless API Gateways eignet sich AWS Lambda auch für den Betrieb von HTTP-basierten APIs.
Aus Entwicklerperspektive sollten Serverless Architekturen einfacher zu ändern sein, da das Pflegen der zugrundeliegenden Infrastruktur entfällt. Hierbei wird häufig übersehen, dass Serverless Applikationen meist mehrere Cloud-Dienste und zahlreiche Cloud-Ressourcen umfassen und daher eine manuelle Konfiguration dieser stark fehleranfällig ist. Dem neuesten Stand der Technik entsprechend ist die Lösung für dieses Problem Continuous Integration/Delivery (CI/CD). Jedoch lassen sich etablierte Praktiken und Tools für CD-Pipelines nicht auf natürliche Art auf Serverless Architekturen anwenden und schaffen hierdurch neue Herausforderungen.
Wir zeigen Lösungen für die bei der Entwicklung von Serverless Anwendungen zwangsläufig auftretenden Probleme auf. Hierbei diskutieren wir Methoden, etablierte Praktiken und Tools für die Realisierung von Serverless CI/CD-Pipelines für AWS Lambda und verwandte Dienste. Demonstriert werden diese anhand einer Single Page-Applikation, welche ausschließlich auf Serverless Technologien basiert.
Reaktive Anwendungen verlagern Verantwortlichkeiten in Richtung einer Streaming-orientierten Ausführung. Reaktive Programmiermodelle erlauben somit die vorhandenen Ressourcen, wie Speicher und CPU, effizienter zu nutzen. Dieser Talk konzentriert sich auf die geänderte Perspektive der Ausführung mit Fokus auf Project Reactor. Wir schauen uns detailliert eine Applikation an, die durchgängig reaktiv ist: vom Datenzugriff mit Spring Data bis hin zum Weblayer mit Spring Web Flux.
Most nontrivial software systems suffer from significant levels of technical and architectural debt. This leads to exponentially increasing cost of change, which is not sustainable for a longer period of time. The single best thing you can do to counter this problem is to carefully manage and control the dependencies among the different elements and components of a software system. This session will first look at the major reasons why so many systems end up in an unmaintainable state and then look at different strategies for better code-organization. We will first consider module systems like Java 9 or OSGI. Then we will look a new innovative domain specific language to describe software architecture that allows to define an enforceable architectural blueprint for any software system. As a takeaway you will understand the limitations of module systems used for architectural purposes.
Currently the technology market around the so called “blockchain technology” has reached a new hype-cycle high. New platforms, cryptocurrencies, token sales and “innovative products” make it into the media every other week. During the last twelve month several products evolved on the blockchain market. Some of those products are based on smart contracts, some of those products are platforms with underlying cryptocurrencies. There are token sales as well as new protocols that will disrupt the market. Many people jumped on the hype train and invested into some of those platforms, currencies and products – often without actually knowing what is really behind and what risks are to bare.
Alle großen Player im Java-Enterprise-Umfeld und darüber hinaus bieten inzwischen Cloud-Angebote. Am bekanntesten ist hier sicherlich das Angebot von Amazon AWS. Weitaus weniger bekannt ist das relativ neue Cloud-Angebot der Wolfram Development Platform. Dieser Platform liegt die Wolfram Language zugrunde, eine Verallgemeinerung der ursprünglich primär für mathematische Anwendungen entworfenen Programmiersprache Mathematica. Die Wolfram Development Platform bietet einerseits notebookzentrierte Entwicklung gegen eine lokale Engine. Andererseits können fast beliebige Funktionen sehr einfach als Webservice deployt und in der Cloud ausgeführt werden. Als extremes Beispiel lässt sich ein nicht trivialer Service inklusive Cloud-Deployment in einer einzigen Zeile aufschreiben. Hier sind bei allen Unterschieden deutliche Parallelen etwa zu Amazon Lambda oder anderen Serverless-Plattformen zu erkennen. An allgemeinen Vorteilen lassen sich die elegante zugrunde liegende Wolfram Language mit funktionalen und symbolischen Sprachelementen und die riesige Standardbibliothek mit unzähligen Funktionen sowie einer großen Anzahl unterstützer Import- und Exportformate nennen. Hauptnachteil ist sicherlich das Closed-Source-Modell und die damit einhergehende restriktive Lizenzierung. Viele Arten von Services oder Anwendungen - insbesondere im Bereich traditioneller Geschäfts- und Persistenzlogik - lassen sich sicherlich weiterhin am besten mit einer Java-Enterprise-Lösung umsetzen. Für stark algorithmische bzw. berechnungslastige Web Services und für Rapid Prototyping fast beliebiger Services ist die Wolfram-Cloud schon heute eine interessante Alternative.
Mit dem Oracle-Java-SE-Advanced-Featureset wurden Werkzeuge zum unternehmensweiten Java-Management bereitgestellt. Der Werkzeugkoffer beinhaltet Diagnose- und Monitoringtools für Java-Laufzeitumgebungen. Java Mission Control ist ein etabliertes Werkzeug für Monitoring, Profiling und Diagnose der eigenen Java-Anwendung bis zum Applikationsserver. Als Bundle mit der HotSpot Java Virtual Machine ist Java Mission Control als Client- oder als Eclipse-Version verfügbar. Java Mission Control basiert auf dem Eclipse RCP und besteht aus zwei Komponenten, der Managementkonsole und dem Java Flight Recorder. Tatsächlich ist dieses Werkzeug mit einem echten Flugdatenschreiber vergleichbar, wie man ihn im Flugzeug findet. Die auf ihm gespeicherten Informationen werden wichtig, wenn etwas schief gelaufen ist, und so ist es auch beim Java Flight Recorder. Hier finden sich kontinuierlich aufgezeichnete Informationen darüber, was auf der Java Virtual Machine passiert ist, wenn ein Fehler auftrat. Das Werkzeug ist im Oracle JDK enthalten und kann mit beliebigen Java-Anwendungen und Applikationsservern von der Entwicklung bis zum produktiven Betrieb verwendet werden. Die einheitliche Datenbasis vom Java Flight Recorder ermöglicht Administratoren und Entwicklern, gemeinsam an Problemlösungen zu arbeiten und Konflikte besser und schneller bewältigen zu können.
Die Notwendigkeit der Authentisierung und Autorisierung der Nutzer eines Anwendungssystems steht außer Frage und wird durch moderne Standards hinreichend unterstützt. In einer Microservices-Architektur besteht allerdings zusätzlich Bedarf, die Schnittstelle jedes einzelnen Service abzusichern, um den Zugriff auf die zur Verfügung gestellten Ressourcen zu beschränken. Serviceaufrufe können dabei im Rahmen einer Session eines am System angemeldeten Benutzers erfolgen, viel häufiger werden sie aber asynchron und ohne Nutzeridentität (z.B. gesteuert durch Workflowsysteme oder ETL-Tools) ausgelöst. Dabei legt nicht der Betrieb fest, welcher Service durch wen aufgerufen werden kann, vielmehr definiert der Entwickler einer Schnittstelle, ob und worauf ein Klient zugreifen darf. Die Mechanismen wie tokenbasierte Identitätsprüfung und Autorisierung sollten dabei durchgängig verwendet und zentral bereitgestellt werden. Begleiten Sie mich bei der Einführung einer Sicherheitsarchitektur im Rahmen der Ablösung eines Monolithen durch Microservices.
Wie schütze ich meinen Java-Bytecode vor unerwünschten Manipulationen, Reverse Engineering und Dekompilierung? Diese Frage stellen sich mittlerweile immer mehr Java-Entwickler. Denn die JVM-Spezifikation liefert alle nötigen Informationen, um Java-Bytecode in den ursprünglichen Sourcecode zurückzuentwickeln. Kennen Sie JD-GUI, JAD oder auch andere Java Decompiler? Erfahren Sie, wie Sie diesen Tools effektiv entgegenwirken.
You have heard and seen great things about Spring cloud and you decide it is time to dive in and try it out yourself. You fire up your browser head to Google and land on the Spring Cloud homepage. Then it hits you, where do you begin? What does each of these projects do? Do you need to use all of them or can you be selective? The number of projects under the Spring Cloud umbrella has grown immensely over the past couple of years and if you are a newcomer to the Spring Cloud ecosystem it can be quite daunting to sift through the projects to find what you need. By the end of this talk, you will leave with a solid understanding of the Spring Cloud projects, how to use them to build cloud-native apps, and the confidence to get started!
Wie bitte? Microsofts Azure-Cloud auf der W-JAX? Ja, in der Tat. Denn nicht immer muss oder soll es AWS oder GCP sein. Azure bietet mittlerweile eine holistische Plattform für so gut wie jede Cloud-Anforderung an. Auch und vor allem in den Bereichen Cloud-native und Serverless Functions investiert Microsoft sehr viel. In dieser Session zeigt Christian Weyer neben den Grundlagen vor allem typische Anwendungsszenarien für Azure Functions. Der Fokus soll dabei auf eventgetriebenen Integrationslösungen und Workflowszenarien liegen - hier bedarf es nicht immer Unmengen von Code, um ans Ziel zu kommen. Lehnen Sie sich also zurück und sehen Sie "die andere Cloud" in Action. Keine Angst vor Azure!
Die neue JShell in Java 9 macht Spaß. Man kann damit einfache Ausdrücke testen, oder Softwarebibliotheken ausprobieren. In dieser Session lernen Sie, was man darüber hinaus noch Alles damit anstellen kann. Sie lernen zum Beispiel, wie man die JShell API in einer eigenen Anwendung nutzen kann. Mit der richtigen Strategie wird die JShell sogar zum interaktiven Debugging Tool, das sich per Java Agent mit einer laufenden Anwendung verbindet, sodass Sie diese live analysieren und manipulieren können.
Was haben Bootstrap, Foundation oder Material Design gemeinsam? Richtig, sie bieten ein Framework, um unsere HTML5-Anwendung “entwicklerhübsch” darzustellen. Werden auf dieser Basis UI-Komponenten entwickelt, sind sie meist stark mit Konzept und Design des Frameworks verwoben. Eigene, oftmals durch Corporate Identity vorgegebene UI-Semantiken, Bedienkonzepte und Designkonzepte lassen sich nur schwer mit einem bestehenden Framework verheiraten. Die Portier- und Wiederverwendbarkeit leiden darunter. Doch moderne Konzepte, wie Web Components, Shadow DOM und Custom-HTML-Elemente können helfen, eigene wiederverwendbare und gutaussehende UI-Komponenten zu entwickeln. In dieser Session wollen Jörg Neumann und Manuel Rauber ein Konzept zur Entwicklung von Web Components mit dem Angular-Komponentenmodell vorstellen und zeigen, mit welchem Workflow man vom Design bis hin zur stylisch umgesetzten App kommt.
Nach der Freigabe des JDK-9-Release steht die Praxistauglichkeit für die Entwickler im Vordergrund. Das Oracle JDK 9 enthält mehr als neunzig technische Merkmale, und der Schwerpunkt von JDK 9 liegt bei der neuen Java-Plattformmodularisierung mit dem Projekt Jigsaw. Über die JDK-Enhancement-Vorschläge JEP 200 (modulares JDK), JEP 201 (modularer Sourcecode) und JEP 220 (modulare Laufzeit-Images) gelangen die technischen Vorschläge ins JDK 9. Der JSR 376 (Java Platform Module System) schafft die Grundlage für die Referenzimplementierung vom OpenJDK-Projekt Jigsaw. Diese Veränderungen lassen es zu, mit dem JDK 9 die gewünschte technische Paketierung von ausgewählter Java-Funktionalität selbst zu bestimmen. Das Projekt Jigsaw hat die primäre Aufgabe, das Design und die Implementierung eines Standardmodulsystems für die Java-Plattform und für das JDK 9 bereitzustellen. Dabei soll die durchgängige, dynamische und einfache Anpassbarkeit der Java-SE-Plattform und dem JDK auch für kleine Endgeräte berücksichtigt werden sowie die Verbesserung von Sicherheit und Wartbarkeit von Java-SE-Plattformimplementierungen, speziell vom JDK, verwirklicht werden. Im Vortrag werden Demobeispiele gezeigt, die eine Erstellung von individueller Java Runtime mit Anwendung anhand der JDK-9-Werkzeuge verdeutlichen, inbesondere mit jlink.
Visuelle Regressionstests sollen es dem Softwareentwickler erleichtern, im Web-Frontend-Bereich sichere Aussagen zur Qualität der entwickelten Anwendungen zu geben. Dabei werden Screenshots von Benutzeroberflächen gemacht und diese mit einem vorhandenen Referenzsatz verglichen. Auf diese Weise können CSS- und Templateregressionen erkannt werden, die mit DOM-basierten E2E-Tests nicht zu erkennen sind. Dazu zählen beispielsweise ungewollte Überschreibungen von CSS-Klassen oder Grafiken, die versehentlich nicht mehr sichtbar sind. Damit schließt dieses Testverfahren eine Lücke in der Reihe automatisierter Softwaretests. Mühselige manuelle Testaufwände werden so reduziert und Probleme DOM-basierter E2E-Tests überwunden. Was visuelle Regressionstests (VRT) in der Praxis leisten können, warum sie bisher nur vergleichsweise wenig Verbreitung finden und ob sie tatsächlich DOM-basierte E2E-Tests ersetzen können, soll diese Session versuchen zu klären.
In diesem Workshop werden wir eine kleine, aber vollständige Webapplikation entwickeln. Der Client basiert auf Angular (aktuelle Version), TypeScript und ein wenig Bootstrap. Der Server basiert auf Spring Boot, verwenden werden wir außerdem Spring Data/REST/HATEOAS. Wir werden also RESTful Web Services entwickeln, die um Hypermedia angereichert sind. Dabei wird Kai Tödter die Grundlagen von Spring Boot und den verwendeten Frameworks und auch die generellen Prinzipien von REST und HATEOAS (Hypermedia as the Engine of Application State, ein wichtiges REST-Architekturprinzip) erklären. Für die Cliententwicklung gibt Kai eine Einführung in Angular, TypeScript und die gängigen JavaScript-Entwicklungstools wie npm, Jasmine, webpack etc.
In diesem Hands-on-Workshop greifen wir gemeinsam eine Trainingswebanwendung an, um Schritt für Schritt die Rolle eines Pentesters einzunehmen. Sie lernen anhand zahlreicher Praxisübungen den Umgang mit professionellen Securitywerkzeugen sowie die allgemeine Vorgehensweise von Pentestern bei Angriffen auf Webanwendungen. Selbstverständlich werden wir uns auch um Abwehrmaßnahmen zur Absicherung der gefundenen Lücken kümmern, im Vordergrund steht jedoch der gezielte Umgang mit professionellen Angriffswerkzeugen zur (teilautomatischen) Durchführung einer Sicherheitsanalyse. Nach dem Workshop verfügen Sie über praktische Erfahrungen zur Angriffsdurchführung auf Webanwendungen, die Sie im Rahmen Ihrer eigenen Softwareentwicklung umsetzen können, um die Sicherheit Ihrer Projekte nachhaltig zu erhöhen.
Wenn es um die Entwicklung zeitgemäßer Webanwendungen geht, fällt die Wahl mittlerweile immer häufiger auf die JavaScript Bibliothek React, die unter anderem auch von Facebook, Netflix und Twitter verwendet wird.In diesem Workshop lernen Sie, wie Sie mit React moderne Webanwendungen bauen können. Dazu werden wir gemeinsam Schritt für Schritt eine Beispielanwendung entwickeln, an Hand derer wir uns neben den React-Grundlagen auch ansehen, wie Sie z.B. REST-Aufrufe an ein Backend machen. Um Ansprüchen an Langlebigkeit, Entwicklungskomfort und Wartbarkeit gerecht zu werden, nutzen wir zur Entwicklung der Anwendung die Programmiersprache TypeScript. Voraussetzung für die Teilnahme an dem Workshop sind JavaScript-Kenntnisse. Die für React notwendigen neueren JavaScript- und TypeScript-Features werde ich Ihnen in dem Workshop Schritt für Schritt vermitteln.Zur Teilnahme an den Übungen ist ein Notebook erforderlich, auf dem Git, die LTS-Version von Node.js und eine IDE (z.B. Visual Studio Code oder WebStorm) installiert sind.
Von Docker hat sicher jeder Entwickler schon einmal gehört. Doch Container allein reichen nicht aus, um komplexe Anwendungen containerbasiert in Produktion zu bringen. Load Balancing, Fehlertorleranz, Continuous Integration und Delivery, Logging/Monitoring sowie Releasemanagement sind einige weitere wichtige Bereiche, um erfolgreich Softwareprodukte auszurollen.
Kubernetes hilft in vielen Bereichen, diese Ziele und Aufgaben zu meistern. Dabei kommen weitere Begriffe und Konzepte zum Einsatz, die den Bereich der Container in die Cloud übergeben und es erlauben, aus vielen „kleinen“ Hosts einen einzelnen großen Host zu modellieren, der dann von vielen Automatismen profitiert. Aber auch Kubernetes ist lediglich ein Stück Technologie, das die Grundlage für weitere Themen, wie die Unterstützung der entsprechenden Release- und Entwicklungsprozesse vereinfachen soll.
Für den allumfassenden Blick auf das DevOps-Thema kommt schlussendlich noch OpenShift von Red Hat ins Spiel. Hier können alle zuvor genannten Aspekte zusammengeführt und genutzt werden.