Heim >Backend-Entwicklung >Python-Tutorial >Automatisierte Bereitstellungsfähigkeiten in der Python-Webentwicklung (Teil 2)
Da Python-Webentwicklung in immer mehr Projekten zum Einsatz kommt, ist die automatisierte Bereitstellung zu einem wesentlichen Bestandteil geworden. Im ersten Teil haben wir die grundlegenden Bereitstellungsmethoden von Python-Webanwendungen und die Verwendung zugehöriger Tools erläutert. In diesem Artikel werden wir weiterhin einige fortgeschrittenere automatisierte Bereitstellungstechniken vorstellen, damit Sie Ihre Bereitstellungsaufgaben effizienter erledigen können.
1. Verwenden Sie Fabric, um die Bereitstellung zu automatisieren.
Fabric ist eine Python-Bibliothek zur Automatisierung der Befehlsausführung und der Ausführung von Shell-Skripten auf lokalen oder Remote-Computern. Dadurch kann der Bereitstellungsprozess stärker automatisiert und komplexe Bereitstellungsvorgänge vereinfacht werden. Das Folgende ist ein Beispielcode:
from fabric import Connection from invoke import Responder def deploy(): c = Connection(host='server_name', user='username', connect_kwargs={"password": "password"}) sudo_pass = Responder(pattern=r'[sudo] password:', response='password ') c.run('sudo apt-get update', pty=True, watchers=[sudo_pass]) c.run('sudo apt-get install -y nginx', pty=True, watchers=[sudo_pass]) c.put('path/to/local/folder', '/path/to/remote/folder') c.run('sudo service nginx restart', pty=True, watchers=[sudo_pass])
Das obige Beispiel ist ein Beispielcode, der Fabric verwendet, um automatisch eine Python-Webanwendung bereitzustellen. Es sendet zunächst einige Befehle vom lokalen an den Remote-Server, führt dann einige Installations- und Konfigurationsvorgänge durch und lädt lokale Dateien auf den Remote-Server hoch.
Es ist zu beachten, dass Sie beim Ausführen des Sudo-Befehls die Responder-Unterbibliothek verwenden müssen, um die Eingabe des Sudo-Passworts zu verarbeiten.
2. Verwenden Sie die Docker-Container-Bereitstellung
Docker ist eine Open-Source-Anwendungscontainer-Engine, mit der Sie Anwendungen einfacher bereitstellen und verwalten können. Mit Docker kann eine gesamte Anwendung und alle ihre Abhängigkeiten in einen Container gepackt und auf jeder Plattform ausgeführt werden, die die Docker-Engine unterstützt. Das Folgende ist ein Beispiel für die Verwendung von Docker zum Bereitstellen einer Python-Webanwendung:
FROM python:3.6.4-alpine3.7 RUN mkdir /app WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt COPY . . EXPOSE 8000 CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
Die obige Docker-Beispieldatei ist eine Datei, die auf dem Image python:3.6.4-alpine3.7 basiert. Zuerst wird die Datei „requirements.txt“ in den Container kopiert und „pip install“ im Container ausgeführt, um alle Abhängigkeiten der Anwendung zu installieren. Kopieren Sie dann die gesamte Anwendung in den Container und stellen Sie Port 8000 im Container bereit. Führen Sie abschließend die Django-Anwendung auf Port 8000 aus.
Auf diese Weise können wir Docker verwenden, um Python-Webanwendungen bereitzustellen. Es ist nicht nur einfach zu verwalten, sondern erleichtert auch die Bereitstellung von Anwendungen in verschiedenen Umgebungen.
3. Verwenden Sie Jenkins für automatisiertes CI/CD
Jenkins ist ein beliebtes Open-Source-CI/CD-Automatisierungstool, das Entwicklern helfen kann, Anwendungen schnell zu erstellen, zu testen, bereitzustellen und bereitzustellen. Es kann in Git, Docker und andere Entwicklungstools integriert werden, um automatisch Code zu erstellen und zu testen und den Code nach bestandenem Test automatisch bereitzustellen. Hier ist ein Beispiel für die Verwendung von Jenkins für CI/CD:
Wir können einen Jenkins-Job mit dem Namen „Python Web App“ erstellen und im Build-Trigger die Option „Poll SCM“ auswählen, sodass der Build automatisch erstellt wird und stellen Sie Anwendungen bereit, wenn in Ihrem Git-Repository neue Commits vorhanden sind.
Erstellen Sie eine Datei mit dem Namen „Jenkinsfile“ im Stammverzeichnis des Projekts und geben Sie den folgenden Befehl an:
pipeline { agent any stages { stage('Build') { steps { sh 'docker build -t python:latest .' } } stage('Test') { steps { sh 'docker run --rm python:latest python manage.py test' } } stage('Deploy') { steps { sshagent(['my-ssh-key']) { sh 'ssh user@server "docker-compose down && docker-compose up -d"' } } } } }
Diese Jenkins-Datei teilt Jenkins mit, wie die Anwendung erstellt, Tests ausgeführt und der Code bereitgestellt wird. In der Phase „Bereitstellen“ wird SSH verwendet, um eine Verbindung zum Remote-Server herzustellen, und Docker Compose wird verwendet, um die Anwendung bereitzustellen.
Sobald wir sowohl die Jenkins-Datei als auch den Jenkins-Job konfiguriert haben, können wir mit der Verwendung von Jenkins für automatisiertes CI/CD beginnen. Senden Sie einfach neuen Code an das Git-Repository, und Jenkins erkennt die neue Übermittlung automatisch und erstellt, testet und stellt die Anwendung automatisch bereit.
Zusammenfassung:
In der Python-Webentwicklung ist die automatisierte Bereitstellung eine sehr wichtige Aufgabe. In diesem Artikel stellen wir einige Techniken zur Automatisierung der Bereitstellung von Python-Webanwendungen mithilfe von Tools wie Fabric, Docker und Jenkins vor. Durch diese Techniken können wir Anwendungen effizienter bereitstellen und die Entwicklungseffizienz und Codequalität verbessern. Ich hoffe, diese Tipps sind hilfreich für Sie.
Das obige ist der detaillierte Inhalt vonAutomatisierte Bereitstellungsfähigkeiten in der Python-Webentwicklung (Teil 2). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!