个推TechDay活动回顾-嘉宾演讲浓缩版合集

个推TechDay活动回顾-嘉宾演讲浓缩版合集

关键词:

微服务 架构

发布日期:2017年09月11日

在八月,个推TechDay活动分别于北京和广州圆满举行,为开发者们带来了技术盛宴。本文根据现场嘉宾的分享内容整理而成,略有删减,如需了解更多详情,可通过扫描文末二维码查看精彩回放。


【北京站】基于容器的微服务架构实践



《web服务容器化及微服务转型实践》俞锋锋 个推平台研发部总监、首席架构师


一般说来,微服务具有开发成本低,技术选型灵活,按需扩展,可用性高的优点。俞峰峰认为,所谓微服务架构就是把因相同原因而变化的东西聚合在一起,而把因不用原因变化的东西分离开来。


在微服务架构方面有2个重要的点值得注意:


(1)客户端如何和每一个服务进行通信?有如下两种常见方法:一种是客户端和每一个服务进行各自的通信,协议则单独去协商,但它面临服务端升级的困难。另一种则是服务的消费方通过API网关进行调用,协议的细节主要是在API网关和服务提供方之间去做耦合。这种形式能够封装服务接口的细节,减少通信次数,统一通信协议后可以减少客户端代码耦合。


(2)服务怎么样注册?(即服务发现的机制)

一种客户端是需要维护对应每一个服务的情况和细节信息;这样操作简单但开发成本很高。另一种是客户端只去调用API网关,API知道对应服务是在哪些机器上提供。这样做简单,客户端透明,能够统一鉴权流控。


俞锋锋表示,在技术选型时,主要选择了docker+consul+calico+etcd。Consul内建了service注册发现机制,支持多IDC,还自带UI降低了上手成本。我们使用consul实现服务注册和发现,结合consul-template实现了注册中心。在遇到不同物理机上的容器IP冲突无法相互通信时,我们选择calico+etcd为每一个容器的分配独立的IP,从而使得跨物理机的容器间通信成为可能。


《AI GPU 加速与Caicloud TaaS云平台》赵慧智 才云科技技术总监


在云越来越成熟的阶段,AI伴随数据的累积也取得了飞快进展。AI的运用已渗透到具体业务中进行精确的分析和预测。

       

赵慧智以图像识别技术举例说明AI在职业分工、交通和医疗等方面的运用,并用“手写体”智能识别技术来说明卷积神经网络下机器学习的流程。

       

这类流程往往通过并行运算来实现。一般说来,CPU一般有32core,而GPU有几千个Core,在注重数量,而非质量的前提下,并行运算的优势十分明显。他以nvidia为例,说明GPU的运算步骤将分为复制存储器至GPU,CPU指令驱动GPU,GPU每一核心并行处理,最终将结果传回主存。


赵慧智还介绍了深度学习的开源分布式数据流图开发框架——TensorFlow。作为为Google 大脑第二代深度学习系统,它主要支持模型的训练和服务。同时支持多平台,多语言;包括可以在 Windows/Linux/Mac 上运行,并且支持 C/C++/Python/Golang/java。同时推荐了TensorFlow as a Service (TaaS) 平台,专注于将Google级 AI 模型生成及服务工具打造成一个成熟的商业级人工智能平台,为个人和企业解决计算资源短缺、环境配置复杂、资源管理缺失等问题。


《Kubernetes 的微服务支持特性详解》王渊命 青云QingCloud容器平台负责人


微服务化给运维和研发都带来了挑战,而Kubernetes的一些特性正好可以帮助开发者应对这些挑战。王渊命首先先从部署单元,依赖方式和架构模式三个方面来解读微服务带来的变化,并引入了“为微服务而生”的Kubernetes架构。

       

Kubernetes架构,可以从“一个状态的存储”和“多个控制器”的角度去理解,其架构Pod-Sidecar模式能够提供一种非侵入的方式来扩展服务,能够方便更细粒度的拆解服务,降低运维管理的成本。

       

服务发现和微服务紧密相关。在过去没有运维服务时,可能会出现配置不一,不好维护的问题,也面临安全风险。如今服务发现主要可以通过SeverIce,ClusterIP和DNS去做。istio是微服务的集大成者,其原因主要是其智能路由以及均衡负载,支持流量的加密和服务间认证。在全范围(Fleet-Wide)策略执行,能够提供深度监控和报告。

       

在最后的总结中,王渊命认为针对架构问题,一层解决不了的时候关键点在于去再次抽象一层,而Kubernetes提供了一种便于在服务之间增加控制层的能力。


【广州站】架构师实践日



《高并发推送实践之路》陈建斌 个推技术架构师


对于服务端,高速是要求推送的消息可以快速响应;对于APP来说,高速是及时到达。个推技术架构师陈建斌从四个阶段讲述了如何架构高并发的系统。


一、接收推送:客户对推送的要求是“高吞吐,低延迟”。对此一方面可以进行业务的优化,即关键路径的快速执行和不同接口之间互不影响。另一方面可以进行技术上的优化,包括选用HTTP长连接可以减少网络的连接损耗;针对耗时的非关键操作采用异步线程池;高速存储则可以减少耗时。


二、筛选用户:个推选择elasticsearch分布式搜索引擎,高性能磁盘,大内存支持,分批返回并处理,以及只存储搜索条件相关的数据。


三、查询状态:使用高速分布式内存缓存Redis,在业务上读写分离、支持批量查询的同时,还要为确保操作最小化而做极致优化 ,以及保证高可用性。


四、组装分发:高效负载均衡机制;采用及时可靠触达的TCP自定义协议,用“智能心跳”动态调节心跳的频率。


陈建斌最后强调,在特殊情况下断网时,应对系统进行过载保护。


《荔枝FM分布式服务框架》黄全,荔枝FM基础架构组资深工程师


荔枝FM资深工程师黄全以其公司产品分框架为切入,详解了分布式框架的相关知识。


RPC框架是一种进程间通讯方式(机制),是分布式服务框架重要组成部分,并拥有屏蔽底层传输方式、序列化方式、通信细节,让远程服务调用像调用本地方法一样简单、透明等作用。


分布式服务框架可视为RPC框架与服务治理模块的结合,可提供服务自动发现、智能路由、高容错、多种通讯协议、多种序列化方式,以及动态配置等多种功能。在模块设计上,黄全从通信模块、路由模块、注册中心、监控中心、以及RPC日志的设计方面作出了细致的讲解。


《MySQL高可用&分布分片方案》张宗耀 游族MOB开发者平台资深架构师


在现实操作中存在多个如系统软硬件故障的“灾难性”场景,因而采用高可用架构是十分必要的。


高可用的原理可以概括为数据多处存储及使用。在半异步复制方面,相比于MySQL5.6,5.7版本拥有更安全的after_sync,更快的性能,以及Binlog互斥锁的改进。游族MOB资深架构师张宗耀列举了架构中常见的MySQL高可用方案和常见开源产品,并针对数据的强一致性介绍了Galera、PhxSQL、MySQL group replication的原理。


视频回放

扫码下方二维码,登陆“IT大咖说”即可查看活动现场录播视频~

北京站


广州站


上一篇:个推独家解读:人工智能会抢互联网人的饭碗吗? 下一篇:浅析开源数据库MySQL架构

更多资讯