“Raise the nose, HAL.” “I’m sorry, Dave, I can’t do that.”

This article looks like a must-read for software developers.

“The flight management computer is a computer. What that means is that it’s full not of aluminum bits, cables, fuel lines and all the other accoutrements of aviation. It’s full of lines of code. And that’s where things get dangerous.”

http://web.archive.org/web/20190328093447/https://drive.google.com/file/d/1249KS8xtIDKb5SxgpeFI6AD-PSC6nFA5/view

Also published here
https://spectrum.ieee.org/how-the-boeing-737-max-disaster-looks-to-a-software-developer

Urheberrecht dem Patentrecht angleichen

Dieser Kommentar auf Heise schlägt zur Umsetzung von Uploadfiltern folgendes vor:

  • Aufbau einer Datenbank mit allen urheberrechtlich geschützten Werken.
  • Eingang in die Datenbank per Antrag.
  • Teilweise Finanzierung der Antragsbearbeitung durch den Antragsteller.
  • Alles was nicht in der Datenbank ist, muss auch nicht vom Uploadfilter überprüft werden.

Kubernetes, Docker, vSphere und Co.

Software Development Process

Als Entwickler sucht man möglichst einfache Wege, seine Software zu veröffentlichen und zu installieren. Idealerweise kann die Installation und Veröffentlichung der Software in den normalen Entwicklungsprozess integriert werden, so dass nach erfolgreichem Durchlaufen der Testprozeduren ein fertiges Paket zur Installation bereit liegt.

Serverless

Der Entwickler übernimmt dabei die Verantwortung seine Software als lauffähiges Paket bereit zu stellen. Damit dies gelingen kann, müssen Kenntnisse über die siginifikanten Eigenschaften der Zielplattform bekannt sein. Je weniger solcher Eigenschaften der Entwickler beim Paketieren berücksichtigen muss, desto besser.

Aus ihrer Tätigkeit heraus, haben Entwickler nur über einige Aspekte Ihrer Software überhaupt Kenntnisse. Idealerweise reichen diese natürlichen Kenntnisse aus, um ein lauffähiges Paket für die Zielplattform zu erzeugen.

zum Beispiel:

  • benötigte Bibliotheken
  • benötigte Systempfade
  • benötigte Drittdienste
  • benötigte Ports

Infrastructure as a Service

Dabei sind eine Vielzahl von Aspekten, die im Entwicklungsprozess keine Rolle spielen, für den erfolgreichen Betrieb der Software von höchster Wichtigkeit.

zum Beispiel:

  • benötigte  Systemgröße – CPUs, RAM, Storage
  • benötigte Instanzen – Loadbalancing
  • Sicherheitsaspekte – Netzkonfiguration, DNS, SSL
  • Caching
  • Systembenutzer/Gruppen
  • Start/Stop Skripte
  • Monitoring

Über diese Aspekte können Entwickler oft nur wenig sagen. Eine aus Entwicklersicht ideale Umgebung, würde sich einfach den Erfordernissen der Software anpassen, bzw. mit einigen Handgriffen leicht anzupassen sein.

Eine solche Umgebung bereit zu stellen, ist die Triebfeder hinter Technologien wie Docker, Kubernetes, und/oderVMWare.  Durch den Einsatz dieser Technologien sollen alle Aspekte des Softwarebetriebs erfolgreich verwaltet werden können, über die Entwickler typischerweise keine Kenntnisse haben.

Quellen

  1. Kubernetes Introduction for VMware Users – Part 1: The Theory
  2. Containers and Kubernetes: The Time Is Now
  3. https://www.infoworld.com/article/3268073/kubernetes/what-is-kubernetes-container-orchestration-explained.html