5 Stimmen

Wo kann man etwas über Web-Architektur lernen? Youtube Beispiel?

Ich versuche, eine Webanwendung zu erstellen, die Youtube ähnelt (es ist kein Imitat), aber ich schätze, ich weiß nicht sehr gut, wie Videos im Internet dargestellt werden.

Ich weiß, wie man normale datenbankgestützte Webanwendungen erstellt, aber nichts, was mit der Skalierbarkeit von Youtube vergleichbar wäre. Alle Anwendungen, die ich bisher erstellt habe, wurden auf einem Server ausgeführt, wobei die Dateien auf demselben Rechner wie der Webserver gespeichert waren.

Wie kann man den Anwendungsserver vom Dateispeicher und vom Medienserver entkoppeln?

Ich möchte mehr oder weniger 4 Maschinen (Maschinencluster)

1.) Anwendungsserver -- Präsentieren die Webseite, verarbeiten Benutzer-Uploads, verbinden den Flash-Player des Benutzers mit dem richtigen Medienserver usw.

2.) Datenbank-Splitter -- Speichern von Benutzerinformationen, Prüfen von Favoriten, etc.

3.) Dateiablage -- Speichern der Mediendateien

4.) Medienserver -- Servieren der Mediendateien

Wie kann ich das alles miteinander verbinden? Welche Technologien sollte ich nutzen? Wo kann ich mehr über die Architektur erfahren?

Wie funktioniert die Einbettung von Flash auf Youtube? Ich möchte meinen Flash-Player auf anderen Websites einbetten und ihn mit meiner Architektur verbinden.

Anmerkung: Ich habe mich damit beschäftigt: http://highscalability.com/youtube-architecture

Aber ich habe immer noch nicht verstanden, wie das alles zusammenhängt.

Kann mir jemand in einfachen Worten erklären, wie all diese Dinge funktionieren?

Gibt es spezielle Client-Server, die intern laufen, um all diese Dinge zwischen den Anwendungsservern, dem Dateispeicher usw. zu verteilen? Läuft alles über HTTP mit JSON, was ist hier los?

Gracias

1voto

ars Punkte 112843

Zwei Bücher, die ich empfehlen würde, sind:

Letzteres stammt vom technischen Leiter von flickr. Nicht auf youtube, aber ich denke, Sie werden es aufschlussreich finden.

Darüber hinaus ist die Hohe Skalierbarkeit Blog ist eine gute Quelle für Fallstudien und gesammelte Weisheiten, die einen guten Ausgangspunkt für weitere Untersuchungen bieten.

0voto

MarkR Punkte 60862

Stellen Sie zunächst die richtigen Leute ein; wenn Sie kluge Leute einstellen, werden diese in der Lage sein, Antworten auf diese und andere Fragen zu finden.

Beginnen Sie außerdem in der Größenordnung, in der Sie zunächst arbeiten wollen. Planen Sie nicht für eine Skalierbarkeit, die Sie nicht benötigen. Sie werden kein weiteres Youtube machen - selbst wenn Sie in Ihrem Bereich sehr erfolgreich sind.

Skalierbarkeit ist teuer - sehr teuer - in der Entwicklung und Wartung. Wenn Sie sie nicht brauchen, wird sie Ihre Ressourcen aufzehren und Ihre Entwickler unnötig einschränken. Allein der Aufbau einer glaubwürdigen Testumgebung für Hochleistungssysteme ist in der Regel eine große Aufgabe, und ein solches System würde mehrere solcher Umgebungen erfordern.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X