Die akzeptierte Antwort auf meine Frage zu "In welcher Beziehung steht die kontinuierliche Integration zur kontinuierlichen Bereitstellung? " Erklärt auch den kleinen Unterschied zwischen kontinuierlicher Bereitstellung und kontinuierlicher Bereitstellung . Es scheint mit der Antwort auf eine Frage wie "Wie möchten Sie in der Produktion bereitstellen?" Zu tun zu haben, wobei dies die (exklusiven) Optionen sind, aus denen Sie auswählen können:
- Auto (automatisch).
- Handbuch.
Ich kann mir nicht vorstellen, dass es auf der anderen Seite der DevOps-Wand einen armen "Operator" geben wird, der etwas tun muss, das der Bedeutung dieses "Handbuchs" entspricht ... Meine Fragen:
- Ist mein Hinweis (in meiner Frage) auf "Verteilen" im Vergleich zu "Installieren" in der Nähe einer möglichen Implementierung eines solchen "manuellen" Dings? Hier ist ein relevantes Zitat meiner verwandten Frage:
- Verteilen Sie auf eine bestimmte Zielumgebung über FTP (wenn Standardkopien die Lücke nicht schließen können), aber aktivieren Sie sie noch nicht im Ziel. Das ist es, was der kontinuierlichen Lieferung ähnlich sein sollteoder nicht?
- Installation (oder Aktivierung ) in einer bestimmten Zielumgebung, kombiniert mit Dingen wie Bindungen, Stopp- / Startvorgängen usw. Was sollte einer kontinuierlichen Bereitstellung ähnlich seinoder nicht?
- Was sind andere mögliche Implementierungen davon?
continuous-delivery
continuous-deployment
Pierre.Vriens
quelle
quelle
Antworten:
Persönlich betrachte ich die
distribution
Weitergabe der Software an ein Ziel nur als Zwischenschritt einer Bereitstellung - die Installation / Aktivierung dieser Software ist erforderlich, um diese Bereitstellung abzuschließen.Für mich hört das
delivery
(wie incontinuos delivery
) auf, wenn die zu implementierende Software erstellt und für die Implementierung verfügbar gemacht wird (dh für die Verteilung, Installation und Aktivierung).Um Ihre erste Frage zu beantworten: Nein, ich würde Distribution und Installation nicht als den manuellen Schritt betrachten, der die kontinuierliche Bereitstellung von der kontinuierlichen Bereitstellung unterscheidet.
Ja, in einigen (hoffentlich seltenen) Fällen ist dieser manuelle Schritt nur die endgültige menschliche Entscheidung für den Einsatz in der Produktion. Dies spiegelt das kulturelle Misstrauen in der Prozessautomatisierung und den mentalen Komfort wider, die Entscheidung für den Einsatz von einem Menschen zweimal zu überprüfen und zu unterzeichnen (vorausgesetzt) Verantwortung dafür), selbst wenn diese Entscheidung ausschließlich auf der Grundlage eines Algorithmus getroffen wird, der automatisiert werden kann (wie das Zählen der Ergebnisse von Pass / Fail-Tests).
Im Allgemeinen spiegelt es jedoch lediglich die Tatsache wider, dass die Entscheidung zur Durchführung des Einsatzes in der Produktion nicht einfach das Ergebnis eines automatisierten Algorithmus ist. Hier einige Beispiele für solche Fälle:
Daher würde ich den manuellen Schritt nicht einfach als Implementierungsproblem betrachten.
quelle
Eine zusätzliche Überlegung, wenn Sie etwas veröffentlichen, von dem Sie erwarten, dass es von anderen Projekten verwendet wird, hat auch die Bedeutung "Veröffentlichen, damit andere es verwenden".
Stellen Sie sich einen Workflow vor, in dem Sie eine Bibliothek in einem allgemeinen Artefakt-Repository bereitstellen. Dieser Teil des Prozesses ist möglicherweise darauf zurückzuführen, dass Sie eine andere Komponente bereitstellen, für die dieses Artefakt zum Zeitpunkt der Erstellung erforderlich ist, oder es handelt sich lediglich um eine Aktualisierung einer allgemeinen Bibliothek. Unabhängig davon endet der Lebenszyklus dieses Artefakts nicht notwendigerweise damit, dass es für den Verbrauch durch andere verfügbar gemacht wird. Die Bereitstellung dieses Artefakts im Artefakt-Repository ist jedoch möglicherweise die letzte Phase in der Arbeit der Entwickler, nachdem sie beschlossen haben, a zu kürzen neue Release-Version und bevor andere die neue Version sicher verbrauchen können.
quelle