Heim  >  Artikel  >  Backend-Entwicklung  >  Automatisierte Bereitstellungsfähigkeiten in der Python-Webentwicklung (Teil 2)

Automatisierte Bereitstellungsfähigkeiten in der Python-Webentwicklung (Teil 2)

王林
王林Original
2023-06-17 10:45:531071Durchsuche

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:

  1. Erstellen eines Jenkins-Jobs

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.

  1. Schreiben einer Jenkins-Datei

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.

  1. Starten Sie den Jenkins-Build

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn