Blog
Was ist eigentlich eine Bereitstellung?
a. Führen Sie SQL-Skripts zum Erstellen von Tabellendefinitionen in der Datenbank aus. b. Konfigurieren Sie die JDBC-Datenquelle im Anwendungsserver c. Konfigurieren Sie http-Ports und virtuelle Hosts im Anwendungsserver, damit die Anwendung für http-Anfragen erreichbar ist d. Installieren Sie die Anwendung auf dem Anwendungsserver e. Starten Sie die Anwendung f. Konfigurieren Sie die Firewall, indem Sie Ports öffnen, um die Kommunikation zwischen dem http-Server und dem Anwendungsserver zu ermöglichen g. Konfigurieren Sie einen http-Server so, dass Anfragen, die für "www.app.com" eingehen und NICHT mit z.B. .js,.html,.gif enden, an den Anwendungsserver weitergeleitet werden h. Platzieren Sie den statischen HTML-Inhalt auf dem http-Server i. Starten Sie den http-Server (erneut), damit er die neue Konfiguration einliest j. Konfigurieren Sie die externe Firewall so, dass der Zugriff von "www.app.com" auf den richtigen http-Server geleitet wird.Eine komplexere Umgebung fügt der Liste der Bereitstellungsschritte natürlich noch mehr Schritte hinzu. In einer hochverfügbaren Cluster-Umgebung muss ich beispielsweise alles mindestens zweimal machen und sicherstellen, dass alle Komponenten für die Ausführung in dieser Cluster-Umgebung konfiguriert und (neu) gestartet werden. Eine Bereitstellung ist eigentlich... Die oben genannten Schritte stellen sicher, dass "eine Anwendung für Endbenutzer" in der Produktion verfügbar ist. Sie lassen sich im Allgemeinen in die folgenden Bereitstellungskategorien einteilen, und das ist es, was eine Bereitstellung wirklich ist:
1. Installation von Anwendungen (Schritt d.) Dies ist der zentrale Teil der Bereitstellung, bei dem die eigentliche Anwendungslogik auf dem Server installiert wird. In J(2)EE/Java bedeutet dies normalerweise die Installation einer EAR- oder WAR-Datei. 2. Konfigurieren von Ressourcen (Schritt b.) Die Anwendung benötigt möglicherweise Daten aus anderen Systemen, wie Datenbanken oder Mainframes. Die Anwendung kann Ressourcen verwenden, um Daten abzufragen oder zu empfangen. Ressourcen werden normalerweise im Anwendungsserver konfiguriert. 3. Konfigurieren von Middleware-Komponenten (Schritt a, c, f, g, h, j.) Um die Anwendung zu erreichen oder eine Instanz bereitzustellen, auf der die Anwendung ausgeführt oder Daten untergebracht werden können (z.B. Erstellen von Anwendungsserver-Clustern, http-Server-Instanzen, Erstellen von Datenbankinstanzen, Erstellen/Aktualisieren von Tabellen), muss die Middleware konfiguriert werden. 4. Starten/Stoppen von Komponenten (Schritt e, i.) Um sicherzustellen, dass eine Komponente ordnungsgemäß funktionieren kann, muss sie möglicherweise (erneut) gestartet werden. 5. und alle oben genannten Schritte (1, 2, 3, 4) in der richtigen Reihenfolge auszuführen. Um sicherzustellen, dass die Anwendung ordnungsgemäß und ohne Fehler startet, muss eine gewisse Reihenfolge eingehalten werden, welche Komponente zu welchem Zeitpunkt (neu) gestartet werden muss. Wenn Sie z.B. die Anwendung installieren (Schritt d.) und starten, bevor die Datenquelle konfiguriert ist (Schritt b), wird die Anwendung möglicherweise nicht ordnungsgemäß gestartet. Dies wird noch wichtiger, wenn Sie eine neue Version Ihrer Anwendung in einer hochverfügbaren Cluster-Umgebung bereitstellen. Es gibt eine zusätzliche Kategorie für Unternehmen, die eine DTAP-Umgebung (Entwicklung, Test, Abnahme, Produktion) einrichten: 6. Konfigurieren der installierten Anwendung für verschiedene Umgebungen Bei einer Bereitstellung muss die Konfiguration an eine bestimmte Umgebung angepasst werden. Wenn Sie z.B. eine Anwendung in der Entwicklungsumgebung installieren, benötigt sie einige Daten aus der Entwicklungsdatenbank, dieselbe Anwendung in der Testumgebung benötigt Daten aus der Datenbank in der Testumgebung und so weiter.Was eine Bereitstellung nicht ist... Viele Leute scheinen zu denken, dass die Installation der Anwendung auf einem Anwendungsserver die eigentliche Bereitstellung ist. Sicher, auf der Schaltfläche in der Verwaltungskonsole des Anwendungsservers steht "Anwendung bereitstellen", aber damit wird nur der Teil des Anwendungsservers erledigt und das funktioniert nur in einfachen Umgebungen, wie der Entwicklungs- oder Entwicklerarbeitsplatzumgebung. Sobald die Anwendung eine komplexere Umgebung mit mehreren Middleware-Komponenten erreicht, reicht dies einfach nicht mehr aus und Sie benötigen zusätzliche Schritte, um die Anwendung für Test-/Endbenutzer zugänglich zu machen. Was oder wer kann eine echte Bereitstellung durchführen Die meisten Leute verlassen sich darauf, dass andere Leute die eigentliche Bereitstellung durchführen, indem sie die Middleware manuell konfigurieren, die Schaltfläche "Bereitstellen" in der Verwaltungskonsole drücken und all das andere Zeug. Einige versuchen, die Bereitstellung zu automatisieren und verlassen sich auf Bereitstellungsskripte oder Produkte wie Phurnace oder Buildforge, aber diese übernehmen nur einen sehr kleinen Teil der eigentlichen Bereitstellung, nämlich nur die Installation von Anwendungen (siehe Kategorie 1 oben) und die Konfiguration von Ressourcen (siehe Kategorie 2 oben). Es gibt nicht viele Produkte auf dem Markt, die eine "echte" Bereitstellung übernehmen können. XebiaLabs bietet ein Produkt namens Deployit an, das alle 6 Bereitstellungskategorien unterstützt. Seien Sie sich darüber im Klaren, was nötig ist Wenn Sie also nicht in der glücklichen Lage sind, Zugang zu einem Produkt zu haben, das eine echte Bereitstellung ermöglicht, sollten Sie sich darüber im Klaren sein, was getan werden muss, damit Ihre Anwendung für den Endbenutzer verfügbar ist. Erstellen Sie ein paar Skripte, verwenden Sie Deployment-Tools und reservieren Sie in Ihrem Projekt Zeit für die manuelle Konfiguration dieser Middleware-Komponenten durch die (Betriebs-)Mitarbeiter.
Verfasst von

Robert van Loghem
I'm always interested in the latest and greatest when it comes to; communication, infrastructure, user experience and coming up with some crazy creative solution which might seem as a weird combination ;) I use and spread the word about multimedia (podcasts, vodcasts, movies, comics) to effectively communicate concepts, ideas, documentation, past experiences and so on. Furthermore i am heavy into infrastructure but then the middleware part, like HTTP servers, Application Servers, Messaging, Virtualization, etc... I get really enthousiastic if the infrastructure is clustered, highly available and is critical to doing business! I also like to do development and thus "i eat my own dogfood".
Contact









