前端技术-搜狗Node.js基础架构建设之路-杨光

介绍了搜狗Ares基础架构,从上线到监控到性能统计的优化过程
展开查看详情

1.搜狗Node.js基础架构建设之路路 杨光
 2018.11.23

2.业务开发⾯面临的挑战

3.设计原则 SEO ⼀一次就好 术业专攻

4.技术选型 1Next.js 2 Koa.js 3PM2

5.Ares基础架构 Ares基础架构 NPM仓库 CLI脚⼿手架 统⼀一研发平台 ELK实时⽇日志

6.私有仓库 Ares-next Ares-logger Ares-cms Ares-redis … Vedaccio

7.Ares-next 样式⽂文件打包 Ares- Next@7.0.2 静态资源上传CDN 定制Webpack

8.结合Preact

9.Preact的优势

10.Ares logger Ares TraceId 记录接⼝口耗时 捕获异常 默认超时机制 统⼀一⽇日志格式

11.traceId ⽤用户请求 判断query logger中间件 是否有traceId 是 AJAX请求 否 ⻚页⾯面请求 写⼊入traceId ajaxSetup.beforeSend window.__ARES__.aresid

12. pm2-event-monitor pm2.on(‘process.exception’, () => {…}) pm2.on(‘process.event’, () => {…})

13.Redis Pub/Sub Channel 1 修改配置 Publish Channel 2 业务 Subscribe Ares研发平台 … Publisher Subscriber Redis

14.CLI脚⼿手架 npx create-ares-app my-app [-t koa]

15.Ares平台

16.集群通信 搜狗集群 S H S 程 远 Ares 统⼀一研发平台 代 理理 机 器器 腾讯集群

17.初始化Node版本 下发 Ares 机器器集群 pm2 update node-update.sh node-init.sh 统⼀一研发平台 …

18. 上线流程1.0 Git更更新代码 npm install ares-next build 打包 上传Git Git拉取/解压 SSH⾄至远程机器器 npm install pm2 start/restart

19. 上线流程优化 Git更更新代码 npm install ares-next build 打包 上传Git Git拉取/解压 SSH⾄至远程机器器 npm install pm2 start/restart

20. 上线流程优化 • 统⼀一node_modules⽂文件夹 • 增量量npm install • 预编译依赖

21. 上线流程优化 Git更更新代码 npm install ares-next build 打包 上传Git SCP 解压 Git拉取/解压 SSH⾄至远程机器器 pm2 start/restart

22. 上线流程优化 Git更更新代码 npm install ares-next build 打包 SCP 解压 SSH⾄至远程机器器 pm2 pm2 reload/scale start/restart

23.上线流程展示

24.服务监控

25.前端异常/性能统计 实时数据 异常 上报 过滤请求 统计脚本 打印⽇日志 性能数据 天级数据 前端JS 异常/性能接⼝口服务

26.前端性能统计

27.前端异常统计

28.Node.js异常/性能统计 实时数据 查询 ELK集群 天级统计脚本 天级数据 进程异常 接⼝口耗时

29.应⽤用展示 汪仔答题助⼿手