一 起源
paul fremantle提出的cloud native
2023年5月28日,wso2的cto和聯合創始人paul fremantle在他寫的一篇部落格中首次提出了cloud native這個概念。paul fremantle提出cloud native的原因是他一直想用乙個詞表達一種架構,這種架構能描述應用程式和中介軟體在雲環境中的良好執行狀態。因此他抽象出了cloud native必須包含的屬性,只有滿足了這些屬性才能保證良好的執行狀態。
paul fremantle對cloud native的屬性總結如下。
分布式。
彈性。多租戶。
自服務。
按需計量和計費。
增量部署和測試。
adrian cockcroft提出的cloud native
直到2023年,netflix的雲架構師(2023年10月他成為aws的vp)adrian cockcroft在yow conference上介紹了netflix在aws上基於cloud native的成功應用。netflix在aws上執行著上萬個例項,每天都有數以千計的例項被建立或刪除。netflix的成功,吸引著大批研發人員爭相模仿,adrian cockcroft介紹netflix的成功經驗時,主要從目標、原則和措施等方面進行了描述。
adrian cockcro可擴充套件性。對於netflix這樣的公司來說,可擴充套件性至關重要。據adrian cockcroft介紹,netflix在aws上執行著幾千個cassandra節點和上萬個服務例項。
高可用性。高可用代表了更好的使用者體驗,系統每分鐘的不可用都意味著金錢上的損失。
敏捷。在網際網路公司,速度永遠是第一位的,速度代表了良好的使用者體驗。netflix利用了aws,而不是自建雲環境及平台服務,這可以加快研發速度。
效率。在軟體研發過程中,效率高的人比效率低的人效率不只是高出百分之二十,有可能是幾十倍,甚至是上百倍。
為了達成以上目標,netflix制定了五大架構原則,通過這些架構原則約束所有研發人員的思想。adrian cockcroft對netflix實施cloud native的架構原則總結如下。
不變性。服務的例項一旦建立,將不能修改,如果要修改,則可以通過建立乙個新的節點實現。
關注點分離。通過微服務架構實現關注點分離,避免出現「決策瓶頸」。實際上,實現關注點分離有助於提公升系統的擴充套件性和可用性。
反脆弱性。預設所有的依賴都可能失效,在設計階段就要考慮到如何處理這些失效問題。為了讓系統更強壯,netflix會不斷地攻擊自己、主動破壞,以提醒系統要進行反脆弱性設計。
高信任的組織。netflix是基於信任的管理風格,相信自己的員工可以做出正確的決策,倡導給基層員工自主決策權。
共享。在netflix,管理是比較透明的,共享能夠促進技術人員的成長。
那麼netflix通過什麼措施實現了上面的目標呢?據adrian cockcroft介紹,netflix主要採取了如下措施。
利用aws實現可擴充套件性、敏捷和共享。
利用非標準化資料實現關注點分離。
利用猴子工程師[1]實現反脆弱性。
利用預設開源實現敏捷、共享。
利用持續部署實現敏捷、不變性。
利用devops實現高信任組織和共享。
利用執行自己寫的**實現反脆弱性開發演進。
2 如何衡量cloud native的能力
3 單體架構與微服務架構對比
簡述什麼是 Cloud Native
為什麼我們需要使用 cloud native?雲計算的第乙個浪潮是關於成本節約和業務敏捷性,尤其是雲計算的基礎設施更加廉價。很多企業傾向於使用微服務架構來開發應用。微服務開發快速,職責單一,能夠更快速的被客戶所採納。同時,這些應用能夠通過快速迭代的方式,得到進化,贏得客戶的認可。cloud nati...
什麼是雲原生Cloud Native
2010年5月,wso2的cto paul premantle在部落格中首次提出了雲原生 cloud native 的概念。2013年,netflix的雲架構師adrian cockcroft在yow會議上介紹了netflix基於cloud native的成功應用實踐。同在2013年,pivotal...
面試小結 學習小結
1 string 字串常量,每次改變都會生成乙個新的物件 stringbuffer 執行緒安全 變數 改變不會生成乙個新的物件 stringbuilder 非執行緒安全 在非多執行緒的情況下,用stringbuilder會快些 2 activity的四種啟動模式 singletop 棧頂正好是該ac...