2009-08-14 29 views
5

Tôi đang cố gắng xây dựng một ứng dụng web tương tự như Youtube (nó không phải là một tiếng gõ cửa), nhưng tôi đoán tôi không biết video được phân phát trên internet rất tốt như thế nào.Đi đâu để tìm hiểu kiến ​​trúc web? Ví dụ về Youtube?

Tôi biết cách xây dựng các ứng dụng web theo định hướng cơ sở dữ liệu thông thường, nhưng không có gì giống với khả năng mở rộng của Youtube. Tất cả các ứng dụng tôi đã xây dựng trước đây đều được chạy trên một máy chủ với các tệp được lưu trữ trên cùng một hộp với máy chủ web.

Làm cách nào để tách máy chủ ứng dụng khỏi bộ nhớ tệp khỏi máy chủ phương tiện?

tôi sẽ ít nhiều muốn 4 máy (cụm máy)

máy chủ 1.) Đơn - Trình bày trang web, xử lý cập nhật người dùng, liên kết flash player của người dùng đến máy chủ phương tiện truyền thông chính xác, vv

2.) Cơ sở dữ liệu mảnh - lưu trữ thông tin người dùng, kiểm tra yêu thích vv

3.) lưu trữ tập tin - lưu trữ các tập tin media

4.) Máy chủ media - Phục vụ các tập tin media

Làm thế nào để kết nối tất cả những thứ này với nhau? Tôi nên tận dụng công nghệ nào? Tôi đi đâu để tìm hiểu thêm về kiến ​​trúc này?

Công cụ flash có thể nhúng của YouTube hoạt động như thế nào? Tôi muốn nhúng trình phát flash của mình trên các trang web khác và gắn nó vào kiến ​​trúc của tôi.

Lưu ý tôi đã nhìn vào: http://highscalability.com/youtube-architecture

Nhưng tôi vẫn không nhận được bức tranh tổng thể về cách công cụ này quan hệ với nhau.

Nếu ai đó có thể giải thích ở mức độ cao về cách tất cả nội dung này hoạt động?

Có máy chủ khách chuyên dụng nào đang chạy nội bộ để trộn tất cả nội dung này giữa máy chủ ứng dụng, lưu trữ tệp, v.v. Có phải tất cả thông qua HTTP sử dụng JSON, những gì đang diễn ra ở đây!

Cảm ơn

+0

Tôi nghĩ rằng bit kiến ​​trúc có thể nhận được câu trả lời hay hơn tại ServerFault - chỉ là một ý nghĩ. – karim79

+0

http://serverfault.com/questions/54103/where-to-go-to-learn-about-web-architecture-youtube-example <--- bản sao chính xác – derobert

+0

Tôi vừa đăng nó, tôi được yêu cầu đăng ở đó ... –

Trả lời

1

Hai cuốn sách tôi muốn khuyên là:

Sau đó là do Giám đốc kỹ thuật tại flickr. Không phải youtube, nhưng tôi nghĩ bạn sẽ thấy nó khai sáng.

Ngoài ra, blog High Scalability là nguồn nghiên cứu điển hình và trí tuệ được thu thập, tất cả đều cung cấp điểm khởi đầu tốt để khám phá thêm.

0

Bắt đầu bằng cách thuê đúng người; nếu bạn thuê những người thông minh, họ sẽ có thể đưa ra câu trả lời cho những câu hỏi này và nhiều câu hỏi khác sẽ được giải quyết.

Ngoài ra, hãy bắt đầu với quy mô mà bạn định khởi động lúc đầu.Đừng lên kế hoạch cho khả năng mở rộng mà bạn không cần. Bạn sẽ không tạo một Youtube khác - ngay cả khi bạn rất thành công trong lĩnh vực của mình.

Khả năng mở rộng là tốn kém - rất tốn kém - để phát triển và duy trì. Nếu bạn không cần nó, nó sẽ tiêu hao tài nguyên của bạn và hạn chế các nhà phát triển của bạn không cần thiết. Chỉ cần xây dựng một môi trường thử nghiệm đáng tin cậy cho các hệ thống hiệu suất cao có xu hướng là một công việc lớn, và một hệ thống như vậy sẽ đòi hỏi một số môi trường như vậy.

+0

OK, tôi đoán câu hỏi đầu tiên của tôi là, tôi có cơ sở dữ liệu và máy chủ ứng dụng xuống, nhưng nếu tôi cần có một kho lưu trữ lớn các tệp cần được Flash truy cập thì tôi làm như thế nào? –

Các vấn đề liên quan