直播周回顾日记 Day3:云计算助力千万级建站的高效架构
11月23日,亚马逊云科技携手InfoQ、物联传媒共同打造的「这是我的架构-直播周」系列节目第三季第三集精彩继续!本集邀请到的是 Strikingly VP Engineering 龚凌晖 和亚马逊云科技解决方案架构师周爱琳,共同探讨云计算如何助力千万级建站的高效架构。一起回顾本期直播。
老用户的新“点子”
Strikingly提供自助式建站服务平台,包括从网页编辑器到网站托管的一站式解决方案,可以让完全不懂技术的“小白”用户可以在20分钟内上线一个网站,极致降低了搭建网站所需要的技术门槛。
Strikingly 早在2011年就开始了与亚马逊云科技的合作,龚凌晖本人也是亚马逊云科技官方认证的 Community Hero。为什么持续携手亚马逊云科技?龚凌晖总结了全球一站式建站的四大核心需求:可扩展性、高可用性、全球稳定性、安全性。而亚马逊云科技的全球骨干网络和广泛而深入云服务能够完美契合 Strikingly 的建站需求。
Strikingly 的架构进化史
最初 Strikingly 的架构采用多租户共享集群的方案以解决 SaaS 租户代码和数据的管理问题,并基于 Amazon EC2 的自动扩缩容应对流量变化,保持高可用性。这一方案在早期有利于快速迭代,并能够有效控制 Strikingly和用户的成本。
随着用户数量的增长,基于这个架构 Strikingly 很快就遇到了问题,“我们可以在一定程度上预测用户数量的增长和用户的行为,因为我们会去有一些产品上面追踪的数据可以帮助我们去预测,但是对于用户网站的终端访客的数量和行为,我们几乎是没有可能去预测的。”龚凌晖回忆道。面对网页渲染无法预测的高频操作请求,Strikingly 基于亚马逊云科技的无服务器计算服务 Lambda 搭建了网页端的渲染服务,能够有效支持高达20倍的渲染请求。
实现网页渲染服务后,Strikingly 发现一些热门网站会被反复渲染,造成资源浪费和响应延迟。“我们的方案是在原本动态渲染的应用层前面加了一个静态的缓存层,并将其保存在保存在 Amazon S3 上,收到网页访问请求时我们就可以直接返回静态页面,而不需要回到应用层。这样就大大的减少了我们网页请求、应用层和渲染服务的压力。”这一架构方案同时也保障了 Strikingly 的高可用性,即使应用层宕机,Amazon S3 依然可以返回静态页面,保障用户网站正常访问。
在保障全球内容分发网络上,Strikingly 利用亚马逊云科技的全球骨干网实现边缘节点到中心节点的稳定回源,“我们实际上是把刚刚说的静态层部署到不同的亚马逊云科技区域去作为边缘节点,然后利用骨干网实现边缘节点的静态层到中心节点的动态层的稳定回源”。同时利用 Amazon EKS 服务实现边缘节点和中心节点所有服务的管理和调度。
创新重构瞬息万变
随着时代和行业的变化,Strikingly 用户的诉求也在不断发生变化,龚凌晖以 Strikingly 创业初期为例,“用户对于自己的网站是不是能够在全球都能快速访问到是不关心的,只要可能本地的用户能够快速访问就ok了。”然而随着全球化进程不断推进,用户对全球网络的需求也在逐年增长。龚凌晖总结道,“用户的诉求在不断促使 Strikingly 迭代升级,我们也相信与亚马逊云科技未来的长期合作,能够帮助我们更好的实现这些诉求。”