- 《架构师》2018年4月
- InfoQ中文站
- 1970字
- 2020-06-26 06:03:20
360开源项目大盘点
自从360于2016年在美股退市以来,大家就一直猜测它何时会在国内上市,期间还发生了诸如借壳上市等话题,如今这只悬在空中的靴子终于落地了。
对于很多人来说,360最为人所知的是它在网络安全方面的建树,不时国外得个奖,近年来席卷互联网的安全事件也都能及时给出警告和解决方案,受到广大网友信赖。
不过,除了安全,其实360还有很多开源技术值得称道,下面就让我们来盘点一下。
云计算
jepsen:分布式系统验证框架
https://github.com/jepsen-io/jepsen
Jepsen是开源社区比较公认的分布式数据库的测试框架。Jepsen验证过程包括VoltDB、CockroachDB、Galera、MongoDB、etcd在内的几乎所有的主流分布式数据库/系统。
huststore:高性能分布式存储服务
https://github.com/Qihoo360/huststore
huststore是一个高性能的分布式存储服务,不但提供了100 thousand QPS级别的kv存储的功能,还提供了hash、set、sort set等一系列数据结构的支持,并且支持二进制的kv存储,可以替代Redis相关的功能。
Poseidon:日志搜索引擎
https://github.com/Qihoo360/poseidon
Poseidon系统是一个日志搜索平台,能在数百万亿条规模的数据集中找出我们需要的数据,只需要花费几秒钟时间,大大提高工作效率;同时,数据不需要额外存储,节省了大量存储和计算资源。该系统可以应用于任何海量(从万亿到千万亿规模)的查询检索需求。
人工智能
XLearning:深度学习调度平台
https://github.com/Qihoo360/XLearning
XLearning由360系统部大数据团队与人工智能研究院联合开发,基于Hadoop Yarn完成了对TensorFlow、MXNet、Caffe、Theano、PyTorch、Keras、XGBoost等常用深度学习框架的集成。平台上线运行近一年时间,经多次版本迭代更新,为各学习框架的使用者提供了统一、稳定的作业提交平台,实现了资源共享,极大的提高了资源利用率,并且具有良好的扩展性和兼容性,在公司搜索、人工智能研究院、商业化、数据中心等业务部门得到广泛使用。
数据库
Zeppelin:高性能KV存储平台
https://github.com/Qihoo360/zeppelin
Zeppelin是奇虎360开源的一个高性能,高可用的分布式Key-Value存储平台,它以高性能、大集群为目标,并希望能在Zeppelin的基础上,不仅能够提供KV的访问,还可以通过简单的一层转换满足更复杂的协议需求。
Atlas:高性能MySQL代理
https://github.com/Qihoo360/Atlas
Atlas是由Qihoo 360公司Web平台部基础架构队开发维护的一个基于MySQL协议的数据中间层项目。它在MySQL官方推出的MySQLProxy 0.8.2版本的基础上,修改了大量bug,添加了很多功能特性。
pika:类Redis存储系统
https://github.com/Qihoo360/pika
Pika是360 DBA和基础架构组联合开发的类Redis存储系统,完全支持Redis协议,用户不需要修改任何代码,就可以将服务迁移至Pika。有维护Redis经验的DBA维护Pika不需要学习成本。
Pika主要解决的是用户使用Redis的内存大小超过50G、80G等等这样的情况,会遇到启动恢复时间长,一主多从代价大,硬件成本贵,缓冲区容易写满等问题。Pika就是针对这些场景的一个解决方案。
MySQL Sniffer:MySQL抓包工具
https://github.com/Qihoo360/mysql-sniffer
MySQL Sniffer是一个基于MySQL协议的抓包工具,实时抓取MySQLServer端的请求,并格式化输出。输出内容包访问括时间、访问用户、来源IP、访问Database、命令耗时、返回数据行数、执行语句等。有批量抓取多个端口,后台运行,日志分割等多种使用方式,操作便捷,输出友好。
前端/Node
chimee:浏览器视频播放框架
https://github.com/Chimeejs/chimee
Chimee由奇舞团研制的h5播放器,它支持mp4、m3u8、flv等多种格式。通过插件式开发,能满足业务方快速迭代、灰度发布等要求。让开发者能够轻松快捷地完成视频场景的开发。
ThinkJS:企业级Node框架
https://github.com/thinkjs/thinkjs
ThinkJS是一款面向未来开发的Node.js框架,整合了大量的项目最佳实践,让企业级开发变得如此简单、高效。从3.0开始,框架底层基于Koa 2.x实现,兼容Koa的所有功能。
Firekylin:通用博客系统
https://github.com/firekylin/firekylin
Firekylin是一个高效简洁的动态博客系统,整体基于ThinkJS框架,后台采用了React技术栈。
移动开发
RePlugin:Android占坑类插件化方案
https://github.com/Qihoo360/RePlugin
RePlugin是一套完整的、稳定的、适合全面使用的,占坑类插件化方案,由360手机卫士的RePlugin Team研发,也是业内首个提出”全面插件化“(全面特性、全面兼容、全面使用)的方案。
DroidPlugin:Android插件化框架
https://github.com/DroidPluginTeam/DroidPlugin
DroidPlugin是在Android系统上实现了一种新的插件机制:它可以在无需安装、修改的情况下运行APK文件,此机制对改进大型APP的架构,实现多团队协作开发具有一定的好处。
运维监控
QConf:分布式配置管理工具
https://github.com/Qihoo360/QConf
QConf是一个分布式配置管理工具。用来替代传统的配置文件,使得配置信息和程序代码分离,同时配置变化能够实时同步到客户端,而且保证用户高效读取配置,这使的工程师从琐碎的配置修改、代码提交、配置上线流程中解放出来,极大地简化了配置管理工作。
phptrace:PHP执行跟踪工具
https://github.com/Qihoo360/phptrace
phptrace是一个低开销的用于跟踪、分析PHP运行情况的工具。它可以跟踪PHP在运行时的函数调用、请求信息、执行流程,并且提供有过滤器、统计信息、当前状态等实用功能。在任何环境下,它都能很好的定位阻塞问题以及在高负载下Debug,尤其是线上生产环境。
ElasticHD:ElasticSearch可视化管理工具
https://github.com/360EntSecGroup-Skylar/ElasticHD
Elasticsearch可视化DashBoard,支持Es监控、实时搜索,Index template快捷替换修改,索引列表信息查看,SQL converts to DSL等。
开发工具
GoReporter:代码质量检测工具
https://github.com/360EntSecGroup-Skylar/goreporter
Golang开发工具,提供代码质量检测/Golang代码静态检测器/Golang项目单元测试,根据自定义模版自动生成Golang代码质量检测报告。
Excelize:Go语言Excel文档操作库
https://github.com/360EntSecGroup-Skylar/excelize
这个项目是Golang编写的一个用来操作Office Excel文档的类库,基于ECMA-376 Office OpenXML标准。可以使用它来读取、写入带有复杂样式的XLSX文件。目前是开源项目中唯一支持读写带有图片(表)、透视表等复杂样式文档的类库。