腾讯Node.js基础设施TSW正式开源
Github开源地址:https://github.com/Tencent/TSW
TSW支持用户维度的抓包
- 对于染色的用户
- 对请求生命周期内的抓包进行收集
- 提供抓包查看、下载等功能
- 抓包格式支持Fiddler和Charles,以及HAR
全息日志
TSW提供用户维度的全息日志帮助开发者快速定位问题
- 对请求生命周期内的日志,采用全息的方式记录,形成流水
- 流水按用户维度聚合
- 提供查看功能,快速定位问题原因
异常发现
- 内置指标实时监控
- 代码异常推送告警
2012年10月,TSW第一版上线织云(一体化自动运维平台),Node.js版本为0.6.20。当时的功能十分简陋,只实现了服务端JS直出页面,可以说毫无运维可言,唯一的价值是可以让首屏体验更快。为了强化这个唯一的价值,实现了gzip chunked,边压缩边传输,可以让页面内容有节奏的回包,精确控制流式回包,对Node.js来说非常简单。
window的出现,打通了不同维度间的联系,把这些联系落地,就可以产生新的价值。比如在DNS解析API中,是没有用户概念的,用户存在于更高维度中,高维对低维不可见,通过window对象,低维度里可以知道正在为哪个用户做解析服务。当解析结果有问题时,知道影响了哪个用户,通过用户也能回朔到解析过程。维度之间不是单纯的依赖关系,而是密切配合的关系。这就导致了TSW的代码在组织方式上,需要无条件高内聚,不能以模块的方式单独存在。为了收集这些联系,需要有配套的存储、查看系统。这些系统最终演进为TSW开放平台(tswjs.org)。
兴于抓包
只抓请求包和响应包远远不够,使用上下文对象,对其强化。在请求处理过程中,利用上下文,将衍生请求进行关联抓包,构成全息抓包;将衍生日志进行关联,构成全息日志。对于一次请求,能看到所有维度的日志和抓包,是一件很自然的事。最后把日志和抓包落地供查看。对于不符合预期的请求,可精确给出问题原因。从结果看,团队整体的研发效率得到了质的提升。
能不能统一升级只维护一个版本?统一升级又遇到新的挑战:CPP扩展是和Node.js版本强相关的,只升Node.js还不够,扩展也需要统一维护。为了找出来所有的CPP扩展,TSW动用了监控,对业务私有扩展邮件告警,然后纳入TSW统一维护。统一维护加速了TSW的迭代速度,版本强一致规避了迭代带来的代码腐化问题。
盛于开源
TSW已经具有很强的稳定性和业务通用性。Node.js在前端界目前已经具有相当的热度和欢迎度,TSW作为Node.js基础设施,在公司内部已经得到了开发团队以及运维团队的认可,本次将TSW开源,在业界进一步增强TSW的技术影响力,同时也进一步完善和优化TSW。
腾讯Node.js基础设施TSW正式开源相关推荐
- 腾讯 Node.js 基础设施 Tencent Server Web 正式开源
开发四年只会写业务代码,分布式高并发都不会还做程序员? >>> 经过六年的迭代与沉淀,腾讯Tencent Server Web (以下简称TSW)这一公司级运维组件于今日正式开源 ...
- php围棋源码,腾讯围棋AI技术 PhoenixGo 正式开源,源码、模型全公开
5 月 11 日,腾讯微信团队研发的 PhoenixGo 正式开源,这也是国内第一个开源的围棋 AI 项目. PhoenixGo 是腾讯微信翻译团队开发的人工智能围棋程序,旨在学习人工智能前沿技术.从 ...
- 腾讯围棋AI技术PhoenixGo正式开源 1
5月11日,微信团队研发的PhoenixGo正式开源,这也是国内第一个开源的围棋AI项目. PhoenixGo是腾讯微信翻译团队开发的人工智能围棋程序,旨在学习人工智能前沿技术.从1月底开始,Phoe ...
- 腾讯可视化, 低代码生成器,正式开源!
点关注公众号,回复"1024"获取2TB学习资源! 腾讯tmagic-editor是一个所见即所得的页面可视化编辑器,实现零代码/低代码生成页面,可以快速搭建可视化页面生产平台,让 ...
- 腾讯: 可视化, 低代码生成器,正式开源!
欢迎关注方志朋的博客,回复"666"获面试宝典 腾讯tmagic-editor是一个所见即所得的页面可视化编辑器,实现零代码/低代码生成页面,可以快速搭建可视化页面生产平台,让非技 ...
- 小程序 node.js mysql_基于Node.js+MySQL开发的开源微信小程序B2C商城(页面高仿网易严选)...
高仿网易严选的微信小程序商城(微信小程序客户端) 界面高仿网易严选商城(主要是2016年wap版) 测试数据采集自网易严选商城 功能和数据库参考ecshop 服务端api基于Node.js+Think ...
- node mysql商城开发_GitHub - Ssipon/nideshop: NideShop:基于Node.js+MySQL开发的开源免费商城(api服务器端)...
NideShop商城(服务端) 界面高仿网易严选商城(主要是2016年wap版) 测试数据采集自网易严选商城 功能和数据库参考ecshop 服务端api基于Node.js+ThinkJS+MySQL ...
- node 小程序 php,基于Node.js+MySQL开发的开源微信小程序B2C商城(页面高仿网易严选)...
高仿网易严选的微信小程序商城(微信小程序客户端) 界面高仿网易严选商城(主要是2016年wap版) 测试数据采集自网易严选商城 功能和数据库参考ecshop 服务端api基于Node.js+Think ...
- 基于Node.js+MySQL开发的开源微信小程序商城(微信小程序)部署环境
在网上搜到小程序设计的项目,下载前辈的代码到本地环境,接下来需要如何部署代码到本地,并能够看到完整的效果展示. 服务器端: https://github.com/tumobi/nideshop Nid ...
最新文章
- mysql rollback函数_PHP mysqli_rollback() 函数_程序员人生
- Java线程的两种实现方式
- Spring的环绕通知
- jquery中对小数进行取整
- flex for java_Java和Flex整合报错(四)
- 毕业5年,我是怎么成为年薪30W的运维工程师
- Spring Boot WebFlux-02——WebFlux Web CRUD 实践
- shell逐行读取每一列
- 2016蓝桥杯省赛---java---A---6(寒假作业)
- 一条正确的Java职业生涯规划,帮你突破瓶颈
- leetcode 218. 天际线问题
- hdu 5691 Sitting in Line
- ext Grid(三)
- Android 系统(193)----图解从URL到网页通信原理
- HTML5的 2D SVG和SVG DOM的学习笔记(2)---SVG动画
- 解决在IE下“JSON”未定义的有关问题
- linux新手入门学习 - linux目录结构
- java中springmvc_java框架之springmvc
- python编辑视频教程_Maya中Python编辑基础核心技术训练视频教程
- julia安装源_在Linux系统中下载与安装Julia 1.0.1
热门文章
- pandas整表写入excel指定位置_当Python遇到Excel,一个能打的都没有~
- 算法题:在一个字符串中找到只出现一次的字符。如输入abaccdeeff,则输出bd。
- python 服务端与c++客户端通讯_[原创]python socket 服务端 与 c++客户端通讯,发包内容加密,支持大文件,并发...
- java字符串构造函数的应用_StringTokenizer类的使用
- jenkins 发送邮件模板
- BZOJ4562: [Haoi2016]食物链
- GCD6: 在GCD上异步执行非UI相关任务
- 程序员编程艺术第十一章:最长公共子序列(LCS)问题
- 指针(pointers)和引用(references)区别
- Android 4.0 Launcher源码分析系列(二)