Homepage von Basti1012 = ,neuigkeiten ,Entwickler Blog 

https://entwickler.de/feed/rss2

Durch-, Rum- oder Reinreichen? Advanced Vue: Datenfluss und Dependency Injection (01.07.2020 12:00:32)

Was soll denn dieser Titel schon wieder? Wie sich im weiteren Verlaufe dieses Beitrags herausstellen wird, handelt es sich durchaus um eine passende Etikette, um den ersten Teil unserer Serie über fortgeschrittene Themen rund um Vue einzuleiten In diesem Beitrag geht es um die Frage der Kommunikation und des Datenflusses zwischen den Komponenten einer Vue-Anwendung und wie Dependency Injection hier eingesetzt werden kann

Der Beitrag Durch-, Rum- oder Reinreichen? Advanced Vue: Datenfluss und Dependency Injection ist auf entwicklerde erschienen


GraphQL und Microservices kombinieren: Tipps von Oliver Sturm im Interview (01.07.2020 10:19:25)

Tech-Trends gibt es viele, aber wann lohnt sich der Blick darauf? Wir haben mit Oliver Sturm über einige Trends gesprochen Der Speaker hat im Interview von der BASTA! Spring 2020 ein paar Tipps für den Einstieg in die Arbeit mit GraphQL und Microservices für euch

Wie nutzt man GraphQL mit Microservices? Nicht immer lassen sich aktuelle Trend-Themen gut miteinander kombinieren Aber es gibt Strategien und Tools, mit denen auch komplexere Architekturen gelingen Darüber haben wir mit Oliver Sturm auf der BASTA! Spring 2020 im Interview gesprochen

Entity Framework Core 50: Das ist neu

mit Dr Holger Schwichtenberg wwwIT-Visionsde/5Minds IT-Solutions

Memory Ownership in C# und Rust

mit Rainer Stropek timecockpitcom

Softwarearchitektur nach COVID-19

mit Oliver Sturm DevExpress

Delphi Language Up-To-Date

mit Bernd Ua Probucon

Spring4D für Einsteiger und Fortgeschrittene ? von 0 auf 100 an einem Tag

mit Stefan Glienke Aagon

TMS WEB Core training

mit Bruno Fierens tmssoftwarecom bvba

Im Interview: Oliver Sturm

Oliver Sturm ist Training Director bei DevExpress In beinahe dreißig Jahren hat er weitreichende Erfahrungen als Softwareentwickler und -architekt, Berater, Trainer, Sprecher und Autor gesammelt

Der Beitrag GraphQL und Microservices kombinieren: Tipps von Oliver Sturm im Interview ist auf entwicklerde erschienen


Women in tech: ?Vergesst nicht, dass sich eine Karriere entwickeln muss.? (01.07.2020 09:59:39)

In unserer Artikelserie ?Women in Tech? stellen wir inspirierende Frauen vor, die erfolgreich in der IT-Branche Fuß gefasst haben Heute im Fokus: Kristin Simonini, VP Product bei Applause

Die Tech-Industrie wird von Männern dominiert ? so weit, so schlecht Doch langsam, aber sicher bekommt der sogenannte Boys Club Gesellschaft von begabten Frauen: Immer mehr Frauen fassen in der Branche Fuß

Aus diesem Grund wollen wir hier spannenden und inspirierenden Frauen die Möglichkeit geben, sich vorzustellen und zu erzählen, wie und weshalb sie den Weg in die Tech-Branche gewählt haben Aber auch Themen wie Geschlechtervorurteile, Herausforderungen oder Förderungsmöglichkeiten kommen zur Sprache

Unsere Woman in Tech: Kristin Simonini

Bei Applause leitet Kristin die Produktorganisation und gibt dort die strategische Roadmap vor Ihre Organisation arbeitet mit Engineers zusammen, um Features und Verbesserungen für ihre crowdsourced Testplattform zu entwickeln Kristins Augenmerk liegt darauf, mithilfe von Applause-Lösungen Werte für Unternehmen zu generieren, indem sie die jeweiligen Herausforderungen betrachtet

Kristin hatte bereits 20 Jahre Erfahrung als Product Leadership gesammelt, bevor sie zu Applause gewechselt ist Vor Applause hat sie die Produktentwicklung bei EdAssist geleitet, eine ?Solutions at Work? von Bright Horizons Dort hat sie ein Verfahren für das Produktmanagement eingeführt und versuchte, die führende Plattform für Unterrichtshilfe neu zu beleben Vor EdAssist war sie in den Führungseben von Brainshark, Deploy Solutions und Webhire

Kristin hat einen Bachelorabschluss in Kommunikationswissenschaften von der Northeastern University

Wann entstand dein Interesse für IT und wie hast du die ersten Kontakte zum Tech-Themenbereich geknüpft?

Das schwierigste, was ich zu lernen hatte, war, dass man nicht einfach ankommen und sofort alle seine Ideen umsetzen kann

Während ich noch aufs College gegangen bin, absolvierte ich ein Praktikum bei Digital City Boston als Teil von America Online Dort habe ich meine erste kleine Einführung ins Coden bekommen und habe mit den firmeneigenen Werkzeugen unsere lokale Website unterstützt Von da an fiel es mir schwer, in einer nicht technischen Organisation zu arbeiten Ich habe nach meinem Abschluss einmal versucht im Firmenkundengeschäft einer Bank zu arbeiten, bin dann aber sehr schnell zurück in den Tech-Bereich geflüchtet

Danach habe ich bei einer Firma namens WebHire gearbeitet, die sich auf Software für Bewerbertracking spezialisiert hat In meinem ersten Job habe ich Kunden trainiert und dabei unterstützt, unsere neuen Saas-basierten ATS-Lösungen einzusetzen Ich bemerkte damals, dass unsere Kunden Probleme damit hatten, unsere Technologie in ihre traditionell sehr manuellen Prozesse einzubinden Also habe ich ein Beraterteam für Unternehmensprozesse aufgebaut Es war großartig, unterwegs zu sein, Kunden zu treffen und sie dabei zu unterstützen, unsere Lösungen zu implementieren Aber ich habe auch direkte Einblicke darauf erhalten, inwieweit es Verbesserungsmöglichkeiten an unseren Lösungen gab In diesem Augenblick habe ich für mich entschieden, im Produktmanagement arbeiten zu wollen

Das schwierigste, was ich zu lernen hatte, war, dass man nicht einfach ankommen und sofort alle seine Ideen umsetzen kann Pah! Ich habe dort viel über Markt- und Wettbewerbsforschung gelernt Aber auch wie man die Interessen verschiedener Stakeholder in der Balance hält und die schreckliche Erfahrung gemacht, dass man nicht jeden gleichzeitig glücklich machen kann Das war ein echter Weckruf, aber einer, der mich entschlossener denn je machte, mich tiefer einzuarbeiten und unser Produkt zum Bestmöglichen zu machen

Ich glaube, ein Hindernis, das Produktmanagern begegnet, ist, Wissenschaft und Kunst beim Managen von Produkten in Einklang zu bringen Es ist zwar wichtig, Entscheidungen durch so viele Daten wie möglich zu untermauern, aber man muss auch immer noch subjektive Entscheidungen treffen Manchmal stehen sich unsere Analysen und unser Feedback diametral gegenüber und dann ist es eine riesige Herausforderung, eine Balance zu finden

Entity Framework Core 50: Das ist neu

mit Dr Holger Schwichtenberg wwwIT-Visionsde/5Minds IT-Solutions

Memory Ownership in C# und Rust

mit Rainer Stropek timecockpitcom

Softwarearchitektur nach COVID-19

mit Oliver Sturm DevExpress

Delphi Language Up-To-Date

mit Bernd Ua Probucon

Spring4D für Einsteiger und Fortgeschrittene ? von 0 auf 100 an einem Tag

mit Stefan Glienke Aagon

TMS WEB Core training

mit Bruno Fierens tmssoftwarecom bvba


Wurden dir im Berufsleben jemals Steine in den Weg gelegt?

Eine Sache, die ich über die Jahre beobachtet habe, ist, dass es Unterschiede gibt, wie die Antwort einer Frau oder die ihres männlichen Gegenübers wahrgenommen wird Ich habe mitbekommen, wie dasselbe Argument zu einer Entscheidung von einem Mann als ?passioniert? oder ?stark? wahrgenommen wurde, von einer Frau aber ?emotional? Man mag in diesen Worten keinen großen Unterschied erkennen, aber ich tue es: Für mich ist Ersteres eher positiv konnotiert zumindest am Arbeitsplatz, wohingegen Letzteres eher negativ ist Als ich das bemerkt hatte, habe ich mir beigebracht, in überlegteren, datengestützten Herausforderungen und Antworten zu denken Das hat, ehrlich gesagt, meine Arbeit, die ich abliefere, qualitativ sehr viel verbessert

Ein Tag in Kristins Leben

Ich bin VP bei Applause Wir wollen unseren Kunden helfen, die bestmögliche Erfahrung im digitalen Bereich anbieten zu können Mein Team baut und liefert auf Basis unserer Produkt-Roadmap und arbeitet dabei eng mit unserem Engineering-Team zusammen Wir bedienen viele verschiedene Endanwender mit unterschiedlichen Interessen Wir jonglieren also mit einer Menge Benutzerprofile und Prioritäten

An einem typischen Arbeitstag habe ich ein paar Einzelgespräche mit meinem Team, welche über die ganze Woche verteilt sind Ich halte das für wichtige und wertvolle Zeit, da ich so sicherstellen kann, dass jedes Teammitglied weiß, wo seine Verantwortung liegt oder ihm durch seine aktuellen Herausforderungen helfen kann oder mit ihm zusammen den nächsten Arbeitsblock anfangen kann Ich treffe mich auch oft mit den Leitern aus dem Engineering-Bereich, damit wir sichergehen können, dass unsere Sichtweisen und Strategieansätze im Einklang liegen Ich verbringe auch eine Menge Zeit mit dem Support unseres Go-To-Market GTM, indem ich an Analysebriefings und Pressekonferenzen teilnehme oder bei Industrieevents spreche Wenn ich mich mal nicht auf unsere Roadmap konzentriere, arbeite ich mit unserem Team daran, mögliche R&D-Ziele zu finden und bekannte Arbeitsabläufe zu überdenken

Ich bin stolz darauf,?

aber am Ende des Tages sind wir wegen unserer Familie, unserer Gesundheit und unserem Leben außerhalb dieser Mauern da

zu einer positiven Kulturentwicklung beitragen zu können Wir verbringen so viel Zeit bei der Arbeit, da ist es unbedingt notwendig, dass das Management eine Umgebung schafft, die alle Bedürfnisse im Team befriedigt Eine Umgebung herzustellen, die Spaß macht, flexibel und intellektuell anspruchsvoll ist, während sie auch noch sicherstellen muss, dass die Angestellten Möglichkeiten haben, um zu wachsen und weiterzukommen, ist essentiell für jeden unternehmerischen Erfolg

Wenn man seine Karriere beginnt, dann weiß man nicht, ob Management wirklich das Richtige für einen selbst ist oder ob man die richtigen Fähigkeiten mitbringt

Es war also eine große Erfüllung für mich, als ich ein Unternehmen verlassen habe und diese Neuigkeit den Leuten aus meinem Team mitteilte Einer meiner Produktmanager fing fast an zu weinen und sagte: ?Weißt du, das ist wirklich schade auf so vielen beruflichen Ebenen, aber du bist auch einfach die menschlichste Managerin, die ich jemals hatte? Da musste ich auch anfangen zu weinen Das ist das beste, was jemals jemand zu mir hätte sagen können ? nicht ?Oh, das war ein großartiges Produkt-Release? oder ?Die Kunden haben dieses Feature wirklich geliebt?

Das ist etwas, an das mich festhalten werden, weil es mir wichtig ist, dass mein Team weiß, dass wir zwar hart arbeiten und wir unseren Job machen müssen, da wir eine kritische Stellung in der Organisation einnehmen, aber am Ende des Tages sind wir wegen unserer Familie, unserer Gesundheit und unserem Leben außerhalb dieser Mauern da Dafür leben wir Wenn die Teams, die ich aufbaue und über die Jahre wachsen sehe, fühlen, dass sie diese Balance haben und ich sie unterstützen kann, dann ist das meine Erfüllung

Wieso gibt es nicht mehr Frauen in der Tech-Branche?

Frauen sind natürliche Führungs-
persönlichkeiten

Auf jeden Fuß passt ein Schuh, so sagt man, also will ich nicht generalisieren Aber wenn ich an die Frauen denke, die ich während meiner Arbeit kennengelernt habe, dann denke ich an dynamische, extrovertierte und lautstarke Fachleute Und obwohl es diese Jobs auch im Tech-Bereich gibt, glaube ich, dass es auch eine Menge Stellen gibt, bei denen eine Heads-Down-Mentalität gefragt ist Frauen sind – meiner bescheidenen Meinung nach – natürliche Führungspersönlichkeiten, weshalb wir um einige Stellen eher schwirren als um andere

Tipps und Tricks

Ich glaube, eine Menge Leute schließen die Schule ab und haben keine Ahnung, wohin sie ihr Weg führt Mein Rat ist also, die eigene Leidenschaft zu finden und Stärken zu identifizieren Vielleicht braucht es einen erfahreneren Mentor, der mit Rat und Tat zur Seite steht

Es ist aber auch unglaublich wichtig, sich zu vernetzen und Verbindungen aufzubauen, denn das ist der häufigste Weg, auf dem man jemanden findet und man auch gefunden wird Man sollte Organisationen lokale oder darüber hinaus aufsuchen, die sich auf den eigenen Interessensbereich fokussieren Falls man das Produktmanagement als Leidenschaft hat und in der Gegend von Boston ist, sollte man Gruppen wie die Boston Product Managament Association oder Agile New England in Betracht ziehen Geht zu Meetings, vernetzt euch und hört euch an, was dort passiert So erhält man nicht nur großartige Kontakte, sondern diese unentwegte Fortbildung hilft auch dabei, Bereiche auszumachen, welche man mehr oder weniger interessant findet, was wiederum die Entscheidungen auf dem Karriereweg beeinflusst

Weiterhin sollte man nicht vergessen, dass sich eine Karriere entwickeln muss Wo man anfängt und wo man endet, können zwei ganz verschiedene Punkte sein Man muss also flexibel und offen für neue Möglichkeiten sein, die nicht auf dem direkten Weg liegen, den man für sich ausgemacht hat

Der Beitrag Women in tech: ?Vergesst nicht, dass sich eine Karriere entwickeln muss? ist auf entwicklerde erschienen


Themenkomplex Security: Mit überwachtem Zugriff Cyberattacken vorbeugen (01.07.2020 08:57:14)

Die moderne IT-Welt ist ein gefährliches Pflaster Von der Entwicklung über das Deployment bis hin zur Nutzung fertiger Anwendungen gibt es quasi an jeder Ecke potentielle Schwachstellen Kein Wunder also, dass ?Security? ein zentraler Bereich der Softwareentwicklung ist In diesem Artikel gibt Michael Heuer, Vice President DACH bei Proofpoint, wichtige Tipps, wie man sich vor Cyberattacken schützen kann

Immer mehr Unternehmen nutzen moderne SaaS-Dienste auf Basis der Cloud wie Googles GSuite oder Microsofts Office 365 Darum müssen die Security-Strategien von Unternehmen entsprechend angepasst werden Um es jedoch vorweg zu sagen, Cloud-Computing ist per se nicht weniger sicher als die herkömmliche IT Unternehmen müssen sich jedoch bewusst sein, welche spezifischen Methoden Cyberkriminelle gerade im Cloud-Umfeld anwenden Zudem gilt es, die spezifischen Schwachstellen von Cloud-Anwendungen zu kennen

Die wichtigste Schwachstelle ist dabei der Mensch Denn wenn Cyberkriminellen einen Anwender beispielsweise mittels präparierter Websites dazu bringen, seine Zugangsdaten zu seinem Cloud-Account preiszugeben, haben die Angreifer folglich direkten Zugriff auf eine vielzahl von Unternehmensressourcen Der externe Angreifer wird so zu einem internen Angreifer Deshalb muss der Mensch, gerade im Cloud-Umfeld, im Zentrum der Verteidigungsstrategie stehen

Doch auch auf technischer Ebene gibt es Möglichkeiten, sich gegen Gefahren zu schützen Unternehmen können die Risiken, die für sie in Zusammenhang mit einer Cyberattacke auf Cloud-Anwendungen bestehen, durch den Einsatz eines Cloud Access Security Broker CASB deutlich reduzieren

Verwaltung der Cloud-Komponenten

Dieser CASB hat vier wesentliche Funktionen Zunächst verwaltet er die Cloud-Anwendungen und -Dienste Gleichzeitig verschafft er damit einen vollständigen Überblick über sämtliche Anwendungen in der Cloud Denn oftmals werden Cloud-Anwendungen von einer Fachabteilung ohne Rückspräche mit der IT-Abteilng gekauft ? Stichwort Schatten-IT Cloud-Administratoren können mit Hilfe des CASB sehen, welcher Mitarbeiter welche Anwendung wann nutzt Darüber hinaus ist ein Überblick über die Standorte der Nutzer bzw Geräte verfügbar, von denen aus auf die Cloud-Ressourcen zugegriffen wird So können Cloud-Teams zu jeder Zeit den Risikograd der Anwendungen und Dienste ermitteln Auf dieser Basis sind sie dann in der Lage, den Zugriff bestimmter Anwender, Daten oder Dienste je nach Bedarf freizugeben oder einzuschränken Erfolgt beispielsweise ein Zugriffsversuch auf einen Cloud-Account eines in Deutschland ansässigen Anwenders, plötzlich aus den USA, Russland oder einer anderen entfernten Region, kann ein Alarm ausgelöst werden Da es im Regelfall schlicht unmöglich ist, dass ein Mitarbeiter innerhalb weniger Stunden um den halben Globus gereist ist, unterbindet das System derartige Zugriffe Damit wendet es etwaigen Schaden vom Unternehmen ab

APIOps Cycles: How to develop business & software together

Marjukka Niinioja Osaango Oy

Have your cake and eat it too: GraphQL? REST API? Maybe you can have both!

Roy Mor Sisense

Modul Funar – Funktionale Softwarearchitektur

mit Dr Michael Sperber Active Group GmbH

Verteidigung gegen Cloud-Angriffe

Als nächstes ist ein Cloud Access Security Broker auch für die Verteidigung gegen Bedrohungen aus der Cloud zuständig Hier werden Cloud-Angriffe aufgrund von verdächtigen oder auch übermäßigen Anmeldungen automatisch identifiziert Zusätzlich ziehen CASBs Anti-Malware- beziehungsweise Sandboxing-Werkzeuge hinzu So können Angriffe analysiert, gestoppt und selbst die neuesten Angriffsmethoden erkannt werden

Schutz sensibler Daten

Zudem ermöglichen es diese Broker, extern oder öffentlich geteilte Dateien zu finden und zu löschen beziehungsweise Datenverluste zu verhindern Wie auch im eigenen Rechenzentrum, müssen Unternehmen beim Umgang mit Daten auch in der Cloud den aktuellen Gesetzen und Vorschriften genügen, etwa der Datenschutzgrundverordnung DSGVO So überwacht ein Cloud Access Security Broker durch automatisierte Prozesse und spezielle Berichtsfunktionen die Einhaltung der Compliance-Vorgaben und dokumentiert diese Maßnahmen Selbstverständlich gilt das nicht nur für gesetzliche Vorgaben, sondern auch für Regeln, die beispielsweise ein Konzern selbst für die Datenverarbeitung aufstellt

Ganzheitliche Betrachtung wichtig

Der Einsatz eines Cloud Access Security Brokers ist als ein weiterer Mosaikstein innerhalb einer ganzheitlichen IT-Security-Strategie sehr sinnvoll Jedoch sollten IT-Entscheider nicht vergessen, dass der ausschließliche Einsatz technischer Mittel für eine höchstmögliche Absicherung gegen Cyber-Angriffe nicht ausreicht Denn Cyberkriminelle ziehen bei ihren Zielen nicht nur in Erwägung, inwiefern sie mit Firewalls, Malware-Schutz oder anderen Sicherheitsmaßnahmen Vorsorge getroffen haben

Wie Eingangs beschrieben, attackieren Kriminelle seit einiger Zeit bei ihren Angriffen das schwächste Glied der Kette ? den Menschen Eine Sicherheitsstrategie sollte daher auf zwei Säulen fußen ? technische Maßnahmen und den Menschen als letzte Verteidigungslinie Mitarbeiter lassen sich beispielsweise gegen Phishing-Attacken durch Sensibilisierungsmaßnahmen wie Schulungen aber auch im Rahmen praktischer Übungen durch Fake-Angriffe auf die perfiden Methoden der Cyberkriminellen vorbereiten Denn ohne Maßnahmen, die beim Anwender selbst ansetzen, wird der beste Cloud Access Security Broker auch beim effektivsten technischen Schutz und der effizientesten Gefahrenabwehr nicht erfolgreich arbeiten können

Der Beitrag Themenkomplex Security: Mit überwachtem Zugriff Cyberattacken vorbeugen ist auf entwicklerde erschienen


DevOps Stories: Cloud bedeutet nicht NoOps (01.07.2020 08:30:46)

Das MusicStore-Team hat vor einigen Wochen ein paar neue Funktionen am Recommender live geschaltet Durch diese Änderung sollen die Kunden bessere Vorschläge erhalten, welche Musik für sie interessant sein könnte Manuela, die sich um den Support für MusicStore kümmert, wendet sich an die Kollegen im Raum

Manuela: ?Das ist seltsam Es haben sich jetzt einige Kunden beschwert, dass der Recommender total langsam ist Ich habe ihn gerade selbst mal aufgerufen Ich finde auch, dass es sich viel langsamer anfühlt als vor zwei Wochen!?

Christian: ?Was meinst du mit ?fühlt sich viel langsamer an???

Manuela: ?Ich rufe die Seite im Browser auf und es dauert deutlich über zehn Sekunden bis überhaupt eine Antwort kommt …?

Julia: ?Ich habe gerade mal nachgesehen … am JavaScript-Frontend liegt es nicht Der REST-Service antwortet einfach sehr langsam?

Lukas: ?Wir schauen mal rein …?

Lukas und Christian analysieren, warum der Service so langsam antwortet Nach einer längeren Suche stellen sie fest, dass die Laufzeit einiger Datenbankabfragen offenbar der Grund für die schlechte Performance ist Erik, der Product Owner, ist hinzugekommen und klinkt sich in das Gespräch ein

Abb 1: Das Produktteam diskutiert das aktuelle Problem

Lukas: ?Die Datenbank für die Benutzeraktionen läuft am Anschlag?

Erik: ?Also die Datenbank, aus der die Vorschläge berechnet werden??

Lukas: ?Ja, die Die Benutzer haben das Produkt fleißig verwendet, dadurch sind viele Daten entstanden, und die Datenbank verträgt das nicht mehr Wir haben damals eine Instanz in der Cloud gestartet und die ist mittlerweile einfach deutlich zu klein Noch dazu wird der Service von den Apps bombardiert und die Connections Pools sind rasend schnell leer?

Erik: ?Warum ist die so klein? Und warum fällt uns das erst auf, wenn die Benutzer sich beschweren ? mit den langsamen Abfragen und den Connection Pools??

Christian: ?Die Instanz hat Martin in der AWS Console angelegt Damals, als wir mit dem Recommender angefangen haben …?

Lukas: ?… und wir haben bislang keine Performancekennzahlen oder Warnungen, wenn die Connection Pools leer laufen?

Erik: ?Lasst mich raten: Die Antwortzeiten der Services messen wir auch nicht??

Lukas: ?Nein?

Erik: ?Na, dann sollten wir das aber schleunigst nachholen …?

Keine Ops-Mitarbeiter heißt nicht, dass es keine Ops-Themen gibt

Durch moderne Cloud-Services wie Amazon Web Services, Google Cloud Platform oder Microsoft Azure ist der Umgang mit Infrastruktur wie Datenbanken, Servern und Storage in den letzten Jahren geradezu spielend leicht geworden Wenige Mausklicks genügen, um z B eine neue Datenbankinstanz zu starten Gleichzeitig beschäftigen sich immer mehr Firmen damit, ob sie ihre Applikation auf ein Cloud Hosting umstellen und ihre internen Betriebsteams einsparen sollten Statt dieser internen Ops-Teams gibt es dann Ops-as-a-Service Abb 2, [1]

Abb 2: Modell ?Ops as a Service?

Der einfacher gewordene Umgang mit der Infrastruktur und Ops-as-a-Service führt immer wieder dazu, dass Teams vergessen, dass damit nicht alle Ops-Aufgaben verschwunden sind Natürlich erhalten sie Infrastrukturkomponenten, bei denen sie sich nicht mehr um kaputte Hardware und oft auch nicht mehr um ein entsprechendes Patch-Level bemühen müssen Auf der anderen Seite gibt es eine Reihe von Aufgaben, die früher z B ein internes Betriebsteam übernommen oder von den Entwicklern eingefordert hat

Der Betrieb fängt schon mit dem Deployment an

Das beste Beispiel ist die Datenbankinstanz, die Lukas und seinen Kollegen jetzt Kopfzerbrechen bereitet Vor der Umstellung auf Ops as a Service mussten Datenbankinstanzen beim Betriebsteam immer ?beantragt? werden Die Kollegen wollten ganz genau wissen, welche Parameter die neue Instanz haben solle Mittlerweile ist der Prozess viel einfacher, hat aber auch dazu geführt, dass Martin die Instanz einfach von Hand über die Webkonsole angelegt hat Es gibt keinerlei Dokumentation Wenn das Team z B eine weitere Testumgebung braucht, müssen Lukas und seine Kollegen außerdem alle erforderlichen Komponenten ermitteln und wiederum von Hand anlegen

Es ist gut vorstellbar, dass das Ausfüllen von Anträgen dem Team auf die Nerven gegangen ist und sie froh waren, als dieser lästige Schritt wegfiel In ihrer Freude haben sie übersehen, dass die strukturierte Beschreibung von Infrastruktur eigentlich eine sinnvolle Sache ist u a zu Dokumentationszwecken und nur die manuelle Umsetzung dieser Beschreibung zeitraubend und nervig ist Sinnvoller wäre es gewesen, statt der Anträge an das Betriebsteam nach der Umstellung einfach Beschreibungen in Form von Infrastructure-as-Code zu erstellen

Gleichzeitig ist mit dem Betriebsteam eine Kontrollinstanz weggefallen Niemand hat mehr die Aufgabe, zu überprüfen, ob zu allen Infrastrukturkomponenten entsprechende Beschreibungen existieren Der Wegfall dieser Kontrolle erfordert eine größere Disziplin bei den Mitgliedern des Dev-Ops-Teams

Das DevOps-Team muss der Anwendung regelmäßig ?den Puls fühlen?

Der CTO von Amazon, Werner Vogels, hat den Satz ?You build it, you run it? geprägt Er zeigt, dass automatisierte Deployments in Produktion und der konsequente Einsatz von Infrastructure-as-Code nur der Anfang sind ?You run it? endet nicht damit, dass eine Änderung auf dem Produktivsystem deployt wird, sondern fängt dann erst an

Im ehemaligen Betriebsteam gab es Datenbankadministratoren, die regelmäßig Performancekennzahlen gemessen haben Diesen Kollegen wäre sehr viel früher aufgefallen, dass die Datenbank mit der gestiegenen Last nicht mehr zurechtkommt Genauso hätte das Betriebsteam vermutlich früher gesehen, dass die Connection Pools ständig ausgeschöpft sind Durch den Wegfall dieses Teams verschwinden die beschriebenen Tätigkeiten aber nicht Das MusicStore-Produktteam muss sich nun selbst um ein Monitoring seiner Anwendung kümmern, um etwaige Schwachstellen frühzeitig zu erkennen

Hierbei können Application-Performance-Monitoring-Tools helfen Diese Tools sammeln kontinuierlich Performanceinformationen in der laufenden Anwendung Die gesammelten Informationen lassen sich einerseits einsetzen, um Alarme festzulegen Dauert z B ein Serviceaufruf länger als der definierte Schwellwert, wird ein Alarm ausgelöst und per E-Mail, Group-Chat-Tool oder SMS an die Entwickler geschickt Da ein APM-Tool kontinuierlich Performanceinformationen über die Anwendung sammelt, kann ein solches Tool andererseits auch die Fehlersuche unterstützen Lukas und Christian haben sich in diesem Fall vermutlich stundenlang durch Logdateien gewühlt und Timestamps miteinander verglichen, oder versucht, das Problem auf einer Testumgebung nachzustellen Mit den Informationen aus einem APM-Tool hätten sie wahrscheinlich nur wenige Klicks gebraucht, um die Datenbank als Engpass zu identifizieren

The Conference for Continuous Delivery, Microservices, Containers, Cloud & Lean Business

Boost your Teams? Productivity with Powerful Visual Management

Artur Margonari InspirationOwl

Onboarding a Historical Company on the Cloud Journey, or from Experimentation to Success

Marius Zaharia Société Générale

Security @ Continuous Deployment

SINA WEBER Robert Bosch GmbH

Freiberuflicher Consultant mit den Schwerpunkten MySQL, Containervirtualisierung, DevOps und OpenStack

Erkan Yanar

Infrastrukturprobleme nicht nur frühzeitig identifizieren, sondern verhindern

Ein geeignetes Monitoring hilft dem Team also, schneller Probleme mit der Infrastruktur zu erkennen, beispielsweise, dass die Datenbank an ihrer Belastungsgrenze arbeitet Genaugenommen ist es zu diesem Zeitpunkt aber schon zu spät: Es existiert bereits ein Problem Die Datenbank ist überlastet, weil die Menge der darin gespeicherten Daten rasant gewachsen ist Bis Manuela sie auf die schlechte Performance des Recommenders hingewiesen hat, wussten sie von diesem Wachstum nichts, und dass die Mobile-Apps den Service mit Anfragen bombardieren, wurde ihnen auch erst durch die Fehlersuche klar

Neben dem reinen Monitoring der Infrastruktur ist es also sinnvoll, Metriken zur Anwendung zu sammeln und auszuwerten:

  • Wie viele Benutzer kommen täglich dazu?
  • Wie viele sind es insgesamt?
  • Wie viele Aktionen haben die Benutzer an diesem bzw am letzten Tag durchgeführt?
  • Wie viele Aktionen wurden bislang insgesamt durchgeführt?
  • Wie viele Benutzer verwenden die Apps im Moment?
  • Wie viele Zugriffe der Apps gab es in der letzten Stunde?
  • Gibt es Endgeräte, von denen besonders viele Zugriffe kommen?

Diese Metriken erlauben es dem Team, Engpässe zu erkennen, bevor daraus konkrete Probleme entstehen ?Wenn die Datenmenge weiter so wächst wie in den letzten zwei Wochen, müssen wir spätestens in drei Wochen die Datenbankinstanz vergrößern? Darüber hinaus können die Metriken dem Team aber auch noch an anderen Stellen helfen Die Mitglieder des Teams sehen unmittelbar, welche Auswirkungen ihre Änderungen auf das Nutzerverhalten haben ?Haben wir die Nutzeraktionen durch die neuen Funktionen wie gewünscht gesteigert?? Außerdem helfen sie z B, Angriffe zu erkennen ?Gibt es vermehrt unzulässige Requests von einzelnen Clients??

Auch mit Serverless sind wir nicht alle Ops-Themen los

Serverless stellt einen Extremfall von Cloud-Infrastrukturen dar: Da die Ressourcen nach tatsächlichem Verbrauch abgerechnet werden, muss ich mir keine bzw kaum noch Gedanken über das Sizing meiner Infrastrukturkomponenten machen Aber auch in diesem Fall ist es aus den oben beschriebenen Gründen wichtig, Metriken zu erfassen und auszuwerten ?Wie viel werden wir grob für die Infrastruktur zahlen müssen??, ?Wie wirken sich unsere Änderungen aus??, ?Gibt es Securityprobleme??

Lukas und seine Kollegen haben sich entschieden, konsequent Infrastructure-as-Code einzusetzen, Alerts über ein APM-Tool abzubilden und regelmäßig wichtige Metriken in ihrem Group-Chat-Tool zu veröffentlichen


Links & Literatur

[1] ?Wie halten wir?s mit dem Betrieb??; Kolumne ?DevOps Stories?; Java Magazin 102017

Der Beitrag DevOps Stories: Cloud bedeutet nicht NoOps ist auf entwicklerde erschienen


Java wird 25: ?Das Spring Framework war eine der wichtigsten technischen Innovationen im Java-Ökosystem? (01.07.2020 08:13:34)

Java wird 25 Jahre alt ? definitiv ein Grund für uns hier auf Entwickler zu feiern Ein Vierteljahrhundert voller Geschichten, Features, Releases und Kontroversen Wir haben im Zuge dieses Jubiläums mit einer Reihe von Java Champions und Experten aus der Community über ihre Highlights und Lieblings-Features aus 25 Jahren Java sowie ihre Wünsche für die nächsten 25 Jahre gesprochen Dieses Mal im Interview: Eberhard Wolff, Fellow bei INNOQ

Entwickler: Was war dein ganz persönliches Java-Highlight der letzten 25 Jahre?

Eberhard Wolff: Sicherlich das Spring Framework Es stellte eine der wichtigsten technischen Innovation im Java-Ökosystem dar Außerdem stand es sehr lange absolut im Zentrum meiner Arbeit und hat mir dabei auch persönlich sehr viel gebracht Neben der Technologie machen auch die Community und die beteiligten Personen Spring, aber auch das gesamte Java-Ökosystem, zu einem Highlight

Entwickler: Was ist dein Lieblings-Feature im JDK?

Eberhard Wolff: Ich fand Invokedynamic wichtig, weil dadurch die JVM sich anderen Sprachen noch stärker geöffnet hat und sich so die Community verbreitert hat Die GraalVM setzt diese Öffnung fort und leistet außerdem einen wichtigen Beitrag, um Java auch in der Welt der Container eine spannende Zukunft zu ermöglichen

APIOps Cycles: How to develop business & software together

Marjukka Niinioja Osaango Oy

Have your cake and eat it too: GraphQL? REST API? Maybe you can have both!

Roy Mor Sisense

Modul Funar – Funktionale Softwarearchitektur

mit Dr Michael Sperber Active Group GmbH

Entwickler: Welches Feature vermisst du, bzw was glaubst du, welches Feature das JDK wirklich braucht?

Eberhard Wolff: Rückwärtskompatibilität ist ein wichtiges Java Feature und ein Hauptgrund, warum Java und das Java-Ökosystem schon so lange so erfolgreich sind Rückwärtskompatibilität macht es aber auch schwierig, neue Features im JDK umzusetzen Daher bin ich nicht sicher, ob neue Features im JDK wirklich so wichtig sind Das Java-Ökosystem und die Community sind als Innovationstreiber meiner Meinung nach wichtiger und da passiert ja nach wie vor sehr viel

Entwickler: Hast du eine lustige oder interessante Java-Geschichte, die du gerne mit der Community teilen willst?

Eberhard Wolff: Ich finde die Geschichte von Java selbst eigentlich am spannendsten Ursprünglich war es eine Webtechnologie im Browser mit Applets, dann auf dem Server mit Application-Servern Heute redet niemand mehr von Applets, dennoch ist Java auf dem Client in Blu-Ray-Playern und auf der Android-Plattform weit verbreitet Java war erst ganz klar auf damals noch langsamen virtuellen Maschinen zu Hause, die durch JIT-Compiler hoch optimiert wurden, sodass sogar andere Sprachen auf das JDK portiert wurden Heute steht hingegen mit der GraalVM direkt ausführbarer Maschinencode auf dem Programm So viel Wandel über die Zeit finde ich sehr interessant und hält das Ökosystem so lange so relevant

Entwickler: Was ist dein größter Java-Albtraum

Eberhard Wolff: Ich fände es schade, wenn sich die Community dauerhaft und fundamental zerstreitet Das macht nicht nur keinen Spaß, sondern gefährdet auch die Plattform Ebenso wird es schwierig, wenn einer der kommerziellen Player seine Interessen rücksichtslos durchsetzt und dadurch die Plattform beschädigt In Ansätzen zeigen sich solche Dinge immer wieder, aber sie waren bisher nie albtraumhaft Und die breite Unterstützung ist der wichtigste Grund für die Stärke von Java Ich denke, das ist den meisten in der Community auch klar

Ich fände es schade, wenn sich die Community dauerhaft und fundamental zerstreitet

Entwickler: Bitte vervollständige den folgenden Satz: Für die nächsten 25 Jahre Java wünsche ich mir?

Eberhard Wolff: ?auch weiterhin eine solch tolle Community und so viel Innovation


Eberhard Wolff ist Fellow bei INNOQ und arbeitet seit mehr als fünfzehn Jahren als Architekt und Berater, oft an der Schnittstelle zwischen Business und Technologie Er ist Autor zahlreicher Artikel und Bücher, u a zu Continuous Delivery und Microservices, und trägt regelmäßig als Sprecher auf internationalen Konferenzen vor Sein technologischer Schwerpunkt sind moderne Architektur- und Entwicklungsansätze wie Cloud, Continuous Delivery, DevOps, Microservices und NoSQL

Der Beitrag Java wird 25: ?Das Spring Framework war eine der wichtigsten technischen Innovationen im Java-Ökosystem? ist auf entwicklerde erschienen


Joomla: Mehrsprachigkeit und personalisierter Content ohne Erweiterungen (30.06.2020 12:00:21)

Joomla gehört mit zu den bekanntesten CMS im PHP-Bereich Es zeichnet sich vor allem durch seine Mehrsprachigkeit im Core aus Seit mehr als 15 Jahren arbeitet die Community daran, das CMS auf dem aktuellen Stand der Technik zu halten

Der Beitrag Joomla: Mehrsprachigkeit und personalisierter Content ohne Erweiterungen ist auf entwicklerde erschienen


Ganz unkompliziert: So werden Code-Dokumentation richtig geschrieben (30.06.2020 10:34:19)

Manchmal wird es zum Projektende noch einmal richtig zäh Dann muss eine Dokumentation geschrieben werden, die vielleicht nie jemand liest und wenn doch vielleicht nicht versteht Das geht auch anders Mit drei einfachen Regeln und einer passenden Teamkultur lässt sich die Dokumentation ohne Anstrengung in die Entwicklungsarbeit integrieren

Im ersten Teil dieses Artikels haben wir uns bereits angesehen, in wie fern Dokumentation nicht nur unseren Arbeitsalltag erleichtern, sondern auch den Erfolg dank Qualitätsverbesserung und Geschwindigkeitsgewinn maßgeblich steigern kann Ebenso haben wir betrachtet, welche Rahmenbedingungen in Hinblick auf die Dokumentationsplattform erfüllt sein müssen Daran wird dieser Teil anknüpfen, indem wir einen Blick drauf werfen mit welchen praktischen Regeln die Dokumentation schon während der Entwicklung locker von der Hand geht und wie wir als Team gemeinsam an sowie mit der Dokumentation arbeiten

Praktische Regeln für eine gelungene Dokumentation

?Endlich! Es funktioniert!? Damit die rätselhafte Fehlermeldung verschwindet, musste eine Kompatibilitätseinstellung im Datenbank-Server geändert werden Wer kennt sie nicht, die Situationen, in denen nach Stunden anstrengenden Herumprobierens endlich eine Lösung gefunden wurde? Jetzt schnell abschließen und wieder dem nächsten Feature zuwenden ? und die Falle schnappt zu Gerade eben wurde wertvolles, teures Wissen generiert Und dieses Wissen konzentriert sich momentan auf eine Person und ist dadurch sehr flüchtig, denn kein Mensch kann alle Fälle dieser Art auf Dauer im Kopf behalten Ja gut, dann wird das eben dokumentiert Aber später, jetzt erstmal weiter programmieren ? auch falsch Dokumentation wird gerne nach hinten geschoben und andere Aufgaben vorgezogen ? warum das so ist, haben wir ja schon gelernt Doch später, ist manchmal nie und später heißt auch, dass schon wieder ein Teil der besonders wichtigen Informationen aus dem Kopf verschwunden sein kann Daher gilt:

Regel 1: Sofort dokumentieren
Jetzt muss man natürlich zugeben, dass sofortige Dokumentation tatsächlich auch den Arbeitsfluss stören kann Nicht immer ist der dokumentationsbedürftige Gegenstand wie im obigen Beispiel die Lösung, sondern lediglich ein Teil in einem ganzen Informationskomplex Das heißt, die Entwicklungsarbeit muss unterbrochen, die Gedanken für die Dokumentation sortiert und die Schreibarbeit umgesetzt werden Danach ist man gedanklich schon wieder ein ganzes Stück weit vom eigentlichen Problem entfernt Das ist nicht nur anstrengend, sondern auch schlecht für die Produktivität Wie lässt sich dem Dilemma entgehen? Ein Kompromiss ist die Lösung: Dokumentiert wird sofort, aber nur in kurzen, ungefilterten Stichpunkten Das kann der Name eines Konfigurationsparameters sein, der unbedingt gesetzt werden muss oder der Name einer CSS-Klasse, der notwendig ist, um die neue Komponente Use-Case gerecht einsetzen zu können Die Form spielt hier keine Rolle, es ist zu diesem Zeitpunkt nur wichtig, dass das wertvolle Wissen, das nur im Moment seiner Entstehung derart präsent ist, festgehalten wird Der Stichpunkt dient einzig und allein als Gedankenstütze Die eigentliche Ausformulierung und Gestaltung erfolgt zu einem späteren Zeitpunkt, wenn der Arbeitsfluss nicht mehr gebremst werden kann

Effective Microservices Architecture In Nodejs

by Tamar Stern Palto Alto Networks

React Components And How To Style Them

by Jemima Abu Telesoftas

Intensiv, nachhaltig & praxisbezogen: Alle Hintergründe zu Building-Blocks in Angular

mit Manfred Steyer Freiberufler

Als Online- oder Präsenztraining!

Das 360°-Intensivtraining mit Angular-Koryphäe Manfred Steyer
Präsentiert von Entwickler Akademie


Und wenn der Zeitpunkt dann gekommen ist, kann man den Gedanken freien Lauf lassen, in Ruhe darauf los schreiben und reinhauen bis die Tasten richtig glühen Vorsicht, hier lauert eine Gefahr, die teuer werden kann Auch wenn es erfahrungsgemäß weniger Dokumentationswütige als Dokumentationsmuffel gibt, ist es wichtig sich bewusst zu machen, dass es auch ein zu viel an Dokumentation geben kann Denn genauso wie jede Zeile Code eine Rechtfertigung verlangt, um die Komplexität nicht unnötig in die Höhe zu treiben, gilt das auch für jeden Satz in einer Dokumentation Schließlich muss nicht nur Zeit vom Verfasser der Dokumentation investiert werden, sondern auch vom eigentlichen Publikum, das meistens nach einer konkreten Information sucht und diese auf dem kürzesten Wege erhalten möchte Was nützt es der Kollegin, die eigentlich nur nach dem Namen für einen bestimmten URL-Parameter sucht, sich zunächst durch allgemeine Informationen über den Aufbau von Uniform Resource Locators URI zu wühlen, die mit Original-Auszügen des zugehörigen RFCs garniert wurden? Dokumentation sollte die wirklich wichtigen Informationen mit möglichst wenig Worten auf den Punkt bringen Es gibt einen Trick, der unserem Gehirn dabei hilft, unnötiges wegzulassen und nicht in ausschweifende Prosa zu verfallen: das Schreiben in Aufzählungspunkten Daraus können wir eine weitere Regel ableiten:

Regel 2: Fasse dich kurz und schreibe in Aufzählungspunkten
Der Stil von Aufzählungspunkten ist naturgemäß reduziert auf das Wesentliche Dadurch wird die Gefahr in unnötige Ausschweifungen zu verfallen stark minimiert Das wiederum erleichtert das Lesen und gibt dem Adressaten die Möglichkeit schnell die wesentlichen Informationen dem Text zu entnehmen Viele der Informationen, die wir als Entwickler verarbeiten, sind ohnehin prädestiniert dafür, in Aufzählungspunkten wiedergegeben zu werden Prozessabläufe oder Namenskonventionen in lange Fließtexte zu verpacken, dürfte durchaus auch für den Verfasser anstrengend werden

Kehren wir zum Beispiel der Internationalisierung zurück und schauen uns an, wie die Dokumentation dazu im Kontext einer ASPNET Anwendung aussehen könnte:

  •  Die Sprache für Übersetzungen wird zentral im Property ThreadCurrentThreadCurrentUICulture im Lifecycle-Event Application_AcquireRequestState der Globalasax-Datei festgelegt
  • Die Ableitung der aktuellen Sprache erfolgt dort aus dem Property Language
  • Die Browsersprache wird konsequent ignoriert, weil wir unseren Benutzern versprochen haben, dass sie immer ihre bekannte Benutzeroberfläche vorfinden werden, unabhängig vom Endgerät, mit dem sie sich anmelden
  • In den darüber liegenden Schichten kann auf die aktuelle Sprache je nach Technologie mittels folgender Properties zugegriffen werden:
    • Vue: locale
    • jQuery: Get„Language“

Auch wenn es sich hier um ein gekürztes Beispiel handelt, zeigt sich, dass es dank der Aufzählungspunkte möglich ist, verhältnismäßig viele Informationen in einer kleinen Menge an Text unterzubringen Auf erläuternde Informationen zB zur Globalasax Datei wurde verzichtet, da sie einem ASPNET Webentwickler in der Regel bekannt ist Stattdessen liegt der Fokus auf Informationen, die auch gestandenen Entwicklern nicht bekannt sein können, weil sie Anwendungsspezifisch sind und folglich entweder mühsam im Code erforscht oder effizient in einer Dokumentation nachgelesen werden müssen

Nicht selten wird ein langer Text im Sinne von ?viel hilft viel? als ein Qualitätsmerkmal von Dokumentationen missverstanden Warum das nicht so ist, haben wir uns ja bereits im ersten Teil des Artikels angesehen und darüber hinaus ist es auch gar nicht nötig sich so viel Mühe zu machen, denn es gibt einfachere Mittel, um eine richtig hilfreiche Dokumentation zu schreiben und daraus folgt die letzte Regel für eine gelungene Dokumentation:

Regel 3: Gib gute Erklärungen und Beispiele
Es liegt in der Natur des Menschen Zusammenhänge verstehen zu wollen und Gegebenes nicht hinzunehmen, ohne es verstehen zu können Wenn wir nicht nachvollziehen können, was wir lesen, beginnen wir zu zweifeln, hinterfragen und suchen manchmal auch nach Alternativen, weil uns das Vertrauen in das Geschriebene fehlt All das wollen wir mit einer Dokumentation nicht erreichen Vermeiden lässt es sich, indem aussagekräftige Erklärungen und Beispiel eingesetzt werden

Warum wurde sich für Framework A anstelle von B entschieden? Was ist der Grund dafür, dass die Namenskonventionen für die Datenbanktabellen Snake-Case, in allen darüber gelagerten Schichten aber PascalCase vorschreiben? Eine gute Erklärung wird es in beiden Fällen den Entwicklern einfacher machen, den Sinn zu verstehen und das Wissen in der Praxis anzuwenden

Werfen wir zuletzt noch einmal einen Blick auf den dritten Punkt im obigen Dokumentationsbeispiel zur Internationalisierung: die Informationen bezüglich der Browsersprache, sind in zweierlei Hinsicht sehr wertvoll Zunächst ist die Erwähnung selbst wichtig, da sie zeigt, dass es durchaus in Erwägung gezogen wurde, mit der Browsersprache zu arbeiten Ohne diese Information, könnten andere Entwickler mutmaßen, es wäre übersehen worden und eine neue, gut gemeinte aber falsche Optimierung ins Spiel bringen Warum das falsch wäre, geht aus der ergänzten Erklärung in Bezug auf das Versprechen an die Benutzer hervor Gäbe es diese Erklärung nicht, das heißt würde dort nur stehen ?Die Browsersprache wird ignoriert?, wäre das zwar immer noch eine klare Aussage, die aber Fragen offenlässt und dadurch möglicherweise in der Praxis nicht adäquat umgesetzt wird Darüber hinaus ist eine solche Festlegung ja auch nicht in Stein gemeißelt und könnte irgendwann wieder in Frage gestellt werden Bei der Abwägung einer solchen Entscheidung wäre die ursprüngliche Absicht logischerweise die wichtigste Entscheidungsgrundlage

Mit der Dokumentation im Team arbeiten

Dokumentation ist kein Selbstläufer, sondern ein Produkt disziplinierter Arbeit Damit ein Unternehmen von ihrem Potential profitieren kann, braucht es einige Mühe bis die Teamkultur so weit gereift ist, dass ein lebendiger Dokumentationsprozess entstanden ist Wichtigste Voraussetzung dafür: alle Mitglieder des Teams müssen verstanden haben, worin der Mehrwert von Dokumentation besteht, wie bereits im ersten Teil des Artikels erläutert wurde Und weil beim Dokumentieren die Erfolgserlebnisse sehr viel seltener sind, als beim Programmieren, ist es wichtig, dass wir uns regelmäßig gegenseitig daran erinnern und gleichzeitig eine hohe Wertschätzung für die Dokumentationsarbeit einander entgegenbringen

Eine Dokumentation muss natürlich ständig auf dem aktuellen Stand gehalten werden und das sollte ? wie wir bereits gesehen haben ? möglichst zeitnah erledigt werden Es ist Teil der Entwicklungsarbeit und warum also nicht gleich in den regulären Review-Prozess integrieren? Kollegen, die im Moment des Reviews in der Regel nicht in gleicher Weise mit dem Sachverhalt vertraut sind, wie der verantwortliche Entwickler, schauen mit einer anderen Perspektive auf die Dokumentation Dadurch fallen Lücken oder auch nebensächliche, aufgeblähte Informationen schnell auf und es kann unkompliziert noch einmal nachgebessert werden

Das führt uns zu einem wichtigen Aspekt, der gerne vergessen wird: Dokumentationsarbeit besteht nicht nur darin neue Informationen zusammen zu tragen oder Bestehendes zu aktualisieren, sondern auch Veraltetes zu entfernen Das erfordert genauso wie bei obsolet gewordenem Code manchmal eine gewisse Disziplin, denn etwas zu löschen, für das wir viel Schweiß und Mühe investiert haben, fällt uns nicht leicht Bewusst oder unterbewusst fragen wir uns: ja, aber wenn wir es doch noch einmal benötigen? Dann gibt es das Source Control oder eine andere Form der Historisierung Informationen, die keinen Mehrwert mehr stiften, sollten entfernt werden, denn ihr weitere Existenz kostet anderen Kollegen Zeit, wenn sie sich auf der Suche nach Antworten mit diesen nutzlosen Inhalten auseinandersetzen Im schlechtesten Fall können dadurch auch Falschinformationen weiterverarbeitet werden, die zu falschen Ergebnissen in der Entwicklung führen

Doch auch wenn währen der Entwicklung konsequent dokumentiert und im Review geprüft wird, genügt das noch nicht ganz, denn eine Dokumentation ist in der Regel nie ?fertig? Es geschieht trotz Prozess immer wieder, dass Dokumentation veraltet oder lückenhaft ist Das gesamte Team muss daher konsequent an seiner Aktualität und Vollständigkeit arbeiten, wofür jedes Teammitglied in der Verantwortung steht Wer feststellt, dass er trotz Dokumentation recherchieren oder nachfragen musste, ist in der Pflicht, sich darum zu kümmern, dass die fehlenden Informationen ergänzt werden, völlig unabhängig davon ob er Urheber der Dokumentation ist Selbiges gilt für falsche oder überflüssige Informationen  Eine ?Kümmerkultur?, die vom gesamten Team gelebt wird, ist extrem wichtig, um dauerhaft erfolgreich mit der Dokumentation zu arbeiten

Dokumentation muss auch gelesen werden

Nachdem wir nun lange über die Entstehung von Dokumentation gesprochen haben, sollten wir auch noch über das sprechen, was auf den ersten Blick selbstverständlich erscheint: Das Lesen also Nutzen der Dokumentation Das ist nämlich im Alltag nicht immer eine Selbstverständlichkeit, denn schließlich ist es bequemer einer Kollegin eine Frage zu stellen und sofort eine Antwort zu erhalten anstatt sich auf die Suche nach einer Antwort in der Dokumentation zu machen Es ist aber ziemlich ineffizient, wenn die Kollegin, nach ihrer Zeit, die sie bereits für die Dokumentation investiert hat, jetzt noch einmal Zeit für die persönliche Erklärung an einen Kollegen investiert

Man könnte damit argumentieren, dass die Suche nach der Information gegenüber dem persönlichen Gespräch deutlich mehr Zeit kostet Das ist bezogen auf die absolute Dauer richtig, doch die Zeit, die wir mit der Dokumentation verbringen ist keinesfalls vergeudete Zeit Damit sie ihren echten Wert entfalten kann, müssen wir regelmäßig mit ihr arbeiten, anstatt sie nur quartalsweise als Nachschlagewerk zu verwenden Während wir dort nach Informationen suchen, nehmen wir tiefgreifendes und wertvolles Expertenwissen auf, was unseren eigenen Wissensschatz kontinuierlich erweitert Es ist also keinesfalls unhöflich in der Antwort auf eine Frage freundlich auf die vorhandene Dokumentation zu verweisen, sondern dient in diesem Moment sowohl Fragesteller als auch Antwortgeber

Fazit

Sofort, kurz gefasst in Aufzählungspunkten und mit ausreichend Erklärungen bzw Beispielen zu dokumentieren, das sind die Regeln, mit denen sich die Behäbigkeit in der Schreibarbeit überwinden und gleichzeitig bessere Dokumentationsergebnisse erzielen lassen Wird das in die Entwicklungsprozesse integriert und vom gesamten Team verantwortungsbewusst mitgetragen, braucht es wie für alles in unserem Beruf nur noch eines: eine gute Portion Disziplin

Der Beitrag Ganz unkompliziert: So werden Code-Dokumentation richtig geschrieben ist auf entwicklerde erschienen


Security im Internet of Things: ?Es gibt keinen besseren Weg, als immer wieder zu testen? (30.06.2020 09:37:28)

Mittlerweile gibt es in fast jedem Haushalt miteinander vernetzte Geräte und die Quote steigt rasant an Zeit, sich über die Sicherheit im Internet of Things Gedanken zu machen Wir haben Christoph Engelbert, Co-Founder von clevabit, dazu befragt, welche Maßnahmen man ergreifen sollte, um ein solides Grundgerüst im Security-Bereich aufstellen zu können Im Interview sprach er zudem darüber, ob man das Thema Gefahrenprävention besser direkt in der Hardware oder doch eher auf Softwareseite angehen sollte

JAXenter: Hallo Christoph und danke, dass du dir die Zeit für das Interview genommen hast Das Internet der Dinge ist von Natur aus anfälliger für Angriffe von außen als andere Systeme: Dabei sind viele Geräte, die alle unterschiedliche Schwachpunkte haben, entweder miteinander oder mit der Cloud verbunden Gibt es irgendwelche Grundregeln, die man im Hinterkopf haben sollte, wenn man eine IoT-Infrastruktur aufbauen möchte?

Christoph Engelbert: Es geht nicht nur um die vielen verschiedenen Geräte Das Problem steckt viel tiefer Wenn es ein Problem oder eine Lücke in einem System gibt, dann hat man viele Tausend Geräte mit Schwachstellen draußen und Software-Updates neigen dazu, einige Zeit bis zur Fertigstellug in Anspruch zu nehmen Oftmals ist eine der Voraussetzungen, dass ein Update absolut solide und stabil sein muss Denn man stelle sich ein Update vor, das Geräte beschädigt, die man nicht einfach so erreichen kann und die die Leute dann nicht wieder zum Laufen bekommen können

Wie auch immer, generell zum Thema Sicherheitsregeln ist zu sagen: Es kommt auf das System drauf an Es gibt allerdings einen Satz Basisregeln, welche zwar dem gesunden Menschenverstand entsprechen aber oft vergessen oder missachtet werden, weil es während der Entwicklung einfach bequemer ist

Wenn ein System auf Linux oder FreeBSD aufbaut, sollte man die Applikation nicht als „root“ ausführen

1 Wenn ein System auf Linux oder FreeBSD aufbaut, sollte man die Applikation nicht als root ausführen Welche Überraschung! Aber Spaß beiseite, das sollte man wirklich nicht machen Aus den gleichen Gründen, die für Server und Desktops gelten

2 Zusätzlich sollte man nur auf das System ziehen, das man wirklich braucht Software, die nicht zwingend notwendig ist, sollte weggelassen werden Die sicherste Software ist die, welche nicht auf dem System liegt Außerdem werden Kunden die kleineren Downloads lieben

3 Ports sollten geschlossen bleiben Ports sollten nur für das Nötigste geöffnet sein IPtables oder andere Firewalls sollten den Zugang zu allen anderen Ports aktiv verhindern Immerhin könnte ein Bug im Kernel selbst existieren

4 Da wir gerade vom Kernel reden: Immer darauf achten, dass man eine stabile, aber auch aktuelle Version benutzt Ich weiß, dass das manchmal hart ist Viele Firmen bieten nur super alte Kernelversionen an, aber man muss es trotzdem versuchen Weiterhin sollte man alles vom Kernel entfernen, das unwichtig ist Aus denselben Gründen wie oben: Was nicht existiert, kann keinen Schaden verursachen

5 Entfernt root-Log-ins an Debug-UART-Konsolen Es macht keinen Unterschied, ob mit oder ohne Passwort Wenn ich ein Gerät in die Finger kriege, kann ich den Flash auslesen, das Passwort knacken und bekomme so meinen Log-in Wenn dann noch Telnet oder SSH offen ist, ist das sogar ein noch schlimmeres Szenario

Es gibt noch sehr viel mehr, aber das sollte für eine recht gute Basis schon reichen

APIOps Cycles: How to develop business & software together

Marjukka Niinioja Osaango Oy

Have your cake and eat it too: GraphQL? REST API? Maybe you can have both!

Roy Mor Sisense

Modul Funar – Funktionale Softwarearchitektur

mit Dr Michael Sperber Active Group GmbH

JAXenter: IoT-Sicherheit kann man auf verschiedenen Leveln erreichen: auf Ebene der Hardware oder Software Es ist offensichtlich, dass man auf beide Teile aufpassen muss Kannst du Beispiele nennen, wie man an das Thema Sicherheit auf einem Hardware-, bzw auf einem Software-Level herangehen kann?

Christoph Engelbert: Beide Level sind wichtig Für Software gilt, was ich bisher schon gesagt habe, plus einiges mehr Das typischste an der eigenen Applikation ist, dass man nicht den Nutzerinformationen vertrauen darf Man nimmt nicht einfach die Informationen und lässt sie als Befehl auf einer Shell laufen Man testet und verifiziert sie und verwirft sie, falls sie nicht dem entspricht, was man erwartet hat Benutzt Character Escaping oder, noch besser: verwendet Prepared Statements Das sind Dinge, von denen wir schon hunderte Male gehört haben

Firmen versuchen oft, den Diebstahl geistigen Eigentums zu verhindern, vergessen dabei aber die Möglichkeit des Reverse Engineering der Firmware

Auf dem Hardwarelevel wird es dann interessanter Normalerweise kann man hier als Software- oder Hardwareentwickler selbst nicht wirklich etwas machen Allerdings bieten eine Reihe von Chipentwicklern ?fertige? Lösungen an Nichtsdestotrotz: Das benötigte Niveau an Hardwareschutz hängt von dem System ab, das man entwickelt Firmen versuchen oft, den Diebstahl geistigen Eigentums zu verhindern, vergessen dabei aber die Möglichkeit des Reverse Engineering der Firmware und dass Angriffe gegen die eigene Umgebung gefahren werden oder die eigenen Geräte für eine DDoS-Attacke gegen Dritte eingesetzt werden können Auf dem Hardwarelevel bieten TPMs, ob verhasst oder nicht, eine großartige Möglichkeit, Verschlüsselungs- und Authorisierungscode zu speichern Indem man Client-Zertifikate benutzt, kann man diese TPMs zur Authentifizierung gegen eigene Services verwenden und man kann sie verwenden, um Software zu entschlüsseln, Updatepakete zu verifizieren und vieles, vieles mehr

Der wichtigste Faktor aber könnte eine Art Secure Boot oder Measured Boot sein In dem Fall kennt die CPU einen öffentlichen Schlüssel einer Elliptic Curve EP oder eines RSA-Paares Dieses verwendet man, um den eigentlichen Bootloader oder die Firmware zu signieren Bevor man irgendetwas ausführt, verifiziert die CPU die Signatur des Bootloaders und stellt sicher, dass er vom Hersteller selbst signiert wurde Dann verifiziert der Bootloader den Kernel und das Dateisystem und so weiter Die Idee dahinter ist, eine Vertrauenskette zu erreichen, welche den ganzen Weg von der CPU bis zum Ausführen von Treibern und Applikationen verifiziert Das eliminiert die meisten Angriffsflächen durch gefälschte Firmwareupdates Zusammen mit der leider häufig fehlenden Serververifizierung ja man kann Serverzertifikate verifizieren /sarcasmoff und dem Signaturencheck der Firmwareupdates kann man recht effektiv verhindern, dass nicht-offizielle Firmware installiert oder ausgeführt wird

Je nach Bedarf gibt es andere Maßnahmen, aber ich glaube, das würde jetzt zu weit reichen

JAXenter: Um sicher zu gehen, dass das System sicher ist, muss man es testen Gibt es irgendeine Testmethode, die sehr gut im Zusammenhang mit IoT funktioniert?

Christoph Engelbert: Ganz offensichtlich: Die eigenen Tests zuerst laufen lassen Weiterhin Werkzeuge benutzen, um in ?das eigene System? einzudringen Die allgemein bekannten Pentesting-Werkzeuge sind ein guter Anfang Leider sind mir keine Tools bekannt, die speziell für IoT ausgelegt sind Vielleicht vergesse ich irgendetwas oder wir haben eine Marktlücke gefunden

Je nachdem, welche Services man verwendet, sind OpenVAS oder Metasploit gute erste Anhaltspunkte Ganz besonders, wenn man Webservices, wie zum Beispiel ein Admin-Dashboard auf dem Gerät ausführt Es gibt eine Vielzahl an Open-Source-Lösungen, kostenlos oder zum Bezahlen Da muss man schauen, was am besten zum Bedarf passt

Je nachdem, welche Services man verwendet, sind OpenVAS oder Metasploit gute erste Anhaltspunkte

Der zweite Schritt ist, eine externe Firma zu beauftragen, Pentests laufen zu lassen Nicht nur gegen die Cloud-Infrastruktur, sondern auch gegen die Geräte Dafür kann man Hackergruppen wie den CCC Chaos Computer Club um Hilfe bitten Hier gibt es eine Menge sehr fähiger Leute Denen kann man Kompensation anbieten und andere ?Kleinigkeiten? Zum Beispiel, dass sie die Geräte behalten dürfen Der Punkt ist, man muss ihnen zuhören, sie ernst nehmen, auf ihre Fragen und Entdeckungen reagieren!

Ach ja, und im Allgemeinen sollte man darauf achten, möglichst schnell auf Sicherheitsprobleme oder gefundene Schwachstellen zu reagieren Es ist eine schlechte Angewohnheit, jede Vermutung, es könne etwas schief laufen direkt vom Tisch fegt Man muss jede Anfrage ernst nehmen Lass deine Helfer wissen, dass du es dir ansiehst und antworte in angemessener Zeit Erwarte nicht von ihnen, dass sie Monate auf eine Antwort zu einem Sicherheitsproblem warten Und zu guter Letzt, arbeite mit ihnen zusammen Lass dir ihre Entdeckungen zeigen, lass dir erklären, wie sie etwas gemacht haben, lobe sie und erweise ihnen Respekt Lass sie auch auf Konferenzen davon berichten Hilfe zur Selbsthilfe

Hat man tatsächlich eine Schwachstelle im System, macht die eigene Marketingabteilung nichts glücklicher, als wenn jemand sie findet und danach ein öffentliches Statement abgibt im Stile fvon: ?Ich habe es ihnen gesagt, sie haben super reagiert und das Problem erkannt und gefixt? Alternativ verbreitet sich auch ein schlechter Umgang mit diesen Situationen wie ein Lauffeuer

JAXenter: Wie kann man sicherstellen, dass Updates auf einem Gerät oder einer Komponente nicht das System komplett wieder öffnet?

Solange man alle nicht-essentiellen Komponenten entfernt, ist man schon einen Schritt weiter als der Großteil der Konkurrenten

Christoph Engelbert: Es gibt keinen besseren Weg, als immer wieder zu testen Man muss einfach erneut eine Firma einen Pentest laufen lassen und dann andere versuchen lassen, in das System einzudringen

Aber wie gesagt, solange man das absolute Minimum auf dem Gerät installiert und alle nicht-essentiellen Komponenten entfernt, ist man schon einen Schritt weiter als der Großteil der Konkurrenten

Es gibt einfach keinen Grund, warum eine Lampe einen Telnet- oder SSH-Service laufen lassen sollte

JAXenter: Gibt es irgendwelche Werkzeuge oder Open-Source-Komponenten, die du für ein sicheres IoT-System empfehlen kannst?

Christoph Engelbert: Wie schon gesagt, leider sind mir bisher keine Werkzeuge speziell für IoT-Sicherheit bekannt Ich wäre allerdings glücklich, wenn jemand so etwas kennt und die Information teilt

Die üblichen Tools zum Pentesting bieten einen großartigen Start Wenn du die Möglichkeit hast, dann engagiere jemanden mit den Hobbies Reverse Engineering und in IoT-Geräte einzudringen Nirgendwo bekommt man mehr Kenntnisse und einen tieferen Einblick

JAXenter: Vielen Dank für dieses Gespräch!


Christoph Engelbert is a passionate developer with a deep commitment for Open Source and intense interest in reverse engineering devices and protocols, as well as security mechanisms Mostly rooted in the Java / JVM space, he?s working with plenty of other languages, choosing the right tool for the job With his co-founded company clevabit he develops an IoT platform to better the conditions of lifestock and meat quality for customers With Instana?s Developer Relations team, he shows developers the need of automatic monitoring and distributed tracing, when building highly distributed systems

Der Beitrag Security im Internet of Things: ?Es gibt keinen besseren Weg, als immer wieder zu testen? ist auf entwicklerde erschienen


Java feiert 25. Geburtstag: ?Mein größter Albtraum? JAR Hell?? (30.06.2020 08:44:20)

Java wird 25 Jahre alt ? definitiv ein Grund für uns hier auf Entwickler zu feiern Ein Vierteljahrhundert voller Geschichten, Features, Releases und Kontroversen Wir haben im Zuge dieses Jubiläums mit einer Reihe von Java Champions und Experten aus der Community über ihre Highlights und Lieblings-Features aus 25 Jahren Java sowie ihre Wünsche für die nächsten 25 Jahre gesprochen Dieses Mal im Interview: Nicolai Parlog, Java-Entwickler, Autor, Blogger und Speaker

Entwickler: Was war dein ganz persönliches Java-Highlight der letzten 25 Jahre?

Nicolai Parlog: Das Release von Java 8 Gar nicht so sehr wegen der Sprach-Features und APIs wobei die zu meinen Lieblingen gehören, sondern weil es das erste Java Release meiner Karriere war, das ich aktiv wahrgenommen habe In den fast 15 Jahren von Oberstufe über Uni zu ersten Berufserfahrungen war mein Kontakt zu Java so lose, dass ich die Weiterentwicklungen gar nicht bemerkt habe ? die etwas blutleeren Releases 6 und 7 haben dazu sicherlich beigetragen

Java 8 war dann das erste Release, das mir etwas neues gezeigt hat, und ich kann mich noch sehr gut daran erinnern, wie ich ein paar Monate vor dem Release, im Dezember 2013, im Familienurlaub meine ersten Lambda-Ausdrücke geschrieben habe Seitdem lässt mich Javas Weiterentwicklung nicht mehr los und ich freue mich über jedes neue Feature

Entwickler: Was ist dein Lieblings-Feature im JDK?

Nicolai Parlog: Das kann ich nur sehr schwer beantworten Manche Features, gerade ältere, mögen nicht besonders spannend erscheinen, aber ohne sie könnte ich mir nicht vorstellen, in Java zu entwickeln ? Generics zum Beispiel Ganz allgemein hat Javas statisches Typsystem mein Denken enorm geformt ? bis zu dem Punkt, dass mir zB blankes JavaScript mangels Typen sehr schwer fällt

Andere Aspekte, die ich an Java großartig finde, sind das Commitment zu freier Software, der relativ offene Entwicklungsprozess und der Fokus auf Kompatibilität Konkret gefällt mir von den jüngsten Änderungen das Modulsystem sehr gut ich denke die Möglichkeit, Pakete nicht zu exportieren, wird uns bald ähnlich unerlässlich erscheinen, wie Methoden oder Felder privat zu machen sowie Records

APIOps Cycles: How to develop business & software together

Marjukka Niinioja Osaango Oy

Have your cake and eat it too: GraphQL? REST API? Maybe you can have both!

Roy Mor Sisense

Modul Funar – Funktionale Softwarearchitektur

mit Dr Michael Sperber Active Group GmbH

Entwickler: Welches Feature vermisst du, bzw was glaubst du, welches Feature das JDK wirklich braucht?

Nicolai Parlog: Dass viele Entwickler glauben, ein Feature, welches sie vermissen, sei auch eines, das das JDK braucht, ist ein wiederkehrendes Problem in Unterhaltungen über die Weiterentwicklung der Sprache Die meisten von uns, und da schließe ich mich definitiv ein, haben keinen repräsentativen Blick auf das Ökosystem als Ganzes Bei vielen Millionen Nutzern einer Sprache, die von SmartCards und Embedded Devices über Autos und Handys bis hin zu Microservices, App-Servern und Supercomputern sehr viele Anwendungsmöglichkeiten hat, ist das auch nicht weiter überraschend Ich konzentriere mich also auf die erste Teilfrage

Mich stört, dass standardmäßig alles mögliche ?nullable? und ?mutable? ist

Es gibt Aspekte, die mich an Java stören, insbesondere dass standardmäßig alles mögliche nullable und mutable ist Es ist aber nicht so, als wenn sich das einfach ändern ließe ich habe das zB mal an immutable Collections durchexerziert Also werde ich mich wohl damit arrangieren müssen Darüber hinaus bin ich mit dem, was da gerade in der Pipeline ist also zB Value Types und Fibers, sehr zufrieden und habe keine konkreten Wünsche

Entwickler: Hast du eine lustige oder interessante Java-Geschichte, die du gerne mit der Community teilen willst?

Nicolai Parlog: Da fällt mir tatsächlich spontan nichts ein Java ist anscheinend etwas langweilig, aber das ist gar nicht so schlimm Spannung, Mystery und Action genieße ich lieber beim Lesen, Gucken oder Spielen als beim Programmieren

Entwickler: Was ist dein größter Java-Albtraum

Nicolai Parlog: JAR Hell

Entwickler: Bitte vervollständige den folgenden Satz: Für die nächsten 25 Jahre Java wünsche ich mir?

Nicolai Parlog: ?, dass der Klimawandel sie mir nicht vergrätzt


Nicolai Parlog ist, wie er selbst sagt, ein „dreißigjähriger Junge“, der seine Leidenschaft Softwareentwicklung meist Java zum Beruf gemacht hat

Der Beitrag Java feiert 25 Geburtstag: ?Mein größter Albtraum? JAR Hell?? ist auf entwicklerde erschienen


25 Jahre Java: Vorbereitung auf den datengesteuerten dritten Akt (29.06.2020 15:32:15)

Java wird 25, ein Vierteljahrhundert Java In seinem Artikel blickt John DesJardins, Field CTO und VP Solution Architecture bei Hazelcast, auf die Anfangsjahre von Java zurück und gibt einen Einblick in heutige Einsatzgebiete und aktuelle Entwicklungen Soviel sei bereits gesagt: Es sieht gut aus für unsere liebste Programmiersprache?

Seit seiner Entwicklung vor 25 Jahren hat Java einen langen Weg zurückgelegt In einer Welt von Cloud-basierten Commodity-Servern und Container-Portabilität vergisst man leicht, wie Java über die Jahre hinweg die Welt verändert hat

Die Datenverarbeitung war vor 25 Jahren ein Ort isolierter und proprietärer Clients und Server mit teurer Skalierung Java bot Entwicklern ein konsistentes und effizientes Programmiererlebnis, kombiniert mit einer ?write-once-run-anywhere?-Portabilität Heute könnten wir das Containerisierung und Cloud nennen

Fünfundzwanzig Jahre später steht Java kurz davor, den dritten Akt zu beginnen, indem es die Datenverarbeitung erneut transformiert: Dieses Mal kommen, im Zuge der digitalen Transformation, Cloud-native, datenintensive Anwendungen in der Analytik und künstlichen Intelligenz sowie IoT auf 5G zum Einsatz Java spielt auch hier eine bedeutende Rolle, da die Grundlagen von Java über die Zeit wesentlich weiterentwickelt und verfeinert wurden, um dieser datengesteuerten Welt gerecht zu werden Diese Grundlagen beziehen sich auf die Entwicklerproduktivität ? effizienteren Code und einfachere Erstellung ? samt Skalierbarkeit und durchgängiger Leistungsfähigkeit

Dabei war diese Bestimmung von Java wahrlich nicht in Stein gemeißelt, denn Java hatte durchaus seine Höhen und Tiefen Javas erster Akt führte zu einem raschen Erfolg, da die Industrieunternehmen ? mit einer traditionell eher isolierten, teuren und ineffizienten Technologieumgebung ausgestattet ? die Serverplattform begeistert annahmen Zwei Jahrzehnte nach der Geburtsstunde hatten 90 Prozent der Fortune-500-Unternehmen und 10 Millionen Programmierer Java im Einsatz

APIOps Cycles: How to develop business & software together

Marjukka Niinioja Osaango Oy

Have your cake and eat it too: GraphQL? REST API? Maybe you can have both!

Roy Mor Sisense

Modul Funar – Funktionale Softwarearchitektur

mit Dr Michael Sperber Active Group GmbH


Im zweiten Akt verließ Java dann den Serverraum der Unternehmen und wurde im Web skaliert; denn Java wurde ua von LinkedIn, Twitter und Facebook eingesetzt Der Auftakt dazu gestaltete sich jedoch etwas schwierig Das Tempo der Java Roadmap für neue Features hatte sich unter dem früheren Chief Steward von Sun Microsystems verlangsamt, während Open Source im Gegensatz dazu florierte und für Entwickler viel attraktiver schien Viele waren der Meinung, dass Java langsamer wurde und nun in die Bedeutungslosigkeit abrutschen würde Java schaffte es jedoch, zurückzukommen, indem neue Funktionen hinzugefügt wurden, die es den Programmierern erleichterten, die gewünschten Geschäftsanwendungen mit weniger Code zu erstellen So wurden Anwendungen effizienter, schneller und einfacher zu warten Als die Cloud entstand, reifte Java zunehmend mit der Einführung von Lambdas für kleine, ereignisgesteuerte Multicode-Anwendungen als Dienste, während die Modularität zur Unterstützung von Microservices eingeführt wurde

Java gelang es, über Projekte der Apache Software Foundation in Big-Data- und Analytics-Projekte vorzudringen Hadoop, Doug Cuttings verteiltes und auf Googles MapReduce basierendes Speicher- und Batch-Framework für die Verarbeitung von Hunderten von Petabyte auf Tausenden von Servern, wurde in Java geschrieben ? eine Entscheidung, die dazu beigetragen hat, Java an dieser Stelle zu positionieren und zu etablieren Hadoop macht heute vier Prozent des DBMS-Marktes aus Das mag im Vergleich zu Oracle, das diesen Bereich dominiert, nach nicht viel klingen, aber Hadoop hat einen größeren Marktanteil als nicht-relationale Alternativen, wobei Facebook einer der größten Anwender von Hadoop ist

Während Java den dritten Akt eröffnet, liegt die heutige IT-Herausforderung darin, Leistung und Durchsatz von stark verteilten Anwendungen, Diensten und Daten zu erzielen Die Latenzzeit ist die neue Ausfallzeit für anspruchsvolle, umfangreiche, Cloud-native Finanzdienstleistungs-Anwendungen, E-Commerce auf Web-Ebene, künstliche Intelligenz KI und maschinelles Lernen ML

Und genau hier kommt wieder Java ins Spiel

Distributed Messaging, parallele und gleichzeitige Verarbeitung liegen in der DNA von Java, und deshalb sind sie besonders für die neuen Generationen von Multithread- und Microservices Workloads geeignet Millionen von Regeln, Threads, Prozessen und Daten, die aufgerufen werden, können gleichzeitig pro Sekunde über Hunderte von Knoten verarbeitet werden APIs im Caching ermöglichen es dagegen, Daten im Speicher zu halten und lokal aufzurufen Funktionen wie Lambdas und Modularität machen die Sprache und die gesamte Java-?Plattform? hinsichtlich Laufzeit effizienter

In Verbindung mit einem In-Memory-Grid können Java-basierte Systeme große Datenmengen in Sekundenschnelle erfassen, transformieren und analysieren Der schnelle lokale Zugriff entlastet Datenbanken und Datendienste und verhindert, dass Daten über das Unternehmensnetzwerk hinweg verschoben werden müssen Prozesse in einem Java-Cluster können auch so aufgebaut werden, dass sie die Datenreplikation übernehmen Dies resultiert in erhöhter Verfügbarkeit und Zuverlässigkeit, da Prozesse ohne Datenverlust abgebrochen werden können

Wenn es darum geht, KI und ML in Unternehmensanwendungen einzubetten, ist Java die erste Wahl Es bietet die Möglichkeit, Echtzeit-ML in großem Maßstab bezüglich Sicherheit und Ausfallsicherheit auf Unternehmensebene bereitzustellen, die eng in vorhandene Anwendungen integriert sind Eine Umfrage unter mehr als 2000 Data Scientists und ML-Entwicklern ergab, dass diejenigen, die bereits anderswo mit Java arbeiten, Java auch für KI und ML wählen Warum? Sie verstehen eine Technologie, die zu ihrem Programmiermodell passt Da die Entwickler im Open Source-Ökosystem verwurzelt sind, können sie auch auf eine große, von der Community unterstützte KI- und ML-Bibliothek zurückgreifen Und was genau entwickeln sie? Anwendungen für Netzwerksicherheit, Cybersicherheit und Betrugserkennung

Java ist in diesem Bereich von entscheidender Bedeutung, denn es kann bei der Aufnahme, Transformation, Bewertung und Nachbearbeitung von Daten helfen und bietet die Leistung, große Datenmengen zu verarbeiten

Der Erfolg von Java basiert zum einen auf effizienter Programmierung und Unified Computing und zum anderen darauf, Entwickler produktiv und Anwendungen skalierbar und schnell zu machen Das hat der IT bereits in den ersten beiden Akten von Java sehr geholfen Jetzt, vor Beginn des dritten, datengesteuerten Aktes, wo es darum geht, die Latenzprobleme der verteilten Datenverarbeitung distributed computing zu bewältigen, sind die Sprache und die Plattform von Java gut auf das vorbereitet, was vor uns liegt

Der Beitrag 25 Jahre Java: Vorbereitung auf den datengesteuerten dritten Akt ist auf entwicklerde erschienen


Garantierte Leistung: Mit automatisierten Tests bei minimalen Kosten optimal entwickeln (29.06.2020 13:00:46)

Dauerhaft kann geschäftskritische Software nur betrieben werden, wenn automatisierte Tests an der Tagesordnung sind Unternehmen legen damit die Basis für die Veränderbarkeit der Lösung und stellen sicher, dass sie langfristig verfügbar ist und zielführend genutzt werden kann Die häufig verbreitete falsche Annahme, die Implementierung automatisierter Tests wäre aufwendig und zu teuer, bezieht den Fakt nicht mit ein, dass gerade dann unnötige und enorme Kosten entstehen, wenn Unternehmen nicht getestete Software verwenden Zumal bei Berücksichtigung einiger Grundprinzipien Softwaretests effektiv und zugleich kostensparend gelingen

Der Beitrag Garantierte Leistung: Mit automatisierten Tests bei minimalen Kosten optimal entwickeln ist auf entwicklerde erschienen


Diese Seite wurde in 0.171074 Sekunden geladen