艺龙网发展阶段
• 重构阶段– 统一的开发框架
– 制定约定、规范
– 集中:技术难点、共性
• 平台大建设阶段– 往大型互联网转变
– 注重各种平台的建设
• 敏捷阶段– 团队的效率
– 对性能、可用性、负载的高要求
网站开发架构图
展示层
接入层
逻辑层
数据层
V
C M
Service
DB
Inside Service
WCF
Cache
Framework
JS Framework
WebContext
CookieManager
3L Cache Framework
MVTM
VC
Framew
ork
AOP
Elong.Common
Config
MQ Framework
SessionManager
OrderFormAysCMS
MQ
Log
CI构想
开发环境
自动js压缩
自动发布框架
自动检查 单元测试打包
维护公共开发环境 自动部署开发环境
测试环境
自动部署测试环境
自动API测试
性能测试
生产环境
自动部署部署结果
检查自动重启服务
…
…
自动化
艺龙敏捷工程平台
•项目管理
•源码分支管理
•提测
•上线
Eapd
•驱动CI
•驱动AOS
•单测
•自动化测试
Hudson•编译
•压缩
•自动打包
CI
•自动部署
•上线步骤
AOS
FinalBuild云
JOB调度系统
22
管理系统 调度服务
JOBDB
MSMQ
JOB执行机
回填结果
• B/S远程管理• 调度者多活• 执行者多活、并实现分布式计
算• 执行者可多线程处理• 执行历史及日志统一管理• 灵活的参数机制,使Job无配
置文件信息• JOB上下文支持
MQ体系
26
Elong MSMQ Framework
ELog
Snooper
STJ CTJ
MQJob
• Snooper: 代码性能监控系统• ELog: Elong日志采集系统• STJ: 服务端统计系统• CTJ: 页面行为统计系统• MQJOb: 消息队列job系统
机器模板• 环境变量文件
– 我们在每台服务器上部署一个env.xml
– 这个文件存放IDC之间的差异
– 目前想到的差异
• IDC名称或类别
• 配置平台服务地址
– Env.xml 样例 :
• idc=elongIdc
• Configurl=cmapi1.vip.elong.com
是否传入方法名
按照组名称,找到组内的读写组
否
在读写分离寻找读写属性
是
是否找到读写属性
否
按照读写属性和组名称找到组内的读,写,读
写组
是
按照策略找出组内IP返回
应用程序拿到IP,请求相应服务,并得到相应请求的结果
将结果上报ELB
请求
结束
Elong LoadBalance• 负载均衡
根据均衡策略对访问进行分配(应用级负载均衡,点对点直达)
• 健康检查和容错检查结点的健康状况,调整分配;结点恢复健康后,自动加入。
• 过载保护一组结点访问量全部过载,拒绝访问。
• 性能监控和报警结点性能出现问题(不可用,或性能恶化),给出报警。
• 状态保持支持访问状态的保持。
• 集中配置、分组管理配置在Server端集中管理,结点分组管理。
• 读写分离业务访问根据读写配置进行分配。
• 运行状态报告系统运行过程中记录运行状态。
ELB Agent架构ELB Server
CFG AgentCFG Agent
LB Agent
API
API
LB Agent
API
API
Client Client
APP Server APP Server
ELB
Abacus Experimentation Lifecycle
Ideation
Experiment idea
Discuss and Decide
Setup and Dev
Experiment setup
POD development
Launch and Monitor
Feature release
Test turned on and monitored
Test End
Data pulled from EDW
Analyzed and communicated
38Confidential
方案二:MVT Nginx SiteSpect
netscaler
用户请求
Nginx1 Nginx2 Nginx3 Nginx4
爬虫专用服务器
数据抓取专用服务器
酒店web用户服务器
4台 4台 40台
对请求用户GUID按实验分流 根据分流结果对responseStream
做相应的业务替换
MVT配置文件内容:subs_filter 'id="m_search"' '{"id":3,"name":"m3","buckets":[{"id":1,"value":"id=\'m_search\' style=\'color:green\' ","rate":50},{"id":2,"value":"id=\'m_search\' style=\'color:red\' ","rate":50}]}' r;
Recommended