Ich bin der DevOps-Ingenieur und ein Software-Ingenieur in einem Team, in dem die Entwickler vor Monaten von einer zentralen Oracle-Datenbank zu einer Datenbank auf einer CentOS-VM auf ihren einzelnen Laptops gewechselt sind. Der Schritt von einer zentralen Datenbank bestand darin, die Abhängigkeit von den Datenbankadministratoren zu verringern und Probleme zu beseitigen, die sich aus inkonsistenten Daten ergaben.
Der Plan für die Freigabe und Sicherstellung der Synchronisierung der Datenbank mit allen im Team war, dass jede Person Änderungsskripte für alle freigegeben wird. Das Problem ist, dass wir Skype für die Kommunikation verwenden (wir richten Slack nur ein, müssen es aber noch vollständig verwenden), und obwohl die Leute manchmal den Text von DB-Änderungsskripten veröffentlichen, könnte er von einigen übersehen werden. Das andere Problem ist, dass einige Entwickler die Änderungen nicht veröffentlichen. Darüber hinaus werden neue Versionen in der Produktion bereitgestellt, ohne in den Test- und Demo-Umgebungen bereitgestellt zu werden.
Dies war eine ernsthafte Herausforderung für uns, insbesondere für mich, der in letzter Zeit dafür verantwortlich war, dass unsere Demo-Bereitstellungen mit den Produktionsbereitstellungen synchronisiert wurden. Die meisten Synchronisierungsprobleme hängen mit der fehlenden Synchronisierung der Datenbank aufgrund fehlender Änderungsskripte oder fehlender DB-Objekte zusammen. Oracle ist unsere bevorzugte Datenbank.
Eine typische Bereitstellung in der Demo-Umgebung ist ein sehr schmerzhafter Prozess, bei dem eine Anwendung getestet wird. Wenn Probleme aufgrund fehlender DB-Tabellenspalten, Funktionen und gespeicherter Prozesse auftreten, müssen wir nach den fehlenden DB-Objekten suchen, sie auf die DB anwenden und dann Fahren Sie fort, bis alle Probleme behoben sind.
Wie kann ich dieses Problem lösen, um reibungslose, schmerzlose und weniger zeitaufwändige Bereitstellungen sicherzustellen? Kann die Migration unserer Anwendungen auf Docker bei den Problemen mit der DB-Synchronisierung und der damit verbundenen mangelnden Disziplin der Entwickler helfen? Welchen Prozess können wir einführen, um uns in diesem Bereich zu verbessern?