Windows Azure ISV博客系列:Tribe of Noise PRO
撰写Windows Azure ISV系列博客的目的是宣传来自ISV(独立软件供应商)在Windows Azure 应用程序的开发和部署过程中的一些成就。这篇文章是由Tribe of Noise 的创始人 Hessel van Oorschot所写,描述了Windows Azure是怎样在Tribe of Noise PRO在线音乐社区里起作用的。
Tribe of Noise是音乐家和音乐业务的一个社会网络社区。我们在法国戛纳的Midem 2012上宣布推出PRO。PRO是为了将有才华的艺术家的创造力与正在寻求伟大音乐的媒体专业人员联系起来。PRO不再需要音乐出版商、标签和管理机构,同时保持一个易于使用、透明的平台,允许音乐家和专业人员直接交流。为专业人员的下一个项目寻找合适的音乐所需要的步骤仅仅是登陆到网站然后试听所选择的许可的音乐。
PRO旨在帮助媒体专业人员通过关键词、标签和他们所了解的特征来以一个舒适的、all-rights-included、合法的框架从世界各地的音乐家那里寻找高质量的音乐文件。如果媒体专业人员找不到他所需要的音乐,我们可以提供独特的集成“虚拟简报中心”。该简报中心使得专业人员能与成千上万的有才能的Tribe成员交流,反过来这些成员可以立即上传或撰写专业人士指定的音乐。
该商业模型是基于销售音乐许可的:为达到商业目的在一个(数字)媒体项目中使用歌曲是合法的。标准的价格范围是200到1200欧元(每个项目每首歌)。包括网上支付,PRO所带来的收入由参与的艺术家共享。我们还有一个销售团队,他们与我们的合作伙伴一起共同促进营销和媒体生产组织的发展。
为什么选择Windows Azure?
很多人都问:“为什么选择Windows Azure”,这个是最近问的最多的一个问题。我们在开放源码和开放标准的使用上具有悠久的历史。在每一个我们喜欢的服务或每个我们有兴趣签署的合同上,为了长远目标我们都花很多时间来研究最佳可能的情况。我们的目标是精益求精。受典型的LAMP(Linux、Apache HTTP Server、MySQL 和 PHP)体系结构所启发,我们很自然地想到了迁移到Windows Azure上。
我们喜欢诚实、果断和开放性的Windows Azure团队。他们并没有所有的答案并且当我们考察Windows Azure云计算服务时也不是我们所需要的所有东西都能从他们那里得到。但是,他们聆听了我们的需求、顾虑和未来的需求并且花时间为我们寻找答案。这正是我们在项目开始阶段最需要的东西。
体系结构
我们将现有的PHP/ MySQL (LAMP 堆栈)迁移到Windows Azure上。PHP运行在web role中,并且MySQL数据库被迁移到SQL Azure中。
当将PHP程序迁移到Windows Azure中时需要做一些修改。例如:我们将代码改成从Windows Azure blob中通过PHP SDK读取内容而不是从Linux文件系统中读取。
我们想要将服务迁移到云计算的原因是,作为一个年轻的公司我们期望很大的成长。Azure平台的可扩展性为我们将来省去了很多烦恼。
如前所述,我们来自LAMP环境。根据Windows Azure ISV incubation团队的建议,我们考虑过将LAMP转移到Windows Azure的最佳方法。一个特殊的迁移是数据库。微软公司提供了工具能够轻易地将MySQL 数据库迁移到 SQL Azure。
- SQL Server迁移助手 将 MySQL 数据库迁移到SQL Server
- SQL Azure 迁移向导 完成 SQL Server 向 SQL Azure的迁移
SQL Azure看起来很不错并且我们觉得将MySQL服务器运行在Web Role 或 Worker Role上会比较复杂,而且我们需要处理管理、更新、监控和缩放上的挑战。另一方面,SQL Azure是数据库即服务(Database-as-a-Service),带有内置的持久存储、同步服务和基础设施维护。切换到SQL Azure是显而易见的并且迁移并不复杂。
SQL Azure
我们从没有考虑过放弃PHP。我们的开发人员一点都不了解.NET和C#,需要花大量的时间、精力和资金来重新培训他们。我们确信PHP在Windows Azure上会像在其他平台上一样运行得很好。我们的开发人员在本地使用Eclipse、Windows Azure SDK、Windows Azure Tools for Eclipse 和 SQL Server Express。安装起来很容易,运行我们的基本代码时也没有出现任何真正的问题。
我们的体系结构很简单。用一个Web Role执行来自用户的请求。由至少两个实例处理流量,其中提供了正常运行时间SLA。我们使用SQL Azure作为数据库并且所有音乐的存储和供应都是来自Windows Azure Blob Storage。
Windows Azure Blob Storage很自然地符合音乐文件的特征。我们既有压缩的(MP3)也有高品质的音频(WAV)。在购买许可之前,他们可以试听并下载所有歌曲的完整版本。这些都是MP3文件。当某人单击播放按钮时,我们希望立即播放音乐。Windows Azure Blob Storage已经能够为我们提供这些。用户付费之后就可以使用高品质的WAV文件了。
总结
对于Tribe of Noise来说,PHP和Windows Azure是绝配。从完全的LAMP堆栈到Windows和SQL Azure的迁移非常顺利。现在,我们可以使用Windows Azure的下列组件了:
- 计算:我们将产品和用户界面托管在web role中,并且可以根据流量需求进行扩展
- 存储:我们的音乐被存储在Windows Azure Storage中。我们利用Windows Azure Storage的可用性、可扩展性和低成本性。通过PHP SDK与Storage集成。
- SQL Azure:我们将关系数据库从MySQL迁移到SQL Azure上。再也不用担心RDBMS的可用性和可扩展性了。
感谢您的阅读,我们希望本文对您有用。很荣幸为Windows Azure博客写这篇文章。您可以从这里了解到Tribe of Noise PRO的更多信息。