作者
自从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 相关的功能。
https://github.com/Qihoo360/poseidon
Poseidon 系统是一个日志搜索平台,能在数百万亿条规模的数据集中找出我们需要的数据,只需要花费几秒钟时间,大大提高工作效率;同时,数据不需要额外存储,节省了大量存储和计算资源。该系统可以应用于任何海量(从万亿到千万亿规模)的查询检索需求。
人工智能
https://github.com/Qihoo360/XLearning
XLearning 由 360 系统部大数据团队与人工智能研究院联合开发,基于 Hadoop Yarn 完成了对 TensorFlow、MXNet、Caffe、Theano、PyTorch、Keras、XGBoost 等常用深度学习框架的集成。平台上线运行近一年时间,经多次版本迭代更新,为各学习框架的使用者提供了统一、稳定的作业提交平台,实现了资源共享,极大的提高了资源利用率,并且具有良好的扩展性和兼容性,在公司搜索、人工智能研究院、商业化、数据中心等业务部门得到广泛使用。
数据库
https://github.com/Qihoo360/zeppelin
Zeppelin 是奇虎 360 开源的一个高性能,高可用的分布式 Key-Value 存储平台,它以高性能、大集群为目标,并希望能在 Zeppelin 的基础上,不仅能够提供 KV 的访问,还可以通过简单的一层转换满足更复杂的协议需求。
Atlas:高性能MySQL代理
https://github.com/Qihoo360/Atlas
Atlas是由 Qihoo 360公司Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。它在MySQL官方推出的MySQL-Proxy 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 就是针对这些场景的一个解决方案。
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 技术栈。
移动开发
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 文件。目前是开源项目中唯一支持读写带有图片(表)、透视表等复杂样式文档的类库。
转自 http://www.infoq.com/cn/news/2018/03/360-open-source-projects