日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

StarRocks 极客营 | 王天宜:把 Usability 当产品来开发,愿运维把 StarRocks 用得飘逸

發(fā)布時間:2023/12/18 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 StarRocks 极客营 | 王天宜:把 Usability 当产品来开发,愿运维把 StarRocks 用得飘逸 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

46 天全實(shí)戰(zhàn)開發(fā),17 位 Mentor 1V1 指導(dǎo),18 個成功被 merge 的 PR,23 個微信交流群,數(shù)不清的溝通……專為數(shù)據(jù)庫開發(fā)者打造的“StarRocks 極客營”第一季已落下帷幕。

在第一季中,社區(qū)選取了 Execution Engine、Storage Engine、Data Lake Analysis、Ecosystem、Loading、Observability、Planner、Usability 等 8 個方向,開放了 34 個開發(fā)任務(wù)。

曲終人不散,StarRocks 社區(qū)會對 8 個任務(wù)方向推出 5 篇專訪,揭秘極客們大膽挑戰(zhàn)、和技術(shù)大牛一起推開數(shù)據(jù)庫夢想之門的過程,也希望能給數(shù)據(jù)庫領(lǐng)域的開發(fā)者和用戶帶來一些啟示。

今天登場分享的是擁有十年 DBA 經(jīng)驗(yàn)、選擇了 Usability 方向的開源發(fā)燒友——王天宜(GitHub ID: wangtianyi2004)。

王天宜擁有十年 DBA 經(jīng)驗(yàn),做過 Oracle、MySQL 和 PostgreSQL,也做過大數(shù)據(jù)運(yùn)維。之前一直在做基礎(chǔ)平臺架構(gòu)的建設(shè),圍繞著 Kubernetes、分布式存儲、數(shù)據(jù)庫以及消息隊(duì)列和采集工具構(gòu)建金融業(yè)務(wù)基礎(chǔ)平臺。

作為 PostgreSQL 的發(fā)燒友,他在 Patroni 上做過二次開發(fā),開發(fā)了 PostgreSQL Operator 與 Patroni Operator 來推進(jìn)數(shù)據(jù)庫上 Kubernetes。后期在選型中了解到開源分布式數(shù)據(jù)庫,在測試與使用后轉(zhuǎn)身投入開源數(shù)據(jù)庫建設(shè)的陣營。


為什么選擇 Usability 方向?

我一直是做基礎(chǔ)平臺架構(gòu)的,從 TP 數(shù)據(jù)庫做到 AP 數(shù)據(jù)庫。由于是平臺運(yùn)維,實(shí)際編碼的工作量并不多,一般都是圍繞著周邊生態(tài)進(jìn)行開發(fā),寫過一些簡單的中間件,對 PostgreSQL 的邊緣功能做過一些二次開發(fā),改寫過監(jiān)控平臺。

開始接觸 StarRocks 后,需要在我自己的虛擬機(jī)上做大量的功能性驗(yàn)證。中午吃個飯或者開個會回來機(jī)器會自動休眠,相當(dāng)于所有的 Server 都會掉點(diǎn),我需要一個節(jié)點(diǎn)一個節(jié)點(diǎn)把服務(wù)拉起來。最開始只是寫了一個簡單的原型,通過 SSH 直接啟動集群的所有節(jié)點(diǎn)。后來自己的需求也越來越多,就想寫一個 StarRocks Console 版的管理平臺。

Usability 是一個非常有意義的主題。很多 Usability 的功能點(diǎn)都是一個自底向上的共建過程,數(shù)據(jù)庫的廠商對 Usability 大多后知后覺,非常需要使用者的推進(jìn)和反饋。在開發(fā)過程中我也一直把這個工具當(dāng)成是一款獨(dú)立的產(chǎn)品,希望更多和我一樣的 SRE 或者運(yùn)維同學(xué),能夠把 StarRocks 用得更飄逸,像個技術(shù)俠客一樣。

你選擇的是哪一個 Issue?

在介紹項(xiàng)目之前,首先要致敬 TiUP 這款工具。RESPECT。功能上大部分都是參考 TiUP 的。

這個項(xiàng)目是?Develop a tool for managing multiple StarRocks clusters【Easy】 · Issue #4034 · StarRocks/starrocks,主要就是一個多集群統(tǒng)一管理工具。

最開始的想法是通過 ssh 命令做一個 hardcode 的啟停工具,方便我在宿主機(jī)休眠時把所有節(jié)點(diǎn)運(yùn)用起來。后來因?yàn)樾枰僮鞯募涸絹碓蕉?#xff0c;把 Scripts 改成了可以通過配置文件啟停指定的集群。后來索性就把部署、升級降級、擴(kuò)容縮容都加進(jìn)來了。

感興趣的朋友可以看一下我寫的?User Guide,也可以看一下我在 GitHub 上的具體實(shí)現(xiàn)?Release sr-ctl v1.0.1 · wangtianyi2004/starrocks-controller。

多集群統(tǒng)一管理工具:https://github.com/StarRocks/starrocks/issues/4034

User Guide:https://in9aoxx754.feishu.cn/docs/doccnAUw7sF3wdul5Sx7fwinDbc

具體實(shí)現(xiàn):https://github.com/wangtianyi2004/starrocks-controller/releases/tag/sr-ctl

具體描述一下你實(shí)現(xiàn)了這個 Issue 哪些功能

主要是以下 5 個:

  • DEPLOY:根據(jù) yaml 文件部署 StarRocks 集群

  • DISPLAY / LIST:顯示某一集群或所有集群的信息

  • START / STOP:啟動或停止集群,根據(jù)參數(shù)選擇啟動/停止某一節(jié)點(diǎn)、全部 FE 或 BE 或者是集群所有節(jié)點(diǎn)

  • UPGRADE / DOWNGRADE:升級或降級版本

  • SCALE-IN / SCALE-OUT:擴(kuò)容或縮容節(jié)點(diǎn)

這個工具的核心點(diǎn)是多集群管理,通過一個中控機(jī)完成所有集群的管理和配置。在配置了中控機(jī)的 SSH 互信后,可以通過中控機(jī)以命令行的方式完成不同集群的管理。

在具體實(shí)現(xiàn)上,你做過怎樣的權(quán)衡?

對于數(shù)據(jù)庫管理基本有如下幾種思路,這個項(xiàng)目也經(jīng)歷了這幾個階段:

1. 使用 Script 進(jìn)行集群的管理

2. 使用 Ansible 或者 Puppet 等工具進(jìn)行管理

3. 開發(fā)獨(dú)立的平臺進(jìn)行管理

腳本化的管理方式

在最初的階段,我也確實(shí)是有使用腳本進(jìn)行集群控制。對于腳本來說,最大的問題在于大部分參數(shù)都是 hardcode 的。當(dāng)功能多的時候,難以對腳本進(jìn)行組織與規(guī)劃,維護(hù)起來相對復(fù)雜。腳本的管理方式一般只適用于實(shí)現(xiàn)單一的小功能,比如說在最初的版本中使用腳本來控制集群啟動。

自動化部署工具

類似于 Ansible 或者 Puppet 這一類的自動化部署工具,也非常適合集群的管理。也會有很多公司使用 Ansible 作為平臺級的自動化管理工具,針對于不同的操作編寫 Playbook。我也曾考慮過使用 Ansible 的 Playbook 進(jìn)行部署操作,但是考慮到通用型,如果做成一個產(chǎn)品,Ansible 部署和依賴可能無法滿足極簡化的操作需求。

獨(dú)立管理平臺

獨(dú)立的管理平臺在開發(fā)難度上相較上面兩種方式難度大了很多,但操作體驗(yàn)會有質(zhì)的飛躍。比如說獨(dú)立的管理平臺可以不需要安裝部署,不依賴于其他的組件,可以進(jìn)行定制化開發(fā)。這也是我選擇獨(dú)立管理平臺的原因。

作為一個集群的管理工具,你如何看待用可視化或者命令行進(jìn)行集群管理?

我個人是非常喜歡命令行的這種感覺。

在寫這個工具時,前期考慮過是要做一個可視化的工具還是一個命令行的工具。按照我個人的習(xí)慣,喜歡命令行的操作多一些??紤]到可視化管理平臺的安裝部署本身就是一個復(fù)雜的操作,也可能依賴于其他的組件,實(shí)現(xiàn)難度也更大一些,最終選擇了命令行的方式。在選定以命令行的管理方式后,更多精力放在了如何簡化命令行操作上。

對于這個項(xiàng)目來說,你還有什么規(guī)劃嗎?

這個工具剛完成第一個版本,重心基本放在了 StarRocks 的部署與維護(hù)上。

由于時間原因,第一個版本在日志輸出上存在一些問題,接下來會逐步對輸出日志進(jìn)行優(yōu)化。

在下一個版本中,可能會更多注重生態(tài)開發(fā):

  • 完成 Prometheus 與 Grafana 的部署與管理

  • 考慮對接 ELK 日志收集平臺

  • 通過配置文件完成數(shù)據(jù)導(dǎo)入工作

另外,對于我來說,這是一個完全開源的項(xiàng)目,也希望會有更多的人參與其中。如果大家對這個工具感興趣,可以到我的 GitHub 下面提需求。希望更多的社區(qū)用戶可以充當(dāng)產(chǎn)品經(jīng)理的角色,一起來決定這個工具未來的功能點(diǎn)與發(fā)展。這也是開源的魅力所在。

參與這個活動,你有哪些收獲或者感受?

這是我第一次獨(dú)立參與一個開源的項(xiàng)目。

最初的開發(fā)理念只是做一個簡單的 quick start 的工具,估算用時也沒有多少,覺得春節(jié)假期就能搞定。不過后面越做越大,不停進(jìn)行需求迭代,一直到最近才完成第一個版本。

經(jīng)?;氐郊揖鸵呀?jīng)很晚,自己寫一會兒基本就兩三點(diǎn)了。非常敬佩開源圈子里的前輩,很多互聯(lián)網(wǎng)技術(shù)大佬在工作之余依然投身于開源項(xiàng)目的建設(shè)。非常有幸這次我也能成為其中的一員。

你如何看待開發(fā)者對社區(qū)的貢獻(xiàn)?

之前參與過 TiDB 等社區(qū)的活動,很遺憾沒有給 TiDB 做什么源碼貢獻(xiàn),這也是我參與社區(qū)活動最大的遺憾。在這次的項(xiàng)目開發(fā)中,我借鑒了很多 TiUP 的功能,在沒有思路的時候,會去翻一翻 TiUP 的實(shí)現(xiàn)。

開源社區(qū)更像是技術(shù)江湖,每一個參與者都是一個俠客,當(dāng)我們行走于江湖的時候,可以用之前習(xí)得的武藝,幫助到其他人。我從一個開源社區(qū)學(xué)習(xí)到的東西,可以對其他產(chǎn)品有所幫助,其實(shí)能夠促進(jìn)所有的社區(qū)和產(chǎn)品一同進(jìn)步。

有沒有要特別感謝的人?

我要特別感謝兩個人,一個是 PingCAP 的 Jack Ma,每次都被我拉過來討論需求,極其有耐心。還有一位是 StarRocks 的晨陽小姐姐,幫我做了很多的測試,也和我爭論過很多設(shè)置是不是合理。希望未來能夠有更多人參與到項(xiàng)目的共建中。

Mentor 說

易用性是最需要通過社區(qū)來獲取靈感和產(chǎn)品改進(jìn)方向的。StarRocks 在性能表現(xiàn)上已經(jīng)領(lǐng)先于其他同類產(chǎn)品,但是在易用性上還有很大的提升空間,無論在部署運(yùn)維、建表的分區(qū)分桶、導(dǎo)入查詢的參數(shù)等都需要做系統(tǒng)的提升改造。

StarRocks 的核心特性之一就是利用分布式的 MPP 架構(gòu)來充分利用機(jī)器資源,但是集群部署比較復(fù)雜,我們一直希望能夠有一款一鍵部署的工具來幫助剛剛了解到 StarRocks 的新用戶,讓大家快速體驗(yàn)、輕松運(yùn)維。

同時,數(shù)據(jù)庫的可觀測性(Observability)和可控制性(Controllability)是會持續(xù)提升的,但是數(shù)據(jù)庫內(nèi)核的 API 非常需要一個和用戶能夠交互的接口。通過這個接口,我們可以持續(xù)把數(shù)據(jù)庫的核心功能,以更加友好的方式展現(xiàn)給 StarRocks 的用戶。因此對這個題目我是非常期待的,天宜的初版完成度和合作精神值得贊美。

——趙恒(GitHub ID: Dshadowzh)

總結(jié)

以上是生活随笔為你收集整理的StarRocks 极客营 | 王天宜:把 Usability 当产品来开发,愿运维把 StarRocks 用得飘逸的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。