簡單網(wǎng)站制作實例網(wǎng)絡(luò)營銷品牌案例
云原生是什么
云原生是面向“云”而設(shè)計的應(yīng)用,因此技術(shù)部分依賴于傳統(tǒng)云計算的 3 層概念,基礎(chǔ)設(shè)施即服務(wù)(IaaS)、平臺即服務(wù)(PaaS)和軟件即服務(wù)(SaaS)。
例如,敏捷的不可變基礎(chǔ)設(shè)施交付類似于 IaaS,用來提供計算網(wǎng)絡(luò)存儲等基礎(chǔ)資源,這些資源是可編程且不可變的,直接通過 API 可以對外提供服務(wù);有些應(yīng)用通過 PaaS 服務(wù)本來就能組合成不同的業(yè)務(wù)能力,不一定需要從頭開始建設(shè);還有一些軟件只需要“云”的資源就能直接運行起來為云用戶提供服務(wù),即 SaaS 能力,用戶直接面對的就是原生的應(yīng)用。
原生就是土生土長的意思,我們在開始設(shè)計應(yīng)用的時候就考慮到應(yīng)用將來是運行云環(huán)境里面的,要充分利用云資源的優(yōu)點,比如?云服務(wù)的彈性和分布式優(yōu)勢。
微服務(wù)
微服務(wù)解決的是我們軟件開發(fā)中一直追求的低耦合+高內(nèi)聚,記得有一次我們系統(tǒng)的接口出了問題,結(jié)果影響了用戶的前臺操作,于是黎叔拍案而起,靈魂發(fā)問:“為啥這兩個會互相影響?!”
微服務(wù)可以解決這個問題,微服務(wù)的本質(zhì)是把一塊大餅分成若干塊低耦合的小餅,比如一塊小餅專門負責(zé)接收外部的數(shù)據(jù),一塊小餅專門負責(zé)響應(yīng)前臺的操作,小餅可以進一步拆分,比如負責(zé)接收外部數(shù)據(jù)的小餅可以繼續(xù)分成多塊負責(zé)接收不同類型數(shù)據(jù)的小餅,這樣每個小餅出問題了,其它小餅還能正常對外提供服務(wù)。
DevOps
DevOps 的意思就是開發(fā)和運維不再是分開的兩個團隊,而是你中有我,我中有你的一個團隊。我們現(xiàn)在開發(fā)和運維已經(jīng)是一個團隊了,但是運維方面的知識和經(jīng)驗還需要持續(xù)提高。
持續(xù)交付
持續(xù)交付的意思就是在不影響用戶使用服務(wù)的前提下頻繁把新功能發(fā)布給用戶使用,要做到這點非常非常難。我們現(xiàn)在兩周一個版本,每次上線之后都會給不同的用戶造成不同程度的影響。
容器化
容器化的好處在于運維的時候不需要再關(guān)心每個服務(wù)所使用的技術(shù)棧了,每個服務(wù)都被無差別地封裝在容器里,可以被無差別地管理和維護,現(xiàn)在比較流行的工具是 docker 和 k8s。
所以你也可以簡單地把云原生理解為:云原生 = 微服務(wù) + DevOps + 持續(xù)交付 + 容器化
起源
云原生(Cloud Native)的由來
云原生的概念最早開始于 2010 年,在當時 Paul Fremantle 的一篇博客中被提及,他一直想用一個詞表達一種架構(gòu),這種架構(gòu)能描述應(yīng)用程序和中間件在云環(huán)境中的良好運行狀態(tài)。因此他抽象出了 Cloud Native 必須包含的屬性,只有滿足了這些屬性才能保證良好的運行狀態(tài)。當時提出云原生是為了能構(gòu)建一種符合云計算特性的標準來指導(dǎo)云計算應(yīng)用的編寫。
后來到 2013 年 Matt Stine 在推特上迅速推廣云原生概念,并在 2015 年《遷移到云原生架構(gòu)》一書中定義了符合云原生架構(gòu)的特征:12 因素、微服務(wù)、自服務(wù)、基于 API 協(xié)作、扛脆弱性。而由于這本書的推廣暢銷,這也成了很多人對云原生的早期印象,同時云原生也被 12 要素變成了一個抽象的概念。Matt Stine 認為在單體架構(gòu)向 Cloud Native 遷移的過程中,需要文化、組織、技術(shù)共同變革。 解讀:**云原生架構(gòu)本質(zhì)上也是一種軟件架構(gòu),最大的特點是在云環(huán)境下運行,也算是微服務(wù)的一種延伸。
什么是云原生
云原生架構(gòu)本質(zhì)上也是一種軟件架構(gòu),最大的特點