深圳綠米聯(lián)創(chuàng)科技有限公司(以下簡(jiǎn)稱:綠米聯(lián)創(chuàng))成立于 2009 年。2016年,綠米聯(lián)創(chuàng)推出了“全屋智能”理念的自有品牌——Aqara,致力于通過(guò)一系列智能家居產(chǎn)品技術(shù)以及服務(wù)商模式,為用戶構(gòu)建更加智慧的生活。旗下產(chǎn)品包括溫度、濕度、門窗、人體、水浸、煙霧、燃?xì)?、光照和睡眠等各類傳感器,以及智能開關(guān)、插座、窗簾電機(jī)、空調(diào)控制器、調(diào)光器、門鎖等各類智能控制器,目前同時(shí)支持行業(yè)應(yīng)用的自動(dòng)化控制與大數(shù)據(jù)分析平臺(tái)。
Aqara 秉持著“引領(lǐng)物聯(lián)技術(shù),服務(wù)千家萬(wàn)戶”的愿景,堅(jiān)持“持之以恒追求用戶體驗(yàn),堅(jiān)持不懈創(chuàng)造用戶體驗(yàn)”的使命,在智能家居行業(yè)不斷創(chuàng)新,最終成為行業(yè)領(lǐng)軍品牌。
綠米聯(lián)創(chuàng)原本采用傳統(tǒng)的應(yīng)用部署方式,微服務(wù)架構(gòu) 80% 以上都是偏內(nèi)存型服務(wù),資源利用率非常低,尤其是CPU、磁盤存儲(chǔ),且迭代速度也不盡人意。
為了改變這種情況,綠米聯(lián)創(chuàng)試圖從持續(xù)集成開始,Jenkins、Harbor 搭建,到測(cè)試環(huán)境 Docker Swarm 編排。但隨著業(yè)務(wù)量增長(zhǎng)速度過(guò)快,Docker Swarm 編排跨平臺(tái)支持效果差,在業(yè)務(wù)量訪問(wèn)高峰期時(shí),內(nèi)部 Service 通信就會(huì)出現(xiàn)超時(shí)的問(wèn)題。于是,綠米聯(lián)創(chuàng)又將業(yè)務(wù)架構(gòu)從 Docker Swarm 全面轉(zhuǎn)向 Kubernetes。在原生安裝與運(yùn)維 Kubernetes 方面,他們想要借助第三方開源方案。
此外,綠米聯(lián)創(chuàng)還需要一套擁有完善的審計(jì)、監(jiān)控告警、權(quán)限分發(fā),并且能自定義優(yōu)化資源擴(kuò)縮容策略、插拔式插件個(gè)性化定制,平臺(tái)擁有常規(guī)問(wèn)題自查策略,以及清晰明了的日志平臺(tái)的容器服務(wù)。
經(jīng)過(guò)對(duì)比和調(diào)研,綠米聯(lián)創(chuàng)從一眾候選中,選擇了 KubeSphere 容器平臺(tái)。KubeSphere 憑借清爽的操作界面,向?qū)降馁Y源創(chuàng)建方式,完全以應(yīng)用為中心,更傾向于 Kubernetes 集群資源的管理,提供優(yōu)雅的 API 接口,并且在 Kubernetes 之上集成與包裝了運(yùn)維開發(fā)常用的功能組件,例如 Jenkins、Harbor、Promethues、Apache SkyWalking,還支持在任何基礎(chǔ)設(shè)施環(huán)境部署等優(yōu)勢(shì),獲得了綠米聯(lián)創(chuàng)的認(rèn)可。
綠米聯(lián)創(chuàng)目前所有的無(wú)狀態(tài)的服務(wù)都運(yùn)行在 KubeSphere 上,有狀態(tài)的數(shù)據(jù)存儲(chǔ)類服務(wù),使用云上的 Redis、HBase、Flink、Elasticsearch、MySQL 等集群服務(wù)。
目前,綠米聯(lián)創(chuàng)海外地區(qū)的服務(wù),基本上也都運(yùn)行在 KubeSphere 之上,包括 Gateway 微服務(wù)路由調(diào)度、Push、Send 推送、iftt 定時(shí)等等。
由于綠米聯(lián)創(chuàng)的業(yè)務(wù)以 Java 為主,因此其物聯(lián)網(wǎng)微服務(wù)平臺(tái)是基于 SpringCloud 框架進(jìn)行微服務(wù)化,使用Apollo 分布式配置中心管理配置,Eureka 注冊(cè)中心服務(wù)注冊(cè)與發(fā)現(xiàn)。結(jié)合 Ribbon、Feign 實(shí)現(xiàn)微服務(wù)負(fù)載均衡以及服務(wù)調(diào)用。同時(shí),我們使用 Hystrix 線程池實(shí)現(xiàn)隔離、熔斷以及降級(jí)、sentinel 限流,而 SpringCloud-gateway 網(wǎng)關(guān)路由則用來(lái)實(shí)現(xiàn)路由調(diào)度,日志使用的是經(jīng)典的 ELK 組合,APM 使用 SkyWalking 作為 Java 微服務(wù)分布式系統(tǒng)的應(yīng)用程序性能監(jiān)視工具。
截止目前為止,這一套物聯(lián)網(wǎng)微服務(wù)平臺(tái)已經(jīng)在綠米聯(lián)創(chuàng)的生產(chǎn)環(huán)境中平穩(wěn)運(yùn)行半年多。綠米聯(lián)創(chuàng)計(jì)劃在近期把公司開發(fā)、測(cè)試、生產(chǎn)環(huán)境中所有的有狀態(tài)和無(wú)狀態(tài)服務(wù)全部遷移到 KubeSphere 上去。
KubeSphere 對(duì)于跨多云平臺(tái)的兼容、以及支持多插件的選擇,在使用過(guò)程中加深了綠米聯(lián)創(chuàng)對(duì) Kubernetes 各個(gè)模塊的理解,推進(jìn)了他們?cè)谏a(chǎn)環(huán)境落地 Kubernetes 容器編排的步伐。并且,KubeSphere 解放了運(yùn)維日常面臨的重復(fù)工作,降低了應(yīng)用的整體維護(hù)成本。
KubeSphere 還讓綠米聯(lián)創(chuàng)對(duì) Kubernetes 的入門變得更簡(jiǎn)單、加快推進(jìn)生產(chǎn)環(huán)境 Kubernetes 的上線,對(duì)業(yè)務(wù)迭代有明顯的效率提升,并且能夠讓研發(fā)隨意切換、部署、驗(yàn)證各個(gè)應(yīng)用的功能模塊。