In unserem Shop verwenden wir SVN für die Quellcodeverwaltung und CruiseControl für CI für die Verarbeitung automatischer Builds und Bereitstellungen in unseren Entwicklungs-, Test- und Integrationsumgebungen.
Dies alles funktioniert reibungslos. Aufgrund von Hardware- und Ressourcenbeschränkungen ist unsere Integrationsumgebung jedoch keine Umgebung mit einem Lastausgleich von 2 Servern wie unsere Produktionsumgebung. Während alles andere gleich ist, wäre das der einzige Unterschied zwischen unserer Integrations- und Produktionsumgebung (obwohl ein großer!)
Theoretisch liegt der Unterschied in einer etwas anderen Konfiguration unserer App-Server, und das Bereitstellungsskript müsste lediglich die Build-Artefakte auf zwei Server anstatt nur auf einen ablegen. Warum bin ich jedoch so nervös, unsere Produktionsbereitstellungen zu automatisieren ?!
Ich bin im Allgemeinen kein Kontrollfreak, aber ich habe immer das unersättliche Bedürfnis, die Produktion manuell in die Produktion umzusetzen. Ich habe von Kollegen gehört, dass dies im Allgemeinen eine wirklich schlechte Sache ist, aber sie haben es nicht geschafft, dagegen vorzugehen.
Wenn ich es manuell mache, kann ich SEHEN, dass ich die richtigen Dateien physisch kopiere, die App-Server physisch herunterfahre und sicherstelle, dass sie erfolgreich geschlossen wurden. Ich starte die Server physisch und überprüfe dann die Protokolle, um sie zu erstellen Sicher, es wurde ordnungsgemäß gestartet und die Bereitstellung war erfolgreich. Es gibt mir einen Seelenfrieden.
Was spricht gegen diese ODER-Argumente für die automatische Bereitstellung von Produktionsskripten?