加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_阳江站长网 (https://www.0662zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 动态 > 正文

智能家居巨头 Aqara 基于青云QingCloud容器平台打造物联网微服务平台

发布时间:2020-05-15 16:26:27 所属栏目:动态 来源:站长网
导读:背景:从传统运维到容器化的Docker Swarm编排,从 Docker Swarm 转向Kubernetes,然后在 Kubernetes 运行SpringCloud微服务全家桶,到最终拥抱KubeSphere,并基于 KubeSphere 打造绿米联创自己的物联网微服务平台,绿米联创已在生产环境中稳定运行 KubeSph

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

智能家居巨头 Aqara 基于青云QingCloud容器平台打造物联网微服务平台

绿米物联网微服务平台设计架构

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

智能家居巨头 Aqara 基于青云QingCloud容器平台打造物联网微服务平台

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

智能家居巨头 Aqara 基于青云QingCloud容器平台打造物联网微服务平台

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

智能家居巨头 Aqara 基于青云QingCloud容器平台打造物联网微服务平台

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

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

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

问答

Q:使用过程有没有遇到什么问题?

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

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

最终我们发现,可以登录 Jenkins 服务端,选择 Manage Jenkins => Configure System,找到对应的模板,如截图所示操作,在 Pipline 里面指定 mav package -Dpath=${target_path},方可解决上述解决问题!

智能家居巨头 Aqara 基于青云QingCloud容器平台打造物联网微服务平台

Q:什么样的应用开发平台,才能承载智能家居的未来?

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

Q:KubeSphere 哪些功能或设计还需要改进?

A:建议如下:

界面语言切换太隐蔽;

Granfana 模板集成灵活度可以再多一点;

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

创建 pipeline 支持 copy from;

运行 pipeline 支持多选批量;

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

后记

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

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

About KubeSphere

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

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

智能家居巨头 Aqara 基于青云QingCloud容器平台打造物联网微服务平台

(编辑:应用网_阳江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!