云原生到底是什么?帶你了解云原生的那些事兒

      網友投稿 860 2025-03-31

      大家言必稱云原生,卻鮮少有人告訴你到底什么是云原生,若是找資料來看,讀完大多會感覺云繞霧罩,一知半解,總之虛得很;甚至會讓你一度懷疑自己的智商,不過我對于讀不懂的文章,一律歸因于寫文章的人太蠢,當然這不一定是事實,但這樣的思考方式能讓我避免陷入自我懷疑的負面情緒。


      云原生之所以解釋不清楚,是因為云原生沒有確切的定義,云原生一直在發展變化之中,解釋權不歸某個人或組織所有。

      何謂云原生?

      技術的變革,一定是思想先行,云原生是一種構建和運行應用程序的方法,是一套技術體系和方法論。云原生(CloudNative)是一個組合詞,Cloud+Native。Cloud表示應用程序位于云中,而不是傳統的數據中心;Native表示應用程序從設計之初即考慮到云的環境,原生為云而設計,在云上以最佳姿勢運行,充分利用和發揮云平臺的彈性+分布式優勢。

      Pivotal公司的Matt Stine于2013年首次提出云原生(CloudNative)的概念;2015年,云原生剛推廣時,Matt Stine在《遷移到云原生架構》一書中定義了符合云原生架構的幾個特征:12因素、微服務、自敏捷架構、基于API協作、扛脆弱性;到了2017年,Matt Stine在接受InfoQ采訪時又改了口風,將云原生架構歸納為模塊化、可觀察、可部署、可測試、可替換、可處理6特質;而Pivotal最新官網對云原生概括為4個要點:DevOps+持續交付+微服務+容器。

      2015年云原生計算基金會(CNCF)成立,CNCF摻和進來后,最初把云原生定義為包括:容器化封裝+自動化管理+面向微服務;到了2018年,CNCF又更新了云原生的定義,把服務網格(Service Mesh)和聲明式API給加了進來。

      可見,不同的人和組織對云原生有不同的定義,相同的人和組織在不同時間點對云原生也有不同的定義,真是亂的一匹,搞得鄙人非常暈菜,我的應對很簡單,選一個我最容易記住和理解的定義:DevOps+持續交付+微服務+容器。

      總而言之,符合云原生架構的應用程序應該是:采用開源堆棧(K8S+Docker)進行容器化,基于微服務架構提高靈活性和可維護性,借助敏捷方法、DevOps支持持續迭代和運維自動化,利用云平臺設施實現彈性伸縮、動態調度、優化資源利用率。

      云原生構建應用簡便快捷,部署應用輕松自如、運行應用按需伸縮。優點不一而足,缺點微乎其微;秒殺傳統Web框架,吊打祖傳IT模式,實在是保命**、評優晉級不可多得的終極絕密武器。

      云元素的四要素

      微服務:幾乎每個云原生的定義都包含微服務,跟微服務相對的是單體應用,微服務有理論基礎,那就是康威定律,指導服務怎么切分,很玄乎,凡是能稱為理論定律的都簡單明白不了,不然就忒沒b格,大概意思是組織架構決定產品形態,不知道跟馬克思的生產關系影響生產力有無關系。

      微服務架構的好處就是按function切了之后,服務解耦,內聚更強,變更更易;另一個劃分服務的技巧據說是依據DDD來搞。

      容器化:Docker是應用最為廣泛的容器引擎,在思科谷歌等公司的基礎設施中大量使用,是基于LXC技術搞的,容器化為微服務提供實施保障,起到應用隔離作用,K8S是容器編排系統,用于容器管理,容器間的負載均衡,谷歌搞的,Docker和K8S都采用Go編寫,都是好東西。

      云原生到底是什么?帶你了解云原生的那些事兒

      DevOps:這是個組合詞,Dev+Ops,就是開發和運維合體,不像開發和產品,經常刀刃相見,實際上DevOps應該還包括測試,DevOps是一個敏捷思維,是一個溝通文化,也是組織形式,為云原生提供持續交付能力。

      持續交付:持續交付是不誤時開發,不停機更新,小步快跑,反傳統瀑布式開發模型,這要求開發版本和穩定版本并存,其實需要很多流程和工具支撐。

      如何云原生?

      首先,云原生借了云計算的東風,沒有云計算,自然沒有云原生,云計算是云原生的基礎。

      隨著虛擬化技術的成熟和分布式框架的普及,在容器技術、可持續交付、編排系統等開源社區的推動下,以及微服務等開發理念的帶動下,應用上云已經是不可逆轉的趨勢。

      云計算的3層劃分,即基礎設施即服務(IaaS)、平臺即服務(PaaS)、軟件即服務(SaaS)為云原生提供了技術基礎和方向指引,真正的云化不僅僅是基礎設施和平臺的變化,應用也需要做出改變,擯棄傳統的土方法,在架構設計、開發方式、部署維護等各個階段和方面都基于云的特點,重新設計,從而建設全新的云化的應用,即云原生應用。

      1. 本地部署的傳統應用往往采用c/c++、企業級java編寫,而云原生應用則需要用以網絡為中心的go、node.js等新興語言編寫。

      2. 本地部署的傳統應用可能需要停機更新,而云原生應用應該始終是最新的,需要支持頻繁變更,持續交付,藍綠部署。

      3. 本地部署的傳統應用無法動態擴展,往往需要冗余資源以抵抗流量高峰,而云原生應用利用云的彈性自動伸縮,通過共享降本增效。

      4. 本地部署的傳統應用對網絡資源,比如ip、端口等有依賴,甚至是硬編碼,而云原生應用對網絡和存儲都沒有這種限制。

      5. 本地部署的傳統應用通常人肉部署手工運維,而云原生應用這一切都是自動化的。

      6. 本地部署的傳統應用通常依賴系統環境,而云原生應用不會硬連接到任何系統環境,而是依賴抽象的基礎架構,從而獲得良好移植性。

      7. 本地部署的傳統應用有些是單體(巨石)應用,或者強依賴,而基于微服務架構的云原生應用,縱向劃分服務,模塊化更合理。

      可見,要轉向云原生應用需要以新的云原生方法開展工作,云原生包括很多方面:基礎架構服務、虛擬化、容器化、容器編排、微服務。幸運的是,開源社區在云原生應用方面做出了大量卓有成效的工作,很多開源的框架和設施可以通過拿來主義直接用,2013年Docker推出并很快成為容器事實標準,隨后圍繞容器編排的混戰中,2017年誕生的k8s很快脫穎而出,而這些技術極大的降低了開發云原生應用的技術門檻。

      雖說云原生的推介文檔有引導之嫌,但面對它列舉的優點,作為杠精的我亦是無可辯駁。這么說的話,云原生也忒好了吧,應用是不是要立刻馬上切換到云原生架構?我的觀點是:理想很豐滿,現實經常很骨感,需從應用的實際需要出發,目前的問題是否真的影響到業務發展,而推倒重來的代價能否承受得來。

      技術的趨勢和影響

      軟件設計有兩個關鍵目標:高內聚、低耦合,圍繞這2個核心目標,又提出了單一職責、開閉原則、里氏替換、依賴導致、接口隔離、最少知識等設計原則。

      軟件工程師一直都在為這兩個目標而努力奮斗,以求把軟件編寫得更加清晰、更加健壯、更加易于擴展和維護。

      但后來,人們發現有更多的訴求,希望開發軟件變得更簡單、更快捷,程序員希望更少編寫代碼,非專業人員也希望能開發程序,于是,更多的更傻瓜的編程語言被發明出來,更多的編程技術和編程思想被發明出來,比如庫、組件、云基礎設施。

      于是很多技術變成了屠龍之技,比如匯編,時代變了,建國后動物不能成精了,沒有龍可以宰了,然后很多軟件工程師搖身一變成了調參工程師、Call API磚家、用庫包能手、拼組件達人,這是效率分工的結果,也是技術發展的使然。

      縱觀近二十年的科技互聯網發展歷程,大的趨勢是技術下沉,特別是近些年,隨著云計算的發展和普及,基礎設施越來越厚實,業務開發變得越來越容易,也越來越沒有技術含量,而之前困擾小團隊的性能、負載、安全性、擴展性問題都不復存在,這不禁讓互聯網行業的油膩大叔們噤若寒蟬,仿佛分分鐘就要被卷入歷史洪流而萬劫不復。

      雖然不可否認技術的重要性在降低,但也還不至于那么悲觀。遙想PC時代,當VB、Delphi、MFC出現的時候,也有類似論調,所見即所得,點點鼠標,就可以開發PC桌面程序,是不是很高端?那時候碼農的擔心相比現在恐怕是只多不少吧,但后來隨著互聯網興起,出現了后端開發這個工種,碼農很快找到了新的戰場,網絡、分布式、數據庫、海量服務、容災防錯,于是又玩出一堆新花樣。

      如果說PC時代的基礎設施是控件庫,互聯網時代的基礎實施是云,那AI時代基礎設施是什么?又會有什么高端玩法?

      ---------------------------

      容器 微服務 云原生

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:ppt轉為pdf(ppt轉為pdf視頻還能播放嗎)
      下一篇:汽車生產中的RFID倉庫管理解決方案
      相關文章
      亚洲色四在线视频观看| 综合亚洲伊人午夜网 | 亚洲乱码在线播放| 亚洲国产精品人久久| 亚洲精品无码av人在线观看| 亚洲精品成人片在线观看| 亚洲国产人成中文幕一级二级| 丰满亚洲大尺度无码无码专线| 亚洲va中文字幕| 久久久久亚洲国产AV麻豆| 自拍偷自拍亚洲精品播放| 午夜亚洲国产精品福利| 亚洲AV无码乱码在线观看| 亚洲AV无码一区二区三区在线观看 | 亚洲人成人网站色www| 亚洲日韩一页精品发布| 亚洲熟女少妇一区二区| 亚洲三区在线观看无套内射| 国产亚洲一区二区在线观看| 亚洲妇熟XXXX妇色黄| 亚洲自偷自拍另类12p| 亚洲福利一区二区| 亚洲国产av一区二区三区丶| 国产亚洲sss在线播放| 亚洲欧洲无码一区二区三区| 精品国产亚洲第一区二区三区| xvideos亚洲永久网址| 亚洲综合av永久无码精品一区二区| 亚洲综合另类小说色区| 亚洲av无码专区国产乱码在线观看| 18gay台湾男同亚洲男同| 亚洲一级毛片视频| 亚洲午夜无码久久久久软件| 精品亚洲视频在线| 久久久青草青青国产亚洲免观| 精品亚洲综合久久中文字幕| 亚洲最大的成网4438| 久久精品国产亚洲αv忘忧草| 亚洲一线产区二线产区区| 在线视频亚洲一区| 中文字幕人成人乱码亚洲电影|