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

简介:

摘要

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

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

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

 

关键字

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

名词解释

基准环境:在虚拟机上搭建的一个单机的贴吧全功能环境。该环境包含了贴吧的所有模块,所有模块相关的地址配置(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,如需转载请自行联系原作者

相关文章
|
8月前
|
设计模式 Cloud Native Java
GitHub爆出阿里内部突击路线+配套学习资源,直接霸榜
又到了一年一度的备战秋招的时间,虽然这两年因为经济环境不太好,年初互联网行业的各大厂都再裁员,前半年的行业发展趋于平稳,随着经济形势正在复苏,今年秋招各个公司hc也逐渐开放,很多小伙伴也反馈面试机会变多了,想查缺补漏冲刺大厂,我软磨硬泡终于从阿里p8手里弄来了突击秘籍,分享给大家。 涨薪秘籍从Java核心并发开始,到经典的框架源码设计模式、分布式微服务架构设计、微服务NetFilx体系和Alibaba体系、微服务架构性能调优、云原生以及虚拟化、Spring Cloud Alibaba项目实战。
114 2
GitHub爆出阿里内部突击路线+配套学习资源,直接霸榜
|
11月前
|
新零售 数据可视化 前端开发
案例酷 | 传统家局卖场升级:居然之家“变形记”
编者按: 近日,在居然之家战略投资发布会上,居然之家表示,在向“线性服务+产业平台服务”模式转型,将打造一个产业服务平台。回顾居然之家最新财报业绩,以及数字化进展为主的新发展,展现它的投资潜力和价值。
案例酷 | 传统家局卖场升级:居然之家“变形记”
|
IDE Java Linux
谈谈腾讯和百度的C++开发环境
笔者先后在TB待过,主要做C++开发工作。今天来谈一下两个公司的C++开发环境。
546 0
谈谈腾讯和百度的C++开发环境
|
云安全 缓存 自然语言处理
“1s? 我要0s” -- 阿里云安全产品1秒战役总结
“1s? 我要0s” -- 阿里云安全产品1秒战役总结
671 0
“1s? 我要0s” -- 阿里云安全产品1秒战役总结
在网易工作是一种什么样的体验?
在网易工作是一种什么样的体验?
111 0
在网易工作是一种什么样的体验?
|
移动开发 小程序
怎么做论坛软件
在目前这个发达的互联网时代,行业论坛已近比较成熟了,各个行业都有做得比较好的论坛,行业论坛也是很多创业者的标配,所以我们目前看到了很多像汽车类论坛网站、美妆类论坛网站、地方类论坛网站、电商技术交流类论坛网站
250 0
怎么做论坛软件
|
SQL 缓存 运维
阿里研究员:线下环境为何不稳定?怎么破
为什么线下环境的不稳定是必然的?我们怎么办?怎么让它尽量稳定一点?
阿里研究员:线下环境为何不稳定?怎么破
|
存储 机器学习/深度学习 开发者
开放下载!《长安十二时辰》爆款背后的优酷技术秘籍首次公开
《长安十二时辰》一经播出便红遍全网,从智能算法到音视频创新技术,从智能档的技术挑战到高可用的媒资平台,成就这华丽视效的爆款背后,优酷技术都用到了哪些“武林秘籍”?
76323 0
开放下载!《长安十二时辰》爆款背后的优酷技术秘籍首次公开
|
双11
九年双11互联网技术超级工程 | 免费资料库
阿里的双11是一次全球商业、科技、数据、智能的大协同,是一个商业社会的大协同,更是一个技术的大协同,是名副其实的世界互联网技术的超级工程。
1158 0
|
关系型数据库 PHP 数据库
社交软件系统ThinkSNS+研发日记
NO.1: 实用开源软件安装部署是第一步, ThinkSNS+响应快速安装,易于二开基准,为大家录制了一份宝塔面板安装社交系统ThinkSNS+视频教程,点开观看视频一起吸一吸。 视频主要内容提要: 环境 要求   PHP & 拓展 PHP 必须大于或等于 7.
5163 0