Samstag, 27. Juni 2020

Microservices

Was ist das? 

Microservices beschreiben ein Muster von Anwendungsarchitekturen. Durch Fokussierung auf kleine, begrenzte fachliche Services, die unabhängig voneinander sind, kann man neue Anwendungen vergleichsweise schnell realisieren. 
Im Grunde stellt der Ansatz eine Weiterentwicklung der Komponenten- und SOA-Ansätze aus den letzten Jahren und sogar Jahrzehnten dar - wer kennt noch CORBA?  



Warum sollte ich das einsetzen?

  • Damit man schneller neue Anwendungen bauen und somit schneller auf die Marktentwicklung reagieren kann - wenn man muss!
  • Um die Abhängigkeitsprobleme von Monolithen-Anwendungslandschaften endlich mal anzugehen
  • Wenn mehr Interaktionen mit Geschäftspartnern stattfinden werden - im Gegensatz zur Formular-Stapelverarbeitung der Vergangenheit

Was kostet das?

  • Skalierbare Infrastruktur aus Containern, Docker, Kubernetes 
  • Monitoring Skills und Tools zur Überwachung einer parallelen, skalierten Infrastruktur 
  • Viel Aufwand bis zum ersten laufenden Service
  • Know-how-Aufbau bei den Mitarbeitern, die in der parallelen, skalierten und zustandslosen Welt auf viele neue Herausforderungen treffen werden

Was muss ich beachten?

  • Microservices stellen einen massiven Paradigmen-Wechsel dar
  • Übliche Drei-Schicht-Architekturen sind nicht mehr nutzbar
  • Microservices halten, anders als Business Services in JEE, keinen Zustand, sondern laufen nur kurz - anders wäre eine Skalierung von vielen Services nicht möglich
  • Zudem muss die Oberfläche, z.B. eine SPA in Angular, wie damals bei Rich Clients die Steuerung übernehmen, auch im Fehlerfall
  • Entwickler müssen die Zusammenhänge erst verstehen und lernen
  • Im Zweifel muss man sich zwischen Verfügbarkeit der Anwendung und der Datenkonsistenz entscheiden! 

Links und Quellen 



Sonntag, 3. Mai 2020

Kubernetes

Was ist das? 

Kubernetes ist eine weit verbreitete Open Source Lösung zum Betrieb von Container-Lösungen wie Docker. Die Software bietet vielfältige Möglichkeiten, virtuelle Einheiten - so genannte Pods - zu skalieren, auf die verfügbaren Ressourcen wie physikalische Maschinen zu verteilen und vieles mehr.

Warum sollte ich das einsetzen?

  • Damit meine Server-Infrastruktur virtualisiert und effizient skalierbar und verwaltbar ist - damit reduziert man vor allem die Kosten im Vergleich zu bisherigem Hardware-Betrieb. 
  • Knoten, die z.B. nachts keine Last haben, können für andere Aufgaben genutzt werden, beispielsweise für Batch-Läufe (falls es sowas noch gibt). 
  • Und wenn Sie Fernsehwerbung zur Prime Time schalten, dann möchten Sie alle verfügbaren Recheneinheiten für den Ansturm nutzen... 

Was kostet das?

  • Open Source - also erstmal kostenlos, aber Beratung durch Experten und Know-how-Aufbau im Team ist unverzichtbar

Was muss ich beachten?

  • Virtualisierung im High-End-Bereich ist kein Kinderspiel! Gerade durch Software-definierte Infrastruktur kann man sich schnell Sicherheitslücken bauen. 
  • Ziehen Sie besser Experten hinzu - der Nutzen übersteigt die Kosten deutlich. 



Freitag, 10. April 2020

Docker

Was ist das? 

Docker ist eine weit verbreitete Open Source Lösung zur Erstellung und Nutzung von Containern zur Virtualisierung von Diensten.
Ein Container enthält nur den benötigten Umfang, um die eigentliche Software-Anwendung zu betreiben. So bleibt der Container klein und einfach zu handhaben. Docker hat die Server-Konfiguration verändert: statt aufwändiger, manueller Bearbeitung werden Container durch Software, also durch Programme, konfiguriert und erstellt: Server sind auch nur Software.
Eingesetzt wird ein Docker-Image in der Regel mit einer Virtualisierungslösung.

Warum sollte ich das einsetzen?

  • Sie können große Anwendungssysteme in Container trennen und diese einzeln erstellen, betreiben und verwalten, z.B. zur Skalierung bei Lastspitzen. 
  • Ein richtiger, physikalischer Server muss aufwändig installiert und konfiguriert werden, zumal er meist viele Software-Basispakete benötigt. Im Docker-Image befindet sich nur das Nötigste. 
  • Entwickler können Services als Teile der Anwendungslandschaft so einfach und mit wenigen Abhängigkeiten bauen, automatisch ein Docker-Image erstellen, testen und an die Produktion übergeben - ohne die übliche "da fehlt noch was"-Problematik.
  • Skalierung ist - bei vorhandener Virtualisierungslösung - einfach. 

Was kostet das?


  • Eine Virtualisierungslösung sollte vorhanden sein für einen professionellen Betrieb.
  • Mittlerweile auch für Windows nutzbar, stammt aber aus der Linux-Welt (mein Rat: besser Linux)
  • Die Entwickler müssen lernen, Docker-Images zu konfigurieren und dies zu programmieren. 


Was muss ich beachten?


  • Sicherheit ist bei Internet-Anwendungen immer ein wichtiges Thema. Daher müssen Sie in eine professionelle Virtualisierungslösung investieren. 
  • Die Konfiguration von Docker-Images hat auch Fallstricke, gerade mit Blick auf Sicherheitsaspekte. Besser einen Experten anfangs hinzuziehen. 


Links und Quellen 

Wikipedia


Sonntag, 29. März 2020

Das große IT-Partywissen-Lexikon

Für Projektleiter, Product Owner, Manager und andere

Wissen Sie, was Kubernetes von Docker unterscheidet? Oder JavaScript von TypeScript? Falls nein: Wie treffen Sie dann Entscheidungen zu Strategie, Kosten und Rahmenbedingungen für Ihre Projekte? Wie können Sie einschätzen, ob Ihre Leute besser Vue.js oder Angular verwenden sollten?

Spoiler: Fragen Sie Ihre Mitarbeiter - die sollten sich auskennen, wenn sie damit zu tun haben.

Photo by Pisit Heng on Unsplash

Aber nicht immer hat man Zeit für Recherchen, Analysen und Entscheidungsvorlagen. Wie häufig sitzen Sie in Besprechungen, in denen jemand eine bestimmte Technologie als zukünftigen Weg anpreist? Und dafür Ihr Budget einsetzen möchte.
Denken Sie an den KI-Hype, der durch die Presse geht - lohnt sich das für Ihren Kontext?

Häufig muss man nach meiner Erfahrung in solchen Situationen zumindest oberflächlich mitreden können, zumindest Fragen stellen können, um die Propheten der schönen neuen Welt auf den Teppich zu holen. Und um nicht später mit den Risiken und Kosten alleine dazustehen. Aber vor allem auch, um mit den Mitarbeitern im konstruktiven Austausch Fallstricke und mögliche Wege zu erkunden.

Dafür hilft mir mein "Partywissen": Das Verständnis der Strukturen, Zusammenhänge und Pro's und Con's von Technologien und Strategien. Natürlich muss ich einige Dinge auch in Tiefe recherchieren, dafür nutze ich wie jeder andere Wikipedia und andere frei zugängliche Internetquellen.

In dieser Serie stelle ich in loser Folge kurze Beiträge zum Partywissen-Lexikon vor.

Inhalt:

Docker
Kubernetes

Single-Page App

Was ist das? 

Eine Single-Page App, manchmal auch als One-Page App bezeichnet, ist eine Software-Anwendung, die meist im Web oder als mobile Anwendung bereitgestellt wird.
Sie besteht im Wesentlichen aus einer einzigen logischen Seite. Die  Darstellung der Seite passt sich dynamisch anpasst Daten und Interaktionen an und lädt benötigte Daten nach.
Im Gegensatz dazu bestanden Web-Oberflächen früher aus vielen "dummen" Formularen. Dabei musste der Server über die Eingaben entscheiden und dann die Folgeseite bereitstellen. Dies führte für die Anwender häufig zu Wartezeiten beim Nachladen.

Warum sollte ich das einsetzen?

  • Damit Anwender begeistert sind
  • Um noch mehr Auswahllogik in die Oberfläche zu integrieren und damit bessere Prozesse abzubilden - und die Conversation Rate zu erhöhen
  • Um die App der Konkurrenz altbacken aussehen zu lassen

Was kostet das?

Die Entwickler müssen moderne Frameworks einsetzen, im Web-Bereich meist Angular, React oder Vue.js.
Diese Frameworks erfordern einen höheren Einarbeitungsaufwand und mehr Aufwand in der Fehlersuche als "dumme" Formulare.

Was muss ich beachten?

Die Frameworks im Web-Bereich ändern sich mit hoher Geschwindigkeit. Planen Sie daher Anpassungsaufwand ein, auch wenn das Projekt nur drei Monate läuft!

Links und Quellen 

Wikipedia