Zum Inhalt springen
Mein HumanInTechJob-Alerts abonnieren
HumanInTech
← Zurück zum Blog
11 Min. Lesezeitvon HumanInTech

Können Claude Code und Codex Apps für Tausende gleichzeitiger Nutzer erstellen?

Ja, wenn Skalierbarkeit spezifiziert und getestet wird. Ein praktischer Leitfaden zu nicht-funktionalen Anforderungen, besseren Prompts, Lasttests und wie HIT helfen kann.

KI-gestützte EntwicklungSkalierbarkeitSoftwarearchitektur

Können Claude Code und Codex beim Erstellen von Anwendungen helfen, die Tausende von Menschen gleichzeitig nutzen? Ja. Aber eine funktionierende Demo ist kein Beweis dafür, dass eine Anwendung produktiven Traffic bewältigen kann.

KI-Coding-Tools können bei der Implementierung, beim Testen und bei der Verbesserung von Software helfen. Die Kapazität der fertigen Anwendung hängt von ihrer Architektur, Datenbank, Infrastruktur und operativen Disziplin ab. Diese Eigenschaften müssen von Anfang an Teil der Anforderungen sein.

Beginnen Sie damit, was „Tausende von Nutzern" tatsächlich bedeutet

Zehntausend registrierte Konten, zehntausend aktive Sitzungen und zehntausend gleichzeitige Anfragen sind sehr unterschiedliche Workloads. Ein Kundenportal, das gecachte Seiten anzeigt, verhält sich anders als ein Buchungssystem, bei dem alle versuchen, denselben Termin zu reservieren.

Beschreiben Sie die wichtigen User Journeys, Spitzenaktivität, Datenvolumen, geografische Verteilung und das Verhältnis von Lese- zu Schreibzugriffen. Zum Beispiel erzeugen 5.000 aktive Nutzer, die alle zehn Sekunden eine API-Anfrage stellen, durchschnittlich etwa 500 Anfragen pro Sekunde. Eine Seite, die sechs API-Aufrufe auslöst, ein synchronisierter Login-Burst oder automatische Wiederholungsversuche können dieses Bild erheblich verändern.

Spezifizieren Sie sowohl den erwarteten Workload als auch das Überlastszenario. Entscheiden Sie, was die Anwendung tun soll, wenn die Nachfrage die Kapazität übersteigt: Arbeit in eine Warteschlange stellen, überschüssige Anfragen klar ablehnen oder optionale Funktionalität vorübergehend reduzieren.

Verwandeln Sie nicht-funktionale Anforderungen in Akzeptanzkriterien

„Machen Sie es schnell, sicher und skalierbar" gibt einem Agenten zu viel Raum zum Raten. Nicht-funktionale Anforderungen beschreiben, wie gut das System funktionieren muss und unter welchen Bedingungen. Machen Sie sie messbar und verknüpfen Sie jede mit einem Nachweis.

  • Performance: Definieren Sie Antwortzeitvorgaben pro kritischer Journey, einschließlich der 95. und 99. Perzentile. Ein Durchschnittswert kann eine schmerzhafte Erfahrung für viele Nutzer verbergen. Trennen Sie Browser-Erfahrung von API-Latenz.
  • Kapazität: Definieren Sie aktive Nutzer, Anfragen pro Sekunde, Burst-Dauer, Hintergrund-Jobs und realistische Datenbankgröße. Berücksichtigen Sie Datei-Uploads und langlebige Verbindungen, wenn sie relevant sind.
  • Zuverlässigkeit: Vereinbaren Sie ein Verfügbarkeitsziel, Timeouts, Wiederholungslimits und kontrollierte Reduzierung des Funktionsumfangs bei Überlastung. Definieren Sie akzeptablen Datenverlust und Wiederherstellungszeit, dann testen Sie die Wiederherstellung.
  • Sicherheit und Datenschutz: Fordern Sie serverseitige Autorisierung, Mandantenisolierung, Eingabevalidierung, Secret Management und angemessene Datenaufbewahrung. Schließen Sie Negativtests ein: Ein Nutzer darf niemals auf die Datensätze eines anderen Kunden zugreifen.
  • Observability: Fordern Sie nützliche Metriken, strukturierte Logs und Traces ohne sensible Payloads. Überwachen Sie Latenz, Fehler, Sättigung und Warteschlangenalter, mit Alerts, für die jemand verantwortlich ist.
  • Wartbarkeit und Barrierefreiheit: Fordern Sie verständliche Module, automatisierte Prüfungen, dokumentiertes Deployment und Rollback, Tastaturnavigation und barrierefreie kritische Abläufe.
  • Kosten: Legen Sie ein vereinbartes Betriebsbudget fest und verfolgen Sie die Kosten pro sinnvoller Transaktion. Berücksichtigen Sie Datenbanken, Speicher, Netzwerkverkehr, Monitoring und Drittanbieter-Services.

Ziele sind Geschäftsentscheidungen, keine universellen Standardwerte. Ein Reporting-Portal und eine Zahlungsplattform erfordern unterschiedliche Trade-offs. Lassen Sie Produkt, Engineering und Operations die Anforderungen vereinbaren, bevor Sie einen Agenten bitten, sie umzusetzen.

Ein Prompt, der die Anforderungen konkret macht

Das Folgende ist ein illustrativer Ausgangspunkt für ein Kundenportal, keine Kapazitätsbehauptung oder ein von einem der Tools erreichter Benchmark:

Erstellen Sie ein Kundenportal für 5.000 gleichzeitig aktive Sitzungen. Modellieren Sie 500 API-Anfragen pro Sekunde über 30 Minuten hinweg, mit einem 80/20-Verhältnis von Lese- zu Schreibzugriffen und einem zweiminütigen Burst bei 1.000 Anfragen pro Sekunde. Verwenden Sie realistische Datenvolumen und dokumentieren Sie die Annahmen hinter diesem Workload.

Für die wichtigsten Lese-Endpunkte streben Sie p95 unter 300 ms und p99 unter 800 ms in der vereinbarten Testumgebung an. Halten Sie unerwartete Fehler unter 0,1% bei der vorgesehenen Dauerlast. Melden Sie alle abgelehnten und zeitüberschrittenen Anfragen separat, einschließlich Rate Limiting. Verbergen Sie niemals Fehler, indem Sie sie aus dem Bericht ausschließen.

Erzwingen Sie Autorisierung und Mandantenisolierung bei jeder serverseitigen Operation. Verwenden Sie begrenzte Datenbank-Verbindungspools, Paginierung und geeignete Indizes. Machen Sie wiederholte Schreibvorgänge idempotent. Stellen Sie langsame Exporte in eine dauerhafte Warteschlange mit begrenzten Wiederholungsversuchen und sichtbaren Fehlerzuständen.

Schlagen Sie ein monatliches Verfügbarkeitsziel von 99,9%, eine Wiederherstellung innerhalb einer Stunde und nicht mehr als 15 Minuten Datenverlust vor und identifizieren Sie, welche Infrastruktur und Betriebsverfahren diese Ziele erfordern. Ein Lasttest allein beweist diese Ziele nicht.

Inspizieren Sie zunächst das bestehende System. Fragen Sie nach fehlenden Einschränkungen, einschließlich Hosting, Datenresidenz, Aufbewahrung und Budget. Schlagen Sie die einfachste geeignete Architektur vor und erklären Sie Engpässe, Fehlermodi und Trade-offs, bevor Sie implementieren.

Liefern Sie in kleinen, überprüfbaren Änderungen. Schließen Sie automatisierte Tests, ein reproduzierbares Lasttest-Skript, Dashboards, eine Backup-und-Wiederherstellungs-Übung und ein Deployment/Rollback-Runbook ein. Melden Sie gemessene Ergebnisse mit dem Commit, der Umgebung und den Ressourcenlimits. Unterscheiden Sie klar zwischen bestandenen Prüfungen, Annahmen und Prüfungen, die nicht durchgeführt werden konnten.

Bewahren Sie diese Anforderungen in versionskontrollierter Projektdokumentation auf und verweisen Sie in Folgeaufgaben darauf. Ein langer Eröffnungs-Prompt schützt keine Anforderungen, die aus dem Entwicklungsworkflow verschwinden.

Wählen Sie eine Architektur, die Sie betreiben können

Tausende von Nutzern erfordern nicht automatisch Microservices oder Kubernetes. Eine gut strukturierte Anwendung mit einer verwalteten Datenbank, sinnvollen Indizes und einem geeigneten Deployment kann ein praktischer Ausgangspunkt sein. Teilen Sie Komponenten auf, wenn gemessene Engpässe oder operative Anforderungen die Komplexität rechtfertigen.

Halten Sie Anwendungsinstanzen wo möglich zustandslos, damit Traffic auf sie verteilt werden kann. Verwenden Sie gemeinsamen Session-Speicher, wenn nötig. Liefern Sie statische Assets über ein CDN aus. Cachen Sie sorgfältig, mit expliziter Invalidierung und korrekter Trennung von privaten oder mandantenspezifischen Daten.

Achten Sie besonders auf die Datenbank. Unbegrenzte Abfragen, fehlende Indizes und wiederholte Abfragen innerhalb von Schleifen können sie lange überlasten, bevor die Anwendungs-CPU erschöpft ist. Das Hinzufügen von Anwendungsreplikaten kann die Situation verschlimmern, wenn jedes Replikat einen weiteren großen Verbindungspool öffnet.

Verschieben Sie langsame Arbeiten wie Exporte und Dokumentenverarbeitung in Hintergrund-Worker. Begrenzen Sie Parallelität und Warteschlangengröße. Verwenden Sie Timeouts, Retry-Backoff und Idempotenz, damit ein vorübergehender Ausfall einer Abhängigkeit nicht zu doppelten Bestellungen oder einem Retry-Storm wird. Schützen Sie gemeinsame Limits wie einen letzten verfügbaren Buchungsplatz mit Datenbanktransaktionen und Constraints.

Beweisen Sie die Kapazität vor dem Launch

Bitten Sie Claude Code oder Codex, beim Schreiben von Tests zu helfen, und prüfen Sie dann, ob diese Tests die Anforderungen abbilden. Generierte Tests können dieselben fehlerhaften Annahmen wiederholen wie die generierte Implementierung. Menschliche Überprüfung und unabhängig definierte Akzeptanzkriterien bleiben wichtig.

Führen Sie Lasttests in einer autorisierten Umgebung durch, die der Produktionsumgebung ähnelt, mit realistischen Daten, authentifizierten Sitzungen und dem tatsächlichen Mix an User Journeys. Berücksichtigen Sie Cache-Misses, gleichzeitige Schreibvorgänge und langsame externe Abhängigkeiten. Bestätigen Sie, dass der Lastgenerator selbst nicht der Engpass ist.

Testen Sie anhaltende Nachfrage, plötzliche Spitzen, allmähliche Überlastung und einen längeren Soak-Test, um Speicherlecks oder Ressourcenerschöpfung aufzudecken. Messen Sie Durchsatz, Tail-Latenz, Fehler, Datenbankverbindungen, Lock-Contention, Queue-Tiefe und Kosten gemeinsam. Beheben Sie die limitierende Ressource und führen Sie dasselbe Szenario erneut aus.

Testen Sie auch Ausfälle: Starten Sie eine Instanz neu, unterbrechen Sie eine Abhängigkeit, wiederholen Sie einen Schreibvorgang und stellen Sie ein Backup wieder her. Überprüfen Sie, dass sich das System ohne Datenbeschädigung erholt. Dokumentieren Sie den getesteten Kapazitätsbereich. Machen Sie aus einem erfolgreichen Testlauf kein unbegrenztes Skalierbarkeitsversprechen.

Schrittweise ausrollen und weiter überwachen

Nutzen Sie automatisierte Delivery-Checks und ein gestaffeltes Rollout. Beobachten Sie das tatsächliche Nutzerverhalten, Latenz, Fehlerraten und Ressourcennutzung. Definieren Sie, wer auf Alarme reagiert und wann ein Rollback erfolgt. Prüfen Sie, dass Datenbankmigrationen während des Deployments kompatibel bleiben und dass ein Rollback tatsächlich möglich ist.

Wenn die Anwendung selbst ein KI-Modell aufruft, fügen Sie einen separaten Kapazitäts- und Kostenplan für Provider-Quotas, Token-Nutzung, Latenz, Warteschlangen und Fallbacks hinzu. Dass KI zum Schreiben einer Anwendung verwendet wird, bedeutet nicht, dass die Anwendung zur Laufzeit KI benötigt.

Offizielle Leitfäden unterstützen einen Spezifikations- und Verifizierungs-Workflow: OpenAIs Codex modernisation guide verbindet Design-Spezifikationen mit Validierungsplänen, während Anthropics Claude Code best practices betonen, dem Agenten eine Möglichkeit zu geben, seine Arbeit zu überprüfen. Keiner ersetzt das Testen der tatsächlichen Kapazität Ihrer Anwendung.

Wie HumanInTech helfen kann

Bei HIT bringen wir Architektur, praktische Engineering-Expertise, Delivery-Leadership und KI-Kompetenz zusammen. Wir können helfen, Geschäftserwartungen in messbare Anforderungen zu übersetzen, einen mit KI entwickelten Prototyp zu überprüfen, Datenbank- und Integrationsengpässe zu identifizieren und die Test- und Betriebsgrundlagen aufzubauen, die für den Produktivbetrieb erforderlich sind.

Das kann die Form eines fokussierten Architecture-Reviews, eines klar abgegrenzten Engineering-Einsatzes oder eines Senior Consultants annehmen, der in Ihr Team eingebettet wird. Das Ziel ist, Ihren Mitarbeitern ein System zu geben, das sie verstehen, betreiben und verbessern können, während die Nachfrage wächst.

Entdecken Sie HITs Architektur-, Engineering- und KI-Services, oder sprechen Sie mit uns über Ihre Anwendung und die erwartete Arbeitslast. Wir helfen Ihnen festzustellen, was bereit ist, was noch Arbeit erfordert und welche Nachweise Sie benötigen, bevor Sie die Türen für Tausende von Nutzern öffnen.

Ja, KI-Coding-Tools können Ihnen helfen, für Skalierung zu bauen. Machen Sie die nicht-funktionalen Anforderungen explizit, verwandeln Sie sie in Checks und lassen Sie gemessene Ergebnisse bestimmen, wann die Anwendung bereit ist.

Können Claude Code und Codex Apps für Tausende gleichzeitiger Nutzer erstellen? · HumanInTech