写点什么

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

  • 2007-07-29
  • 本文字数:1267 字

    阅读完需:约 4 分钟

过去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 倍,这正是我们所期望的结果。

教程还详列了转换 500 个视频文件的成本:

存储 2.5 GBytes $0.38/ 月 传输 2.5 GBytes $0.50 消息 1000 $0.10 计算资源 8 个实例~20 分钟 $0.80 总计: $1.78 转换 500 个视频共花费约 $1.78,也就是说转换每个视频文件的成本低于 $0.004。

AWS 基础设施看起来非常适合于像文件转换这样的计算服务,不过有人对这个缺少数据库的平台的实用性提出了疑问。Dare Obasanjo 在他的博文《 Amazon EC2 + S2 不够好》中对缺少数据库表示惋惜,他正在试验一个 Facebook 应用:

“看起来要实现这个相当简单直接的应用超出了目前 EC2 + S3 的能力。S3 主要适用于文件存储,虽然它为图片和 CSS 样式表的低成本存储提供了一个不错的选择,但在存储关系型数据和结构化数据上它不是一个好的选择。”

当然,Amazon 在大规模服务上有丰富的经验。在《 Google 西雅图可伸缩性会议总结》一文中,Robin Harris 就 Verner Wogels(Amazon 的 CTO)的名言:“数据库是恐龙”发表了评论。也许 Dynamo ——Amazon 将在 SOSP 2007 上演示的可伸缩数据存储——会是 AWS 拼图中缺失的那一块。

查看英文原文: Using Amazon Web Services to Implement a Video File Conversion app

2007-07-29 22:001096
用户头像

发布了 225 篇内容, 共 65.2 次阅读, 收获喜欢 50 次。

关注

评论

发布
暂无评论
发现更多内容

Linux渗透:曲折渗透之路

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 安全漏洞

ThreadPoolExecutor学习笔记

风翱

ThreadPoolExecutor 10月月更

016云原生之安全技术

穿过生命散发芬芳

云原生 10月月更

链路层的封装成帧和透明传输基本问题

Regan Yue

计算机网络 10月月更

在线最大公因数计算器

入门小站

工具

阿里P8高级架构师开发高并发系统经验总结

Java 程序员 架构 面试 后端

Mock Service Worker:可用于浏览器的Mock服务

devpoint

Vue Mock msw 10月月更

CSS架构之Acss层

Augus

CSS 10月月更

架构实战营_模块六作业_拆分电商系统为微服务

Rabbit

好家伙!华为内部Java系统优化笔记一夜之间跃居Github热榜第二

Java 架构 IT 计算机 知识分享

太厉害了,阿里大佬用一篇神文把《数据结构与算法》讲的明明白白

程序员小呆

Java 程序员 架构师

真香!肝完Alibaba这份面试通关宝典,我成功拿下今年第15个Offer

收到请回复

Java 面试 大厂Offer 20+大厂面经

绿色电力交易是一场迫在眉睫,区块链记录每一笔绿色电力交易

CECBC

为何实现碳中和已刻不容缓?

CECBC

linux之sudo使用技巧汇总

入门小站

Linux

架构实战营 - 模块五作业

Alex.Wu

Java通过socket和DTU,RTU连接工业传感器通信

叫练

socket Modbus协议 java DTU RTU

SpringBoot 实战:JUnit5+MockMvc+Mockito 做好单元测试

看山

Java Spring Boot Effective Spring 10月月更

Go 中 Nil 理论上有类型,实践中无类型

baiyutang

golang 10月月更

同事跳槽阿里,临走甩给一份上千页的Linux源码笔记,真香

Java 程序员 架构 面试 后端

百度智能云布局粤港澳大湾区,打造AI+工业互联网新高地

百度大脑

人工智能 百度

Prometheus 基本查询(二)时序数据的瞬时向量

耳东@Erdong

Prometheus 10月月更

【Android构建新工具】Bazel构建工具介绍

轻口味

android 构建工具 10月月更

区块链与智能革命的未来

CECBC

Leetcode 题目解析:287. 寻找重复数

程序员架构进阶

算法 LeetCode 10月月更

【Vuex 源码学习】第十三篇 - Vuex 辅助函数的实现

Brave

源码 vuex 10月月更

限时开源!阿里内部爆款的顶配版Spring Security笔记

Java spring 编程 架构 面试

汽车的新能源之变,不仅在一块电池

脑极体

生命中不重要的九件事情

石云升

10月月更

阿里内部教程:千页Redis源码笔记,涨薪必备

Java 程序员 架构 面试 后端

千万级学生管理系统的考试试卷存储方案

刘琦Logan

用Amazon Web Service实现视频文件转换程序_SOA_Gavin Terrill_InfoQ精选文章