Anstatt die Infrastruktur zu übergießen und von Anfang an verteilte Systeme auf den Markt zu bringen, müssen Unternehmen einfach allmählich skalieren. Teams müssen ihre Architektur basierend auf den tatsächlichen Nutzungsmustern optimieren.
1. Verwenden Sie zuerst vertikale Skalierung. Wenn Ihre Anwendung CPU/Memory gebunden ist und der Verkehr vorhersehbar ist, ist das Upgrade auf die einfachste und kostengünstigste Lösung normalerweise die einfachste und kostengünstigste Lösung.
2. Wir werden bei Bedarf eine horizontale Skalierung einführen. Wenn Sie aufgrund gleichzeitiger Verkehrspikes einen einheitlichen Leistungs Engpass treffen, ist es sinnvoll, weitere Instanzen hinzuzufügen.
3. Überwachen Sie vor dem Skalieren: Leistung Engpässe müssen zuerst analysiert werden. Cache, Abfrageoptimierung oder asynchrone Verarbeitung können die Notwendigkeit einer sofortigen Skalierung beseitigen.
Für Anwendungen mit weniger als 1.000 Menschen pro Monat ist eine monolithische Architektur mit vertikaler Skalierung einer der besten Ansätze.
Viele Startups springen direkt in Microservices und denken, es sei die neueste Art, Software zu erstellen. Microservices stellen jedoch Kommunikationsaufwand, Komplexität der Bereitstellung und operative Herausforderungen ein. Gut strukturierte Monolithen sind oft einfacher und billiger.
1. Niedrige Infrastrukturkosten: Eine einzelne, gut optimierte Instanz ist billiger als mehrere kleine Instanzen mit verteiltem Overhead auszuführen.
2. Vereinfachtes Debuggen und Wartung: Nur wenige bewegliche Teile bedeuten, dass weniger Dinge in großem Maßstab brechen.
3. Einfach wiederholt: Anwendungen im Frühstadium erfordern eher einen schnellen Entwicklungszyklus als eine übermäßige Infrastruktur.
1. Halten Sie zuerst monolithisch: Vermeiden Sie Microservices und Verteilungsmuster, bis Sie einen Maßstabs Engpass erreichen.
2. Vor dem Skalieren optimieren: Verbesserung der Datenbankabfragen, implementieren Sie Cache (Redis, Memcached) und optimieren Sie die Code -Effizienz, bevor Sie mehr Ressourcen bereitstellen.
3. Einschränkungsbenchmarks: Verwenden Sie Lasttests, um die für Ihre Infrastruktur erforderlichen Schwellenwerte zu definieren.