前端发布策略
前端发布的本质是静态资源的发布(主要关心缓存和资源同步问题)
HTTP缓存
合理的使用缓存让未修改的文件复用可以有效的减轻服务器负担和提高前端页面渲染效率
1、协商缓存
2、本地缓存(本地缓存无需跟服务器再次确认,直接根据文件名匹配,节省了跟服务器的通讯成本,在实际开发中更受开发者青睐)
本地缓存的资源怎么更新?
可以通过给静态资源都加上版本号解决
hash代替version
如果每次更新都把所有静态资源文件名改变了,然后跟着所有文件都改变了,其中也包括了没修改的静态资源,那么这时候的缓存是不是已经失去了意义。
以上问题的解决方案就是使用hash代替version
hash是什么呢:
hash是一个字符串,它像是文件的一种特征,只和文件的内容有关,如果一个文件的内容没发生改变它是hash也就不会改变
考虑CDN的情况
在一些公司的架构下,会将静态资源部署到CSN上,入口模板文件部署到另外一台服务器上,这种情况下就要考虑到资源部署的顺序问题了zhe
事实上不论谁先部署理论上都会存在资源引用错配的情况。这时可以通过非覆盖式发布完美的解决这个问题
后端的发布策略
滚动更新
应用的新版本逐步替换旧版本。在此期间,新旧版本会共存。
- 节约资源
- 流量冲击小
- 回滚不及时
- 存在中间状态,可能导致不一致
蓝绿部署
不停止老版本,部署新版本并进行测试,确认OK后,将流量切到新版本。
- 风险小,新的版本有问题不会影响线上
- 便于快速回滚
- 切换流量时要妥善处理未完成请求
- 整体切换流量冲击较大
灰度发布 / 金丝雀发布
在原有软件生产版本可用的情况下,同时部署一个新的版。两个版本同时存在于线上,为新版本分配少量流量,线上验证完毕后再将新版本推广。