Softwareumgebungen

29. April 2023

Softwareumgebungen einfach erklärt

Dominik Pisch

In der kontinuierlichen Entwicklung von Apps und Webseiten haben unterschiedliche Stakeholder verschiedene Ansprüche an die Softwareumgebungen. So ist es beispielsweise notwendig, dass Entwickler für neue Features Änderungen am System vornehmen können, gleichzeitig aber die bestehende App oder Webseite für normale Nutzer erreichbar bleibt. Dies wird gewährleistet, in dem die Software auf verschiedenen Softwareumgebungen eingesetzt wird. Welche das sind und wofür und wann diese benötigt werden, wird im folgenden Artikel erklärt.

Beispiel einer einfachen Softwareumgebung

Entwicklungsumgebung

Jede App oder Webseite benötigt mindestens einen im Internet erreichbaren Server und eine Datenbank, um Daten bereitzustellen. Für die erste Entwicklung einer Software reicht ein solcher Server vollkommen aus. Dieser ermöglicht es, dass die App sicher zur Datenbank kommuniziert und die Erreichbarkeit der Webseite bereits während der Entwicklung geprüft werden kann. Während der Entwicklung kann dann der Server auf die Bedürfnisse der App und umgekehrt angepasst werden. Sollte sich herausstellen, dass die Wünsche der Kunden stark vom tatsächlichen Stand abweichen, so ist bis zu diesem Zeitpunkt nur der nötigste Aufwand in die Softwareumgebung geflossen und die Projektkosten wurden geringgehalten. Wenn die App dagegen wie gewünscht fertig gestellt werden konnte, dann muss diese der Öffentlichkeit zur Verfügung gestellt werden. In diesem Fall bietet es sich an, mit der Produktivumgebung eine zweite Softwareumgebung zu erstellen.

Produktivumgebung

Da die veröffentlichte App oder Software mit dem produktiven Server kommuniziert, ist es unerlässlich, dass dieser immer online und funktionstüchtig ist. Ausfälle der Produktivumgebung bedeuten, dass die App der Nutzer nicht korrekt funktioniert. Durch die Trennung von der Entwicklungsumgebung können auch die Daten getrennt gehalten werden. Damit kommen die Endnutzer nicht mit Testdaten in Kontakt. Der Produktivserver kann auch gezielt skaliert werden, wenn die Last durch viele Nutzer steigt. Das ist bei der Entwicklungsumgebung nicht notwendig, da im Regelfall eine gleichbleibende Anzahl an Entwicklern auf das System zugreift.

Durch die Trennung von der Entwicklungsumgebung kann die App oder Software auch weiterentwickelt und eventuelle Probleme behoben werden. Dabei agieren die Entwickler mit den Entwicklungsservern und erweitern diese oder passen Funktionen an. Die Produktivumgebung bleibt davon unberührt, sodass der veröffentlichte Stand weiterhin funktioniert, auch wenn im Hintergrund stetig weiterentwickelt wird. Wenn schließlich ein Stand erreicht ist, der als neues Update veröffentlicht werden soll, dann kann der Stand vom Entwicklungssystem auf das Produktivsystem gezogen werden und das neue Update für die App oder Software veröffentlicht werden. So wird das System iterativ weiterentwickelt.

Für viele Fälle reichen diese beiden Softwareumgebungen bereits aus, manchmal ist es jedoch sinnvoll, weitere Serverschichten einzusetzen, um die Qualität der Updates stärker abzusichern.

Testumgebung

Um zu prüfen, ob die entwickelten Features für die App oder Software so funktionieren, wie erwartet, werden Softwaretests durchgeführt. Hier werden einzelne Komponenten geprüft. Da während stetiger Entwicklung sich der Stand der App oder Software permanent verändert, kann mit einer Testumgebung in regelmäßigen Intervallen der Entwicklungsstand festgehalten und überprüft werden, ohne dass die Nutzer damit in Kontakt kommen. Wenn ein Entwicklungsstand abgesegnet wurde, ist bestätigt, dass dieser zur Veröffentlichung bereit ist. Dies bringt allerdings auch einen beträchtlichen Mehraufwand für das Testen und Bereitstellen der Umgebung mit sich. Sollten Updates nur unregelmäßig entwickelt werden, so kann dies auch in der Entwicklungsumgebung getestet werden. In dem Fall pausiert die Entwicklung an kritischen Features, bis die Tests abgeschlossen sind.

Staging-Umgebung

Schließlich gibt es noch die Möglichkeit, eine Staging-Umgebung aufzusetzen. Bei dem Kopieren des Entwicklungsstands auf das Produktivsystem können auch immer Fehler auftreten. Diese sollten auch bemerkt und behoben werden, bevor die Nutzer damit in Kontakt kommen. Dafür wird mit der Staging-Umgebung eine Kopie des Produktivsystems erstellt, die als Generalprobe für den Ernstfall gilt. Dort kann geprüft werden, ob das neue Update der App oder Software tatsächlich wie beabsichtigt funktioniert. Schließlich kann auch das Verhalten des Systems unter großer Last getestet werden, ohne dass man dafür den Produktivserver belasten müsste. Das bietet sich insbesondere dann an, wenn durch Marketingmaßnahmen ein starkes Nutzungswachstum erwartet wird.

Zusammenfassung

Die Entwicklungsumgebung bildet das grundlegende System, mit dem die App oder Software entwickelt werden kann. Zur Veröffentlichung ist es notwendig, eine gesonderte Produktivumgebung aufzusetzen, damit die Entwicklung von der veröffentlichten App oder Software getrennt werden kann.

Testumgebungen ermöglichen insbesondere auch in größeren Projekten spezifische Tests von Entwicklungsständen und mit Staging-Umgebungen können Probleme bei der Veröffentlichung von neuen Updates bereits im Vorhinein identifiziert und behoben werden.

Beispiel einer komplexen Softwareumgebung

 

In2bit offeriert spezialisierte, kundenspezifische Lösungen für Unternehmen. Wir laden Sie ein, uns zu kontaktieren. Zusammen mit Ihnen können wir eine individuelle Anwendung entwickeln, die speziell auf die Bedürfnisse Ihres Unternehmens abgestimmt ist.