打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
居然可以这样?| 利用CDN的“小功能”简化Web运维

随着企业愈发依赖互联网开展业务,企业的网站、移动站、移动app的重要性不断提高、功能不断丰富,对Web运维的挑战也不断提高。这体现在以下几个方面:

  1. Web运维的复杂性:Web运维团队需要将复杂的业务需求翻译成技术语言,并进行实现。随着业务需求和相关技术不断增多,Web运维的复杂性陡然提升。

  2. Web运维的响应速度:市场、商机瞬息万变,而业务部门希望Web团队随时满足他们的提出的需求,从而缩短所谓的Time-to-Market(业务推向市场的时间)。

  3. Web运维的可靠性:复杂的业务逻辑,紧迫的实施时间,必然带来Web运维准确性、可靠性的下降。

作为Web运维工程师,我们需要更聪明的工作:更好的利用自动化工具,提高Web运维效率,减少错误和故障时间。

下面,我就以6个常见业务需求为例,介绍如何利用CDN提供的“小功能”简化Web运维。

1. 重定向

重定向:最常见的重定向场景是移动重定向,即当手机用户访问www.foo.com时,Web服务器将其重定向到m.foo.com。

这个简单的业务需求隐含着几个挑战。

  1. 如何准确判断访问设备类型;

  2. 如何提高重定向性能;

  3. 重定向规则的颗粒度。

使用基于CDN的重定向功能有以下几个好处:

  1. CDN服务商维护设备类型库,提供准确度更高的设备判断能力。并且,你只需通过CDN提供的管理界面维护重定向逻辑,不需在Web服务器上实现。

  2. 由于CDN是分布式的部署架构,CDN服务器往往距离用户较近。这样就可以实现就近的设备判断和重定向,提高性能。

  3. 基于CDN的重定向,还可以实现基于多维度的规则判断,提高业务灵活性。例如,可以实现如下复杂规则:在凌晨1:00到6:00之间,将使用iPhone     6S用户,当其使用https访问网站时,如果访问时没有带cookie A,就将其重定向到m站。

2. A/B测试


一个电子商务网站设计了两个版本的首页。业务部门想了解两个首页的用户体验和转化率情况,于是请你帮忙实现AB测试逻辑,即50%的用户访问A版本网站,50%的用户访问B版本网站。

对这两批用户分别做跟踪,统计其转化率情况。当然,这是比较简单的规则,复杂的AB测试逻辑还可能会涉及访客设备类型,访问时间段,访客的账户、身份情况等。

这时,你可以利用CDN的基于HTTP负载均衡的功能,灵活的设置分流用户比例,并且通过CDN的请求重写技术,对访问A站和B站的用户插入相关的Cookie,对其进行标记,以实现会话保持和行为跟踪。

新一代的CDN服务,还可以通过识别cookie,query string等功能,判断访客的账户、身份、过往行为,帮助你做更复杂的A/B测试逻辑。

3. URL改写


何时会需要做URL改写?总结来说有四种情形:

  1. Vanity URL

    何谓Vanity URL,笔者没有找到合适的翻译,举例说明如下:笔者访问公司的CRM系统,在浏览器里输入的URL是crm.mycompany.com。然而实际上访问的URL是crm.mycompany.salesforce.com。我们把crm.mycompany.com称为Vanity URL。

    将用户访问的Vanity URL转换成真实URL的过程,一种实现方式就是Forward URL重写,即当笔者的Web请求到达CDN服务器时,将其重写为真实URL。

  2. 简化URL

    假设你在一个电商网站买硬盘,这个硬盘页面的路径是: www.foo.com/html/tech/harddisk,这个路径过于冗长。于是我们可以让用户访问www.foo.com/harddisk,并通过URL改写,将其改写为原来的路径。

  3. 统一m站和非m站的URL
    当你用手机访问网站时,往往加载的是其m站,这时你看到了一个非常有意思的网站m.foo.com,想把它分享到你的微博账号。

    于是你把URL m.foo.com黏贴到了微博,别人在PC上看到你的微博后,点击这个URL,也会访问foo.com的m站,造成用户体验下降。于是,我们可以将foo.com的m站和非m站的url,统一成www.foo.com.

    当用户的请求命中CDN服务器时,如果是移动访问,就将其改写成m.foo.com。 这种URL的统一,不仅改善了用户体验,还会对改善网站的SEO排名有帮助。

  4. 通过使用语义化(Semantic)URL改善SEO排名和用户体验
    举一个非语义化URL的例子:

     http://example.com/products?category=2&pid=25

    而对应的语义化URL为:

     http://example.com/products/2/25/

    语义化URL可读性强,对用户和搜索引擎友好。这也是提升用户体验和SEO排名的最佳实践之一。与以上三个例子相似,通过CDN的URL重写功能,即自动可实现语义化URL。

4. 大量并发用户管理:


这是一个对电商、在线交易平台最具挑战性的问题。每年的春节、双十一、圣诞节都是电商流量的高峰季节。当大量并发用户涌入,Web应用往往会出现性能大幅下降、可用性下降、用户不能正常完成交易等情况。

CDN可以通过分布式缓存等技术缓解对图片等静态内容的请求压力,但对交易型请求,CDN需求转发给数据中心的Web应用服务器做处理,这就是以上问题发生的原因。

这时,一个常用策略是识别访问用户,提供区分化的用户体验保障。区分化用户体验的目的是为了保证高价值用户优先完成交易。

何谓高价值用户呢?对电商来说,高价值用户可能是已经登录的用户、购物车里已经放有商品的用户、金牌银牌忠实用户、用移动设备购物的用户、账户里存有购物金的用户,等等。

这些用户往往转化率高或平均产出营收高,所以我们需要在大并发用户的极端情况下,优先保证这些用户完成交易。

此外,对于其他用户,电商也需要进行用户体验优化。当一个用户点击完成交易时,如果因为数据中心Web应用负荷过高,用户看到了报错信息,这时TA很可能放弃此次购买,转向其他电商平台。

为了提高用户留存,电商需要在这种情况下,提供“用户休息室”体验,即,相对于向用户返回错误代码,我们需要向客户返回一个用户等待页。例如这个页面:

页面里往往会包括进度条或倒计时,告诉用户需要等待数秒即可完成交易。这给高负荷的Web应用服务提供了“喘息”时间。同时有助于留存客户,避免SEO排名下降。

为了实现这个用例,你的CDN需要首先根据你设定的业务规则,确定哪些属于高价值用户。之后,对于高价值用户,你需要设定在大并发用户、Web服务高负荷的情况下的保障程度。

举个栗子:你可以设定,对于已经登录的金银牌用户,在Web服务器接近满负荷的情况下,让他们的交易请求有80%的概率被CDN继续转发给源站。

对于普通用户,例如没有登录,购物车为空的用户,在Web服务器接近满负荷的情况下,让他们的交易请求有30%的概率被CDN继续转发给源站。

对于没有被转发到源站的交易,可以进入用户等候室页面,等待数秒后,再进行处理。

5. 用户访问控制


这种需求比较简单。当你需要封禁一部分用户时,可以通过CDN的用户访问控制功能实现。高级的CDN访问控制不仅包括基于用户IP地址的控制,还可以设定基于用户的cookie、地理位置、header、query string、设备类型等信息。

6. Web表单输入控制:


如果你的Web应用有注册功能,你很可能为垃圾注册、恶意注册而头疼。高级的CDN服务可以允许你在CDN上对这些行为做封禁,可以通过正则表达式,用户注册频率,用户注册IP的信息等做不同维度的限制。

总结

以上,我们介绍了如何利用CDN提供的一些“小功能”简化Web运维,实现一些常见的业务需求和逻辑。

自1998年来,CDN的功能不断演进,从最早的分布式缓存,到动态交易加速,到移动加速和安全防护,到现在的业务逻辑支持。CDN已经变成任何在线业务不可或缺的支撑平台。

希望通过这篇文章,大家可以了解到一些CDN的新功能和使用场景,帮助你更快、更高效、更轻松的完成Web运维工作,并让你可以把精力放在技术创新和业务功能创新。

活动预告

作为公司的安全运营人员、Web运维人员、Web基础设施管理人员、公司安全架构师,你对DDos及Web应用攻击的趋势了解多少?

你又了解多少攻击者使用的策略、技术及攻击流程?

对于监测、诊断方法及如何预防攻击你掌握多少?

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
ASP.NET 权限设置
HTTPS的3种实现方法
CDN
直播app开发搭建,CDN的服务模式平台应该怎么检测
关于 SAP Commerce Cloud 构建的 Node.js 版本号问题
第?7?章?使用filter过滤请求
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服