环境为王-论贴吧环境解决方案

简介:

摘要

本文列举了当前贴吧线下环境在使用过程中遇到的几个典型问题场景,针对这些问题,从如何维护环境稳定性以及如何提供更好的环境更新体验两个维度,给出了对应的解决方案。

通过环境稳定性解决方案,降低了人力的投入,保证了环境的最新,减少了人为因素引入问题,通过技术的手段,保证整个过程自动化、可视化。

通过更新方案,给予用户更好地更新体验,提升更新效率和速度,降低了执行机与基准环境之间的耦合性。

 

关键字

基准环境  自动化  监控  稳定性  更新

名词解释

基准环境:在虚拟机上搭建的一个单机的贴吧全功能环境。该环境包含了贴吧的所有模块,所有模块相关的地址配置(ip、url)均指向本机,是测试开发环境构建的母本。

执行机:指rd、qa、fe的开发或者测试机。

1.引子

 

 

贴吧当前有50多套线下环境,环境的快速构建以及环境功能的完备性成为提高效率的一个重要因素。为了达到环境快速构建和可复制的目的,通过借鉴svn的思想,采用环境模板的思路,搭建了一台具备贴吧全功能的使用环境,即“基准环境”,其作为其他执行机的环境构建母本,具有单点更新的特点,极大地降低了环境维护以及构建的成本。

但随着模块的逐步增加,环境构建复杂度的增大,在使用中逐步出现了以下问题:

1.模块部署基准环境滞后:模块版本迭代很快,新上线模块不能及时更新,影响了开发和测试的效率。

2.基准环境服务异常,缺乏监控:只有当核心服务出现问题时,才能知晓基准环境问题,处于一种很被动的情况。

3.基准环境和执行机耦合度高:基准环境作为所有执行环境的母本,之前设计的构建模式,存在只要基准环境出现异常,就会直接影响所有执行环境的问题。

4.基准环境管理维护缺乏流程规范约束,使用缺乏控制,容易人为引入问题,将问题带入执行机。

为了解决以上问题,本文将从基准环境稳定性以及环境更新两个维度来进行阐述。

2.方案阐述

 

 


上图将解决方案划分为两个维度,第一个维度是针对基准环境稳定性的问题,主要解决基准环境上线模块、监控以及服务验证、环境隔离等问题。第二个维度主要解决基准环境和执行机耦合的问题,并阐述提升环境构建效率的方案。

2.1     基准环境稳定性方案

 

 


为了解决模块部署基准环境滞后、基准环境服务异常,缺乏监控以及基准环境管理缺乏约束的问题,采用上图中提到的三个方面。

2.1.1 构建自动化、管理平台化

1)构建自动化、确认平台化:
 

 

自动监控SCMPF的程序变化,主动抓取程序,按照部署路径规范,自动部署最新的模块。在项目上线后,自动更新基准环境,保证环境版本最新。
程序构建信息的不透明、功能确认环节不可控,加大了环境问题追查的难度。为解决此问题,使用部署信息web管理平台,使得部署信息可视化;通过确认平台,达到及时掌握项目部署效果的目的,能够透明的掌握整个流程。
2) 配置项监控:
 

 


由于上线模块会涉及程序以及配置,要达到自动化部署基准环境的目标,需要将线下配置入库svn。为了避免遗漏情况,采取脚本定时进行线下和线上的配置项定时比较,邮件通报比较结果,进行介入跟进。
3) 线上DB操作监控:
 

 

 

 


脚本定时监控线上存储过程或者表结构的更新,自动dump至基准环境,保证线上和线下DB一致性目的。

2.1.2 监控全面化

 

 

1)基础监控:
使用noah,定时采集系统io、内存、idle等数据,出现异常报警,及时掌握基准环境系统状况,及时跟进。
2)模块监控:
使用脚本,采用语义监控以及端口监控,定时获取系统服务状况,当出现失败采取报警,便于及时安排模块负责人进行跟进处理。
3)服务监控:
结合核心自动化case,根据case执行结果,及时掌握核心服务正确性,确保功能正确性。

2.1.3 操作隔离化

 

环境的使用缺乏隔离,直接可能引入模块搭建混乱、肆意修改配置、文件目录肆意创建、删除等人为问题。为避免以上问题,采用操作隔离化,具体内容如下:
1) 权限管理:
※ 用户权限管理:使用公共账号,类似线上qa账号,提供可读权限,开放部分目录的写权限。
※ 目录权限管理:限制目录的权限,针对不同的目录类型,设置不同的rwx权限,避免人为因素随意创建目录文件,删除文件、目录等操作。
※ 访问授权管理:收敛授权范围,仅对动态备机进行访问授权,不再开放其他执行机对基准环境的授权。
2) 文件变动监控:
通过shell脚本定时监控和统计文件变动情况,便于出现问题后追查问题。

2.2 环境更新方案

原有方案中基准环境作为所有执行环境更新的源端,所有的更新请求都直接由基准环境响应,使得基准环境与执行机存在严重的耦合性,一旦基准环境出现问题,执行环境功能正确性会受到严重影响。
为了规避耦合性,使得执行机每次都能获得一个稳定可用的环境版本;同时降低基准环境处理更新请求的负载,因此引入了动态备机与静态备机的概念。动态备机维护着一个稳定的环境版本,静态备机的存在则主要从加快更新响应的温度考虑。
更新流程也变为如下过程:
 


方案特点:
1) 执行机与基准环境更新解耦:
假设基准环境出现问题,不再会直接影响到所有执行机的操作。同时降低基准环境的更新请求负载,保证服务运行稳定。
2) 环境版本管理:
动态备机始终维护着一个稳定的基准环境发布版本,一方面保证上游(基准环境)的问题不会带入执行机,保证核心服务正确性;另一方面,假设基准环境宕机,动态备机的存在也能够起到容错的需求。
3) 更新分流:
通过更新脚本的分流,能够将不同类型(rd、qa)执行机的更新请求分流至不同备机上,降低同一台机器更新请求量,提高更新请求响应速度,提升更新速度。
4) 多种更新模式选择:
更新命令envup,提供各种可选参数,从全局同步、细粒度按目录文件同步,到按照子系统同步,以及高速不带数据等同步方式,给用户多种选择的余地,同时提供更新加锁功能,能够细粒度根据用户配置,不更新配置中的文件或目录。

3 方案收益

收益主要集中于以下几个方面:
1) 保证了环境及时更新:
自动检测SCMPF,只要有程序发布,则能够立即部署至基准环境,快速构建环境,保持基准环境程序版本最新。
2) 减少人力投入:
经过半个月左右统计,基准环境自动化上线项目74个,更新模块累计223个,按照1人时/项目计算,则节省74人时,平均每日节省近5人时。
3) 部署以及确认过程透明化:
所有信息都能够通过web平台查询,及时知晓上线模块,负责人,功能确认状态等信息,改变了以前无据可循,问题排查困难的情况。
4) 主动知晓系统状况:
通过基础监控、服务监控以及模块监控,改变来原有被动知晓系统问题的状态,环境问题及时报警,问题能够得到及时跟进。
5) 降低基准环境与执行机耦合度:
降低基准环境不稳定所可能带来的风险,同时通过动态备机一定程度上起到容错的作用。
6) 更新构建方式及效率的提升:
※ 更新方式多样化,通过不同命令参数的组合,适应不同的执行机更新场景;
※ 易用性的提升,更新方式灵活配置和选择,降低了qa、rd、fe环境构建的成本,使用意愿大幅提升。从方案实施至今,据统计,更新操作累计已达1000次;
※ 构建速度提升,通过更新方案的优化,采用按子系统、不带数据、时间戳对比等方式,将全功能环境的构建时间从原来3小时左右,缩减至30分钟以内,极大提升效率。

 











本文转自百度技术51CTO博客,原文链接:http://blog.51cto.com/baidutech/742996,如需转载请自行联系原作者

相关文章
|
7月前
|
搜索推荐 开发者
开源打败商业 —— 敲敲云 apaas 平台成为了零代码领域的黑马,开启零代码新时代
随着数字化转型的浪潮席卷全球,企业对于高效、灵活的业务系统需求日益增长。在这个背景下,零代码开发平台应运而生,成为了市场上备受瞩目的产品。而在众多零代码产品中,敲敲云 以其开源的身份和高效的研发速度,彰显了其与众不同的竞争力。
546 0
|
缓存 负载均衡 NoSQL
山东布谷科技直播软件源码Nginx服务器横向扩展:搭建更稳定的平台服务
Nginx服务器横向扩展提高了[直播软件源码](https://developer.aliyun.com/article/1302799?spm=a2c6h.13148508.setting.15.65934f0e6yi0Cp)性能,使直播软件源码平台性容错性、负载能力、处理高并发能力等能力有了极大地提升,确保了平台向着更高心梗、更稳定的方向发展,并且这样,使用户的体验大大增加,增加用户黏性,增多了用户的数量。
山东布谷科技直播软件源码Nginx服务器横向扩展:搭建更稳定的平台服务
|
新零售 数据可视化 前端开发
案例酷 | 传统家局卖场升级:居然之家“变形记”
编者按: 近日,在居然之家战略投资发布会上,居然之家表示,在向“线性服务+产业平台服务”模式转型,将打造一个产业服务平台。回顾居然之家最新财报业绩,以及数字化进展为主的新发展,展现它的投资潜力和价值。
141 0
案例酷 | 传统家局卖场升级:居然之家“变形记”
|
敏捷开发 Devops jenkins
技术分享 | 这些常用测试平台,你们公司在用的是哪些呢?
技术分享 | 这些常用测试平台,你们公司在用的是哪些呢?
|
敏捷开发 Devops jenkins
技术分享 | 这些常用测试平台,你们公司在用的是哪些呢?
测试管理平台是贯穿测试整个生命周期的工具集合,它主要解决的是测试过程中团队协作的问题。在整个测试过程中,需要对测试用例、Bug、代码、持续集成等等进行管理。下面分别从这四个方面介绍现在比较流行的管理平台。 ![](https://ceshiren.com/uploads/default/original/3X/5/c/5c4e637fe1f84f97d597e2ab85951a6fe324a
|
域名解析 存储 安全
让理想中的企业级站点开发走进大众 - ServerlessDevs 1024特别奉献
本篇文章像大家介绍一下,如何使用serverless devs 结合云产品实现一个具备 高安全,高性能,高体验,高容灾,低成本的web站点
214 0
让理想中的企业级站点开发走进大众 - ServerlessDevs 1024特别奉献
专访开源之道主创 · 适兕:真实的开源世界依旧冷清
专访开源之道主创 · 适兕:真实的开源世界依旧冷清
|
小程序 搜索推荐 数据安全/隐私保护
不懂技术,如何快速搭建公司网站?
我们搭建企业网站有以下几种常见方式 1、自己建站; 2、使用模板建站; 3、招聘网站设计人员搭建网站; 4、找外面的网站设计公司 5、由国内云计算厂商完成建站工作
454 0
不懂技术,如何快速搭建公司网站?
|
负载均衡 API Docker
云场景实践研究第14期:南京路特软件
通过使用阿里云容器服务,较好地解决了其所面对的敏捷、成本、可靠这困扰南京路特的三大核心问题。当然,在这一过程中,南京路特也在Docker实践中不断踩坑,也不断地总结经验教训,并总结出了适合中小企业实践Docker技术的两个常用场景。
1980 0