http://www.dollarstorearticle.com

智能家居巨头 Aqara 基于青云QingCloud容器平台打造

  背景:从传统运维到容器化的 Docker Swarm编排,从 Docker Swarm转向Kubernetes,然后在 Kubernetes运行 SpringCloud微服务全家桶,到最终拥抱KubeSphere,并基于 KubeSphere打造绿米联创自己的物联网微服务平台,绿米联创已在生产中稳定运行 KubeSphere和 Kubernetes半年多时间,积累了丰富的微服务应用以及应用平台运维的经验。本文由深圳绿米联创科技有限的运维工程师魏恒生与徐洋冰,spring容器图片素材来自 Aqara官网。

  深圳绿米联创科技有限(简称“绿米联创”)成立于 2009年,总部位于深圳,覆盖超低功耗无线传感器、Zigbee无线网络技术、智能家居边缘计算技术、算法与 AI、平台与接入能力等方面。2016年,深圳绿米联创科技有限推出了“全屋智能”的自有品牌 Aqara(Aqara源自拉丁语 acutula,意为聪明,ARA是回家的意思,Aqara将两者结合意味着家庭越来越智能化)。spring容器Aqara致力于通过一系列智能家居产品技术以及服务商模式,为用户构建更加智慧的生活。Aqara旗下产品包括温度、湿度、门窗、人体、水浸、烟雾、燃气、光照和睡眠等各类传感器,以及智能开关、插座、窗帘电机、空调、调光器、门锁等各类智能,目前同时支持行业应用的自动化控制与大数据平台。

  Aqara着“引领物联技术,服务千家万户”的愿景,“持之以恒追求用户体验不懈创造用户体验”的,在智能家居行业不断创新,最终成为行业领军品牌。

  一入运维深似海,魏恒军作为一名多年工作经验的资深运维工程师,从最初的扛机器上机,在工作中生疏的操作着网线钳,地安装着操作系统,费力地部署应用程序和调试着应用服务,以及在那黑夜因一连串告警惊醒,永远感觉自己是个伟大消防员。

  技术的快速迭代更新,迎来了微服务,迎来了虚拟化技术,也迎来了容器化与云原生技术。运维也从最初的人肉运维发展到脚本运维,再到平台运维,最后到现在的容器运维。本人运维过的机器,不知不觉也从个人几十台到现在的近千台服务器,传统的应用部署方式,每次迭代一次,都需要花费大量的时间去准备配置文件、操作注意事项、数据库等等,然后再经过一群人层层审批,再发到线上,这期间已经过了半个月,在这个互联网比速度的时代,显然这种传统方式劣势非常明显,而容器应时势而生。

  传统部署应用方式,资源利用率非常低,时长让老板们本狠狠地。在这种情况下,本人在 2017年开始接触容器,spring容器尝试着在上与测试。当时直接给、测试的资源利用率提高了 50%。到 2018年,开始在生产用 Docker Swarm排编容器,更显著提高了资源的利用率。

  从命令行到脚本化,最后到平台化,一走来步步艰辛。当刚开始加入绿米大家庭,发现绿米运维还处在原始野人阶段,回顾四周,我只能屡起袖子顶着压力情况,发现绿米的微服务架构 80%以上都是偏内存型服务,资源利用率非常低,尤其是 CPU、磁盘存储,十分让人懊恼。且迭代速度也不尽人意。静心思静,决定大改这种状况。从持续集成开始、Jenkins、Harbor搭建,到测试 Docker Swarm排编。这大大改善了测试的交付速度以及交付质量,但慢慢发现,业务量曾涨速度太快,Docker Swarm排编劣势明显:

  业务量访问高峰期的时候,内部 Service通信的时候就会出现超时的问题

  三架马车时代已是过去式,Kubernetes击败 Docker Swarm和 Mesos成为容器编排领域的事实标准。因此,我们的业务架构从 Docker Swarm全面转向 Kubernetes。选择 Kubernetes几年前就在心里扎根,尤其是近来需要运维近千台机器的时候,一个运维友好与的容器云平台成为了我们基于 kubernetes大规模落地云原生微服务应用的刚需。

  但是对于原生安装与运维 Kubernetes还是借助第三方开源方案,我们经过反复的琢磨,最终选择了使用第三方开源项目。看来看去 Rancher和 KubeSphere成了考虑的选型。

  KubeSphere是由青云 QingCloud发起并联合多个企业共同参与的开源项目。对比 Rancher和 KubeSphere,后者不仅有清爽的操作界面,向导式的资源创建方式,完全以应用为中心,更倾向于 Kubernetes集群资源的管理,提供优雅的 API接口,并且在 Kubernetes之上集成与包装了我们运维常用的功能组件,例如 Jenkins、Harbor、Promethues、Apache SkyWalking,还支持在任何基础设施部署,所以我们毫不犹豫的选择了 KubeSphere容器平台。

  KubeSphere跨多云平台的兼容、以及支持多插件的选择,在使用过程中加深了我们对 Kubernetes各个模块的理解、推进了我们对生产落地 Kubernetes容器编排的步伐。并且,KubeSphere解放了我们运维日常面临的重复的工作,减低了应用的整体成本。是运维的一把利器,是互联网的一道。

  目前主要是在腾讯云上用 7台服务器来构建集群,集群机器的配置规格如下。

  截止目前为止已经运行半年多且无大问题出现,这推动我们计划近期把、测试、生产中所有的有状态和无状态服务全部迁移到 KubeSphere上去。

  首先可以看看绿米物联网的业务架构图,目前绿米海外地区的服务,基本上全部都运行在 KubeSphere之上,包括 Gateway微服务由调度、Push、Send推送、iftt定时等等。

  由于我们的业务以 Java为主,因此绿米物联网微服务平台是基于 SpringCloud框架进行微服务化,使用 Apollo分布式配置中心管理配置,Eureka注册中心服务注册与发现。

  结合 Ribbon、Feign实现微服务负载均衡以及服务调用。同时,我们使用 Hystrix线程池实现隔离、熔断以及降级、sentinel限流,而 springcloud-gateway由则用来实现由调度,日志使用的是经典的 ELK组合,APM使用 SkyWalking作为 Java微服务分布式系统的应用程序性能工具。

  如上图所示,IaaS我们使用的是腾讯云,Platform (平台层)主要是物联网业务平台的微服务,Platform层的绝大多数应用都运行在 KubeSphere容器平台之上,所有子设备通过 Zigbee协议连接 Hub设备,即智能、智能插座、摄像头等,Hub设备通过 RPC协议与绿米智能家居的微服务平台通信,微服务平台为 App、SaaS等应用提供数据,反向应用通过一系列安全鉴权、认证来调用绿米微服务平台,实现控制智能家居设备。服务层拥有链追踪、基础、CI/CD等插件。

  KubeSphere让我们对 Kubernetes的入门变得更简单、加快推进生产 Kubernetes的上线,对业务迭代有明显的效率提高,并且能够让研发更快地随意切换部署验证各个应用的功能模块。

  截止目前为止,这一套物联网微服务平台已经在我们绿米联创的生产运行半年多且无大问题出现,因此,我们计划在近期把、测试、生产中所有的有状态和无状态服务全部迁移到 KubeSphere上去。

  A:有的,比如 DevOps流水线解决 War/Jar包发布问题。DevOps流水线既要解决打包镜像到镜像仓库,同时要兼容老业务 war包通过 Ansible分发的部署方式,起初一直没有解决方案。

  经过一番研究后,我理解整个 DevOps的流程是 jenkins-agent拉取对应模板的 Pod,跑完 Pipline的各个流程,但问题又来了,Java模板的 ven Pod执行完之后退出了,却没法获取到编译后的 Jar包。

  A:完善的审计、告警,权限分发,并且能自定义优雅的资源扩缩容策略,优雅的插拔式插件个性化定制,平台自身的常规问题自查策略,以及清晰明了的日志,好在这一切都在 KubeSphere容器平台支持了。

  对 Kubernetes节点扩容可以变得更简单一点、最好支持界面化节点扩容。

  api文档最好有些 example,现在的 Swagger很多接口必选参数写的看不明白,可读性不太好

  非常感谢绿米联创的两位用户带来的物联网微服务平台在智能家居行业的落地实践分享!从传统运维到容器化的 Docker Swarm编排,从 Docker Swarm转向 Kubernetes,然后在 Kubernetes运行 SpringCloud微服务全家桶,到最终拥抱 KubeSphere,并基于 KubeSphere打造绿米联创自己的物联网微服务平台,这也是国内一部分企业的应用微服务平台的演进过程。

  如果大家对绿米联创的物联网微服务平台的落地实践的详细实现非常感兴趣,希望进一步了解以及跟两位工程师交流,欢迎大家加入 KubeSphere开源社区交流群。我们后续会根据大家的需要邀请两位工程师为大家做一次线上的技术直播分享。另外,如果您希望分享 KubeSphere和 Kubernetes在您企业的落地实践,我们也非常欢迎您!

  KubeSphere是在 Kubernetes之上构建的以应用为中心的开源容器平台,提供全栈的 IT自动化运维的能力,简化企业的 DevOps工作流。

  KubeSphere已被 Aqara智能家居、本来生活、新浪、云智汇、微众银行、VNG Corporation、Radore等数千家企业采用。KubeSphere提供了运维友好的向导式操作界面和丰富的企业级功能,包括 Kubernetes资源管理、DevOps (CI/CD)、应用生命周期管理、微服务治理 (Service Mesh)、多租户管理、日志、告警通知、存储与网络管理、GPU support等功能,帮助企业快速构建一个强大和功能丰富的容器云平台。

原文标题:智能家居巨头 Aqara 基于青云QingCloud容器平台打造 网址:http://www.dollarstorearticle.com/xinwenpindao/2020/0519/14401.html

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。