天天看點

雲原生的進一步具象化

本文轉載自公衆号:HelloJava。

雲原生這個概念已經越來越深入人心,但對“雲原生到底是什麼?”這個問題,仍然是各種各樣的解讀,最近對雲原生具體是什麼有了點感觸,于是寫下來分享和探讨下。

我現在認為雲原生其實是讓衆多的公司,通過基于雲的産品迅速獲得在建構一個現在這個時代的應用(是不是有點像 AWS 一直講的 Modern Applications)所必需的各種基礎能力(如:極強的規模伸縮性、極高的可用性、極低的創新/營運成本、大資料的分析/營運能力等等),而不需要像以前的很多公司,為了具備這些能力,投入巨大,或者用另外一句話說:雲原生就是專業的基礎能力普惠化,随手可得。

當今時代的應用和多年前的應用面臨的狀況差别太大,這個差異和當今業務面臨的激烈競争和玩法有很大的關系,我以前一直覺得像阿裡在發展過程中積累的很多能力,外面很少有公司會需要,就像當年百億、千億美金的公司是多麼難才出現,但現在看來則完全不一樣,是以這也奠定了當今時代的應用在技術層面能力的要求也遠不一樣,簡單說幾個點:

  1. 對可用性的要求遠高于以前的應用:現在的應用通常一上線對可用性要求就已經不低了,因為一旦出問題就很容易把使用者送給競對;
  2. 對伸縮性的能力要求也遠比以前高,主要展現在兩個方面:一是團隊規模,現在的業務公司很容易迅速發展到百人以上,而百人以上的研發效率如何保持盡量不下降,這對系統的伸縮能力有着很高的要求;二是使用者規模,現在衆多業務的使用者規模可以很快地突破百萬、千萬規模,這就要求系統必須能根據使用者規模快速地伸縮;
  3. 創新和營運的成本必須低:業務競争無比激烈,快是關鍵,是以怎麼在不需要太大投入的情況下快速上線各種業務,是無比重要的;另一個方面就是營運的成本,這個是和現在應用的使用者規模、激烈競争密切相關的;
  4. 大資料的玩法:現在的很多業務對獲客、推薦、搜尋等的大資料化要求還是相當高的。

阿裡是一家在自身發展過程中,逐漸碰到上述的挑戰(當年的競争環境基本還不會要求一個業務上來就把各種能力具備好),但以前也沒有雲可用,是以在發展過程中不斷積累各種能力,現在通過開源、雲商業化對外輸出這些能力,使得即使到了現在這樣的競争環境下,各種有業務創新想法的同學們,還是可以像當年一樣快速上線業務,而不是要先投入巨多力量、花費巨多時間把需要的基礎能力打磨出來。

我自己并沒有完全經曆阿裡的發展過程,接下來主要還是簡單說下我自己經曆的一些。

  1. 在 2007 年,淘寶在基礎能力上面臨的最大問題是伸縮性,兩個現象當時都出現了:使用者數量大量增加,加機器已經基本要加到瓶頸了;研發人員大量增長,研發效率下滑非常明顯。在這個階段,淘寶做了一輪非常重要的架構改造,磨練出了例如服務架構、消息中間件、分庫分表方案、分布式檔案系統、分布式緩存等基礎技術産品,結合業務架構的重新設計,很好地解決掉了伸縮性的問題。
  2. 在 2009 年,淘寶面臨了可用性問題,經常出各種故障,于是開始積累各種監控、快速恢複、tracing、系統設計裡如非關鍵路徑異步化等技能。可用性這塊的投入一直在持續,到後來為解決 雙11 這種特殊情況的可用性、确定性訴求而創造的全鍊路壓測;通過同城雙活、異地多活的多機房體系建構的強容災能力以及快速恢複能力等;以及線上下場景加入後來面臨的不一樣的可用性方案等。各種場景的高可用方案的積累,也使得業務的可用性越來越有保障。
  3. 2011 年左右,阿裡開始覺得未來在資源投入上的營運成本可能會很誇張,于是在 2011 年開始通過容器化來提升機器使用效率、持續進行成本優化,後來又持續通過雲資源彈性來解決 雙11 這類型的短時高峰的成本投入問題,通過線上離線混部解決大資料機器投入越來越大、線上機器叢集使用率不高産生浪費的問題,經過多年努力,使得業務在高速增長的情況下,機器資源投入上的營運成本還是相對可控的。

如上文所講,阿裡是依靠巨大的人力投入、場景打磨和多年的持續投入才逐漸形成了完備的能力。而現在的業務,則可以用雲原生的方式建構,使自身一上來就具備這些能力,至少能夠讓自己在如今激烈且要求更高的業務競争環境中,不會在這些基礎能力上拖後腿,以此可以花更多的精力、時間、資源在真正的業務創新上。這樣具象化的雲原生對整個社會的創新還是相當有價值的。

繼續閱讀