以前曾流行一句半開玩笑的話,就是有些類似産品經理角色的人會說:我們什麼都不缺,就差一個程式員了。後面就到CEO們說:我們什麼都不缺,就差一個CTO了。如果CTO不是很懂技術,而是類似于資訊官的話,他可能會說:我們什麼都不缺,就差一個架構師了。
今天我們要聊的,就是架構師這個物種,不少人覺得很神秘的稱謂。很多公司都有所謂的架構師職位,而實際上很多具有架構師頭銜的人,都不能算嚴格意義上的架構師,他要不在做非架構師的工作,要不就是能力達不到稱職架構師的水準。人們常常誤以為,架構師就是等産品經理弄懂需求,畫出原型圖後,根據原型圖去設計系統架構的人。而實際上,架構師應該深入了解需求,了解業務邏輯,預知需求變化,然後設計出整體可擴充的系統架構,并清楚知道從需求分析到功能實作、測試、內建、釋出、運維等每一個環節的工作内容和方式,進而知道如何配備人力來完成這些事情,知道如何為系統運作時的可用性可靠性提供保障,真正做到掌控全局。
對于涉及系統開發的創業公司來說,可能就很需要這樣的架構師來把控全局。然而我們還有一句話,叫過猶不及。有些公司請來了大牛,大牛将自己在其他大公司的架構直接搬過來,減少了架構過程的工作量,但是這樣的架構對于小公司的小規模業務來說,顯得殺雞使用牛刀。對于創業型的小公司來說,我們認為在做架構時,應該以經濟适用、靈活可擴充為原則。
1. 經濟适用
照搬大公司的架構不是沒有成本的,元件多了,需要的計算、存儲、網絡資源一般也會增加,這些都是需要付費的,而且系統越龐大也就意味着運維上的投入更多,因而會帶來總成本的增加。對于創業公司尤其是還沒融到資的公司來說,老闆對花的每分錢可能都會心疼一秒鐘,而作為掌控公司整體技術架構的架構師來說,有必要從架構上去考慮開發成本,想辦法為公司節省開支,這樣可能才使得項目能撐到融資到位的那一天。在雲計算已經發展了十多個年頭的今天,有些小公司還喜歡自己去搭建一些中間件系統,然後不僅沒有能力去很好地維護,還會增加招聘運維人員的成本,增加故障的機率。是以,對于創業公司來說,我認為應該優先使用雲産品,同時必要的時候也多使用開源軟體,而不是自己研發。用有網際網路百曉生稱号的曹政的話來說,就是:創業公司不要動不動想不開,要自己搞研發。
2. 靈活可擴充
上面說的是經濟适用。但創業的小公司也會慢慢壯大對吧,如果遇到流量激增的情況,怎麼辦?這就涉及到我們前面說的第二個原則:靈活可擴充。是以架構師在進行架構設計的時候,要考慮這種可擴充性,比如剛開始如果沒有使用緩存,那麼要考慮如何能快速給在運作中的系統加入緩存;如果伺服器記憶體和CPU資源緊張,需要增加伺服器,是怎樣将伺服器加入叢集并了解大概需要多少時間能完成這樣的任務;伺服器增加了,應用服務的數量或副本數需要增加的話,需要怎樣配置,同時要保證系統的正常對外服務,等等。
總之,創業公司不應該為了炫技而将各種新潮的技術元件融合在系統架構裡面,這樣會導緻研發成本的提高且有可能導緻公司陷入生存困境,而要從經濟适用、靈活可擴充的角度來設計架構,這樣來看的話,創業公司缺的往往不是别的,很可能是一位經濟适用架構師。
文章最初發表于:創業公司的經濟适用架構師
歡迎關注公衆号: