云计算 频道

用Amazon Web Service实现视频文件转换程序

【IT168 资讯】过去InfoQ已经报道过,Amazon的基础服务平台在节省成本方面上了一级新台阶,也让某些类型的应用得以利用它的可伸缩的计算和存储平台。最近有一个示例程序向我们演示了如何利用Amazon的三个关键Web Services构建一个视频文件转换服务:即简单存储服务(Simple Storage Service,S3)、简单队列服务(Simple Queue Service,SQS)和弹性计算云(Elastic Compute Cloud、EC2)这三个服务。 

S3用于存储要转换的文件:

“Amazon S3不但是存储要转换的视频文件的非常好的场所,也是存储我们的转换服务产生的输出文件的非常好的场所。除了快速和可靠,我们还完全不需要担心磁盘空间不足的问题。”
为了实现服务的可伸缩性和高可用性,服务被设计成消息驱动的,其中利用了SQS的可靠消息传递。这保证了客户请求按照它们被接收到的顺序执行。

ConvertVideo服务是用Python编写的,其中使用了Boto类库,这个库提供了一系列用于集成Amazon Web Service的类。为了向EC2提供这个服务,必须先创建并注册一个AMI(Amazon Machine Image)文件,以便按需创建服务的实例。

在客户端,Boto库提供了一个命令行接口,可以用来上传一个目录下的所有文件到一个S3“桶”,并为每个文件发送一条SQS消息。一旦文件上传完毕,一个服务实例就会被启动来处理队列中的消息。

为测试可伸缩性,我们现在用一个服务实例转换50个视频文件:

平均处理时间:17.820000
消耗时间:896
产出:3.348214 事务/分钟
下一步我们用10个服务实例处理500个视频文件:

平均处理时间:17.794000
消耗时间:928
产出:32.327586 事务/分钟
额外增加的服务实例使得产出以可预测的方式线性增长:

果然,平均处理时间和消耗时间几乎一样,而总体产出则大约是上一个例子的10倍,这正是我们所期望的结果。

0
相关文章