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

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

關於黃挺:

社區小夥伴提問

你對開源的見解是? ─ @風息

說到阿里開源最多的評價是有始無終,請問 SOFA 開源的初衷是什麼?以及後續項目規劃又是如何?你我的對開源怎麼看?git

SOFA 在螞蟻內部通過了將近 10 年的發展,開源 SOFA 的目的一方面是但願可以將哦咱們在金融級的分佈式架構下的一些實踐回饋給開源社區,若是你看過 SOFA 的源代碼的話,也能夠看到 SOFA 其實使用了很是多的開源的代碼,好比 Spring 等等,做爲一個工程師,對於開源就是有一種追求在那邊,既然長期以來獲得了開源社區的諸多的好處,咱們也但願有所回饋。github

另外,好比螞蟻內部,開源社區是一個更大的世界,咱們也但願 SOFA 開源出來以後,可以在更多的場景下獲得歷練,也但願有更多的社區的朋友們可以參與到 SOFA 的開源中去,幫忙試用,提 PR,提 Bug,提 Feature Request。編程

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

另外,提問中也將了阿里開源的產品有些是有始無終,其餘的我不敢說,可是 SOFA 一直以來在螞蟻內部都被重度地使用,咱們內部有將近 2000 個 SOFA 的應用,不可能開源以後,後面就不維護了,這個你們能夠放心。sass

包括阿里開源的產品裏面也有很是多得一直在持續維護的產品,好比 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一本書籍,一樣,掘金社區根據問題得到的點贊數@展豪贈送對應的提問這一本書籍,書籍《可伸縮服務架構:框架與中間件》由博文視點提供,京東購買連接:戳這,書籍如圖:

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


本期 AMA 社區小夥伴提了許多實用問題,一樣感謝黃挺 認真地爲掘金小夥伴解答了很多疑問。瀏覽更多的問答,能夠到黃挺的 AMA 進行閱讀和討論。


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

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

下週 AMA 邀請到的是掘金小冊《Redis 深度歷險》、《深刻理解 RPC》做者 -- 老錢,你們有任何關於 我的成長、工做、編程語言(Python、Java、Golang)、Redis 以及老錢小冊的問題能夠和他溝通交流~

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

相關文章
相關標籤/搜索