借力Rancher拥抱K8S!4亿用户社交软件LINE的AI转型突围战
原标题:【擁抱K8s、微服務和通用資料平臺新架構】AI轉型也得換體質,LINE資料平臺和IT架構雙雙大翻新
原文链接:
https://www.ithome.com.tw/news/134658
LINE打造了一个数据特征微服务(Feature as a Service)架构,将原始内容转换成不同特征的向量数值,并且利用了混淆工程技术,来进行去识别化处理之后,才提供给ML(机器学习)团队进行分析之用。
LINE是一款著名的即时通讯软件,风靡日本、泰国以及中国台湾,目前拥有超过4亿用户。
从2017年全力冲刺AI转型之际,LINE也展开了IT架构的大改造。一来将发展多年的私有云Verda升级,不止引进Kubernetes和Knative,来发展云原生架构的资源调度弹性,另外,LINE也展开了100PB大数据资料各集群的整合工作,并开始打造新的数据工程平台数据特征微服务化(Feature as a Service),将数据去识别化变成基础预设功能,来兼顾隐私和庞大数据量分析的需求。LINE在东京开发者大会上,也分享了这两大技术架构改造工程的细节。
强制改用云原生架构
借助Rancher让K8S运维管理自动化
LINE很早就用OpenStack构建了一朵私有云称为Verda,但随着LINE各式各样的服务快速成长,对于虚拟机的需求也越来越大,今年6月时所承载的VM数达到3万5千个之多,其中光是过去一年就增加了2万个VM的需求。
在LINE原本的开发流程中,从AP的开发、部署到运维,都可以由AP工程师完成,唯有私有云运算资源的准备,则由私有云服务自动调度。但是,LINE现有4千个专案,每个专案每次需要的运算资源规模大小不一,有些只是要执行一小段脚本程序,但还是得调用一个VM来执行,导致Verda中有6成服务器的CPU利用率低于10%,仍有9成闲置算力,相当的浪费。
后来,运维团队决定引入Kubernetes,要求AP工程师,必须采用云原生架构,将每支AP的需求都建立在AP配置文档中,而运算需求较低的脚本程序,则改用Knative来提供无服务器服务,让一个VM可以执行更多脚本程序,而不是每个脚本程序就占用一个VM。
LINE Verda平台开发团队经理Yuki Nishiwaki表示,连私有云都强制要求采用云原生架构,有两大好处,AP工程师不用再担心基础架构的管理,而运维团队也不需要与AP工程师沟通了解所需资源的细节,才能进行优化调度。
LINE采用了Rancher来进行跨集群的运维自动化管理,包括部署、更新和监控都可以自动化。目前只需要5个人就足以管理130个集群的2000个节点。
不过,目前只能提供基础的运算需求调度,例如简单的HA集群、外部组件管理、运维自动化。LINE下一步,不止要支援更多种外部组件,还希望可以开始考虑到AP效能来调度资源。
自行开发微服务框架
强化非同步通讯能力
除了改造基础架构资源来提高调度弹性之外,在应用程序架构上,LINE Messenger原本就按AP的特性来开发各自的专用、简单的APP服务器,方便扩充之用,例如授权机制有6个服务,贴图小铺超过20个服务,LINE@ 账号或Bot后端更有超过40个微服务,但几年发展下来,变成了一套庞大的微服务架构。目前LINE微服务架构上已有超过2500个微服务。
采用微服务架构的好处是,可以加快开发速度,减少各服务间的功能冲突,但缺点是网络失效的频率增加了,服务配置的管理复杂度越来越高,甚至潜在雪崩式错误的风险也越来越高,光是贴图小铺的微服务,就需要25个人力来管理。
负责LINE Messenger微服务架构的LINE Z部门团队成员Masahiro Ide指出,现有庞大复杂的微服务架构,需要增加三大功能,强化网络连接性、建立目录服务和强化路由能力。
后来,LINE决定自己打造微服务框架,称为Armeria,设计了自己的RPC分层架构,可提供非同步的RPC层通讯需求,也将基础通用功能,变成微服务框架的预设功能,来简化重复构建的工作,如Logging、客户端负载均衡、监控整合、追踪、重试机制、健康检查等。另外,还针对文本配置,如JSON、YAML、XML,打造了一个储存库服务Central Dogma,可提供高可用性、版本控制和进阶查询机制,来强化配置文件的管理,将这两项技术,与LINE自己用Erlang打造的事件交付网关LEGY(Line Event Delivery Gateway)搭配使用。LINE也将Armeria和Central Dogma两项技术开源。有了这两大武器之后,下一步,LINE就准备进一步细分拆解现有的微服务架构,从“按特性拆解”细化到更小颗粒度的“按功能拆解”来设计新的微服务架构。
两阶段用集群联邦串接庞大Hadoop集群
除了基础架构改善之外,LINE的另一个大改造工程是数据基础架构。因为采取隐私优先政策,每一件与数据相关的事件,都需要进行隐私、安全的审查,但是跨不同子公司、不同系统的数据运行方式非常复杂,再加上LINE的数据量非常庞大,光是LINE Messenger一天的信息就高达1兆笔,每天新增的数据就算压缩后仍多达390TB,各种数据处理查询任务,一天也高达7万个。其他服务的数据再加总起来的量更是庞大,如何兼顾隐私权和大量数据的挑战,Verda部门主管Yoshihiro Saegusa指出,有三大问题要解决,包括了数据可用性(Accessibility)、多租户管理(Multi-tenancy)和数据品质(Data Quality)。
LINE的策略不是把现有的大数据集群全部打掉重建,而是将几个主要集群连结起来,建立了一个共用流程,透过单一登入服务,来控制谁可以使用哪些数据,让跨服务的工程师,就可以用到其他服务产生的数据。
更进一步看来,LINE用Hadoop来储存多达100PB的异质数据,包括了数据库、原始Log、前端Log、服务器Log等数据。总共有超过10个集群,节点总数达到2000个,其中最大一个集群,甚至多达1200个节点。LINE没有采取先建立一个超大新集群,再搬运所有数据的做法,也不是直接对所有集群进行整合,前者得准备1倍的服务器,成本太高,后者不同Hadoop集群所用的版本甚至不一样,直接整合集群的复杂度太高,数据损失的风险也太大。
后来,LINE的做法是,先挑出几个重要的大型Hadoop集群,将其他小型、次要的Hadoop集群,整合到这几个大集群种,再通过Hadoop的Cluster Federation功能,来建立跨集群的通用管理层,并且通过单一个YARN资源管理系统,来管理这些串连后的Hadoop集群。
建立数据特征微服务架构
用混淆工程去识别化来保护隐私
另外,LINE还将数据分为两大类,一类是原始数据,另一种是经过特征提取的数据,LINE打造了一个数据特征微服务(Feature as a Service)架构,先通过第一层的ETL工具梳理数据来减量,再通过特征工程技术,将内容转换为不同特征的向量数值,再结合用户行为和内容特征,就会变成了用户个人的使用特征Y Feature,并且利用了混淆工程技术,来进行去识别化处理。
因此,就算是跨团队的工程师拿到了一批数据,他们都无法知道用户真实数据是什么,数据工程师只会看到一笔笔转换过后的特征向量数据,各自对应不同的内容类型或行为特征的强度。
“通过这样的技术,就可以同时解决隐私和数据量的问题。”LINE台湾资深技术总监陈鸿嘉强调,不论是哪一种数据分析,都需要做到合法、合情和合理才能用。IT基础架构和数据架构的大改造工程,正是LINE可以安心冲刺AI发展的关键。
推荐阅读
Rancher年底招聘啦!北京、上海、深圳、沈阳四地火热招聘中,快来加入我们!
解决方案架构师、测试、Golang工程师等众多岗位等你来投!还有更多岗位详情,戳文看咯!
简历投递地址:chinajobs@rancher.com
About Rancher Labs
Rancher Labs由CloudStack之父梁胜创建。旗舰产品Rancher是一个开源的企业级Kubernetes管理平台,实现了Kubernetes集群在混合云+本地数据中心的集中部署与管理。Rancher一向因操作体验的直观、极简备受用户青睐,被Forrester评为2018年全球容器管理平台领导厂商,被Gartner评为2017年全球最酷的云基础设施供应商。
目前Rancher在全球拥有超过一亿的下载量,并拥有包括中国人寿、华为、中国平安、兴业银行、民生银行、平安证券、海航科技、厦门航空、上汽集团、海尔、米其林、丰田、本田、中船重工、中联重科、迪斯尼、IBM、Cisco、Nvidia、辉瑞制药、西门子、CCTV、中国联通等全球著名企业在内的共27000家企业客户。
点击阅读原文,立即投递简历!