作者 | 一嘯
來(lái)源 | 爾達 Erda 公眾號
2017 年初,我們基于 DC/OS (mesos + marathon) 開(kāi)始構建端點(diǎn)自己的 PaaS 平臺,核心任務(wù)就是解決公司的軟件開(kāi)發(fā)和部署交付效率問(wèn)題,建設公司的研發(fā)效能(DevOps)、智能監控運維(APM、Monitoring) 等技術(shù)平臺。
其實(shí) DC/OS 還是很好用的:
首先,它集大成了一個(gè)完整的容器平臺,不需要過(guò)于關(guān)注各個(gè)細節模塊,比如網(wǎng)絡(luò )。
其次,它在多服務(wù)的一鍵編排部署方面也是非常方便的,現在 K8s 主要還是依賴(lài) Helm 來(lái)實(shí)現,但 DC/OS 存在的最大問(wèn)題就是用戶(hù)數仍太少,問(wèn)題出現后,需要自行探索解決問(wèn)題。(估計我們團隊是國內 DC/OS 運維最專(zhuān)業(yè)的團隊之一,分母不大于 3。)
這里講述一件讓我們團隊記憶非常深刻的故事:2018 年夏天的一個(gè)周六,我們到公司加班,準備保障業(yè)務(wù)團隊的發(fā)布,結果公司的整個(gè) DC/OS 的網(wǎng)絡(luò )都掛了??!原本,我們計劃保障完業(yè)務(wù)的發(fā)布就去聚餐吃飯,結果被硬生生折騰了一個(gè)通宵。
這天夜里,我們嘗試了所有能找到的方法和建議,把所有能做的事情都做了,結果還是沒(méi)有用,仍然沒(méi)有辦法恢復網(wǎng)絡(luò )。最終,我們決定清理掉整個(gè)集群的網(wǎng)絡(luò )元數據,重建網(wǎng)絡(luò ),事情才被真正解決(事實(shí)上,摸索出 “清理所有元數據,重建網(wǎng)絡(luò )” 這個(gè)方法就花了很長(cháng)時(shí)間)。
好了,現在拉回正題?;?DC/OS 的 PaaS 在 2018 年 4 月完成了第一個(gè)正式客戶(hù)的生產(chǎn)部署后,又陸續交付生產(chǎn)了好幾個(gè)客戶(hù)。就這樣,我們一路磕磕跘跘地走完 2018 年,在 2019 年就決定要開(kāi)始轉型到 K8s 了。
在架構設計 PaaS 平臺的第一天,就決定要把底層的容器平臺 (DC/OS) 給抽象屏蔽掉,所以我們采用了 infrastructure as code 的理念定義了一個(gè) dice.yaml 的規范 (dice 是 PaaS 平臺的名字) ,dice.yaml 規范的核心就是:“以應用為中心,以開(kāi)發(fā)者為中心”去定義、使用基礎設施資源等?!耙詰脼橹行摹?其實(shí)并不是什么新概念,Heroku 早已提出并實(shí)踐,我們只是把這個(gè)概念做得更極致了些,當然,Heroku 的基礎架構并不算先進(jìn),甚至有點(diǎn)落后。
“以應用為中心,以開(kāi)發(fā)者為中心” 對于端點(diǎn)來(lái)說(shuō)是非常重要的,我們一定要讓業(yè)務(wù)開(kāi)發(fā)的同學(xué)只關(guān)注業(yè)務(wù)本身,不用去理解:容器是什么?K8s Deployment、Statefulset、Service、 Ingress、Pod 等這些東西是什么?更不需要關(guān)心應用跑在一個(gè)什么樣的網(wǎng)絡(luò )上?也不用關(guān)注應用的監控接入、監控覆蓋、診斷分析這些事情。其實(shí),這對絕大多數企業(yè)來(lái)講都是非常重要的。
“抽象、屏蔽掉底層的容器平臺“ 這個(gè)設計除了給業(yè)務(wù)開(kāi)發(fā)降低了極大的門(mén)檻,同時(shí)也給我們團隊自身帶來(lái)了很大的便利。主要體現在轉型 K8s 的時(shí)候,只需要針對性的開(kāi)發(fā)一個(gè) K8s 插件就完成了(不是給 K8s 開(kāi)發(fā)插件,是給我們 PaaS 平臺開(kāi)發(fā)插件)。其實(shí),在支持 K8s 之前,我們還和阿里云的 EDAS 合作開(kāi)發(fā)了 EDAS 插件,支持將應用部署到 EDAS 上,On EDAS 這個(gè)模式也陸陸續續地交付了好幾個(gè)客戶(hù)。我們將容器平臺插件化后,對接 Openshift/Rancher 等也是一件非常容易的事情,這對很多企業(yè)私有云環(huán)境是非常友好的。
從支持自建 K8s,再到支持阿里云容器服務(wù)、然后又是 AWS、Azure 等,我們一路支持的客戶(hù)越來(lái)越多。我們發(fā)現:如今,在公有云上要從 0 創(chuàng )建一個(gè)企業(yè)的 IT 環(huán)境(測試、生產(chǎn))還是要做非常多的事情,并且還需要具備非常專(zhuān)業(yè)的技能知識, 比如需要涉及 ECS、網(wǎng)絡(luò )、存儲、數據庫、SLB、中間件、容器服務(wù)、安全等等。在我們的部分客戶(hù)中,上述從 0 創(chuàng )建云環(huán)境的事情都是由我們幫客戶(hù)完成的。所以,我們需要提效,需要將這些麻煩的事情給自動(dòng)化掉,于是就基于 terraform 開(kāi)發(fā)了整個(gè)自動(dòng)化流程。作為一個(gè)產(chǎn)品型團隊,我們做任何事情都會(huì )想著(zhù)產(chǎn)品化,一開(kāi)始就將 terraform 自動(dòng)化的云資源編排流程做到云管平臺產(chǎn)品里了。
越往后走,我們開(kāi)發(fā)的功能越來(lái)越多,平臺覆蓋的范圍也越來(lái)越大,后續又支持了邊緣計算管理、快數據平臺、移動(dòng)開(kāi)發(fā)等。這些功能的原始訴求都來(lái)自于端點(diǎn)的真實(shí)場(chǎng)景,比如 pos 應用就是一個(gè)邊緣場(chǎng)景。
4 年走來(lái),讓我們感到最欣慰的事情,并不是做了多少產(chǎn)品功能,而是從 2018 年中開(kāi)始,我們就堅持每月發(fā)布一個(gè)版本,并且給所有客戶(hù)升級到最新版,從來(lái)沒(méi)有出現過(guò)代碼分叉維護,包括前面提到從 DC/OS 轉到 K8s 的大遷移、大升級(這是我個(gè)人心里覺(jué)得做得很牛的一件事情)。時(shí)至今日,我們的平臺已經(jīng)管理了上百個(gè) K8s 集群的應用,我們的目標之一就是 “成為管理最大規模 K8s 應用的平臺”。
2021 年初(春節前),我們在思考 21 年規劃時(shí),才開(kāi)始意識到自己做了很多事情,開(kāi)發(fā)了一個(gè)很強大的產(chǎn)品,我們在產(chǎn)品開(kāi)發(fā)這條路上走得很扎實(shí)、很專(zhuān)注,完全忽略了分享給更多的人、回饋社區、建設影響力等重要的事情。
所以,在春節后,我們團隊全力投入將整個(gè)平臺完全開(kāi)源。做開(kāi)源這件事情,我們想得很清楚,要做就是全部開(kāi)源,不留所謂的高級功能(私貨),不留內部代碼分支,整個(gè)團隊的日常迭代開(kāi)發(fā)全部轉移到 GitHub 上執行。我們希望做一個(gè)長(cháng)期主義者,用 3 年、5 年,甚至更長(cháng)的時(shí)間持續建設一個(gè)足夠好的開(kāi)源社區,打造一個(gè)頂級的開(kāi)源項目。
放眼全球,我們可以找到非常多的優(yōu)秀開(kāi)源項目,但大多數開(kāi)源項目都是以工具屬性為主,比如:前端 js 庫、開(kāi)發(fā)框架、基礎服務(wù)器軟件等,直接開(kāi)源產(chǎn)品(或者稱(chēng)之為商品)的項目卻不多,我個(gè)人認為開(kāi)源產(chǎn)品逐漸會(huì )成為這個(gè)領(lǐng)域的新趨勢,社會(huì )肯定朝著(zhù)更高效、低成本的方向去演進(jìn),基礎工具或技術(shù)將會(huì )是真正的基礎設施 ,對大多數人來(lái)說(shuō)都不用過(guò)于關(guān)注它;面向用戶(hù)群,解決大多數用戶(hù)的直接問(wèn)題(第一問(wèn)題)才是社會(huì )價(jià)值的最大化。
直接開(kāi)源產(chǎn)品也給我們帶了新的麻煩,我們希望、也歡迎大家免費使用開(kāi)源的產(chǎn)品,但肯定不希望某一個(gè)公司或組織直接將我們的開(kāi)源產(chǎn)品進(jìn)行二次銷(xiāo)售(含服務(wù)),所以我們決定先采用 AGPLv3 協(xié)議進(jìn)行開(kāi)源。采用 AGPLv3 的出發(fā)點(diǎn)不是為了限制個(gè)人、企業(yè)自己內部使用,僅僅是防止軟件或服務(wù)再銷(xiāo)售。
4 年來(lái)我們的 PaaS 平臺一直叫 Dice,目前已經(jīng)做到了 4.0 版本,所以我們非常糾結在開(kāi)源社區的第一個(gè)版本是 4.0 還是 1.0,如果是 4.0 對社區來(lái)講看上去會(huì )非常奇怪。最終,我們?yōu)榱撕凸舅械漠a(chǎn)品命名保持一致,把 Dice 改名成 Erda。Erda 是《基地》小說(shuō)中地球的別名,Terminus (端點(diǎn))、Erda、Trantor、Gaia 等都是源自于這部小說(shuō)中的星球名稱(chēng)。完成改名后,新名字新起點(diǎn),所以開(kāi)源社區從 1.0 版本開(kāi)始發(fā)布,也就顯得很自然了。
Erda 開(kāi)源項目有一個(gè)小小的愿景:“能夠在 Erda 平臺上構建任何類(lèi)型的應用,持續提升應用研發(fā)效能;能夠將應用部署、分發(fā)到任何云、任何地方;能以應用為中心持續完成應用的監控、診斷、治理”。
爾達 Erda 公眾號快速玩轉指南
數字時(shí)代是創(chuàng )新的時(shí)代,而開(kāi)發(fā)者正是這個(gè)時(shí)代的踐行者,他們用自己獨特的面孔參與到數字時(shí)代建設中。Erda 作為開(kāi)源的一站式云原生 PaaS 平臺,旨在為開(kāi)發(fā)者提供穩定可靠、功能全面、兼容生態(tài)、開(kāi)源開(kāi)放的云原生 PaaS 平臺和最佳實(shí)踐,也希望能夠和廣大開(kāi)發(fā)者不斷交流,共同進(jìn)步,而這也正是我們開(kāi)創(chuàng )【爾達 Erda】公眾號的初衷:為廣大開(kāi)發(fā)者提供一個(gè)技術(shù)交流聚集點(diǎn)。
在這里,除了可以自由分享觀(guān)點(diǎn)外,你還可以定期看到我們準備的以下內容:
產(chǎn)品動(dòng)態(tài)
技術(shù)最新進(jìn)展
行業(yè)趨勢分析
技術(shù)解讀
最佳實(shí)踐
技術(shù)分享
相關(guān)技術(shù)解讀
行業(yè)大會(huì )現場(chǎng)演講圖文回顧
活動(dòng)分享
活動(dòng)動(dòng)態(tài)
技術(shù)直播發(fā)布
······
如果你有其它想要了解的內容,也歡迎到公眾號后臺留言,或者添加小助手微信(Erda202106)加入交流群!
四年風(fēng)雨,終歸要歷遍山河。
Erda 作為開(kāi)源的一站式云原生 PaaS 平臺,具備 DevOps、微服務(wù)觀(guān)測治理、多云管理以及快數據治理等平臺級能力。點(diǎn)擊下方鏈接即可參與開(kāi)源,和眾多開(kāi)發(fā)者一起探討、交流,共建開(kāi)源社區。歡迎大家關(guān)注、貢獻代碼和 Star!
Erda Github 地址:
Erda Cloud 官網(wǎng):
————————————————
版權聲明:本文為CSDN博主「爾達 Erda」的原創(chuàng )文章,遵循CC 4.0 BY-SA版權協(xié)議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/m0_59358648/article/details/118085240
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站