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