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文件。目前是开源项目中唯一支持读写带有图片(表)、透视表等复杂样式文档的类库。