Cloud Native?雲原生?不少人一看到這個詞就懵了,到底什麼是雲原生?git
雲原生這個詞其實由來已久,IT行業永遠也不缺少新概念。2015 年,Pivotal公司的Matt Stine提出Cloud Native這一律念,並結合這個概念包裝了本身的新產品Pivotal Web Service和Spring Cloud。在Matt Stine所著的Migrating to Cloud Native Application Architectures一書中,他對雲原生的概念進行了詳細的闡述。該書的中文版《遷移到雲原生應用架構》已經在GitHub 上開源,感興趣的讀者可瀏覽或下載(https://github.com/rootsongjc/migrating-to-cloud-native-application-architectures)。github
雲原生準確來講是一種文化,更是一種潮流,它是雲計算的一個必然導向。意義在於讓雲成爲雲化戰略成功的基石,而不是障礙。
自從雲的概念開始普及,許多公司都部署了實施雲化的策略,紛紛搭建起雲平臺,但願完成傳統應用到雲端的遷移。可是這個過程當中會遇到一些技術難題,上雲之後,效率並無變得奇高,故障也沒有迅速定位。
爲了解決傳統應用升級緩慢、架構臃腫、不能快速迭代、故障不能快速定位、問題沒法快速解決等問題,雲原生這一律念橫空出世。雲原生能夠改進應用開發的效率,改變企業的組織結構,甚至會在文化層面上直接影響一個公司的決策。
另外,雲原生也很好地解釋了雲上運行的應用應該具有什麼樣的架構特性——敏捷性、可擴展性、故障可恢復性。
綜上所述,雲原生應用應該具有如下幾個關鍵詞:安全
以上特性也是雲原生區別於傳統雲應用的優點特色。
從宏觀概念上講,雲原生是不一樣思想的集合,集目前各類熱門技術之大成,具體包括以下圖所示的幾個部分。 markdown
並非全部的應用都適合微服務化,也不是說將一個單體應用拆分的越細越好。談到微服務就不得不提到」十二因素法則「,以下圖所示。 架構
設計系統的組織,最終產生的設計等同於組織以內、之間的溝通結構。
——康威定律
開發和運維看似是兩個貌似互相矛盾的角色。由於開發負責業務的持續迭代,會爲系統引入大量的變動,若是系統正在穩定運行,那麼每次上線和發佈都給系統帶來新的風險。而運維追求的是系統可用性、SLA、而變動就意味着可能帶來的不穩定。併發
構建本身的CI/CD 持續構建管道與發佈流程,如使用Jenkins。app
容器化最大的好處是保持運行環境的一致性,只要應用能夠打包成容器鏡像(咱們一般使用Docker容器),就能夠一次編譯,而後處處運行。
同時,容器也能夠做爲應用運行的最小組件來部署,且更適合做爲無狀態應用的運行。結合容器編排工具(如Kubernetes)將大大加強系統的擴展性和自愈能力,輕鬆應對大流量下的高併發場景,加快業務的迭代速度,Kubernetes做爲CNCF成員的核心,自己就是與雲原生應用的理念緊密結合的產物。
雲原生中包含的不一樣思想,與其所解釋的雲上應用架構應該具有的特性幾乎是一一對應的。運維
雲時代的雲原生應用大勢已來,將傳統的單體架構應用遷移到雲原生架構上,你準備好了嗎?
俗話說,意識決定行動。在遷移到雲原生應用以前,咱們須要先對 Cloud Native(雲原生)的概念、組織形式、實現技術有一個大概的瞭解,這樣才能真正進入到雲原生架構實踐中。
公有云大行其道,私有云廠商也不斷涌現,爲了業務的快速迭代,爲了快速造成本身的產業生態,各個業務需求方都在積極的評估和採納公有云方案。
真正的雲原生應用架構不該該限制應用的開發語言和架構選擇,雖然目前以Java應用的開發者居多,在雲原生概念出來以前就已經積累了很多分佈式應用管理經驗,如Netflix OSS。
實際上雲原生應用架構應該適用於任何應用類型。雲原生應用架構適用於異構語言的程序開發,不只僅是針對Java語言。目前雲原生應用生態系統已經初具規模,CNCF成員不斷髮展壯大,基於Cloud Native的創業公司不斷涌現,Kubernetes引領容器編排潮流和 Service Mesh技術,Go語言的興起等,這些都爲將傳統應用遷移到雲原生架構提供了更多的選擇。分佈式
《Cloud Native Go:構建基於Go和React的雲原生Web應用與微服務》,點此連接可在博文視點官網查看此書。
【美】Kevin Hoffman、Dan Nemeth 著
TalkingData:宋淨超 吳迎鬆 徐蓓 馬超 譯
1. 雲原生是雲計算時代的發展趨勢和必然結果
本書經過一個雲原生應用項目的構建,爲你們介紹了雲原生的道與術,引導讀者瞭解雲原生理念的產生、應用場景、優點。
2. 集現今諸多熱點技術之大成
本書在構建雲原生項目時,涉及Docker、持續集成、微服務、DevOps、事件溯源與CQRS等衆多備受關注的技術熱點,無疑會讓讀者受益不淺。
3. Go語言助理雲開發完美實現
Go語言以其簡單優雅、快速安全、支持高併發等特性,成爲雲計算時代的最優語言。本書將帶領讀者正確認識Go語言,掌握用Go構建應用程序的方法。
4. 流程完整,示例具體詳細
本書從搭建平臺開始,逐步帶領讀者開發一個完整的雲上項目。其中的每一環節都有詳細講解。示例具備表明性,代碼詳細,幫助讀者輕鬆掌握雲原生開發的關鍵。微服務