Codineers Meetup Oktober 2022, Dirk Kröhan, (Software-Architekt bei QAware in Mainz.)
== Dokument bitte herunterladen, falls unscharf! Please download slides if blurred! ==
Abstract:
Wie baue ich eine Spring Boot library?
Viele unserer Projekte setzen Spring Boot als Application-Framework ein. In größeren Projekte spielen Cross-Cutting-Concerns wie z.B. Observability, OpenAPI Spec, etc. eine wichtige Rolle. Wäre es da nicht praktisch, wenn man einfach eine Library einbinden könnte und alles funktioniert auf magische Art und Weise ohne eine weitere Zeile Code? Genau darum geht es in diesem Talk!
Wir zeigen euch wie man eine Spring Boot Library erstellt, die den Best Practices folgt und unsere Erfahrungen aus dem SVH Projekt widerspiegeln. Wir beginnen ganz am Anfang und zeigen Beispiele mit Live Coding, um uns immer weiter einzugraben in Themen wie Spring (Auto)Configuration und ConfigurationProperties, Projektstruktur und Testbarkeit.
CloudLand 2023, Juni 2023, Sascha Böhme, QAware
Ein System wird heutzutage üblicherweise in Microservices geschnitten, die jedes für sich genommen ein alleinstehendes Projekt bilden.
Wie schafft man es, dass sich ein Entwickler in einem Microservice sofort zuhause fühlt, ohne ihn vorher je gesehen zu haben? Wie schafft man es, dass alle Microservices die gleiche Grundstruktur behalten und warum sollte man das überhaupt wollen? Wie vermeidet man Divergenzen in Setup und Struktur, während unterschiedliche Teams an den Microservices arbeiten? Wie setzt man schnell einen neuen Microservice auf, der in seinem Aufbau den bestehenden ähnelt?Wir wollen zeigen, welche Vorteile Templates für die Entwicklung von Microservices haben und welche Methoden in diesem Kontext nützlich sind. Dies ergänzen wir mit weiteren Tools, um das Setup für alle Entwickler gleichermaßen zu erleichtern und zu beschleunigen.
Das Build-Tool Apache Maven hält zunehmend Einzug in Projekte. Es ist aber mehr als "nur" ein Build-Tool. In seinem Vortrag „Automatischer Build mit Maven“ stellt Stefan Scheidt Maven vor und beleuchtet einige fortgeschrittene Themen.
JCON 2017, Düsseldorf: Vortrag von Sonja Wittke (Senior Softwareingenieurin bei QAware).
Abstract: In vielen Projekten ist Maven als Buildtool gesetzt. Entwicklungsteam und Kunde sind daran gewöhnt, die Buildinfrastruktur ist aufgesetzt, alles läuft stabil. Es gibt keinen offensichtlichen Grund, etwas daran zu ändern. Trotzdem haben wir den Build für eines unserer Kunden-Projekte auf Gradle umgestellt, planen die Umstellung weiterer Builds, und setzen für neue Projekte ausschließlich Gradle ein. In diesem Vortrag beschreiben wir, warum wir uns für den Einsatz von Gradle stark gemacht haben, und zeigen dabei die wesentlichen Vorteile und Features. Aus unserer täglichen Arbeit liefern wir faire Vergleichszahlen zwischen Maven und Gradle. Wir zeigen außerdem, was wir bei der Migration richtig, aber auch was wir falsch gemacht haben, und wie wir die Migration unserer weiteren Projekte angehen wollen.
Nur wenn Softwaretests einfach durchzuführen sind, werden sie im Projekt auch wirklich eingesetzt und verhelfen zu mehr Softwarequalität. Idealerweise geschieht dies automatisiert.
CloudLand 2023, Juni 2023, Sascha Böhme, QAware
Ein System wird heutzutage üblicherweise in Microservices geschnitten, die jedes für sich genommen ein alleinstehendes Projekt bilden.
Wie schafft man es, dass sich ein Entwickler in einem Microservice sofort zuhause fühlt, ohne ihn vorher je gesehen zu haben? Wie schafft man es, dass alle Microservices die gleiche Grundstruktur behalten und warum sollte man das überhaupt wollen? Wie vermeidet man Divergenzen in Setup und Struktur, während unterschiedliche Teams an den Microservices arbeiten? Wie setzt man schnell einen neuen Microservice auf, der in seinem Aufbau den bestehenden ähnelt?Wir wollen zeigen, welche Vorteile Templates für die Entwicklung von Microservices haben und welche Methoden in diesem Kontext nützlich sind. Dies ergänzen wir mit weiteren Tools, um das Setup für alle Entwickler gleichermaßen zu erleichtern und zu beschleunigen.
Das Build-Tool Apache Maven hält zunehmend Einzug in Projekte. Es ist aber mehr als "nur" ein Build-Tool. In seinem Vortrag „Automatischer Build mit Maven“ stellt Stefan Scheidt Maven vor und beleuchtet einige fortgeschrittene Themen.
JCON 2017, Düsseldorf: Vortrag von Sonja Wittke (Senior Softwareingenieurin bei QAware).
Abstract: In vielen Projekten ist Maven als Buildtool gesetzt. Entwicklungsteam und Kunde sind daran gewöhnt, die Buildinfrastruktur ist aufgesetzt, alles läuft stabil. Es gibt keinen offensichtlichen Grund, etwas daran zu ändern. Trotzdem haben wir den Build für eines unserer Kunden-Projekte auf Gradle umgestellt, planen die Umstellung weiterer Builds, und setzen für neue Projekte ausschließlich Gradle ein. In diesem Vortrag beschreiben wir, warum wir uns für den Einsatz von Gradle stark gemacht haben, und zeigen dabei die wesentlichen Vorteile und Features. Aus unserer täglichen Arbeit liefern wir faire Vergleichszahlen zwischen Maven und Gradle. Wir zeigen außerdem, was wir bei der Migration richtig, aber auch was wir falsch gemacht haben, und wie wir die Migration unserer weiteren Projekte angehen wollen.
Nur wenn Softwaretests einfach durchzuführen sind, werden sie im Projekt auch wirklich eingesetzt und verhelfen zu mehr Softwarequalität. Idealerweise geschieht dies automatisiert.
Agile Oracle database modeling and development - APEX Connect 2020Torsten Kleiber
We try to develop our features agile in branches and to merge them when they are ready for use.
Test Driven Development is on everyone's lips in Java and other languages.
Whether we develop ADF or JET or Spring, we try to apply these techniques in many places.
But what is the real foundation of most of our applications?
That is the Oracle database with its data model and its programming language PL/SQL!
Again and again you hear that merging data model scripts and PL/SQL programs are not practical.
But how are we supposed to develop our frontend according to these techniques if we don't start with it in the backend?
In the presentation I will show you how you can develop your data model and your programs in the database in an agile and test-driven way from the request to the refactoring.
You will see how tools like Git, Liquibase and utPLSQL work together.
Webcast Nr. 3 - Java Entwicklung mit der SAP Cloud PlatformPatric Dahse
Bei der Entwicklung von Cloud-Anwendungen gilt es eine Vielzahl unterschiedlicher Werkzeuge zu verstehen, die sich in den vergangenen Jahren zu einem De-Facto Standard entwickelt haben. Im zweiten Teil unserer vierteiligen Webinar-Serie zeigen wir Ihnen, welche dieser Werkzeuge typischerweise zum Einsatz kommen.
Melden Sie sich gleich zu unserem nächsten Webinar an: https://attendee.gotowebinar.com/register/7160045394797243907
Mit ChatGPT Dinosaurier besiegen - Möglichkeiten und Grenzen von LLM für die ...QAware GmbH
Generative AI for Developers, 27.05.2024, Bonn (Martin Binder, Lead IT Consultant bei QAware)
Die kritische Infrastruktur wird nach wie vor von Dinosauriersystemen aus dem letzten Jahrtausend getragen. Die Ablösung dieser Altsysteme ist ein drängendes Problem der Digitalisierung in Deutschland. In meinem Projekt musste ich in wenigen Wochen ein 30 Jahre altes System auf Basis von IBM iSeries (AS/400) mit RPG-Code analysieren. Überraschenderweise kannte ChatGPT die RGP-Referenz von IBM. Mithilfe von ChatGPT konnte ich mich schnell einarbeiten und so ein brauchbares Arbeitsverständnis des Systems erreichen. Aber wo Licht ist, ist auch Schatten: ChatGPT hat kein Kontextverständnis, ist unvollständig und neigt zu Fehlschlüssen. Als Vorgeschmack hier der Powermove: ChatGPT nach jeder Antwort grundsätzlich danach fragen, was es falsch gemacht hat. Du wirst überrascht sein!
50 Shades of K8s Autoscaling #JavaLand24.pdfQAware GmbH
JavaLand 2024, April 2024, Mario-Leander Reimer
== Dokument bitte herunterladen, falls unscharf! Please download slides if blurred! ==
Abstract:
Elasticity and unlimited scalability are the holy grail for any cloud-native application. Now you might think: “That’s easy!!! I just run my containers on a Kubernetes cluster and I am done.” But is it really that simple?
Turns out it’s not! Your application as well as your cloud infrastructure and K8s cluster need to address and support these non-functional requirements.
This session will have a detailed and also practical look at the different ways of autoscaling in Kubernetes. We will give an overview of the technical foundations and prerequisites, and then showcase several frameworks and technologies that can be used to flexibly autoscale your cluster and your cloud-native workloads.
Agile Oracle database modeling and development - APEX Connect 2020Torsten Kleiber
We try to develop our features agile in branches and to merge them when they are ready for use.
Test Driven Development is on everyone's lips in Java and other languages.
Whether we develop ADF or JET or Spring, we try to apply these techniques in many places.
But what is the real foundation of most of our applications?
That is the Oracle database with its data model and its programming language PL/SQL!
Again and again you hear that merging data model scripts and PL/SQL programs are not practical.
But how are we supposed to develop our frontend according to these techniques if we don't start with it in the backend?
In the presentation I will show you how you can develop your data model and your programs in the database in an agile and test-driven way from the request to the refactoring.
You will see how tools like Git, Liquibase and utPLSQL work together.
Webcast Nr. 3 - Java Entwicklung mit der SAP Cloud PlatformPatric Dahse
Bei der Entwicklung von Cloud-Anwendungen gilt es eine Vielzahl unterschiedlicher Werkzeuge zu verstehen, die sich in den vergangenen Jahren zu einem De-Facto Standard entwickelt haben. Im zweiten Teil unserer vierteiligen Webinar-Serie zeigen wir Ihnen, welche dieser Werkzeuge typischerweise zum Einsatz kommen.
Melden Sie sich gleich zu unserem nächsten Webinar an: https://attendee.gotowebinar.com/register/7160045394797243907
Mit ChatGPT Dinosaurier besiegen - Möglichkeiten und Grenzen von LLM für die ...QAware GmbH
Generative AI for Developers, 27.05.2024, Bonn (Martin Binder, Lead IT Consultant bei QAware)
Die kritische Infrastruktur wird nach wie vor von Dinosauriersystemen aus dem letzten Jahrtausend getragen. Die Ablösung dieser Altsysteme ist ein drängendes Problem der Digitalisierung in Deutschland. In meinem Projekt musste ich in wenigen Wochen ein 30 Jahre altes System auf Basis von IBM iSeries (AS/400) mit RPG-Code analysieren. Überraschenderweise kannte ChatGPT die RGP-Referenz von IBM. Mithilfe von ChatGPT konnte ich mich schnell einarbeiten und so ein brauchbares Arbeitsverständnis des Systems erreichen. Aber wo Licht ist, ist auch Schatten: ChatGPT hat kein Kontextverständnis, ist unvollständig und neigt zu Fehlschlüssen. Als Vorgeschmack hier der Powermove: ChatGPT nach jeder Antwort grundsätzlich danach fragen, was es falsch gemacht hat. Du wirst überrascht sein!
50 Shades of K8s Autoscaling #JavaLand24.pdfQAware GmbH
JavaLand 2024, April 2024, Mario-Leander Reimer
== Dokument bitte herunterladen, falls unscharf! Please download slides if blurred! ==
Abstract:
Elasticity and unlimited scalability are the holy grail for any cloud-native application. Now you might think: “That’s easy!!! I just run my containers on a Kubernetes cluster and I am done.” But is it really that simple?
Turns out it’s not! Your application as well as your cloud infrastructure and K8s cluster need to address and support these non-functional requirements.
This session will have a detailed and also practical look at the different ways of autoscaling in Kubernetes. We will give an overview of the technical foundations and prerequisites, and then showcase several frameworks and technologies that can be used to flexibly autoscale your cluster and your cloud-native workloads.
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...QAware GmbH
GPM Regionalgruppe Chemnitz (Patrick Albert)
Wegen ihres Umfangs und Komplexität sind größere SAFe-Programme bereits in Präsenz hinsichtlich ihres Managements und ihrer Steuerung anspruchsvoll. Aufgrund von COVID19 jedoch war eine Verlegung in den virtuellen Raum im beschriebenen Praxisfall unausweichlich. Das Management hatte hierbei sicherzustellen, dass die Programmziele trotz des verminderten Kontaktes allen beteiligten Teams dauerhaft klar und präsent sind und dass die in den Teams umgesetzten Funktionen außerdem den genannten Programmzielen dienen.
Besonders wichtig ist dieses Alignment im Rahmen der regelmäßigen PI-Plannings, in welchen alle Teams gleichzeitig die jeweils kommenden Iterationen planen und dabei auch teamübergreifende Abhängigkeiten zuverlässig berücksichtigen müssen.
Es werden Erfolgsfaktoren für den virtuellen Einsatz von SAFe herausgearbeitet und beleuchtet.
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN MainzQAware GmbH
When it comes to the question: "Where do we actually store our application data?", we are spoilt for choice, especially when it comes to the major cloud providers.
The simple and often completely valid answer is still the classic relational database! It is very suitable for many areas of application, as the technology is tried and tested and can cover a very broad spectrum. It is therefore not surprising that all major cloud providers offer this as a "managed service".
For some years now, however, there have also been so-called cloud-native databases that have been specially developed for the requirements of the cloud. The big promise: "Infinite scalability"
In a large customer project, we have been using such a database productively for over 4 years with Azure CosmosDB. The presentation will deal with the following questions, among others
What does "upscalability" mean in practice ?
What do you have to pay attention to when designing?
What are the actual limits?
What other special features do I get?
When do I need a cloud-native database?
But that's not all! We also look beyond Azure to the other two major cloud providers: AWS and Google Cloud. With DynamoDB and Datastore/Firestore, they have similar products on offer.
Down the Ivory Tower towards Agile ArchitectureQAware GmbH
iSAQB Software Architecture Gathering – Digital 2023, November 2023
Architecture for agile projects must be defined and described differently, as well as continuously developed and evolved. Not all decisions are made at once, nor are they all known right from the start of the project. This sessions presents various useful and lightweight methods, tools and team topologies that can be applied in (large) agile projects to avoid uncontrolled growth and architectural erosion but without acting from the ivory tower and thus suffocating team autonomy.
"Mixed" Scrum-Teams – Die richtige Mischung macht's!QAware GmbH
IT-Tage 2023, Frankfurt am Main (Patrick Albert)
Die Rollen und insbesondere deren Zuständigkeiten sind in Scrum recht klar geregelt: Der Product Owner sorgt für das "Was", der Scrum Master für das "Wie" und die Developer für die eigentliche Umsetzung. Solange es sich dabei um ein internes Projekt mit einem komplett internen Team handelt, sind damit bereits die zentralen Fragen beantwortet. Ein wenig differenzierter zu betrachten sind allerdings Teams mit mehreren Parteien wie etwa beim Einsatz von Dienstleistern. Muss etwa zwingend der Kunde den Product Owner stellen oder kann dieser auch auf der Seite des Dienstleisters stehen? Falls alle Developer vom gleichen Dienstleister bereitgestellt werden, würde diese Konstellation sicherlich einige Kommunikationswege verkürzen. Allerdings hat ein Product Owner auf der Seite eines Dienstleisters sicher nicht die gleichen Verbindungen zu den Stakeholdern (Nutzer, Geldgeber, ...) des Produkts wie ein interner Product Owner – wie also könnte er ihre Anforderungen dann gut vor dem Team vertreten? Ähnliche Fragen stellen sich auch für den Scrum Master und das Development-Team. In den meisten Fällen gibt es für verschiedene Konstellationen jeweils Vor- und Nachteile – und zwar sowohl für den Kunden als auch für den Dienstleister. Wichtig bei der Entscheidung für eine dieser Konstellationen ist außerdem die Art des Projekts, der Kreis der Stakeholder, das zur Verfügung stehende Budget, der Zeitrahmen und noch einiges mehr.
Dieser Vortrag beleuchtet verschiedene dieser Varianten und zeigt Vorteile, Nachteile und Risiken auf.
Make Developers Fly: Principles for Platform EngineeringQAware GmbH
Make Developers Fly – Helping developers to build better applications
Cloud Native Night, Mainz, November 2023, Alex Krause
Platform Engineering is the next stage of DevOps and accelerates software developers even more to build applications faster and bring products rapidly to the customers. In this meetup, we show you the key principles of platform engineering, as we experienced them in our projects, and additionally show you a better way to manage your internal software platforms.
PRINCIPLES FOR PLATFORM ENGINEERING, Alex Krause
How do we help our developers to fly instead of crashing miserablely? The answer is Platform Engineering, a discipline for building internal developer platforms (IDPs) to simplify software delivery for product teams. In this talk, you'll learn how Platform Engineering evolved from the DevOps movement and what principles and best practices make for a good implementation. Finally, we'll take a look at reference architectures that can support your platform.
Der Tod der Testpyramide? – Frontend-Testing mit PlaywrightQAware GmbH
Codineers Rosenheim Meetup, 2. November 2023 (Dominik Haas, QAware)
Wer kennt es nicht: Langsame, instabile und wartungsintensive Tests von Frontends und die Schmerzen damit.
Aber in den letzten Jahren und Monaten hat sich hier viel getan und Playwright ist der vielversprechende neue Stern der Web-Automatisierung.
Ich werde in meinem Talk über das Testen von Frontends sprechen und speziell auf Playwright als spannendes Werkzeug eingehen.
Neben der praktischen Einführung möchte ich auch mit Euch über Best Practices sprechen und einen Versuch wagen die Testpyramide zu töten (oder sie zumindest etwas zu beschädigen).
Sie kennen doch bestimmt das "Gesetz des Instruments": Wer als Werkzeug nur ein modernes Frontend-Framework hat, löst jedes Problem mit einer Single Page-Applikation. So oder so ähnlich, nur halt mit Hammer und Nagel lautet es, beschreibt jedoch ganz gut die aktuelle Situation der JavaScript-Welt. Auf nahezu jede Anforderung wird mit einer aufgeblähten, clientseitig gerenderten SPA geantwortet. Doch ist es schön langsam an der Zeit, dass wir uns fragen sollten: Ist das wirklich alles? Und die Antwort lautet ziemlich sicher "Nein". Doch genau diesem Thema widmen wir uns und werfen einen Blick auf die Alternativen und da gibt es viele.
Im React-Ökosystem findet aktuell ein kleiner Umbruch statt. Mit Server Side Rendering, Static Site Generation, Server Components und Frameworks wie Next verschiebt sich ein Teil der Arbeit in Richtung Server. Dieser Trend ist auch bei Vue, Svelte und Angular zu beobachten. Und genau das ist es, was die sogenannten Meta-Frameworks ausmacht. Uns als EntwicklerInnen gibt das mehr Flexibilität, um auf Anforderungen reagieren zu können. Sie müssen nicht mehr den kompletten Quellcode zum Client übertragen, haben bessere Caching-Möglichkeiten und auch die Suchmaschinen sind Ihnen dankbar.
Dieser Vortrag gibt Ihnen einen Überblick über die wichtigsten Features von Meta-Frameworks und wo und vor allem wie sie gewinnbringend eingesetzt werden können.
Digital Future Congress (DFC) 2023, September 2023, München, Andreas Zitzelsberger (Business Unit Director bei QAware)
== Dokument bitte herunterladen, falls unscharf! Please download slides if blurred! ==
Alt-Systeme in die Cloud migrieren – mit sechs Leitplanken geht das effizient und sicher. Neu: Künstliche Intelligenz kann jetzt zum Turbo werden! Wir nutzen KI bei der Cloud-Migration und zeigen in diesem Vortrag, was geht und was nicht.
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...QAware GmbH
MedTech Stars, Webkonferenz, September 2023, Josef Adersberger (CEO bei QAware)
== Dokument bitte herunterladen, falls unscharf! Please download slides if blurred! ==
Der Vortrag „Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die Seele verkaufen oder Himmel auf Erden?“ erkundet das wachsende Bedürfnis und die Herausforderungen, medizinische Anwendungen in die Cloud zu migrieren.
Bei den entsprechenden Anwendungen stellt laut einer Umfrage der Datenschutz für 82% der Anwendungen die größte Herausforderung dar, um den Schritt in die Cloud zu machen. Trotzdem wächst der Druck, diesen Schritt zu vollziehen, aufgrund des Innovations- und Digitalisierungsbedarfs, der durch gesetzliche Initiativen wie das Krankenhaus-Zukunftsgesetz, gestiegene Patientenerwartungen und den immer klareren medizinischen Impact der Digitalisierung angetrieben wird.
Die zentrale Frage, die in diesem Vortrag erörtert wird, ist, wie man hochregulierte Anwendungen schrittweise in die Cloud migrieren kann. Hierzu werden wir einen Ansatz vorstellen und anhand von exemplarischen Anwendungen demonstrieren, wie eine solche Migration erfolgreich durchgeführt werden kann. Abschließend fassen wir den Vortrag mit fünf leitenden Prinzipien zusammen, die bei der Migration von stark regulierten Anwendungen in die Cloud beachtet werden sollten. Diese Prinzipien bieten einen nützlichen Leitfaden für Unternehmen und Institutionen, die den Umzug ihrer Anwendungen in die Cloud erwägen, und sollen dazu beitragen, die Herausforderungen der Cloud-Migration in diesem hochregulierten Bereich erfolgreich zu bewältigen.
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster QAware GmbH
SAA 2023 | Software Architecture Alliance, September 2023, München, Mario-Leander Reimer (@LeanderReimer, CTO bei QAware)
== Dokument bitte herunterladen, falls unscharf! Please download slides if blurred! ==
Die Cloud hat bereits heute einen größeren CO2-Fußabdruck als die Luftfahrtindustrie, mit steigender Digitalisierung und Cloudifizierung wird sich dieser Trend fortsetzen, wenn wir nichts dagegen unternehmen. Viele Kubernetes-basierte Installationen sind gemessen am eigentlich benötigten Ressourcen Bedarf stark überdimensioniert und tragen so unnötig zur globalen Erwärmung bei. Wie sieht die Energiebilanz Ihres Clusters und Workloads aus?
In diesem Vortrag zeigen wir Ansätze und Technologien, die dabei helfen K8s-Cluster grün(er) zu machen. Zunächst braucht es Transparenz: Wie sieht die Energiebilanz des Clusters und seiner Workloads aus? Erst danach lassen sich diese gezielt auf ihre Energiesparsamkeit hin optimieren. Und das ist gar nicht so schwer, also packen wir es an!
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.QAware GmbH
SAA 2023 | Software Architecture Alliance, September 2023, München, Ildikó Tárkányi (Senior Software Engineer bei QAware)
== Dokument bitte herunterladen, falls unscharf! Please download slides if blurred! ==
Der Traum von den unendlichen Weiten der Daten ist schnell ausgeträumt, wenn wir unsere APIs nicht im Griff haben. Dabei ist es egal, ob wir uns APIs zwischen unseren Services, zwischen Frontend und Backend oder zu Fremdsystemen anschauen - APIs sind ein fundamentaler Bestandteil unserer Softwarearchitektur und ohne Testautomatisierung geht gar nichts.
Schlecht geschriebene Integrationstests mit selbst erfundenen Testfällen für unsere APIs können richtig nerven: Wir rufen die APIs auf und hoffen, dass genau das zurückkommt, was wir erwarten.
Das geht auch anders: Wir werfen einen Blick auf andere Testansätze, bewerten, welche Aspekte diese jeweils testen und schauen zum Beispiel auf:
• Contract Based Testing
• Black Box Testing der OpenAPI Specs
• Trace-basiertes Testing
Kubernetes with Cilium in AWS - Experience Report!QAware GmbH
Cloud Native Night, Munich, September 2023, Bernhard Schaidhammer
=== Please download slides if blurred! ===
Cilium is a powerful tool for network policies and also encryption between the Kubernetes nodes. Cilium hooks deep into Kubernetes in the network stack as an plugin and can even replace the AWS CNI Plugin. This talk will share our project experiences.
Topics involve:
- Network Policies
- Encryption
- Hubble (Observability)
- Installation
- CLI Usage (Hubble / Cilium)
Container Days 2023, September 2023, Hamburg, Mario-Leander Reimer (@LeanderReimer, CTO @QAware).
== Dokument bitte herunterladen, falls unscharf! Please download slides if blurred! ==
Elasticity and unlimited scalability are the holy grail for any cloud-native application. Now you might think: “That’s easy!!! I just run my containers on a Kubernetes cluster and I am done.” But is it really that simple?
Turns out it’s not! Your application as well as your cloud infrastructure and K8s cluster need to address and support these non-functional requirements.
This session will have a detailed and also practical look at the different ways of autoscaling in Kubernetes. We will give an overview of the technical foundations and prerequisites, and then showcase several frameworks and technologies that can be used to flexibly autoscale your cluster and your cloud-native workloads.
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAPQAware GmbH
Heise DevSec 2023, September 2023, Karlsruhe, Mario-Leander Reimer (@LeanderReimer, CTO @QAware).
== Dokument bitte herunterladen, falls unscharf! Please download slides if blurred! ==
Continuous Delivery ist allgegenwärtig. Wirklich? Viele Teams straucheln immer noch dabei, regelmäßig gut getestete und vor allem sichere Software auszuliefern. Immer mit der gleichen, guten alten Ausrede: die nicht-funktionalen Tests seien zu aufwändig und zu teuer umzusetzen. Doch genau das Gegenteil ist der Fall!
In diesem Vortrag gehen wir kurz auf die aktuellen Bedrohungen und die Bedeutung früher und regelmäßiger Sicherheitstests von APIs ein. Anschließend zeigen wir, wie einfach es ist, diese Tests kontinuierlich und asynchron mit OWASP ZAP und Testkube gegen REST- und GraphQL-APIs direkt auf einem Kubernetes-Cluster auszuführen; immer dann wenn sich die API und der Service ändern.
Service Mesh Pain & Gain. Experiences from a client project.QAware GmbH
Cloud Native Night, Mainz, September 2023, Markus Zimmermann
=== Please download slides if blurred! ===
The topic of service mesh is still present at every major DevOps conference and is the subject of controversial discussions.
A service mesh comes with the promise of implementing cross-functional requirements of microservices such as observability or secure communication without changes within the services. The operational effort and the integration of the services within the service mesh should also be problem-free.
But do the common service mesh implementations keep these promises? In a client project we have gained experience with Linkerd and can say: we did not achieve the benefits without pain. We want to share these experiences and what you can take away for your next project!
WeAreDevelopers World Congress 2023, July 2023, Mario-Leander Reimer
=== Please download slides if blurred! ===
Elasticity and unlimited scalability are the holy grail for any cloud-native application. Now you might think: “That’s easy!!! I just run my containers on a Kubernetes cluster and I am done.” But is it really that simple?
Turns out it’s not! Your application as well as your cloud infrastructure and K8s cluster need to address and support these non-functional requirements.
This session will have a detailed and also practical look at the different ways of autoscaling in Kubernetes.
We will give an overview of the technical foundations and prerequisites, and then showcase several frameworks and technologies that can be used to flexibly autoscale your cluster and your cloud-native workloads.
Blue turns green! Approaches and technologies for sustainable K8s clusters.QAware GmbH
Kubernetes Community Days Munich 2023, Juli 2023, Mario-Leander Reimer
The cloud already has a larger CO2 footprint than the worldwide aviation industry. With increasing digitalization and cloudification this trend will continue if we don't do anything about it. Many Kubernetes installations are greatly oversized in terms of the resources actually required and thus contribute unnecessarily to global warming. What is the energy balance of your cluster and its workloads?
In this session we will discuss approaches and technologies that help to make K8s clusters green(er). First of all, transparency is needed: what is the energy balance of the cluster and its workloads? Only then we can start to optimize for better energy efficiency. And it's not that difficult, so let's get started!
Per Anhalter zu Cloud Nativen API GatewaysQAware GmbH
Mastering Kubernetes 2023, Juli 2023, Sonja Wegner
Gute APIs sind das Herzstück erfolgreicher digitaler Produkte und Cloud-nativer Anwendungen. Doch schlecht verwaltete APIs werden schnell zum Albtraum. Damit es kein böses Erwachen gibt, setzen wir auf API Gateways: Diese sind etabliert und bekannt und helfen uns bei der Verwaltung der APIs. Sie regeln unter anderem Traffic Management, Rollout-Szenarien, Versionierung, Zugriffskontrolle und Diagnostizierbarkeit.
In diesem Vortrag werden wir das Cloud-native API-Gateway-Ökosystem näher betrachten: Gloo, KrakenD, Kong, Envoy et al. Aber welches davon ist das Richtige für den Einsatz im nächsten Projekt? Lasst es uns herausfinden!
3. Wie findet Spring Boot eigentlich die Beans?
QAware | 3
■ Spring scannt alle packages ausgehend von der @SpringBootApplication Klasse
■ Sucht nach Klassen die annotiert sind mit @Controller, @Service, @Repository, @Component
■ In allen @Configuration Klassen alle mit @Bean annotierten Methoden
4. Wie findet Spring Boot eigentlich die Beans?
QAware | 4
■ Beans aus Spring Boot Auto Configuration Klassen
– @Configuration Klasse
die in META-INF/spring.factories
unter @EnableAutoConfiguration registriert ist
■ Performance Improvement (siehe Stackoverflow Post)
org.springframework.boot.autoconfigure.EnableAutoConfiguration=
de.qaware.demo.springbootlib.autoconfigure.SpringBootLibAutoConfiguration
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure-processor</artifactId>
<optional>true</optional>
</dependency>
5. Lässt sich das debuggen?
QAware | 5
■ In der application.yml folgendes Property setzen: debug: true
6. Spring Configuration
QAware | 6
■ @Configuration Klasse
definiert welche Beans im
Application Context sind
■ Nicht zu verwechseln mit:
@ConfigurationProperties
@Configuration
public class MyConfiguration {
@Bean
public MyService myServiceBean() {
return new MyServiceImpl()
}
}
7. Conditionals
QAware | 7
■ @ConditionalOnMissingBean erlaubt Library-Nutzern eine Bean
mit eigener Implementierung zu “überschreiben” (Customization)
■ @ConditionalOnClass ermöglicht Prüfung auf Jar-Dependencies.
Oft für Auto Configuration genutzt, in Kombination mit “provided” scope
oder <optional>true</optional>
■ @ConditionalOnProperty um per mylib.enabled: true Funktionalität explizit ein/auszuschalten
Tipp: Einfach mal Spring Boot Code lesen!
■ org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration
■ org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration
8. Configuration Properties
QAware | 8
■ @ConfigurationProperties Klasse, die mit Konfigurationswerten (Properties) gefüllt wird via
a. Kommandozeilenparametern
b. Umgebungsvariablen
c. (Profile-abhängigen) application.(yaml/properties) Dateien im Classpath
d. Testkonfiguration-Annotationen @TestPropertySource
■ In Libraries mit @EnableConfigurationProperties auf der Auto-Konfiguration Klasse
■ Folgende Dependency nicht vergessen (sonst ist alles gelb in der IDE):
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
11. Shading
QAware | 11
■ Was ist shading?
– Verstecke eine Dependency durch package renaming + relocation
■ Apache Maven Shade Plugin
– https://maven.apache.org/plugins/maven-shade-plugin/
■ Wie kann shading helfen bei Autoconfiguration in Libs?
– Lib nutzt jmustache (https://github.com/samskivert/jmustache)
– Wir wollen nicht, dass andere Autoconfigurations das sehen
■ Siehe auch:
https://stackoverflow.com/questions/13620281/what-is-the-maven-shade-plugin-used-for-and-
why-would-you-want-to-relocate-java
13. Maven provided scope vs optional = true
QAware | 13
■ Beide sorgen dafür, dass C und D nicht
transitiv als Dependency für A gelten
– Will man Klassen aus C / D in A nutzen
muss man diese Dependency in A explizit
hinzufügen
■ Provided scope
– D wird von der runtime bereitgestellt
– Bekannt aus thin jars (WAR)
■ Optional = true
– B hat viele Features, eins davon braucht C
– Wenn du in A dieses Features willst,
include C als Dependency
■ Siehe auch:
https://medium.com/@danismaz.furkan/diffe
rence-between-optional-true-optional-and-
scope-provided-scope-7404ec24fb59
Projekt A
(DemoApp)
Projekt B
(springbootlib)
dependency
Projekt C Projekt D
optional provided
14. Noch lange nicht fertig…
QAware | 14
■ Integrationstests (Spring MVC / WebFlux / Security)
■ Continuous Integration mit SonarQube Analysis
■ Release & Deployment auf Maven Central,
inklusive gleichzeitigem Support für mehrere Spring Boot Versionen
■ Maintenance mit Dependabot
Beispiel: https://github.com/qaware/openapi-generator-for-spring
Feedback welcome (please open issues!)