推荐腾讯云毫秒服务引擎,这是一个开源框架,适用于在廉价机器组成的集群上开发和运营分布式后台服务。毫秒服务引擎集RPC、名字发现服务、负载均衡、业务监控、灰度发布、容量管理、日志管理、key-value存储于一体,非常适合中小型互联网公司部署发布分布式应用。
(1)发布环境准备 预发布环境准备:预发布环境是跟生产环境配置一模一样的系统,只是往往只有一个测试节点,但是它后面调用的是正式生产环境的资源(例如DB、Cache、队列等)。 预发布环境主要是要在正式发布前,做一次完整回归测试。测试人员可以通过地址参数、Cookie、请求头参数、VPN等工具,接入预发布环境进行系统整体回归测试。预发布环境下,最常见的Bug如下:生产环境代码已更新到最新版本了,但是数据库变更却忘了操作生产数据库。这个情况下,测试环境很可能都是正常的,但是预发布环境就可以很好的发现bug。 跟开发环境不同,预发布环境不允许开发人员直接接触,以防因为开发人员提交代码的瑕疵影响预发布环境里的系统。因为这是运维人员保障上线质量的最后一道屏障,运维标准也基本等同于生产环境。 正式生产环境准备:生产环境包括发布产品所需要的所有服务器资源,包括Web服务器、数据服务器、CDN服务等。 灰度发布环境准备:每个项目一般都会部署到多台机器,所以一般会拿1-3台服务器看看是否可用,如果失败则只需要回滚这几台服务器,比较方便。灰度发布需要使用跳板机并进行域名绑定,这样才能保证用户访问到的只有最新代码的服务器。 (2)数据库上线 生成数据库项目时,可以先从测试环境导出数据库对象定义脚本,然后再将预先部署脚本、数据库对象定义和后期部署脚本合并为一个生成脚本,再将该脚本拿到主数据库服务器上生成数据库。然后通过主数据库备份到各台从属数据库。 如果系统对读取及时性要求非常高,则可在数据库层之上架构Redis这样的分布式缓存,其性能肯定远高于从数据库读取数据。 (3)程序文件编译上线 组件部署:将C/C++或Java编写的组件编译,然后通过自动部署工具发布到所有Web服务器。 Web前端部署:一般先将静态资源(例如图片、JS代码等)拆分出来,发布到CDN云服务。然后再通过GIT将合并测试通过的Trunk版本发布到正式生产环境,再通过灰度发布工具同步到所有Web服务器。 IOS APP发布:App Stores是iTunes Store的一部分,是iPhone、iPod Touch、iPad以及Mac唯一的正规下载渠道。企业用户申请证书后,即可上传并发布IOS应用。 Android APP发布:推荐腾讯应用宝发布安卓版本的手机应用。应用宝提供防盗版功能,可有效帮助用户解决误下载山寨应用的问题。支持点击微信、QQ分享链接,即可打开下载界面。因为没有唯一的安卓发布市场,因此建议主流安卓市场都能上线安卓的版本。 (4)上线版本整体评估 上线评估阶段需经过市场、产品、运营、开发、测试等对于上线做出整体评估后才能正式上线运营。这个过程一般是由产品经理先在全员群里提醒大家最后一次确认还有什么问题。 如果有任何问题,则需要在群里和相关人员评估是否要在当前版本解决,如果是则尽快解决以免影响版本发布计划,如果不是则转需求到后续版本。 如果每个人都没有提出异议则发出上线版本发布告知邮件,进入正式发布流程。 (5)灰度发布 Web前端灰度发布:对比较小的Web应用,在页面javascript或服务器端实现分流即可。但对于大规模用户的Web应用,采用分流发布引擎很有必要。 组件灰度发布: IOS APP灰度发布:常见做法是制作一个带数字签名的测试版,然后提供给测试用户使用。 Android APP灰度发布:由于Android没有统一的发布渠道,因此只需逐个替换发布渠道的安装包即可。 10、优化阶段 (1)研发工作总结 产品上线后需要对产品研发过程做总结,不论是产品上的还是流程配合上的,为后续加强沟通协作、产品运营打好基础。 (责任编辑:admin) |