如何做官网运维
一直以来,我们都把多数工作精力放到产品设计和技术研发上,轻视了对官网的建设和维护,这是一个错误。官网是产品的门户,是用户了解产品的第一站,用户了解悦库产品的路径通常如下 [图1],可见官网是用户了解产品的路径枢纽,起到非常重要的作用,在此处出现诸如 站点离线、访问速度慢、内容质量差、SEO等问题将直接导致前期宝贵的用户流量丢失,因此我以科学做产品的态度出发,较全面研究解决问题的方案,为官网运维确定工作方向。
图1 [ 用户了解产品的路径 ]
运行稳定性
官网的运行稳定性问题,主要表现为 站点离线、访问速度慢,我们的目标是确保官网7*24小时无故障运行,网站打开速度小 于2秒。
虽然我们使用 云主机+CDN(内容分发网络) 的方式对外提供官网的访问服务,在云主机上部署网站,在CDN中将源站指向网站地址,同时CDN会缓存源站的所有数据,后续实际是CDN在为终端用户提供高速访问服务,如果源站数据修改,CDN会进行回源操作(从源站中将最新数据缓存到CDN),理想情况下这可以满足需求,实际上在我们的生产实践中却因为一些无法预知的事件而暴露很多问题,如云服务器宕机、网站更新重启、CDN盗刷攻击等曾导致多次网站离线,后来我们做了一个流水线任务每10分钟定时检测网站离线情况,如果出现离线就给运维人员手机发短信,这一定程度提高了官网离线的反应速度,可以快速排查问题,但问题毕竟还是发生了,造成的不好的影响已成为既成事实。
为了降低官网离线率,我们可以为网站创建多个云主机节点来提供服务,一般企业门户类网站,一个为主节一个备用节点足够,这样当其中一个节点发生故障时CND可以自动切换到另一个节点,如下 [图2] 。

图2 [ 多回源点CDN网络 ]
目前CDN厂家都可以支持多个源站,如下 [图3] 是某厂家实现的可以为CDN添加支持优先级和权重的源站功能,我们可以看到它支持源站的主备优先级,以及通过权重来决定各个回源节点的使用比例,可以满足我们对网站运行稳定性的需 求。
图3 [ 添加CDN的回源点 ]
通过CDN+多节点源站的模式,结合之前的流水线定时对网站可访问性进行检查,我们解决了官网稳定性问题,另外还有一个问题就是CDN盗刷流量攻击问题,通常这种盗刷针对的是有固定下载地址的大文件,比如悦库企业网盘的windows服务端安装包就曾经被CDN盗刷流量攻击过,1个小时内盗刷了接近1TB的流量,因为CDN服务都是按照流量付费的,这会给企业产生额外的损失,对于盗刷流量针对攻击强度有很多防御方式,但无论使用什么防御方式,我们还是建议将官网和安装包下载服务作为两个站点分别部署和加速,避免针对CDN盗刷攻击直接影响官网访问体验。安装包下载服务独立部署后,可以针对下载访问在CDN服务中设置访问控制策略,可以有效的抵抗攻击行为,避免产生高额流量费用。
由于网站和安装包下载服务作为2个站点分别部署,我们现在有了两个站点,其实一个企业有多个站点的情况非常普遍,在https访问支持方面,多数企业都不想花钱而使用免费的证书,但现在免费的证书证书有效期只有3个月,到期就要更换,站点多了人工操作实在很麻烦,这可以通过实现证书到期后自动部署的脚本(需一些开源项目辅助),加入流水线,定期自动运行并检查效果,如果有问题短信通知运维人员。