北京侯斯特网络科技有限公司(以下简称侯斯特)是一家初创公司,专注于为微信公众号提供技术支持及营销推广的在线软件平台,旨在让任何形态的公众号都可以直接登陆侯斯特微信公众号平台并选购所需功能。作为业内最大的公众号应用商店,侯斯特正在为超过 5 万个不同行业的公众号提供稳健的技术服务。目前,每天通过侯斯特处理的微信消息量超过 100 万条,累计服务的微信粉丝超过 2000 万人。

侯斯特从成立之初就明确了公司的业务方向——建立一个公众号应用商店,使那些需要建立微信公众号的企业或个人可以根据自己的业务需求,随时进入侯斯特公众号应用商店,选购所需的功能,轻松进军移动互联网领域。

与传统的网站营运模式不同,微信公众号的运营是基于社交媒体,其峰值变化完全没有规律可循,公众号的运营者是无法预知粉丝对公众号访问的峰值会发生在什么时间,峰值时的负载压力会增加多少倍。因此,对侯斯特来说,最严重的技术挑战无疑是如何应对毫无规律的突发峰值需求。“目前,在我们的平台上运营的公众号有 5 万多个,我们完全无法预测峰值发生的时间。例如,我们负责运营的“吉野家”,它可能有 10 万粉丝,如果它决定在某一个时间段群发消息,我们事先是不会知道的,与此同时,可能还有另外一些运行在侯斯特平台上的公众号恰好也要在这个时间段群发消息,结果可能导致峰值的负载压力 10 倍、100倍、1000 倍地增长。因此,应对峰值需求是我们选择基础架构时必须考虑的,这也是我们选择 AWS 云服务的首要原因。”侯斯特公司 CTO 李博说。

传统的 IT 架构在面临无法预测的峰值需求时,唯一的解决办法是事先部署足够多的服务器,以确保在峰值期间系统能正常工作,但对于像侯斯特这样的初创型公司,这种方式带来 的巨大成本压力是难以承受的。

目前,侯斯特的整个微信公众平台都构建于 AWS 的云服务之上,所使用的服务包括 Amazon EC2、Elastic Load Balancing、Amazon RDS、Amazon Elasticache、Amazon DynamoDB、Amazon S3 等,采 Auto Scaling 对整个系统进行自动扩展,以确保系统在平时和峰值时都能稳定、可靠地工作。在数据访问方面,相对频繁访问的数据全部使用了 Amazon ElastiCache 中的 Redis,而持续增长且访问密集的数据全部依托 Amazon DynamoDB,RDS 中的 MySQL 则主要负责 “冷”数据的存储,与此同时,侯斯特还依托 Amazon S3 开发了自己的存储系统,为侯斯特微信公众平台提供存储服务。

“我们在评估云计算平台时主要考虑两个方面:其一是灵活性与扩展性;其二是功能 性。AWS 击中了我们的痛点,尤其是在灵活性上,管理 AWS 上的服务就像置身于一个数据中心中,这一点彻底打消了我们使用传统 IDC 的想法,让我们决定在 AWS 云服务上进行投资。”,侯斯特 CTO 李博说。

灵活性与扩展性

云服务具有很高的灵活性和可扩展性是毋庸置疑的,但 AWS 云服务在这方面提供了更 好的性能。“我们使用的绝大多数 AWS 云服务,其他的云服务商也能提供,但在使用的灵活性、扩展性和方便性上,AWS 则遥遥领先。例如,使用 Amazon EC2 时,我们可以把现有 的某台机器做成镜像,然后直接部署到新机器上就可以了;如果要删除机器,只需点击鼠标就可以快速完成。当峰值访问突然发生时,Amazon Auto Scaling 可以按照事先设定的条件,调用我们自己开发的容器,在 1-2 分钟内扩展数百台 Amazon EC2 实例。”李博说。“此 外,AWS 云服务采取按实际使用量计费的模式不仅可以帮助我们节省成本,也使我们在尝试构建新系统时有更多的试用和选择的机会。”

功能性

促使侯斯特选择 AWS 云服务的另一个重要原因是 AWS 提供了很多独特的功能。AWS 云服务提供了计算、存储与内容传输、数据库、大数据分析、联网、部署与管理等多种产品,有些产品和服务是 AWS 独有的,其他云服务商还暂时无法提供。“例如 Amazon DynamoDB 是我们建立微信公众号平台所必需的一项服务,我们可以这样概括 DynamoDB 的特性:它的查询和请求速度不会随数据量的增长而变慢,这一点对我们至关重要,我们的平台上目前运营着 5 万多个微信公众号,今后还会更多,因此数据量是没有上限的,而且增长的方式也是不可预测的,传统的数据库根本无法满足我们的需求。”,侯斯特 CTO 李博 说。除基本的云服务功能外,AWS 还在其还在 AWS Marketplace 上提供了 25 个类别 1500 多种软件产品,用户可以在 AWS 上通过一键点击方式试用或购买这些产品。

weixinhost_arch_diag

基于 AWS 云服务的侯斯特微信公众平台架构图

侯斯特微信公众号平台是 100%建立在 AWS 云平台之上,这不仅使整个系统具备很高 的灵活性和扩展性,也缩短了系统开发周期,节省了成本并增强了系统的安全性。

作为一家初创型公司,采用 AWS 云服务使得侯斯特无需先期投入大量的经费去购买服务器、存储等硬件设备,减少了固定资本投资(CAPEX),与传统的 IDC 托管方案相比,成本节约了 2-3 倍。目前,在非峰值期间,侯斯特使用了 10 台 Amazon EC2、5 台 Amazon RDS、10 张 Amazon DynamoDB 表以及 Amazon S3 等服务,整个系统的监控和服务部署只需一个人就能轻松搞定,大幅度降低了运营成本(OPEX)。当峰值来临时,Amazon Auto Scaling 可自动扩展 Amazon EC2 实例的数量,确保系统的高可用性。

此外,AWS 灵活的收费机制,也帮助侯斯特大幅度降低了成本。目前,大部分云服务提供商都是按带宽收费的,无论是否使用,都需要按带宽付费,这导致成本上升,因为如果不按照峰值带宽配置,在峰值来临时就无法快速响应,但如果按峰值需求配置,平时闲置时的成本就太高了。“AWS 是按实际使用量收费,我们可以事先配置很高的带宽,在峰值来临时即刻启用,只需要为峰值流量付费,平时无需支付多余的费用,由此带来的成本节省是巨大的。”李博说。

AWS 带来的成本节省还体现在学习和开发方面。李博是 AWS 的早期用户,他认为使用 AWS 几乎没有时间周期,“唯一需要学习的是操纵 AWS 的控制台!如果需要搭建一个新系统,你需要做的就是点击鼠标、选择想要的服务、试用一下,如果不合适,可以马上删除,可能仅需一小时,就可以配置出最适合的系统。”“如果我们需要快速完成一个项目,我们可以购买配置非常高的机器,在一两天内完成项目,之后就将机器删除,如此一来,就能以非常低的成本费用实现目标。”李博接着说。

当然,AWS 给侯斯特带来的最大好处还是灵活性和扩展性,而这是侯斯特能顺利开展业务的关键所在。微信公众号应用对系统响应速度的要求极高,如果用户发送一条消息,肯定期望立刻收到回复,如果需要等 1 秒钟才能收到回复,可能有 99%的用户都会放弃。这一点与网页应用完全不同,当用户访问网站时,如果没有响应,用户通常会再次刷新,看看是否有响应,而在微信应用中,用户的选择可能就是直接放弃了。这种应用场景就要求侯斯特微信公众号平台在任何时候都能快速响应。AWS 云服务的快速扩展特性使侯斯特可以在 1-2 分钟内扩展数百台 Amazon EC2 实例,应对随机发生的峰值访问,确保整个系统的高可用性。

在未来,侯斯特计划采取新的合作模式,将侯斯特微信公众号台镜像给合作伙伴,让他们以自己的品牌为最终客户提供服务。“这就需要我们有足够强大、灵活和可扩展的基础架构,事实证明 AWS 是我们的最佳选择,我们期待 AWS 能提供更多的新服务。” 侯斯特 CTO 李博说。

了解 AWS 如何帮助满足您 Web 应用程序需求的更多信息,请访问我们的 Web、移动和社交应用程序详细信息页面:http://aws.amazon.com/web-mobile-social/