In diesem Buch werden Sie den Weg von den Grundlagen bis zur praktischen Implementierung vollständiger Serveranwendungen in Python beschreiten: von Low-Level-Sockets und Protokollen bis hin zur Architektur und dem Produktionsstart. Das Buch zeichnet sich dadurch aus, dass es nicht einen „richtigen“ Weg bietet, sondern drei ausgereifte Stacks – Flask, Django und FastAPI – in realen Projekten vergleicht und zeigt, wo Einfachheit angebracht ist, wo Vollständigkeit „out of the box“ benötigt wird und wo Geschwindigkeit und Asynchronität entscheidend sind.
Die Struktur des Buches ist durchgängig: von den Grundlagen der Serverprogrammierung (Client-Server-Architektur, HTTP-, HTTPS- und WebSocket-Datenübertragungsprotokolle, Low-Level-Arbeit mit Sockets in Python) bis zur Erstellung mehrerer realer Projekte, einschließlich eines CRM-Systems auf Django, eines Telegram-Bots mit vollständiger Serverlogik, einer REST-API für mobile Anwendungen und eines interaktiven Chats mit WebSocket.
Wir werden die grundlegenden Aspekte der Arbeit mit Datenbanken in Serveranwendungen untersuchen: die Auswahl des Speichertyps basierend auf dem Lastprofil und der Datenstruktur; Techniken für die Arbeit mit drei populären ORM; ein verständlicher Prozess zur Änderung des Schemas ohne Ausfall; fertige Vorlagen für die Anbindung an PostgreSQL/MySQL/SQLite/MongoDB und vieles mehr.
Wir werden die Schlüsselaspekte der Skalierung und Optimierung von Serveranwendungen analysieren: Sie lernen, Lastenausgleichsmechanismen mit Nginx und Gunicorn zu verwenden, effektive Caching-Strategien mit Redis und Memcached anzuwenden, Hintergrundaufgaben mit Celery und RabbitMQ zu implementieren und Container mit Docker und Kubernetes bereitzustellen. Besonderes Augenmerk wird auf Sicherheitsfragen und verschiedene Methoden zum Schutz von Daten und Anwendungen gelegt: die Verwendung von TLS/SSL zur Verschlüsselung von Verbindungen, die Implementierung von JWT-Token und OAuth 2.0 zur Benutzerauthentifizierung, sowie den Schutz vor den häufigsten Angriffen (SQL-Injection, Cross-Site-Scripting (XSS) und Cross-Site-Request-Forgery (CSRF)).
Außerdem werden wir moderne Ansätze zur Bereitstellung von Anwendungen untersuchen, indem wir die Konfiguration der Serverinfrastruktur auf AWS, Heroku, DigitalOcean sowie die Konfiguration des Webservers Nginx und des Prozessmanagers Gunicorn für die Produktion betrachten.