业务发展驱动技术提升

 

技术永远在事情之中,空谈技术没有意义,解决问题很有意义。...

点击上方“精云溯”可加关注。


软件的自动更新是一个软件产品的必不可少的部分,我们的软件产品亦提供了自动更新服务。每次打开软件的时候就会自动获取最新版本,获得更新的功能,更好的体验。随着公司业务的发展,用户量的剧增,自动更新服务经历了三个发展过程,下面将结合着三个过程谈谈业务发展对技术的驱动作用。

第一阶段

在公司发展初期,用户量只有十几家,公司自动更新服务器是部署在个公司内部服务器上面,网络线路是电信100M网络,域名系统采用的是“花生壳”,自动更新涉及到文件下载,文件服务器采用的是HFS软件,HFS全称是 http file server 他是一个为个人设计的通过http协议的文件服务软件,无需安装,一键运行。开启服务之后用户可以自动下载以获取软件的最新版本,花生壳是一个动态域名解析软件。IP地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转换过程。例如我们平常登录的百度网站 www.baidu.com 其中baidu.com就是一个域名,由于我们采用的是电信的网络,没有固定的ip地址,因此需要采用花生壳动态域名解析,即使我们公司网络ip地址更换,通过”花生壳”,用户依旧可以通过访问zhccsd.gicp.net 访问到我们的更新服务器执行更新操作。
第二阶段

随着用户的增加我们发现有时候用户使用软件时候更新操作失败,经过排查发现是文件服务器响应不及时,导致自动更新等待过长而导致失败,发现问题后,我们采取的办法是,采用apache作为我们的文件服务器。apache是世界上使用排名第一的web服务器,他可以运行在各类计算机平台上,快速可靠。Apache跟我们初期使用的hfs文件服务软件的区别是apache是一个采用多进程来提供服务的。Hfs是单进程。多进程是指计算机同时干几件事,单进程是计算机一个时段只有干一件事,采用apache做文件服务器时,一个用户的下载操作会是一个进程,这样同一时刻就可以进行多个用户下载,避免有些用户等到过长。可以类比如排队或者买票,开一个售票窗口就是单进程,开多个售票窗口就是多进程,多个售票窗口当然可以服务更多的人。



第三阶段

公司发布云净系统后,用户从几十家一下子激增到几百家,云净使用过程中又有用户反映,自动更新失败,通过排查原因,发现现阶段公司网络的带宽已经不足以提供可靠地自动更新服务了,同时公司的实体服务器有时因为断电而导致自动更新服务停用,花生壳的不稳定也可能造成更新失败。这些极度的影响体验,经过技术调研以后,公司决定一下子采用完全弃用原先的架构,将自动更新服务部署到阿里云ECS上,通俗的介绍ECS就是一台不会断电,不会停机,IP地址固定的电脑。将文件下载服务部署到阿里云的OSS上,OSS是一个存放文件的仓库,可以快速的获取文件,没有带宽的限制,可以支持百万级别的用户访问。开发完成,测试通过后,新系统上线。用户使用再也没有出现更新失败的问题了,更新失败问题完美解决。

公司用户的不断增加,对我们工程师提出越来越多的挑战,使我们不断地优化公司各类系统架构以适应剧增的用户量,由于用户的增加,将以前架构的HFS的缺点暴漏出来,促使我们工程师寻找解决方案,最终采用apache做服务器,云净项目的巨大成功直接将原先的自动更新架构打破,推动我们最终重新开发新的架构,采用linux+oss解决用户多,访问量大时候的更新失败问题。 公司的快速发展,促使公司产品技术深度的增加,也给我们一线的工程师带来了大的挑战--- 必须不断优化软件系统以提供良好的用户体验。公司业务发展驱动技术提升。同时在解决各类问题的过程中我们技术人员的能力也得到进一步提高。

(PS:下期预告《子元介绍》;公众号搜索:精云溯)


    关注 精云溯


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册