Diese Website benutzt Cookies. Wenn Sie die Website weiter nutzen, stimmen Sie der Verwendung von Cookies zu. Mehr Informationen.

deutschenglish

UnternehmenStellenangebotew3/blogAnfahrtskizze

DEEN

Neues bei w3logistics

w3/blog – Das w3logistics-Blog

14. März 2022

Über den Wolken: Fragen zur Cloud-Strategie

Abgelegt unter: Hacker's Corner,Logistik — Thomas Ronzon @ 17:21

Thomas Ronzon arbeitet als Projektleiter und Senior-Softwareentwickler bei der w3logistics AG in Dortmund. Dabei beschäftigt er sich mit der Moder­nisierung von unternehmenskritischen Logistikanwendungen. Darüber hinaus veröffentlicht er regelmäßig Fachartikel.

Auch wenn man aus Management-Sicht „über den Wolken“ (in der Cloud) schwebt, weil ja alles so einfach werden wird, so stellen sich doch ein paar Fragen, um die man sich vorher kümmern sollte. Ein paar davon habe ich in diesem Artikel einmal zusammengetragen.

Internetanbindung
Ohne Internetanbindung kann natürlich auch nicht auf die Cloud zugegriffen werden. Was passiert aber, wenn die Internetanbindung gestört ist? Dann kann kein User arbeiten! Ist deshalb eine redundante Anbindung bei einem anderen Provider, am besten noch über einen anderen Weg, zum Beispiel einmal DSL über Kabel und einmal über Mobilfunk, eingerichtet? Wie reibungslos geschieht die Umschaltung? Gibt es hier Einschränkungen, zum Beispiel dass eine Leitung langsamer als die andere ist? Muss also der Netzverkehr priorisiert werden?

Cloud-Provider
Bei welchem Provider habe ich meine Cloud gemietet? Habe ich alle Anwendungen bei einem Anbieter? Was passiert, wenn dieser Anbieter ausfällt? Was passiert, wenn dieser Anbieter die Preise extrem erhöht? Was passiert, wenn der Anbieter den Dienst einstellt?

Spezielle Funktionen einzelner Provider
Nutze ich spezielle Funktionalitäten, die nur dieser Cloud-Provider bietet? Was passiert, wenn der Provider diese nicht mehr zur Verfügung stellt. Immer wieder kommt es vor, dass gerade große Provider bestimmte Funktionalitäten nicht mehr bereitstellen. Und dann? Ein paar Beispiele finden sich zum Beispiel hier.

Abb.1: Ist die Cloud wirklich billiger?

Datenschutz
Entspricht die angemietete Cloud der DSGVO? Was passiert, wenn es hier Probleme gibt? Wie bekomme ich Probleme dieser Art überhaupt mit? Wer haftet dann?

Software in der Cloud
Was ist, wenn meine Software zum Beispiel ein altes JDK benötigt? Wie lange unterstützt der Anbieter so etwas? Muss ich also immer auf die neusten Versionen wechseln, oder wie lange bleibt mir Zeit? Kann ich überhaupt alte Versionen aus Sicherheitsgründen in der Cloud betrieben? Ist die Software, die ich nutze, überhaupt so unter Sicherheitsgesichtspunkten entwickelt, dass ich diese ohne Probleme in der Cloud betreiben kann?

Latenzen
Welche Latenzen kann ich tolerieren? Muss ich bestimmte Antwortzeiten garantieren? Was passiert, wenn ich diese nicht einhalten kann?

Kosten
Ist die Cloud wirklich billiger, als eine Infrastruktur selbst vorzuhalten. Habe ich zum Beispiel eine kleine Anwendung, so kann diese vielleicht auf einem anderen Server „mitlaufen“ und spart damit Kosten für das Betriebssystem und die Hardware.

Abb. 2: Automatische Fördertechnik kennt kein „Rollback“

Switch zu einem anderen Rechner in der Cloud
Wechselt der Rechner innerhalb der Cloud, mach die Anwendung in der Regel ein Rollback der letzten Transaktion und führt diese dann erneut auf dem neuen Knoten aus. Was passiert aber, wenn der ganze Use-Case aus mehreren Systemen  besteht, die nicht alle in einer Transaktion gehandelt werden können?
Beispiel: In einem automatischen Palettenlager übergibt die Materialflusssteuerung einer Palette den Fahrauftrag, zum nächsten Platz zu fahren. Während die Fördertechnik diese transportiert, rollt das Materialflusssystem zurück. Die Palette fährt aber brav zum nächsten Platz. Schon hat das System einen Versatz von 1! Gibt es Funktionalitäten, derartige Situationen zu erkennen beziehungsweise wieder gerade zu ziehen?

Backup/Recovery
Werden wirklich alle Daten der Anwendung in der Cloud gespeichert? Wie ist es, wenn die Daten auf mehreren Instanzen verteilt sind? Beispielsweise kommt es oft vor, dass die Daten an einem anderen Ort gespeichert werden als die Metadaten. Gibt es hier Strategien, wie diese nicht nur sinnvoll gesichert (Backup), sondern auch wieder hergestellt (Recovery) werden können? Sicherlich machen die Cloud-Anbieter große Versprechungen, wie sicher ihre Daten sind. Das stimmt sicherlich auch für jedes einzelne Puzzlestück. Diese Stücke nach einem Ausfall wieder zusammenzutragen, ist aber Ihre Aufgabe, da der Anbieter Ihre Anwendung ja gar nicht kennt.

Schulung der Mitarbeiter
Eine Cloud verlangt durchaus anderes Wissen, als wenn man die Systeme selbst hostet. Dabei reicht es nicht, dass sich „Irgendjemand“ „irgendwie“ auskennt − bei einem Ausfall hat sonst „Irgendjemand“ Urlaub oder ist krank − und dann? Besser ist es, wenn sich mehrere Leute damit auskennen, die sich gegenseitig unterstützen und vertreten können.

Abb. 3: Wie „regelmäßig“ dieses Backup durchgeführt wurde, sieht man schon an den Fingerabdrücken im Staub auf dem Bandstreamer, als versucht wurde, diesen für das Bild ins „rechte Licht“ zu rücken

Wenn doch was passiert − Ausfall der Cloud-Dienste
Haben Sie sich Gedanken gemacht, was passiert, wenn die Cloud-Dienste ausfallen. Auch das hat es schon gegeben, wie unlängst, als Facebook und WhatsApp mehrere Stunden nicht erreichbar waren.
Was heißt dies für das Geschäft? Wie kann das Geschäft weiterlaufen? Läuft es, nachdem das System wieder verfügbar ist, wieder alleine an, oder muss ich eingreifen? Gibt es eine Notfallstrategie?

Fazit
Die Möglichkeiten der Cloud sind riesig − sie eröffnen uns Möglichkeiten, die vor ein paar Jahren noch undenkbar waren. Die vielen Werbeversprechen sollten aber keinen Architekten daran hindern, sein über Jahre aufgebautes Wissen über Bord zu werfen und sich bedingungslos zu ergeben, denn hier gilt: Cloud? Ja, kann man nutzen − muss man aber nicht (immer). Und denken Sie dran: Uptime matters! − Das Geschäft muss laufen! Dabei wäre es doch schade, wenn es durch schlecht durchdachte Innovation schlechter läuft als vorher!

28. November 2020

PowerPoint and OBS automation

Abgelegt unter: Hacker's Corner — Thomas Omerzu @ 02:09

These days online presentations have become more important than ever. For preparation of advanced video presentations, OBS is a very powerful tool. You can, for example, use it to mix a camera view of the speaker into a PowerPoint presentation.

Scott Hanselman created a very interesting tool named „PowerPointToOBSSceneSwitcher“ which allows you to automatically change OBS scenes under control of the PowerPoint presentation. This makes it possible to adapt the video image according to the structure of the currently displayed PowerPoint slide, without having to change anything manually in OBS during the presentation.

I was really fascinated by his solution and tried to get it running on my machine using the sources he provides on Github.

His little program establishes a websocket connection to OBS (via the OBS websocket plugin), and connects to PowerPoint using Microsoft’s Primary Interop Assembly. When it detects a slide switch, it checks the comment field of the slide. If that contains a string like „OBS:Scene Name“, it sends a scene switch request to OBS. Done.

Unfortunately, I was unable to get that program working on a 64bit Windows 10 running a 32bit Office 2010, though I tried hard and spent a few hours. Finally I gave up and thought about an alternative implementation. And this is what I did:

I took this PPT autoevents addin. It is old, but still works, even on Windows 10. It allows me to trigger a VBA macro every time the slideshow moves to the next slide. Similarly to Scott’s solution, in that macro I look into the slide’s comment, and if it starts with „OBS:“ I send a scene change request via „Shell“ and the command line client „OBSCommand.exe“ which implements a connection to the OBS websocket server.

I have to admit that this isn’t as elaborate as Scott’s implementation, but basically it achieves the same effect and seems to be considerably less influenced by version incompatiblities.

Thank’s to Scott for the inspiration!

11. Februar 2020

OOP 2020 – Into the Unknown – eine Nachlese

Abgelegt unter: Allgemeines,Hacker's Corner,IT-Services — Thomas Ronzon @ 17:43

Letzte Woche fand mit der OOP in München wieder eine der größten IT-Konferenzen der Welt statt.
Wie in den Jahren zuvor, hatte ich vorher mit ein paar Kollegen die Einreichungen im Track Software Architecture Maintenance & Evolution reviewt. Umso spannender war es dann zu sehen, wie diese Vorträge live gehalten werden, bzw. wie die Reaktion des Publikums auf diese Talks war.

Im Laufe der Woche hatte ich auch selbst zwei Talks.

So kamen am Montag über 30 Teilnehmer in den Workshop Wenn‘s richtig dicke kommt – Krisensituationen in der IT meistern, den ich zusammen mit Veronika Kotrba und Ralph Miakra gehalten habe. Diese beiden sind sonst eher im Bereich „Soft-Skills“ zu Hause – aber gerade das machte den Workshop so spannend, da getreu dem Motto „Hard- und Softskills – Hand-in-Hand“ wieder in einem Workshop sowohl Soft- als auch Hardskills zum Bewältigen von Krisen vorgestellt wurden.

Highlight war dann im zweiten Teil des Workshops ein Planspiel, in dem die Teilnehmer verschiedene, sich ändernde Krisensituationen managen mussten.

Am Dienstag wurde ich selbst überrascht. Zwar wusste ich, dass das Thema Libs, Lizenzen, Lösungen – Tipps zum Umgang mit Third-Party Libraries Probleme adressiert, die oft die Schmerzpunkte in einem Projekt sind – dass aber über 250 Teilnehmer diesen Talk hören wollten, damit habe ich nicht gerechnet.

Auch dieses Mal war interessant, dass wieder so viele internationale Sprecher vertreten waren. Hier eine kleine Auswahl:

  • Dave Farley: Continous Delivery
  • Neal Ford: Building Evolutionary Architectures
  • Hanna Fry: How to be Human in the age of the machine
  • Kevlin Henney: Unreasonable Architecture
  • Rebecca Johnson: Industrial AI enables digital Companions
  • Johanna Rothman: Modern Management: Adopt how you lead for agile success

Alles in allem war es mal wieder eine interessante Woche bei der man merkte, dass man nicht „allein auf der Welt“ mit seinen IT-Problemen ist. 🙂

Und wie sagte mir Jutta Eckstein bei der Verabschiedung: „Danke dir, Thomas! Dann bis demnächst – du weißt ja, nach der OOP ist vor der OOP!“

12. Juli 2019

Smarthost load balancing with Sendmail

Abgelegt unter: Hacker's Corner — Thomas Omerzu @ 13:47

If you have multiple smart hosts that can work as outgoing mail relays, you might wish to implement a kind of load balancing.

On the Internet, you often find the proposal to use something like

   DSesmtp:[smarthost1]:[smarthost2]

as smart host definition in your sendmail.cf. Unfortunately, for us this didn’t work: It implements only a failover, as Sendmail always uses the first host as long as it is reachable.

So we finally came to this solution:

   DSesmtp:smarthost

(note the missing square brackets, which mean that an MX record lookup will take place). In the DNS, we then define

   smarthost  MX  42 smarthost1
              MX  42 smarthost2

And voilà: Sendmail automatically balances outgoing mails between those two MX hosts as they have equal priority.

12. Februar 2019

EAP-MSCHAPv2 for pppd-2.4.7

Abgelegt unter: Hacker's Corner — Thomas Omerzu @ 15:34

Recently, a customer wanted us to connect to his servers in a Microsoft Azure Cloud environment.

This connection required an SSTP tunnel with EAP-MSCHAPv2 authentication. We didn’t want to use the provided VPN client for Windows, but rather preferred to use our Linux gateway to make the connection.

An SSTP client for Linux is available at Sourceforge, but unfortunately the current pppd-2.4.7 does not support the required EAP encapsulated MSCHAPv2 authentication.

There is a patch implementing a PEAP encapsulated MSCHAPv2 at Github, but this didn’t solve our problem either, as the gateway doesn’t support PEAP.

Inspired by that implementation, we created our own EAP-MSCHAPv2 patch for pppd-2.4.7, which you can download here.

The implementation is incomplete in the way that only client mode is supported. Nevertheless, it works well for us. Please use at own risk.