我们正处于云计算、大数据、移动技术以及物联网等多元化信息技术变革时代,由此产生的数据正以几何层级激增,随着互联网+时代的到来,更多互联网业务中的深度应用需求会越来越细化。这些需求对数据处理平台有很高的需求,那么,在数据存储/计算平台、数据仓库技术和数据产品设计上如何权衡?
会场座无虚席,还有专程从宝岛台湾、山东以及杭州赶过来的开发者们。
5月23日,环信第二届SM Meetup(Social and Mobile Meetup)在环信即时通讯云总部举行。本期Meetup以《互联网+时代下的数据处理技巧》为主题,邀请到陌陌基础平台组架构师杨建军、PingCap重度折腾师唐刘、京东云主机及云数据库架构高级研发工程师田琪,他们为到场的开发者分享了 “陌陌数据源访问中间件的演化进程实践、下一代分布式kv数据库、Docker镜像驱动选择与存储系统” 三个主题的实战干货,并在现场互动环节耐心解答了每一位开发者们面临的一些技术难题。
以下是本次活动的全程纪实。
【PART1】陌陌数据源访问中间件的演化进程实践
扬老师演讲全程对着PPT,这是唯一给我的一个正脸,还好手势到位。
演讲人:杨建军,陌陌基础平台组架构师,在陌陌工作期间主要负责基础平台中间件研发,业务系统架构评审以及优化工作。加入陌陌前曾在58同城、世纪佳缘等公司从事搜索、大数据平台、推荐系统架构设计研发工作。
干货要点:
一、数据存储集群发展
1.单机
2.主从
3.多主从集群现状。redis、mysql、mongodb是主要集群方式。特点是架构简单、稳定性较好、业界应用较多。多主从集群架构需要解决的问题:数据路由、实例迁移、实例的动态变更管理、扩容、高效配置管理、对运维友好。
4.分布式存储
二、陌陌数据存储介绍
三、momostore自研中间件介绍
1.自研中间件介绍:基于多主从模型设计;zookeeper 存储元数据;支持redis 、mysql等;Java 开发
2.momostore一些特性:路由算法(一致性hash、mod、region…);节点信息动态变更;支持灵活配置多写、读写分离、冷备等;高可用主从切换;Failfast支持。
3.集群信息变更:Instance 信息后台直接修改、客户端proxy自动watch 相关变更;尽量减少因路由变更带来数据不一致影响,cluster、node信息变更引入两阶段确认模式。
4.扩容:尽量在架构设计时预估好容量、一致性hash 直接添加节点、MOD、 Region算法可按倍分扩容、扩容后节点旧数据需人工脚本删除
5.mysql proxy介绍:基于config center源数据配置、支持分库分表、支持sql 解析、按特定切片字段路由、暂不支持跨库join、order by、group by、limit、in 等操作。
四、内部使用情况
1.redis proxy已用于消息业务相关集群、用户关系集群、feed相关业务等。
2.sentinel 高可用切换系统覆盖全量redis集群。
3.逐步替换线上静态数据源配置方式。
4.mysql proxy还处于测试推广阶段。
PPT下载地址:http://vdisk.weibo.com/s/sTtZFJCY4HpFk
观看完整演讲视频请点击:http://v.youku.com/v_show/id_XOTYzOTY1MzUy.html
【PART2】reborndb:下一代分布式kv数据库
唐老师穿着上午才打版印刷出来的TEE给新公司做广告也真是蛮拼的。
演讲人:唐刘,PingCap重度折腾师。唐刘同时也是典型宅男程序员一枚,爱好开源,爱好折腾。在腾讯,金山打过酱油,现在PingCAP跟大家一起捣鼓下一代分布式KV以及NewSQL。
干货要点:
一、Redis特点:
1.纯内存,性能高,速度快
2.协议简单,客户端丰富
3.string,list,hash,set,zste等数据结构
4.持久化支持,RDB,AOF
5.Replication支持
6.大量公司使用,市场选择
二、Redis存在的问题:
1.数据量太大,内存不够
2.无法区分冷热数据,内存浪费严重
3.RDB Block住整个服务
4.写操作太频繁,AOF刷盘太多,很容易就rewrite
三、Redis Cluster特性:
1.官方出品,但最近才出了一个stable版
2.业界几乎没有成功案例,没有最佳实践指导
3.系统复杂度高,运维难度高,升级困难
4.要修改客户端
四、QDB特性及缺点
1.特性:redis子集,支持大部分常用redis命令;string,list,hash,set,zste等数据结构支持;多存储引擎支持;多存储引擎支持,rocksdb,leveldb等;超越内存限制,热点数据内存,冷数据硬盘;支持psync断点续传,go多核友好,并发读支持,性能强悍。
2.存在的问题:数据量太大,硬盘撑不住了;单点,性能瓶颈。
五、集群方案
1.Smart Client方案优点:直连后端存储,性能高,延迟低;缺点:不同语言都需要定制客户端,升级较困难。
2.Proxy Based方案优点:隐藏集群信息,对外黑盒。现有客户端直接使用,更好的监控,控制,升级 。缺点:多了一层,性能损耗。
3.P2P方案优点:去中心化,完全分布式,node既是存储,也是proxy,现有客户端直接支持。缺点:实现难度大。
4.Twemproxy方案优点:最早最有名的PROXY解决方案;缺点:Twitter内部已经弃用静态拓扑,不能支持动态扩容,缩容更改配置需全服重启。
5.Codis优点:全兼容twemproxy,充分利用多核,性能高,proxy无状态,运维工具齐全,不停机resharding,动态扩容,缩容。缺点:强依赖zookeeper,需要修改版Redis支持。
6.Migration:使用zookeeper进行协调,2PC保证迀移安全。过程是:slot_7标记为pre-migrate状态,等待所有proxy确认。slot_7标记为migrating状态,不断的迁移slot_7里面的key,直到完成。将slot_7标记为online。
7.RebornDB与RebornDBTodo。
PPT下载地址:http://vdisk.weibo.com/s/sTtZFJCY4Hq3o
观看完整演讲视频请点击:http://v.youku.com/v_show/id_XOTY0MTUwNjA4.html
【PART3】 Docker镜像驱动选择与存储系统
我端着相机从始至终没捕捉到田老师的眼睛,你有看到么?
演讲人:田琪,京东云主机及云数据库架构高级研发工程师。10年互联网行业从业经验,分别就职于搜狐,新浪,腾讯,京东等公司,目前负责京东云主机及云数据库的架构及研发工作,之前曾在搜狐技术产品中心负责搜狐webim,实时游戏平台等技术产品的研发与架构工作,之后加入新浪微博负责新浪微博的底层平台研发工作,主导了 redis在新浪微博的大规模定制开发与应用。之后加入腾讯负责腾讯大规模分布式存储项目的研发与架构工作,为腾讯众多业务产品线提供高可靠的存储服务。
干货要点:
一、Agenda
二、docker镜像
1.需要系统提供有效的CoW机制
2.文件系统层
3.叠合文件系统
4.块设备层
三、Device Mapper框架
四、DM thin provision
五、overlayfs
1.内核dentry的游戏
2.大文件的copy up会比较慢
六、JD Image Store
七、Namespace概念、使用接口及内核实现
1.Namespace使用接口
创建新进程及namespace;加入当前进程到新建namespace中;改变当前进程的namespace
2.Namespace内核实现:初始状态;after normal fork;clone a new ns;aftersetns on task
八、CGroups资源管理及框架实现
1.提供进程的资源管理功能
2.资源管理主要涉及内存,CPU,IO等
3.不依赖于Namespace,可单独使用
4.管理功能通过VFS接口暴露
5.CGroups提供通用框架,各子系统负责实现
九、cgroup及ns的问题
1.ns的隔离性不完整,需要更多种类的命名空间。
2.cgroup IO控制方面问题较多:带宽控制只能CFQ调度器,不适合高速硬件;通用限流策略缺少弹性;buffer io无法准确控制。
PPT下载地址:http://vdisk.weibo.com/s/sTtZFJCY4Hq30
观看完整演讲视频请点击:http://v.youku.com/v_show/id_XOTY0NTIzMDk2.html
O2O编程马拉松招募,苹果大奖等你拿!
O2O创客编程马拉松是由中关村移动互联网产业联盟开发者云服务联合专业委员会发起,由环信、本地科技、大鱼咖啡、缘创派、十分咖啡等联盟成员和合作伙伴联办的面向广大移动互联网开发者的O2O应用开发大赛活动。本次大赛将在 北京、成都、杭州、深圳等地现场举办,是移动互联网O2O创业团队、开发者不容错过的盛事。
点击报名:http://www.mikecrm.com/f.php?t=WjVxhG
现场花絮:
签到环节,业界鼎鼎大名的程开源老师已加盟环信表示将带着SM Meetup冲出中关村走向硅谷或者涩谷。
不远万里从宝岛台湾赶过来的创业者,目前已经开发了一个O2O项目,面颊两个小酒窝一看就有做O2O的潜质。
破冰环节,一位95后开发者自述开发之路。世界是我们的,最终还是他们的。
程序媛妹子永远是环信SM Meetup的一大亮点,要是还有蜡烛啥的就完美了。
程序猿们讨论妹子的时候一般都是这幅表情,不忍直视。
童鞋们,第二界SM Meetup已经圆满结束,别不舍得走哦,第三期再见!