掘金 AMA:聽分散式架構 SOFA 的開源負責人黃挺聊分散式架構和開源

清蒸不是水煮發表於2018-08-04

本週 沸點,掘金團隊請來了螞蟻金服高階技術專家,螞蟻金服分散式架構 SOFA 的開源負責人 -- @黃挺 做了為期三天的 Ask Me Anything (AMA) 活動。我們在此精選了一些來自使用者的提問及黃挺的回答。

關於黃挺:

掘金 AMA:聽分散式架構 SOFA 的開源負責人黃挺聊分散式架構和開源

社群小夥伴提問

你對開源的看法是? ─ @風息

說到阿里開源最多的評價是虎頭蛇尾,請問 SOFA 開源的初衷是什麼?以及後續專案規劃又是如何?你個人對開源怎麼看?

SOFA 在螞蟻內部經過了將近 10 年的發展,開源 SOFA 的目的一方面是希望能夠將哦我們在金融級的分散式架構下的一些實踐回饋給開源社群,如果你看過 SOFA 的原始碼的話,也可以看到 SOFA 其實使用了非常多的開源的程式碼,比如 Spring 等等,作為一個工程師,對於開源就是有一種追求在那邊,既然長期以來得到了開源社群的諸多的好處,我們也希望有所回饋。

另外,比如螞蟻內部,開源社群是一個更大的世界,我們也希望 SOFA 開源出來之後,能夠在更多的場景下得到歷練,也希望有更多的社群的朋友們能夠參與到 SOFA 的開源中去,幫忙試用,提 PR,提 Bug,提 Feature Request。

SOFA 包含了分散式架構中的各個元件,目前我們已經開源了一些,比如 SOFABoot,SOFARPC,SOFAMesh 之類的,後面每個元件,我們準備好一個就會開源一個,目前開源的每個產品的 RoadMap,都可以在對應的產品頁面中找到,比如 SOFARPC:www.sofastack.tech/sofa-rpc/do…

另外,提問中也將了阿里開源的產品有些是虎頭蛇尾,其他的我不敢說,但是 SOFA 一直以來在螞蟻內部都被重度地使用,我們內部有將近 2000 個 SOFA 的應用,不可能開源之後,後面就不維護了,這個大家可以放心。

包括阿里開源的產品裡面也有非常多得一直在持續維護的產品,比如 fastjson,druid,有些甚至進入了 Apache 基金會,並且成功孵化。

分散式的線上程式碼更新和服務重啟有什麼好的方法麼? ─ @wking

分散式的線上程式碼更新和服務重啟有什麼好的方法麼?

分散式的架構下,應用的程式碼更新發布上線的確沒有單體應用的架構下來得這麼容易。目前業界也有比較多的釋出方案可以借鑑,比如藍綠髮布,灰度釋出,金絲雀釋出等等,來保證程式碼的更新在分散式的環境下可以做到充分的驗證。

關於服務重啟這個問題,可以從兩個方面去看,一個是服務如何做到平滑的關閉,一個是服務如何做到平滑的啟動。

關於平滑的關閉,一般上的做法是先從服務註冊中心裡面把對應的節點拿掉,等一段時間上游系統收到的地址列表裡不再有對應的節點,並且對應的節點已經沒有請求在處理了,那麼就可以開始關閉了。

關於應用的平滑的上線,首先應用在啟動完成之後,最好先做一遍自檢,檢查應用自己是否當前是健康的,健康了之後,再對外提供服務,這個過程一般上被稱為 Readiness Check,目前 SOFABoot 中也提供了這個能力:www.sofastack.tech/sofa-boot/d…

除了 Readiness Check 之外,因為 Java 的 JIT 的問題,一個應用剛剛啟動的時候,往往效能相對比較差,這個時候,就要做服務的預熱,在 SOFARPC 中,也提供了服務預熱的能力:www.sofastack.tech/sofa-rpc/do…

SOFA 開源專案想成為 Committer 要有哪些要求?─ @薩維塔

SOFA 開源專案想成為 Committer 要有哪些要求?尤其是 SOFA-RPC 這塊?

可以先看下我們的 issue,裡面有一些比較簡單的問題,可以來了解下背景,嘗試提一個 PR:github.com/alipay/sofa…,也可以從我們的 RoadMap 瞭解下:www.sofastack.tech/sofa-rpc/do…,從 RoadMap 中認領一個任務。

對於中介軟體,是如何定義的?─ @文敦復

我想請問下,對於中介軟體,是如何定義的?我的理解是專案中除了程式碼之外,依賴的第三方元件就算中介軟體:MQ,REDIS 理解對不對?

很多都可以算到中介軟體的範圍內,比如 Java 裡面的應用伺服器(Tomcat,JBoss 之類的),RPC 框架,服務註冊中心,定時任務框架,資料分庫分表相關的中介軟體,搜尋,MQ 等等。我認為只要是為上層的業務應用提供通用服務的都是可以算到中介軟體的範圍內。

你是如何成為一名架構師?─ Chatc鯨魚

請問如何成為一名架構師?網上有很多教程覺得不大可靠,想知道你是如何成為一名架構師

我覺得我個人的成長的過程還是選對了一個比較好的團隊,然後這個團隊一直面臨比較大的挑戰,在應對這些挑戰的過程中,逐步積累了經驗。

除了在技術上夯實自己的基礎之外,也是需要選擇一個比較有挑戰的場景,讓自己可以長期在舒適區之外,更快地讓自己成長。

你的技術成長曆程?─ @Assassintor

我想了解下你的技術成長曆程,可以嗎??

剛畢業的時候我到阿里巴巴 B2B 實習,做誠信通產品的研發,期間因為對開源產品比較感興趣,所以和當時的同事一起組織了一個開源興趣小組,一起研究 Spring,Tomcat,JUC 等等,後面也和一個幾個同事一起開發了阿里的 HotCode 的第一個版本,期間對於技術的理解自我感覺有非常大的提升。

後來出於對於技術的興趣以及追求,來到了螞蟻金服中介軟體團隊,開始負責 SOFA 相關的產品的研發,在這個過程中,我本人也得到了比較大的成長,之前更多的是在研究開源中介軟體的程式碼,理解了一些產品的理念,但是實際的參與比較少,真正參與到中介軟體的研發才深入地理解到這塊領域的事情。

我覺得個人的成長的過程中,是道和術的相輔相成,一起提升的過程,道是指對技術的的大觀的理解,這個可以通過閱讀更多的書,有一個好的 mentor 來幫助你,這個過程往往是頓悟的過程。另一個是術的提升,這個更多的是實際的技能的提升,這個更多需要通過長時間的實踐多多去磨鍊。

開源會對現有系統造成一定的安全隱患,你怎麼考慮?─ @mooniitt

我想問 有沒有考慮過開源會對現有系統造成一定的安全隱患呢

開源在我看來可以得到社群更多的,更加迅速的反饋,包括有些人可能發現安全隱患,也會直接以更加快速地方式直接提供 PR,幫助大家更好地 Fix。

這也是開源的魅力所在。你不是一個人在戰鬥,有一個社群跟著你一起戰鬥。

創業公司想開源專案,但擔心維護成本,你的建議?─ @eman

我公司正有一個微服務框架打算開源,但是,衡量了一下,社群文件維護很麻煩,耗時耗力,創業公司有點難

只要有亮點,都可以開源。但是開源專案要做好,的確是需要熱情的,需要投入精力去維護社群關係,包括文件、大家的提問等等,我跟比較多的開源的產品的 Owner 聊過,基本上大家都是花了大量的精力投入在開源上面。

黃挺 AMA 福利:《可伸縮服務架構:框架與中介軟體》

黃挺將從所有提問中選擇一個他覺得最有價值的問題贈送對應的提問者@wking一本書籍,同樣,掘金社群根據問題獲得的點贊數@展豪贈送對應的提問這一本書籍,書籍《可伸縮服務架構:框架與中介軟體》由博文視點提供,京東購買連結:戳這,書籍如圖:

掘金 AMA:聽分散式架構 SOFA 的開源負責人黃挺聊分散式架構和開源

兩位小夥伴看到記得加清蒸好友送書給你喲,微訊號:evaz0711


本期 AMA 社群小夥伴提了許多實用問題,同樣感謝黃挺 認真地為掘金小夥伴解答了不少疑問。瀏覽更多的問答,可以到黃挺的 AMA 進行閱讀和討論。


下週 AMA:掘金小冊《Redis 深度歷險》、《深入理解 RPC》作者 -- 老錢

老錢 AMA 提問環節正在進行 時間:即日 - 2018.08.09,活動傳送:?戳這裡

下週 AMA 邀請到的是掘金小冊《Redis 深度歷險》、《深入理解 RPC》作者 -- 老錢,大家有任何關於 個人成長、工作、程式語言(Python、Java、Golang)、Redis 以及老錢小冊的問題可以和他溝通交流~

老錢 AMA 結束,老錢將會指定 3 名他覺得提出好問題的小夥伴贈送他掘金小冊的免費碼:

掘金 AMA:聽分散式架構 SOFA 的開源負責人黃挺聊分散式架構和開源

掘金 AMA:聽分散式架構 SOFA 的開源負責人黃挺聊分散式架構和開源

相關文章