Verwalten von Konfigurations-Dateien über mehrere Umgebungen hinweg

Wie haben Sie (Ihre Firma) zu verwalten, die config-Dateien der Anwendungen/Systeme, die Sie bauen? Lassen Sie mich Ihnen sagen, wie wir es tun, und was das problem ist.

Ich arbeite bei einer Firma, wo wir entwickeln software mit über 15 Entwicklern. Wir bauen line-of-business web-apps, die im Einsatz bei unseren managed-hosting-Anbieter.
Eines unserer wichtigsten apps besteht aus einer web-site und über zehn WCF-Dienste. Einige der Dienstleistungen, die miteinander verbunden sind.

Ich weiß nicht, ob dies ist ein großes system oder kleines, aber meiner Meinung nach ist, das dauert uns viel zu lange, um die Dinge laufen in unseren verschiedenen Umgebungen (test, Abnahme und Produktion).

Wir haben die config-Dateien pro Umwelt in unseren Visual Studio-Projekte. So ein web.test.config eine web.acc.config eine web.prod.config und ein web.config für die Entwicklung. Sie alle haben die gleichen Schlüssel, die in Ihnen, aber die Werte können unterschiedlich sein, abhängig von der Umwelt, von der Sie gedacht sind.

Mache ich, wenn ich eine schnelle Zählung der appsettings in der web.config für die webapp zähle ich 32. Und ich zähle 5 Endpunkte. Wir haben vier Umgebungen (dev, test, acc und prod) dies bedeutet, dass 128 appsettings-und 20-Endpunkte, die insgesamt für eine web-app. Wir können leicht Fehler machen, vor allem, wenn Fristen schließen.

Wir sind alle Menschen, so dass Dinge wie diese können jedem passieren:

  • Wir eine änderung in einer config-Dateien, aber vergessen zu schauen, bevor wir erstellen und bereitstellen.
  • Oder wir eine änderung auf dem WebServer und vergessen, zu aktualisieren, dementsprechend in vier anderen web.configs.
  • Oder Ändern wir nur drei von vier config-Dateien. Und so weiter.

Dann haben wir die Infrastruktur an unseren managed hosting-Anbieter. Standardmäßig ist jeder Anschluss ist geschlossen. Also, wenn eine WCF-Dienste zu sprechen, um andere von WCF-Diensten, die sich auf einem anderen server, einer firewall-geschützten port muss offen sein.

Tun wir dies im Test, aber in der Annahme wir haben es wieder tun, und wir haben vergessen, welche ports müssen geöffnet werden, so dass es mehr wie trial-und-error: Oh mein service kann keine Verbindung zur Datenbank, wahrscheinlich ist der port geschlossen. Das gleiche problem kann auftreten, in der Produktion als auch.

Unseren managed-hosting-provider kann ein paar Tage dauern, öffnen Sie einen port in einer firewall, die nach dem SLA. So, dies schnell zu einem ziemlich langen Prozess. Und am Ende dauert es etwa zwei Monate, um Test, Abnahme und Produktion laufen.

So, meine Frage ist: wie schaffen Sie es, die Konfigurationen und die Infrastruktur und der Prozess um ihn herum?

  • Nur ein Stück. Auf der Startseite habe ich einen Scheck wurden der app berührt alle Ressourcen und berichten eine nicht-Antwort.
  • Das ist eine gute Frage - ich wünschte, es hatte ein Dutzend Antworten.
InformationsquelleAutor user369117 | 2012-12-07
Schreibe einen Kommentar