去哪里学习网络架构? Youtube的例子?

时间:2009-08-14 06:40:12

标签: django web-services architecture

我正在尝试构建一个类似于Youtube的网络应用程序(这不是一个淘汰赛),但我想我不知道视频是如何在互联网上提供的。

我知道如何构建常规的数据库驱动的Web应用程序,但没有像Youtube的可扩展性那样。我之前构建的所有应用程序都在一台服务器上运行,文件存储在与Web服务器相同的盒子上。

如何将应用程序服务器与文件存储器与媒体服务器分离?

我或多或少想要4台机器(机器集群)

1。)应用程序服务器    - 呈现网页,处理用户上传,将用户的Flash播放器链接到正确的媒体服务器等。

2。)数据库分片    - 存储用户信息,查看收藏夹等。

3.。)文件存储    - 存储媒体文件

4.。)媒体服务器     - 提供媒体文件

如何将所有这些挂钩?我应该利用哪些技术?我在哪里可以了解更多有关构建此内容的信息?

Youtube的可嵌入闪存材料如何工作?我想将我的Flash播放器嵌入其他网站,并将其与我的架构相结合。

注意我已查看过:http://highscalability.com/youtube-architecture

但我仍然没有全面了解这些东西是如何结合在一起的。

如果有人能够从高层次的角度解释所有这些东西是如何运作的?

是否有内部运行的专用客户端服务器在应用程序服务器,文件存储等之间的所有内容之间进行混乱。是否所有这些都通过HTTP使用JSON,这里发生了什么!

由于

2 个答案:

答案 0 :(得分:1)

我推荐的两本书是:

后者是flickr的工程总监。不是youtube,但我认为你会发现它具有启发性。

除此之外,High Scalability博客是案例研究和收集智慧的良好来源,所有这些都为进一步探索提供了良好的起点。

答案 1 :(得分:0)

首先雇用合适的人;如果你雇用聪明的人,他们将能够提出这些问题的答案,以及更多的问题。

此外,从您计划最初操作的比例开始。不要计划您不需要的可扩展性。即使你在自己的领域取得了很大的成功,你也不会再制作另一个Youtube。

可扩展性昂贵 - 非常昂贵 - 开发和维护。如果您不需要它,它将耗尽您的资源并不必要地限制您的开发人员。为高性能系统构建可靠的测试环境往往是一项重大工作,而这样的系统需要几个这样的环境。