Hermes Container Hack Day参赛回顾
2016-02-26 00:00
513 查看
摘要: 通过首都在线提供的GPN网络,让用户无论相隔多远,都能以一种稳定的速度享受彼此的连接,用户在我们实现的Hermes平台上,可以文字聊天,视频聊天,语音通话,共同显示分享一块可涂写的白板,协同工作,聆听远程讲师的讲解,无论用户在美国,还是欧洲,都可以通过首都在线提供的GPN网络享受稳定的视频语音聊天,不会出现视频显示音频连接不稳定的情况。
一路探索,只为跨界
谈起我们组建Hermes来参加Container Hack Day还是比较巧的,当时我们三个正在开发一款图片社交APP的后端,当时根据需求需要使用地理位置信息,但是发现国内比较知名的地图数据服务提供商,国内POI数据做的确实不错,但是国外基本都是一片白,当然国外的POI数据对于当前需求和市场不是很重要,但是这确实是我们发现的一个问题。比如说国内用户如果即将出国旅行,想要查看国外的街景数据,基本上国内的地图服务对国外位置是没有数据服务的,并且由于一些众所周知的原因,我们无法顺畅使用Google Map的Places API,我们不能保证每个开发者和用户都有能力去访问Google service,所以我们当初来参赛的目标就是利用首都在线的GPN来为国内用户提供无障碍的全球POI数据服务,当然这个要基于Google Service。
当时的想法比较简单,也很好实现,主服务放在美国的数据中心,获取Google Map Places服务,国内用户通过国内数据中心节点代理访问,这样我们做的东西基本就是一个代理,只是转接了一下用户对Google Map Service的请求而已,这当然不能拿去参赛。这样我们就寻求能否做一套SDK出来,提供给移动端,这样用户只需要关注上层的使用就可以,但是在开发过程中我们发现,Google Service的一套东西是完全闭源的,其SDK想要Hack非常困难,我们的目标是在其基础上进行修改,自己写一套一方面时间来不及,另一方面这不是三个人能够做的来的。如果这个方向继续做下去,Android只能进行root,IOS9以前需要越狱,以此来进行移动端的请求代理转发,这样做下去就会偏重于移动端,而比赛的重点我们觉得还是在于后端服务的创意和基于GPN跨界的想法,这样我们就不得不转型了。
做有价值的项目,解放用户时间
那么现在Hermes又回到起点了,我们期间花了很久来思考接下来该向什么方向努力,但是我们的中心点始终是围绕着跨界,和要做有价值有意义的项目而存在的。如果我们做的东西对用户没有吸引力,不能带来什么价值,这就是一个没用的东西。所以我们就把目光移动到了SOHO移动办公一族上来。
比如有一次,我开始用高德的志玲姐姐导航,躲避拥堵模式,然后手机没电了,然后由于不是走的大路,然后就迷路了,然后转悠了半天,哪哪都堵车,然后路上就花了三个小时……当时宝宝心里很苦,什么滴滴出行也好,真正从根本上解决出行问题,就是不出行,所以如果实现soho,能省掉多少路上浪费的时间啊!那么跨地域协作,soho办公一定会成为新的工作方式。
在这一想法的基础上,我们希望在首都在线的平台上搭建一套基于web的异地在线协同工作,线上视频教育系统,通过首都在线提供的GPN网络,让用户无论相隔多远,都能以一种稳定的速度享受彼此的连接,用户在我们实现的Hermes平台上,可以文字聊天,视频聊天,语音通话,共同显示分享一块可涂写的白板,协同工作,聆听远程讲师的讲解,无论用户在美国,还是欧洲,都可以通过首都在线提供的GPN网络享受稳定的视频语音聊天,不会出现视频显示音频连接不稳定的情况。
首都在线GPN网络图
那么想法已经有了,接下来就是如何实现了,谈技术,先看图:
上图是我们整体服务的一个架构,主服务都是搭建在国内节点上的,如果涉及到海外用户与国内用户的交互,就会通过搭建在国外节点上的代理,走GPN专线来完成通信传输。本项目的实现,借鉴和使用了很多现有的开源软件,在其基础上,我们团队使用docker,做了适应于GPN网络环境的竞赛作品,在多媒体视频流服务上,我们选用了Red5做为Flash流媒体服务器,为了实现用户相互之间的文字聊天,我们选用了redis的PubSub做为支持,为了实现用户的音频通话,我们团队选择FreeSWITCH做为基础支持,在这三大软件的基础上,并且借鉴BigBlueButton实现方式,展开了我们的在线协同工作平台。
Tech Stack
讲技术栈,还是先上图:
一路探索,只为跨界
谈起我们组建Hermes来参加Container Hack Day还是比较巧的,当时我们三个正在开发一款图片社交APP的后端,当时根据需求需要使用地理位置信息,但是发现国内比较知名的地图数据服务提供商,国内POI数据做的确实不错,但是国外基本都是一片白,当然国外的POI数据对于当前需求和市场不是很重要,但是这确实是我们发现的一个问题。比如说国内用户如果即将出国旅行,想要查看国外的街景数据,基本上国内的地图服务对国外位置是没有数据服务的,并且由于一些众所周知的原因,我们无法顺畅使用Google Map的Places API,我们不能保证每个开发者和用户都有能力去访问Google service,所以我们当初来参赛的目标就是利用首都在线的GPN来为国内用户提供无障碍的全球POI数据服务,当然这个要基于Google Service。
当时的想法比较简单,也很好实现,主服务放在美国的数据中心,获取Google Map Places服务,国内用户通过国内数据中心节点代理访问,这样我们做的东西基本就是一个代理,只是转接了一下用户对Google Map Service的请求而已,这当然不能拿去参赛。这样我们就寻求能否做一套SDK出来,提供给移动端,这样用户只需要关注上层的使用就可以,但是在开发过程中我们发现,Google Service的一套东西是完全闭源的,其SDK想要Hack非常困难,我们的目标是在其基础上进行修改,自己写一套一方面时间来不及,另一方面这不是三个人能够做的来的。如果这个方向继续做下去,Android只能进行root,IOS9以前需要越狱,以此来进行移动端的请求代理转发,这样做下去就会偏重于移动端,而比赛的重点我们觉得还是在于后端服务的创意和基于GPN跨界的想法,这样我们就不得不转型了。
做有价值的项目,解放用户时间
那么现在Hermes又回到起点了,我们期间花了很久来思考接下来该向什么方向努力,但是我们的中心点始终是围绕着跨界,和要做有价值有意义的项目而存在的。如果我们做的东西对用户没有吸引力,不能带来什么价值,这就是一个没用的东西。所以我们就把目光移动到了SOHO移动办公一族上来。
比如有一次,我开始用高德的志玲姐姐导航,躲避拥堵模式,然后手机没电了,然后由于不是走的大路,然后就迷路了,然后转悠了半天,哪哪都堵车,然后路上就花了三个小时……当时宝宝心里很苦,什么滴滴出行也好,真正从根本上解决出行问题,就是不出行,所以如果实现soho,能省掉多少路上浪费的时间啊!那么跨地域协作,soho办公一定会成为新的工作方式。
在这一想法的基础上,我们希望在首都在线的平台上搭建一套基于web的异地在线协同工作,线上视频教育系统,通过首都在线提供的GPN网络,让用户无论相隔多远,都能以一种稳定的速度享受彼此的连接,用户在我们实现的Hermes平台上,可以文字聊天,视频聊天,语音通话,共同显示分享一块可涂写的白板,协同工作,聆听远程讲师的讲解,无论用户在美国,还是欧洲,都可以通过首都在线提供的GPN网络享受稳定的视频语音聊天,不会出现视频显示音频连接不稳定的情况。
首都在线GPN网络图
那么想法已经有了,接下来就是如何实现了,谈技术,先看图:
上图是我们整体服务的一个架构,主服务都是搭建在国内节点上的,如果涉及到海外用户与国内用户的交互,就会通过搭建在国外节点上的代理,走GPN专线来完成通信传输。本项目的实现,借鉴和使用了很多现有的开源软件,在其基础上,我们团队使用docker,做了适应于GPN网络环境的竞赛作品,在多媒体视频流服务上,我们选用了Red5做为Flash流媒体服务器,为了实现用户相互之间的文字聊天,我们选用了redis的PubSub做为支持,为了实现用户的音频通话,我们团队选择FreeSWITCH做为基础支持,在这三大软件的基础上,并且借鉴BigBlueButton实现方式,展开了我们的在线协同工作平台。
Tech Stack
讲技术栈,还是先上图:
相关文章推荐
- 很不错的 CSS Hack 又学了一招
- Chrome的hack写法以及CSS的支持程度图示
- 区分IE6,IE7,firefox的CSS hack
- 通过CSS Hack 区分 FF/IE7/IE6/IE5.5/IE5 代码推荐
- CSS Hack收集汇总
- 浏览器兼容解决FF/IE6/IE7背景专用CSS HACK
- CSS Hack 汇总快查
- CSS hack实现 CSS完美兼容IE6/IE7/FF的通用方法
- javascript:google 向上向下滚动特效,兼容IE6,7,8,FF
- 几个有趣的Javascript Hack
- IE6 hack for js 集锦
- HTML中的Hack手段之条件注释
- table-layout:fixed在Safari下的一个BUG
- Kubernetes网络分析-Container间通信
- 6大Container OS介绍
- How to hack windows 8 using kali linux
- scottlowe-20160216谈论容器、虚拟化和Interop
- I feel happy every day for this
- 遭遇一次MySQL猜解注入攻击
- 常见的浏览器Hack技巧总结