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
- Kubernetes Introduction for VMware Users – Part 1: The Theory
- Containers and Kubernetes: The Time Is Now
- https://www.infoworld.com/article/3268073/kubernetes/what-is-kubernetes-container-orchestration-explained.html