----------------------------------------------------------------------------------------------------------------
1.MySQL中间层Atlas
Atlas是由Qihoo360,Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。它在MySQL官方推出的MySQL-Proxy0.8.2版本的基础上,修改了大量bug,添加了很多功能特性。目前该项目在360公司内部得到了广泛应用,很多MySQL业务已经接入了Atlas平台,每天承载的读写请求数达几十亿条。
主要功能:*读写分离*从库负载均衡*IP过滤*SQL语句黑白名单*自动分表
2.360黑科技=》DroidPlugin
DroidPlugin是360手机助手在Android系统上实现了一种新的插件机制:它可以在无需安装、修改的情况下运行APK文件,此机制对改进大型APP的架构,实现多团队协作开发具有一定的好处。
3.高性能分布式存储服务HustStore
huststore是一个高性能的分布式存储服务,不但提供了10wQPS级别的kv存储的功能,还提供了hash、set等一系列数据结构的支持,并且支持二进制的kv存储,可以完全取代Redis的功能。此外,huststore还结合特有的HA模块实现了分布式消息队列的功能,包括消息的流式推送,以及消息的发布-订阅等功能,可以完全取代RabbitMQ的功能。
4.分布式配置管理工具QConf
QConf是奇虎360内部分布式配置管理工具。用来替代传统的配置文件,使得配置信息和程序代码分离,同时配置变化能够实时同步到客户端,而且保证用户高效读取配置,这使的工程师从琐碎的配置修改、代码提交、配置上线流程中解放出来,极大地简化了配置管理工作。
5.开源类Redis存储系统Pika
Pika是360DBA和基础架构组联合开发的类Redis存储系统,完全支持Redis协议,用户不需要修改任何代码,就可以将服务迁移至Pika。有维护Redis经验的DBA维护Pika不需要学习成本。
特点
6.对象缓存服务器kmemcache
分布式linux内核内存对象缓存服务器,实现基于memcachedv1.4.15,基本兼容memcached的所有操作。经初步测试,内存数据操作比memcached快1倍,网络并发量比memcached的也大许多,目前处于alpha版本。
优点:由于在内核的socket层实现,所有处理网络事件性能比epoll机制快,另外无需内存由用户空间到内核空间的拷贝。
缺点:不建议在32bits下使用。
当Nginx作为文件下载服务的反向代理,用户请求一个非常大的文件的时候,它会一直占满反向代理服务器与后端主机之间的带宽。因为nginx一次获取整个文件,缓冲获取到的文件,导致客户端不能马上读取到。带宽使用和iowait会很高。
8.同步到异步的类库Mario
引擎类型:
其他系列请去360github库观看
1.UEditor编辑器
UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点。
主要特点:
轻量级:代码精简,加载迅速。
定制化:全新的分层理念,满足多元化的需求。采用三层架构:1.核心层:为命令层提供底层API,如range/selection/domUtils类。2.命令插件层:基于核心层开发command命令,命令之间相互独立。3.界面层:为命令层提供用户使用界面。满足不同层次用户的需求。
2.ECharts图表库
ECharts开源来自百度商业前端数据可视化团队,基于html5Canvas,是一个纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。创新的拖拽重计算、数据视图、值域漫游等特性大大增强了用户体验,赋予了用户对数据进行挖掘、整合的能力。提供商业产品常用图表,底层基于ZRender(一个全新的轻量级canvas类库),创建了坐标系,图例,提示,工具箱等基础组件,并在此上构建出折线图(区域图)、柱状图(条状图)、散点图(气泡图)、饼图(环形图)、K线图、地图、力导向布局图以及和弦图,同时支持任意维度的堆积和多图表混合展现。
ECharts-X是ECharts团队推出的全新3D可视化库,它是基于ECharts的扩展,底层深度整合了WebGL库QTEK和Canvas2D库ZRender。
3.WebUploader上传控件
WebUploader是由BaiduWebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件。在现代的浏览器里面能充分发挥HTML5的优势,同时又不摒弃主流IE浏览器,延用原来的FLASH运行时,兼容IE6+,Andorid4+,IOS6+。两套运行时,同样的调用方式,可供用户任意选用。采用大文件分片并发上传,极大的提高了文件上传效率。
4.百度脑图KityMinder
5.人工智能系统WARP-CTC
WARP-CTC基于CTC方法,当前可用的一些CTC实现通常要求大量的内存或者是慢十到几百倍。
百度研究所首席科学家AndrewNg称他的研究主要是人工神经网络如何在图形处理单元(GPUs)上运行,让WARP-CTC实现对GPUs和x86CPUs的支持。
connectionisttemporalclassification(CTC)方法可以追溯到2006年,在SwissAI研究所IDSIA论文上有记录。百度研究所开发的WARP-CTC就基于CTC方案,但是改进了其自身的语音识别功能
其他系列请去baidugithub库观看
2.手机前端开发调试利器vConsole
我们在开发手机版网页的时候,常常会出现下面的情景:
(1)开发时,在自己电脑上运行得好好的,在手机上打开就挂了,但是手机上又看不到errorlog;
(2)上线后,某用户表示页面失灵,但我们自己又重现不出来,看不到用户侧的出错信息。
如果说(1)还可以通过电脑连接手机以查看log来解决,那(2)在没有完善的前端上报体系时就非常被动了。
作为开发者,我们的诉求很简单:有没有快捷的方法在手机前端页面看到log日志?vConsole就这样出现了!
3.专业级Web图像处理引擎AlloyImage
AlloyImage是一个使用Javascript语言开发的,基于Web的在线图像处理引擎,除了核心底层图像处理引擎,还同时集成了一些方便快捷的图像处理API,您可以将它简单快捷的引用到您的Web网页中,做出与PhotoShop一样的优美效果。甚至,你可以用AlloyImage来开发一个Web在线图像处理软件。
4.GoPng图片合并并生成CSS
CssSprite,有时也称为雪碧图、精灵图,是每一个前端开都会遇到的问题,也是常见的小图片加载优化手段。
5.可视化Web构建工具AlloyDesigner
AlloyDesigner是一款致力于提高前端生产效率的浏览器内运行工具,AlloyDesigner+ChromeF12(EspeciallywithWorkSpace)打造前端新的开发和测试模式
6.Koala跨平台图形编译工具
Koala是一款预处理器语言图形编译工具,支持Less、Sass、CoffeeScript、Compassframework的即时编译。无需手动输入命令去编译,后台监听文件是否有改变,如有修改会自动进行编译。能够大大提升Web开发中的工作效率。
Koala支持跨平台运行,完美兼容Windows、Linux与Mac。Linux系统下需安装好ruby运行环境,e.g.$sudoapt-getinstallruby.
7.轻量级CSS3动画库JX.Animate
JX.Animate是一个开源的轻量级的CSS3动画库。动画可以使用标准的CSS3关键帧动画(KeyFrame)制作,也可以使用JavaScript制作,而且还可以支持在JavaScript中动态生成动画关键帧。
8.Fanvasswf转为html5canvas
Fanvas是一个把swf转为html5canvas动画的系统,由两部分组成:Actionscript实现的解析器、js运行库。Flash做动画是最成熟最高效的方式,但由于终端基本不支持Flash播放,这给终端的动画制作带来了不少麻烦。Fanvas是Flash和Canvas的完美结合,可以把swf(包括矢量和位图)完美地转化为canvas动画.
9.随身调测平台GT
GT(随身调)是APP的随身调测平台,它是直接运行在手机上的“集成调测环境”(IDTE,IntegratedDebugEnvironment)。利用GT,仅凭一部手机,无需连接电脑,您即可对APP进行快速的性能测试(CPU、内存、流量、电量、帧率/流畅度等等)、开发日志的查看、Crash日志查看、网络数据包的抓取、APP内部参数的调试、真机代码耗时统计等。如果您觉得GT提供的功能还不够满足您的需要,您还可以利用GT提供的基础API自行开发有特殊功能的GT插件,帮助您解决更加复杂的APP调试问题。
10.FrozenUI移动端UI框架
FrozenUI是一个开源的简单易用,轻量快捷的移动端UI框架。基于手Q样式规范,选取最常用的组件,做成手Q公用离线包减少请求,升级方式友好,文档完善,目前全面应用在腾讯手Q增值业务中。
11.LivePoolWeb开发调试工具
LivePool是一个基于NodeJS,类似Fiddler支持抓包和本地替换的Web开发调试工具,是TencentAlloyTeam在开发实践过程总结出的一套的便捷的WorkFlow以及调试方案。
12.KNVProtoEngine高性能树型协议处理引擎
KNV是一个模式自由的高性能树型协议处理引擎,是对Key-Value的一个通用结构化扩展。
正如NoSQL对SQL的彻底变革一样,KNV是对Key-Value的彻底变革!大家都很熟悉Key-Value系统,但KV操作极不方便:--你不得不自己做乐观锁(读返回seq->修改->带seq写->seq变化则重头开始);--你不得不拉取一堆数据,然后再提取你想要的部分;--为了修改一个bit,你不得不把一串数据拉取修改后再一起提交更新不过现在有KNV,一切都解决了。KNV时代来了,你还在犹豫吗?
KNV是专门针对以ProtocolBuffers(或类似树型结构)存储的存储系统开发的,有3个应用场景:
13.Behaviac游戏AI的开发框架组件
Behaviac是游戏AI的开发框架组件,也是游戏原型的快速设计工具。支持行为树BT,状态机FSM,HTN等多种范式,方便的编辑和调试。支持全平台,适用于客户端和服务器,助力游戏快速迭代开发。编辑器可以运行在PC上,操作方便直观可靠,支持实时和离线调试;编辑器可以导出xml,bson等多种格式,更可以导出C++,C#源码,提供最高效率。运行时支持全平台,有C++和C#两个版本,原生支持Unity。
14.现代构建系统TyphoonBlade
Blade主要定位于linux下的大型C++项目,密切配合研发流程,比如单元测试,持续集成,覆盖率统计等。但像unix下的文本过滤程序一样,保持相对的独立性,可以单独运行。目前重点支持i386/x86_64Linux,未来可以考虑支持其他的类Unix系统。
彻底避免以下问题:
15.RapidJSONC++的JSON开发包
Rapidjson是一个C++的快速JSON解析器和生成器,使用SAX/DOM风格的API设计。
PhxSQL是一个兼容MySQL、服务高可用、数据强一致的关系型数据库集群。PhxSQL以单Master多Slave方式部署,在集群内超过一半机器存活的情况下,可自身实现自动Master切换,且保证数据一致性。
1.分布式缓存服务器memcachedb
memcachedb是一个由新浪网的开发人员开放出来的开源项目,给memcached分布式缓存服务器添加了BerkeleyDB的持久化存储机制和异步主辅复制机制,让memcached具备了事务恢复能力、持久化能力和分布式复制能力,非常适合于需要超高性能读写速度,但是不需要严格事务约束,能够被持久化保存的应用场景,例如memcachedb被应用在新浪博客上面。
2.动态流量管理方案Upsync
Upsync,微博开源基于Nginx容器动态流量管理方案。Nginx以其超高的性能与稳定性,在业界获得了广泛的使用,微博的七层就大量使用了Nginx。结合Nginx的健康检查模块,以及动态reload机制,可以近乎无损的服务的升级上线与扩容。这个时候扩容的频次比较低,大多数情况下是有计划的扩容。Upsync,开发了模块nginx-upsync-module,它的功能是拉取consul的后端server的列表,并更新Nginx的路由信息。此模块不依赖于任何第三方模块。consul作为Nginx的db,利用consul的KV服务,每个Nginxwork进程独立的去拉取各个upstream的配置,并更新各自的路由。
3.高性能的内核Socket实现Fastsocket
4.轻量级RPC框架Motan
Motan是一套高性能、易于使用的分布式远程服务调用(RPC)框架。
5.TCP性能剖析工具Tcpdive
Tcpdive是TCP性能剖析工具,主要特性:
Tcpdive已经在新浪的生产环境上部署使用:
6.PHP框架Yaf
Yaf是一个C语言编写的PHP框架,Yaf的特点:
1.分布式的发布和监控系统Minos
Minos是小米公司开发的一个分布式的发布和监控系统。最初是小米开发的用来在Hadoop和ZooKeeper集群上发布和管理的工具。Minos可轻松扩展来支持其他的系统,目前已经支持包括HDFS、YARN和Impala。
2.互联网企业级监控系统OpenFalcon
Open-Falcon是小米运维部开源的一款互联网企业级监控系统解决方案.
监控系统是整个运维环节,乃至整个产品生命周期中最重要的一环,事前及时预警发现故障,事后提供翔实的数据用于追查定位问题。监控系统作为一个成熟的运维产品,业界有很多开源的实现可供选择。当公司刚刚起步,业务规模较小,运维团队也刚刚建立的初期,选择一款开源的监控系统,是一个省时省力,效率最高的方案。之后,随着业务规模的持续快速增长,监控的对象也越来越多,越来越复杂,监控系统的使用对象也从最初少数的几个SRE,扩大为更多的DEVS,SRE。这时候,监控系统的容量和用户的“使用效率”成了最为突出的问题。
监控系统业界有很多杰出的开源监控系统。我们在早期,一直在用zabbix,不过随着业务的快速发展,以及互联网公司特有的一些需求,现有的开源的监控系统在性能、扩展性、和用户的使用效率方面,已经无法支撑了。
因此,我们在过去的一年里,从互联网公司的一些需求出发,从各位SRE、SA、DEVS的使用经验和反馈出发,结合业界的一些大的互联网公司做监控,用监控的一些思考出发,设计开发了小米的监控系统:Open-Falcon。
3.物联网框架IoT.js
IoT.js旨在为物联网提供一个基于Web技术的可相互操作的服务平台。IoT.js的目标是要在资源受限的设备上良好运行,例如只有几KB的RAM。所以它支持广泛的物联。
1.分布式计算框架DPark
DPark是Spark的Python克隆,是一个Python实现的分布式计算框架,可以非常方便地实现大规模数据处理和迭代计算。DPark由豆瓣实现,目前豆瓣内部的绝大多数数据分析都使用DPark完成,正日趋完善。
2.iOS/Mac音频播放器DOUAudioStreamer
DOUAudioStreamer是iOS和Mac的基于核心音频的流媒体音频播放器。
3.CODE豆瓣代码托管系统
DoubanCODE是豆瓣开发的一个基于git版本控制系统的协作平台。
CODE——C:CommunityO:OriginalD:DeveloperE:Eldamar
目前CODE仅开放了一个框架,支持:
准备环境
1.分布式TCP压力测试工具tcpcopy
tcpcopy是一种应用请求复制(基于tcp的packets)工具,其应用领域较广,目前已经应用于国内各大互联网公司。
总体说来,tcpcopy主要有如下功能:
1)分布式压力测试工具,利用在线数据,可以测试系统能够承受的压力大小(远比ab压力测试工具真实地多),也可以提前发现一些bug2)普通上线测试,可以发现新系统是否稳定,提前发现上线过程中会出现的诸多问题,让开发者有信心上线3)对比试验,同样请求,针对不同或不同版本程序,可以做性能对比等试验4)利用多种手段,构造无限在线压力,满足中小网站压力测试要求5)实战演习(架构师必备)
2.桌面应用软件的跨平台解决方案heX
heX是网易有道搜索部门开发的一个允许你采用前端技术(HTML,CSS,JavaScript)开发桌面应用软件的跨平台解决方案,基于HTML5+node.js,类似appjs。是你开发桌面应用的一种新的选择,意在解决传统桌面应用开发中繁琐的UI和交互开发工作,使其变的简单而高效。特别适合重UI,重交互的桌面应用软件。
3.Android性能测试工具Emmagee
Emmagee是监控指定被测应用在使用过程中占用机器的CPU、内存、流量资源的性能测试小工具。
支持SDK:Android2.2以及以上版本
Emmagee功能介绍
4、测试数据写入到CSV文件中,同时存储在手机中
5、可以选择开启浮窗功能,浮窗中实时显示被测应用占用性能数据信息
6、在浮窗中可以快速启动或者关闭手机的wifi网络
4.基于udp的请求复制工具udpcopy
udpcopy用来解决udp应用的一个开源软件,与tcpcopy同属于xcopy系列,可以导入udp流量到测试系统中去,这样就可以有效地对系统进行各种测试,比如压力测试,冒烟测试等等。
简而言之,Puer是一个可以实时编辑刷新的前端服务器。特性一览:
--------------------------阿里巴巴开源的好软件太多,请自行选择所需,我列几个我们用的-------------------------
1.分布式key/value存储系统Tair
Tair除了普通Key/Value系统提供的功能,比如get、put、delete以及批量接口外,还有一些附加的实用功能,使得其有更广的适用场景,包括:
2.TFS分布式文件系统
TFS(TaobaoFileSystem)是一个高可扩展、高可用、高性能、面向互联网服务的分布式文件系统,其设计目标是支持海量的非结构化数据。
目前,国内自主研发的文件系统可谓凤毛麟角。淘宝在这一领域做了有效的探索和实践,TaobaoFileSystem(TFS)作为淘宝内部使用的分布式文件系统,针对海量小文件的随机读写访问性能做了特殊优化,承载着淘宝主站所有图片、商品描述等数据存储。
3.消息中间件RocketMQ
4.分布式计算系统JStorm
Jstorm是参考storm的实时流式计算框架,在网络IO、线程模型、资源调度、可用性及稳定性上做了持续改进,已被越来越多企业使用
5.淘宝Web服务器Tengine
Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的Web平台。
以下沿引项目主页上的特性介绍:
6.SeaJS模块加载框架
Sea.JS是一个遵循CommonJS规范的模块加载框架,可用来轻松愉悦地加载任意JavaScript模块。SeaJS支持的标准模块遵循Modules/Wrappings规范的define形式,可运行于Web浏览器以及node.JS等环境中。
7.阿里巴巴分布式数据库同步系统otter
otter基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库.一个分布式数据库同步系统。
8.TaobaoOpenAPI客户端TOP(有Net版)
TOP是TaobaoOpenAPI客户端。
9.模拟数据生成器Mock.js
Mock.js是一款模拟数据生成器,旨在帮助前端攻城师独立于后端进行开发,帮助编写单元测试。提供了以下模拟功能:
10.服务框架Dubbo
Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的RPC实现服务的输出和输入功能,可以和Spring框架无缝集成。
主要核心部件:
11.接口文档管理工具RAP
RAP通过GUI工具帮助WEB工程师更高效的管理接口文档,同时通过分析接口结构自动生成Mock数据、校验真实接口的正确性,使接口文档成为开发流程中的强依赖。有了结构化的API数据,RAP可以做的更多,而我们可以避免更多重复劳动。
其他项目:
1.去哪儿:
MySQL自动化运维工具Inception
实时应用监控平台CAT
CAT由大众点评开发的,基于Java的实时应用监控平台,包括实时应用监控,业务监控。
CAT支持的监控消息类型包括:
消息树
CAT监控系统将每次URL、Service的请求内部执行情况都封装为一个完整的消息树、消息树可能包括Transaction、Event、Heartbeat、Metric和Trace信息。
3.搜狐:
Redis云管理平台CacheCloud
CacheCloud提供一个Redis云管理平台:实现多种类型(RedisStandalone、RedisSentinel、RedisCluster)自动部署、解决Redis实例碎片化现象、提供完善统计、监控、运维功能、减少开发人员的运维成本和误操作,提高机器的利用率,提供灵活的伸缩性,提供方便的接入客户端。
基于MySQL的数据库中间件SOHU-DBProxy
SOHU-DBProxy是由搜狐数据库团队开发维护的一个基于MySQL协议的数据中间层项目。它在MySQL官方推出的MySQL-Proxy0.8.3版本的基础上,修改了大量bug,添加了很多功能特性。现在已经在sohu的多个业务线上使用
DBProxy主要功能:
1即使在同一个连接(只要不在同一个事务中)也能连接复用
2负载均衡提高读性能,支持动态扩展
4用户连接限制
5自动摘除宕机的DB
6读写分离(当前版本没有,代码和测试已经完成,没有合并到当前版本)