Categories
程式開發

攜程集團機票業務技術總監宋濤:扛得住流量洪峰,才是優秀架構師


“架構師”究竟是什麼?

在軟件行業,是否要設立專職架構師,是一個充滿爭議的話題 。一方面,技術日新月異,架構的重要性日益增長,這種情況下需要有人帶領大家做重大的架構規劃並落地實施;另一方面,架構師又常常會因為架構上的各種坑而被大家抱怨,甚至有一部分公司取消了專職架構師的職位。

在我看來, 架構師更像是一種職責,一種各級技術人員或多或少都會涉及到的職責 。其中既包括總裁級別的傑出工程師(Distinguished Engineer)設定技術方向、規劃和規範,也包括一線工程師進行框架選擇、技術迭代。需不需要設立專職架構師是一個見仁見智的問題。現在很多的國內外互聯網大廠中,其實是沒有架構師這個職位的。但這並不妨礙技術人在架構領域不斷做出新的突破。

成為一名優秀的架構師需要有哪些特質?

在我看來,要成為一名優秀的架構師需要有三方面的特質:

首先,架構師要對業務領域非常了解,並有足夠的能力來抽像出架構和系統相關的需求 。在系統設計開發過程中,我們可能會注意到有些同事對業務細節理解很深,但是缺乏進一步抽象的能力來深挖系統的非功能性需求,包括安全、數據持久、系統可用、操作延時、數據一致性等。

其次,架構師要掌握主流技術及相應的優缺點,並有進一步學習的熱情 。架構師要做的一個重要工作是根據業務需求做出技術選擇。所以,即要對當前技術的選擇範圍有明確的意識,又有能力在多個技術方案中間進行權衡比較並做出相對正確的決定。這些技術包括但不限於主流編程語言,應用框架,雲計算產品,容器系統,開源工具等。

最後,架構師要對如何提升系統可靠性以及開發運維效率有自己的方法論 。這其中可以學習其他公司的成功經驗,例如穀歌公司的SRE原則和實踐,亞馬遜公司的Operation Excellence等。同時,在公司內部要建立事故复盤和教訓分享的有效機制。 一名優秀的架構師,可以在學習和實踐中不斷的成長,但最終一定是在經過多次的事故复盤(COE)和災難恢復(DR)後才能蛻變昇華

流量洪峰對架構師的成長價值

在評估一個軟件工程師能力時,一個經常被問到的問題是,“你所設計開發的系統中,峰值流量是多少QPS,以及相應的容量SLA是多少”。

對於一個沒有經過流量洪峰考驗的系統,很難評估它的系統可靠性和設計合理性。因為,架構本身是一種權衡(Tradeoff)的藝術, 而只有經過流量洪峰考驗的架構師,才能讓人相信他在權衡的時候,堅持了正確的設計理念和最佳實踐

舉例來說,對於流量很小的非核心服務,往往使用兩個服務實例和一個數據庫實例就可以解決基本的功能問題。而當流量上升之後,你就需要考慮增加服務實例和數據庫實例的數目。而當流量繼續上升之後,你又不得不加上各種緩衝,同時不得不處理緩衝數據一致性的問題。同時,隨著架構複雜性的上升,你又不得不考慮更多的失效場景,增加系統健壯性(Resilience)和容錯性的改造。

遺憾的是,在面試和技術討論中,很少有人能夠出色的回答前面提到的問題。大部分工程師的經歷僅限於個位數的QPS,甚至連QPS的概念都欠缺。在大的企業當中,往往只有從事核心業務的工程師才有機會去面對這些挑戰;相應的工程團隊也往往具有相對最高的架構和設計水平。

結束語

我受到騰訊雲「雲加社區」的邀請,擔任「雲加社區沙龍online」「高可用架構之流量洪峰」專場的出品人及講師。這次獲得的議題,將會從一些流量洪峰的實際場景出發,與大家分享高可用架構的實戰經驗。其中,涉及到緩衝策略,調度方法,應用架構,可靠性實踐等,這些也都是我很感興趣的點。

同時,騰訊雲CVM總監李力、貝殼金服小微企業生態CTO史海峰、奈學教育科技創始人&CEO孫玄,三位業界朋友,也會就「如何成長為一名優秀架構師」這一話題進行分享,相信這一分享也會使很多技術人獲益。

最後,我也會在4月24日晚,從實踐角度,與大家分享“攜程機票查詢系統的架構升級”,期待與大家相約!

作者介紹

宋濤 ,攜程集團機票業務技術總監

宋濤,攜程集團機票業務技術總監,北京大學計算機系畢業,加州大學計算機博士。先後從事微軟公司Windows團隊,智能搜索團隊的架構和技術管理工作,Amazon公司雲服務部門雲存儲管理服務技術主管。

本文轉載自公眾號雲加社區(ID:QcloudCommunity)。

原文鏈接

https://mp.weixin.qq.com/s/yfOVU8EoH6tNnGWgIknYyw