Ich bin ein wenig neu in der Versionskontrolle und Implementierungsumgebungen und ich bin damit fertig geworden, etwas darüber zu lernen: Wie funktionieren Implementierungsumgebungen, wenn Entwickler können nicht auf demselben lokalen Computer arbeiten und müssen immer auf einem Remote-Server arbeiten ?
Wie sollte der Fluss der Implementierungsumgebungen nach bewährten Verfahren eingerichtet werden?
In diesem Beispiel habe ich drei Bereitstellungsumgebungen berücksichtigt: Entwicklung , Bereitstellung und Produktion . und drei Speicherumgebungen: lokal , Repository Server und finaler Server .
Das ist das Flussdiagramm, das ich mir ausgedacht habe, aber ich habe keine Ahnung, ob es richtig ist oder wie es richtig umgesetzt wird:
PS. Ich dachte, die Staging-Tests auf dem Server könnten den Zugriff durch Login- oder IP-Checks eingeschränkt haben, falls Sie sich fragen sollten.
Ich kann Ihnen (meiner Erfahrung nach) eine gute und unverfälschte Praxis geben, dies ist nicht der einzige Ansatz, da es keinen einzigartigen Standard gibt, wie man an allen Projekten arbeitet:
Verwenden Sie ein verteiltes Versionskontrollsystem (wie git / github):
lokale Entwicklung:
master
shared folder
zwischen Ihrem Hostcomputer und Ihrer VM ist. Sie schreiben also Ihre Quellcodes auf Ihrem Host-Betriebssystem mit dem Editor, den Sie lieben, und gleichzeitig existiert dieser Code und wird ausgeführt in deiner VM, ist das nicht unglaublich toll?! python
arbeiten, empfehle ich auch dringend, virtuelle Umgebungen zu verwenden (wie virtualenv oder anaconda ), um innere Abhängigkeiten zu isolieren und zu verwalten fabric
) Remote-Server:
Bereitstellungsablauf: Local-Repo-Remote-Server, wie funktioniert es?
fabric
) Bereitstellung:
5.1 Wenn Sie einen Feature-Zweig zum Testen oder Staging bereitstellen möchten:
ssh
Zugriff auf den Server und dann cd
auf den Projektordner (manuell oder per Autogramm-Skript aus dem Repo geklont) git checkout <the branch used>
git pull origin <the branch used>
5.2 Wenn Sie in der Produktion bereitstellen möchten:
pull request
, nachdem die Pull-Anforderung vom Manager validiert und mit master
branch ssh
Zugriff auf den Server und dann cd
auf den Projektordner (manuell oder per Automatisierungsskript aus dem Repo geklont) git checkout master
# nicht benötigt coz sollte immer auf Master sein Thi ist ein bisschen vereinfachter Ansatz, es gibt noch eine Reihe anderer empfohlener und bester Prectice-Tools und Aufgaben.
Tags und Links webserver version-control web deployment web-development-server