软件和硬件的边界日趋模糊,以往的硬件、软件和具体使用场景割裂的状态已不复存在。软硬结合作为移动互联网迅猛发展、传统行业升级换代的新鲜标志,两者开始有意识地进行技术融合,共建一个完整的生态系统。

6 月 27 日,又拍云 Open Talk 第九期《软硬之间:架构设计与技术融合》重返杭城,邀请到 蘑菇街中间件团队负责人刘传双、WeCoach 软件开发负责人王圣捷、BiCi 技术负责人胡伟,共同分享架构设计相关的前沿技术。软件开发会给智能硬件带来更多的灵感,而硬件设计更像是“软+硬+云”的极致混合,相互学习又共同进步,一起致力于提升整体的用户体验。

image.png

又拍云 CDN 2.0:SSL + CDN + WAF

image.png

张聪,又拍云首席架构师。Monkey Zhang (timebug),又拍云系统开发工程师,C / Lua 程序员,目前主要负责又拍云 CDN 相关的设计和开发工作,在 NGINX C 模块和 OpenResty / ngx_lua 模块的开发和维护方面有一些经验积累。

在沙龙开场中,他介绍了近日重磅推出的又拍云 CDN 2.0。在之前 CDN 1.0 的基础上,做了三大标志性的升级,一是自定义 SSL 服务,二是动态网站的加速,三是 Web 应用防火墙。

又拍云 CDN 基于 Nginx 和 ngx_lua 做了很多定制和开发工作。大家知道通过 Nginx 配置文件可以很方便地配置虚拟 Sever 使某个站点支持 HTTPS 访问。而又拍云 CDN 需要服务海量的用户网站,则必须做到自动调度,于是选择了在代码层面做证书调度。因此又拍云 CDN 推出了自定义 SSL 服务,利用基于 OpenSSL 协议的扩展协议,即 SNI,解决了同一个 IP 端口只能对应一张证书的问题,以做到 443 端口的证书调度。用户只需要简单在又拍云后端上传证书,启用相关功能,就可以完成自定义域名的全网 HTTPS 访问,实时生效。

image.png

在又拍云 CDN 的架构中,前两层分别是边缘结点和中转结点,其中中转节点负责回客户源站相关的逻辑处理。又拍云 CDN 支持对多个用户源站地址进行管理,并提供一定的容灾机制,与 Nginx 提供的 max_fails 和 fail_timeout 特性一致,回源支持还多种网络线路,同个网络线路多个回源地址也可以设置主备关系及各自轮询权重。又拍云 CDN 针对动态站点支持自动动静分离,以及支持根据不同 URL 规则配置特殊的缓存策略。其他,又拍云 CDN 还支持 JavaScript、CSS、HTML 代码压缩,开启该功能后,所有经过 CDN 的 JavaScript、CSS、HTML 文件会自动进行最小化压缩; 另外,也支持 JavaScript、CSS 文件的 Combo 请求,将两个文件的获取合并成一个请求,减少前端网络开销。

而 Web 应用防火墙,则可以帮助动态网站抵挡一些常见的 SQL 注入、跨站攻击和其他常见攻击。将扫描器等阻隔在 CDN 层,用户源站就可以远离此类请求对源站资源的消耗。

蘑菇街异构系统的服务化实践

image.png

刘传双,蘑菇街中间件团队负责人。花名北斗,目前在蘑菇街负责中间件团队的研发工作,之前在阿里巴巴、盛大网络工作过, 在电商业务系统、第三方支付、广告、搜索、中间件等方面有较多实践。

蘑菇街使用了不同的技术构建了一套大型、异构的分布式系统,在进行业务服务化的过程中有很多个性化的需求,技术团队基于这些需求打造了自身的服务框架 Tesla,较好的支撑了每日数十亿次的服务调用,在沙龙上与大家一起分享探讨了实施过程中的经验。

image.png

北斗首先介绍了蘑菇街在用户请求方面的主要结构,第一层是负载均衡,中间有一个代理层,以七台服务器做请求转发。真正把请求打到下面的 是多集群的 Web 层,集群根据具体业务分类,例如商品、交易、资金等。再之后是更为厚重的中间层和独立系统,中间层将外部对于后端的数据缓存,去将搜索等做代理。其中,独立系统包含一些具体的广告、推送、竞价、推荐、计价等等。中间件将它切分成商品、交易、资金这样不同的中间层,来做一些隔离。

然后北斗介绍了服务化框架,Tesla 的起源,框架结构。再是介绍这个框架里面部分关键点的机制与实现,包括测试数据及线上使用情况。最后介绍了蘑菇街曾经遇到的问题,以及下一步的动向。

虚拟私人教练软件架构

image.png

王圣捷,WeCoach 软件开发负责人。WeCoach 合伙人,负责软件开发。浙江大学通信工程毕业,曾参与华为 c 语言编译器开发和网易数据分析。

WeCoach 着重于运动方面,支持健身、跑步、骑行和心率检测算法。区别于传统的手环只有三轴加速度计,WeCoach Pro 拥有三轴加速度计、三轴陀螺仪、三轴磁罗盘。芯片可以检测到角加速度的旋转,围绕一个中心旋转,可作变速运动,中间的加速度始终变换,最后实时计算出结果,即用户对于左右的变化。磁罗盘,一般是固定在南北方向,在没有干扰的情况下,可将芯片理解成一个平面。比如说水平传过来的磁感线,就可以检测到它的角度。当有偏转发生,水平磁感线就与传感器垂直,不断地偏航,选取跟磁感线之间差异角度,就可以结算出它的空间姿态。

image.png

正因为有 WeCoach 九轴传感器,所以可以在三维空间内,做实时距离分析。比如说两点之间,经过什么路径,直线走还是偏移走,都能够实时捕捉到它的计划。因为传感器的精度极其灵敏,它的采样频率也是非常高,选择这种传感器,一般采样频率是 1000 赫兹,相当于一秒钟采集一千次数据。

基本概念硬件分享

image.png

胡伟,BiCi 技术负责人。Andy.Hu,写过 Java,调过 C++,八年老程序员。上过雷公,骑过渤海湾,玩车七年。基本概念车间主任,致力打造全新体验的基本概念自行车。

他认为基本概念,一个对的产品、好的产品,应该符合这个时代特质和人们的期待,应该融合这个时代的材料、制造工艺和科学技术发展。想制造基本概念这样的车,是展现对车的一些认识以及改善用户骑行体验。

image.png

BiCi 基于自己的一套骑行数据做的导航算法,帮助规划路径。并将车把高度集成,做示宽和导航的作用,灯光也可以根据速度来变化。还使用智能芯片,设置了自发电系统。数据方面,踏频、地图轨迹、爬坡,也会兼容额外的心率计算进去,通过使用者的心率以及踏频速度,计算出输出功率,以及训练效果。精准的骑行数据通过踏频和轮圈数来记录的,可以在 Web 端、安卓端,在 Windows 客户端查看。

BiCi 还做了一个行者的 APP,拥有九千万用户,是国内比较大的骑行平台。在软件跟硬件的结合上,骑行产生的数据,对 BiCi 来说是很有价值,也是需要挖掘的东西。很多骑行产生的路线,地图上都没有。而其中产生的大量数据,大部分是空间数据,涉及到空间数据模型的匹配数据分析以及空间数据的处理,比传统属性的数据更为复杂,在使用现在的空间数据,包括空间数据的检索上,需要 PostgreSQL。

现场回顾:

image.png