Blog per Mail folgen

Damit Sie nie wieder Blog Posts von uns versäumen!

Unterschied traditionelle Software-Entwicklung zu Cloud First Konzepten

Best Practices

Die Erstellung einer Produktionsplanung mittels Cloud-Technologien unterscheidet sich in einigen Aspekten fundamental von der traditionellen Software-Entwicklung. Die erste wichtige Erkenntnis ist daher, dass hier ein Paradigmenwechsel stattfindet, der über den Shop-Floor und der hier angesiedelten Entwicklungsabteilung hinausgeht. Dies zieht weitere Konsequenzen nach sich.

Konzeption der Anwendung

Die Struktur einer solchen Cloud-Anwendung folgt völlig anderen Anforderungen als die von traditionellen Applikationen, die auf strukturierte Datenbanken fokussiert sind und quasi um solche Data Warehouses herum entwickelt wurden.

Das „Cloud first“-Konzept orientiert sich an den Use Cases der Nutzer beziehungsweise an den Business- und Produktionsprozessen. Ein solches Konzept erfordert nicht nur eine andere Herangehensweise, sondern auch eine andere Denkweise. Unternehmen, die diesen Weg einschlagen, sollten sich daher intensiv damit befassen, das Know-how aufzubauen oder sich erfahrene Partner zu suchen, die ein Verständnis für diese Prozesse mitbringen.

Die Aufgabe für die Konzeption der Anwendung lautet in diesem Fall: Bereits das Ziel, das erreicht werden soll, so zu formulieren, dass es in den Strukturen, die sich aus dem Einsatz der Cloud-Technologien ergeben, abbildbar ist. In der Feinplanung hat sich bewährt, Prozessschritte und Use Cases jeweils als Funktionen mit eigenen Containern abzubilden, die ihrerseits wiederum auf anderen Funktionen und Microservices zurückgreifen.

Ein zweiter Punkt ist der Zeithorizont. Vor allem in die frühe Konzeptionsphase muss mehr Zeit als gewöhnlich einfließen. Beim ersten Projekt gilt es zudem, die IT-Landschaft für den Cloud-Ansatz vorzubereiten. Im Hinblick auf die engere Zusammenarbeit mit Zulieferern und Kunden kann es nötig sein, auch mit deren IT-Abteilungen in Austausch zu treten. Nicht nur um technische Hürden zu überwinden, sondern auch um für die engere Datenintegration zu werben und das dafür nötige Vertrauen zu schaffen. Partner, die bereits selbst Technologien wie beispielsweise Docker einsetzen, können dann Teilaufgaben übernehmen, was den eigenen Aufwand reduziert.

Lock-ins und Abhängigkeiten vermeiden

Dedizierte Services, die von den Cloud-Providern angeboten werden, sind scheinbar bequem – doch langfristig entpuppen sie sich als süßes Gift, das Wechseln erschwert oder unmöglich macht. Deshalb ist stets darauf zu achten, welche Funktionen und Services genutzt werden. Das Kriterium lautet: Sind diese portierbar? Von einem Cloud-Anbieter zu einem anderen, oder sogar in die eigene IT-Welt. Das „Cloud first“-Konzept setzt auf grösstmögliche Unabhängigkeit und kann sowohl in einer Public Cloud als auch in einer Private Cloud im eigenen Rechenzentrum oder Server als auch auf einem leistungsstarken Laptop betrieben werden.

Nicht nur traditionelle Software, auch solche Cloud-basierten Anwendungen gibt es bereits als fertige Produkte am Markt zu kaufen. Deshalb gilt es mit dem Kunden abzuklären, wie verfahren werden soll. Letztendlich geht es um die Entscheidung, wie gross der Anteil ist, der zugekauft wird, und welche Teile oder Funktionen selbst programmiert werden sollen. Auch dies ist wieder unter dem Aspekt zu betrachten, in welcher Weise dadurch Abhängigkeiten entstehen und inwieweit man bereit ist, diese einzugehen. Die Erfahrung zeigt: Je innovativer das eigene Geschäftsmodell und je kürzer die Innovationszyklen, umso schwieriger wird es, dies mit zugekauften Lösungen zu realisieren.

Lizenzierung oder Open Source?

Eng Verknüpft mit der Frage von Portierbarkeit und Abhängigkeit ist die Frage des Lizenzmodells. Zugekaufte Produkte oder Services der Cloud-Anbieter verursachen Lizenzkosten, in der Regel auf Basis einer monatlichen Nutzungsgebühr oder als Pay-per-Use-Modell. Demgegenüber stehen Open-Source-Produkte, die frei sind von Lizenz-Gebühren, möglicherweise aber anfänglich einen höheren Entwickleraufwand nach sich ziehen. Langfristig verspricht der Einsatz von Open-Source-Technologien und -Produkten den Erhalt der Portierbarkeit und damit Wahlfreiheit, und das bei niedrigeren Gesamtkosten.

Parallelisierung der Entwickleraufgaben

Das Aufbrechen der Applikation in einzelne, containerbasierte Funktionen schlägt sich auch in der Programmierung nieder. Die einzelnen Container können in unterschiedlichen Teams parallel entwickelt und getestet werden, beispielsweise der Etikettendruck oder Rechnungserstellung völlig unabhängig von der Erstellung von Maschinen-Rezepten und dieses wiederum unabhängig von Auftrag abarbeiten, inklusive von Teil- oder Unterfunktionen wie Auftrag starten, rückmelden, beenden. Das Nebeneinander der einzelnen Container sorgt dafür, dass die Erstellung der Applikation deutlich schneller möglich ist.

Dies verändert den Entwicklungsprozess auch in Hinblick auf die Möglichkeiten des Kunden- oder Nutzer-Feedbacks. Eine Produktionsplanung, die in einem eigenen Container entwickelt wird, kann nun in einem viel früheren Stadium präsentiert werden. So können zusätzliche Anforderungen und Änderungswünsche mit weniger Aufwand in der weiteren Entwicklung berücksichtigt werden.

Mehr zu diesem Thema in unserem Whitepaper: 

Whitepaper Cloud First