童话说说技术创业美文职业
投稿投诉
职业母婴
职场个人
历史治疗
笔记技能
美文纠纷
幽默家庭
范文作文
乐趣解密
创业案例
社会工作
新闻家居
心理安全
技术八卦
仲裁思考
生活时事
运势奇闻
说说企业
魅力社交
安好健康
传统笑话
童话初中
男女饮食
周易阅读
爱好两性

前后端应用平滑发布方案设计

7月11日 心碎巷投稿
  前言:
  我们讨论的场景依然是对可用性有着极高要求的web大型站点,这种类型的web站点通常前后端的代码是分离的(前端指JS、CSS代码,后简称样式代码;后端指模板、Java等后端语言)各自有独立的代码分支,且部署在不同的服务器上。这种的架构能带给我们更好的代码可维护性,以及对静态和动态资源更好的服务能力。但也不免会带来一些问题:
  例如需求同时涉及到前后端代码的改动,且与线上的当前版本不兼容,这种情下况我们是希望前后端代码能够“同时上线“生效的,但由于两者部署在不同的服务器,发布流程通常也是分开进行,要做到“同时上线”并不是一件容易的事情,就会造成一定时间内页面发生异常的情况(大型web站点的后端服务器通常是一个集群,完成一次代码的集群部署有时需要2030分钟)。
  一:常见的解决方案
  在网站开发的过程中,上述的场景是非常常见的,页面总是会改版,一个区块被反复多次修改那不是什么新鲜事我们的开发同学在遇到这样的情况时,常见的解决方案有这几种:
  1)对出现不兼容的JS或是CSS文件重新命名,代码分支中多提交一个物理文件,同时更新后端模板上的引用地址。
  2)不重新命名JS或是CSS文件,直接把新需求所需的新的样式或是JS追加在原有文件中,本次发布完成后再清理上个版本的历史代码。
  3)直接忽略前后端代码发布过程中的2030分钟的时间差,用户不投诉就好:)
  以上的几种处理方式要么降低了代码可维护性,要么牺牲了用户体验甚至可用性,都不是很好的解决方案,我们理想的解决方案需要做到:
  前端代码SVN分支中不出现为兼容线上版本而保留的历史代码或是文件。
  完全消除前后端发布过程中因代码不同时上线而出现的可用性问题,做到平滑过渡。
  保持前后端发布流程的独立性,不带来新问题(比如多次发布的问题)。
  平滑发布方案做到自动化,对开发者透明。
  二:总体解决思路
  其实解决这个问题的总体思路比较简单,如果发布系统能做到对前端代码的增量发布(线上同时存在多个版本),则可以在发布时先发布前端的CSS和JS文件,然后再控制后端的代码生效,那么无论后端的服务器集群有多少台,也能够做到对不兼容需求发布的平滑切换。
  思路简单,但其中有几个个关键问题要解决:
  1)前端代码增量发布的方案?
  2)后端服务器何时更新对前端资源文件(CSS、JS)的引用?
  3)上述的两点如何由发布系统自动完成?且对开发者透明?
  
  三:关键问题解决
  前端代码的增量方案前端代码发布增量方案有多种方式,经过我们多次讨论比较后,我们选择了对合并后的JS、CSS文件增量发布的方案。
  为便于理解,大家可以先打开阿里巴巴搜索list页面查看其源代码,你会发现这个页面的CSS文件及JS文件引用路径很长,每个长路径在静态资源服务器上会对应着一个物理文件,它在开发状态的SVN分支中是不存在的,而是在页面加载时通过动态合并服务把页面上的各个JS或CSS小文件合并而成。合并的原理这里不细说,但最终一定是在静态服务器上生成了一个物理文件。我们可以对这个合并后的文件做增量机制,比如当动态合并服务检测到有JS、CSS小文件发生变化时(前端代码发布成功后),就生成一份新的合并代码的物理文件,而同时保留之前的那份老的合并文件,那么在一段时间内就会有两份前端代码同时提供服务,达到了增量的目的,示意图:
  这种增量方案相比其它增量方案的优势在于:
  1)发布系统自动完成
  2)避免了对单个文件增量所需要的文件映射关系数据库的维护。
  3)对静态资源服务器上文件数量的影响到最小,在完成平滑发布后,老版本的合并文件可以由发布系统自动删除。
  
  后端服务器模板自动更新JS、CSS引用路径机制
  有了多份同时在线的前端文件,就具备了前后端应用平滑发布的基础,接着要解决的就是何时让后端服务器切换引用路径的问题了。对此,我们的总体更新策略如下图所示:
  其中有两个判断节点:前端代码是否有发布同后端代码捆绑发布
  前端代码是否有发布的判断我们可以通过动态合并服务定时轮询静态资源服务器上的style版本索引文件,版本索引文件的生成原理很简单,是通过扫描style文件内容生成对应的md5码,内容变了,生成的md5码也就变了,动态合并服务就能够知道是否有前端代码发布。
  是否与后端代码捆绑发布的判断,是通过在前后端项目发布的初期,对需要同时发布的前后端应用设定了一个锁定标识来实现(发布系统自动完成)。若需要同时发布,则对应后台应用标识为locktrue,否则lockfalse,动态合并服务通过后台应用名查询到该标识状态即可。
  当后台应用处于非锁定状态时,当检测到有JS、CSS文件发布时立即更新模板上的样式文件引用地址。
  若后台应用处于锁定状态,则延迟对样式文件引用地址的更新,直至应用重启。后台服务的发布完成通常是伴随着一次服务重启的,重启后的应用初始化就是更新样式文件引用地址的时机。
  至此,平滑发布的几个关键问题已经解决,一套自动化、对开发者友好的平滑发布方案设计完成。
  
  四:总体流程图
投诉 评论

金融好生意:刘强东想将他的电商帝国引向何处?刘强东不仅是行业内公认的“圣斗士”,就连京东内部员工私下也喜欢亲切叫他“战斗强”,这些年在“战斗强”的带领下,京东商城南征北战,取得了不俗的业绩。最又有报道称,京东商……【人人早报】381期:3月8你扫码了吗?早报导语昨天是3月8日妇女节,淘宝也推出了“扫码半价”活动。据官方发布的数据显示,当天活动9点一开始,在9:00活动开始后10分钟内,已经有38万用户踊跃参与,他们扫走了……前后端应用平滑发布方案设计前言:我们讨论的场景依然是对可用性有着极高要求的web大型站点,这种类型的web站点通常前后端的代码是分离的(前端指JS、CSS代码,后简称样式代码;后端指模板、Java……苹果、微软、Google的下一战:未来智能眼镜当Google、苹果、微软三大巨头在智能手机和平板电脑市场打得火热的时候,增强现实(augmentedreality,简称AR)眼镜市场的战争也即将打响。根据咨询公司Mindc……中国26金结束奥运盘点里约奥运中国军团26金始末细节回顾【中国26金结束奥运】随着美国男篮战胜塞尔维亚队,第15次获得奥运冠军,里约奥运赛事全部结束。中国军团获得26金18银26铜,奖牌榜列美国之后位居次席,但金牌榜不敌英国(27金……发誓主题社交应用“誓友”抢先评测:让誓言不再飘于风中很多人喜欢用一些todolistapp或备忘录来记录自己的计划和待办事项,但总是由冷冰冰的手机铃声来提醒你是不是有点无趣?如果有人能在一旁监督直到你计划完成,是不是更有动力?“……加速商业化,移动社交产品的五大盈利方向小芒果导读:移动社交产品的商业潜力在各家的努力探索下正逐步释放,而2015年很可能是检验各大移动社交产品商业化成果的关键一年。3月5日,陌陌公布了上市后的第一份季度财报。……人死后网络账号怎么处理在网络时代,我们每个人每天的生活都已经离不开网络。早些年,网上有一则爆红的帖子《我死后,我的QQ号码怎么办?》。尽管该帖仅是网友搞笑所做,但确实引人思考:等到有一天我们离开人世……停车APP,互联网巨头下一个争夺领域?增哥导读:停车是最刚性的需求,尤其是一二线大城市,停车难是一切城市消费的痛点。若2015年腾讯、阿里打算构建一个汽车消费入口,停车APP无疑是首选。随着车辆激增,停车位紧……【人人晚报】20期:为何创业公司晚期能获高估值?【导读】最近又是一年一度的创业大季,很多创客都纷纷出手了。创业公司很多时候对如何估值一直有困惑,看着那些创业成功的纷纷爆出高估值时,心里一直痒痒的。那么小编今天就来告诉你……色情推动技术成人网站的用户体验比Youtube好?〔核心提示〕Youtube姗姗来迟的逐帧预览视频功能导致用户吐槽其播放器体验不如成人网站。事实上成人网站不仅满足着人类原始和基本的需求,对技术的进步也同样功不可没。在……微人脉微博尚缺少一颗专业的心〔核心提示〕新浪微博近日推出了微人脉,一款看起来偏向人力资源服务方向的职业化社交应用,但是微博天生的娱乐属性导致微人脉一出生就缺少了最关键的“专业”气质。对用户……
App分发量:不是你想改就能改移动互联网的争夺可谓是烽烟四起,群雄逐鹿。与此同时,有一关口也是引得众人虎视眈眈,夜不能寐,何关?app的分发入口。得此一关,便有一夫而立,万夫莫开之势。此战烽火因百度收……适合中小企业的10款协同办公软件站在企业2。0的风口上,各种企业协作办公软件层出不穷,多方面的报道、追捧与比较也不断出现,让一些真正想选择办公软件的企业反而眼花缭乱。下面是整理的10款适合中小企业的国内社会化……无需拼多核高通“体验引擎”高通CEO保罗雅各布(PaulJacobs)刚刚在太平洋彼岸提出“数字第六感”概念,表达高通在物联网领域的思考;它的CTO马特格罗布(MattGrob)就在中国一个行业论坛上提……从员工角度看:一个企业CEO应该做好那四种角色之前写了一篇文章,《一个失败CEO的九大特征》写的主要是CEO在干活上的问题,有的读者朋友反驳说,如果按照原文的逻辑讲,CEO什么都不要干了,所以,这次我就写篇文章,写写一个企……【人人早报】第40期:互联网硝烟战,战火不断早报导语还隐约记得3Q大战期间,被迫二选一;3B大战,360综合搜索百度页面多跳转。。。各大互联网巨头之间的硝烟一直弥漫,而今视频、金融再度成为兵家必争之地。早报励……互联网冲击,哪些企业注定会消失(深度好文)互联网最有价值之处不在自己生产很多新东西,而是对已有行业的潜力再次挖掘,用互联网的思维去重新提升传统行业。从这个角度去观察,互联网影响传统行业的特点有三点:打破信息的不对……货币与支付那点事人类拥有其他动物所欠缺的分享交换意识,物物交换自然成了最简单粗暴的方法,并逐渐催生了一个双方都能接受的中间物体这算是早期货币的雏形。毕竟在货币出现之前,有的东西就和爱情一样,不……【人人早报】第38期:“无创新”苹果早报导语就在北京时间的今天凌晨,展开了一场科技界的盛会。苹果又开发布会了,这次主要发布的产品为“5s”和“5c”。但是这一次单独发布会另很多果粉受伤。有人评价说:“唯一的……北漂两年,重新理解赚钱和工作钱就如李安电影《少年派的奇幻漂流》里的老虎,它让你害怕,也让你强大。07年进某互联网公司做销售面试的时候会被问到两个问题,有电脑吗?有存款吗?销售能否成功大家往往谈论方法……移动互联网得女人者,得天下随着移动互联网的发展现在的手机是越做越大,摄像头的拍照也是越来越清晰了。各类APP软件也必须聚集一批女人才能吸引到用户,女人已经成为每家移动互联网公司必须考虑的用户群。市场研究……美团和大众点评的O2O之困目前O2O已经进入白热化阶段,而美团和大众点评也在资本的二次推动下暂时成为行业所关注的翘楚,但是从另一个角度来说从团购到O2O的跨越并不是一步到位,甚至有可能出现意外颠覆者,美……中国互联网巨头BAT3内部员工的真实情况中国互联网竞争加剧,让巨头们对用户的竞争很激烈,对人才的竞争更激烈。中国4家市值超过100亿美元的互联网巨头公司BAT3,对待员工的方式,以及组织架构都各有不同,因此造成了各自……
友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找作文动态热点娱乐育儿情感教程科技体育养生教案探索美文旅游财经日志励志范文论文时尚保健游戏护肤业界