云原生從字面意思上來看可以分成云和原生兩個部分症概。
云是和本地相對的咒吐,傳統(tǒng)的應(yīng)用必須跑在本地服務(wù)器上线定,現(xiàn)在流行的應(yīng)用都跑在云端娜谊,云包含了IaaS,、PaaS和SaaS斤讥。
原生就是土生土長的意思纱皆,我們在開始設(shè)計應(yīng)用的時候就考慮到應(yīng)用將來是運行云環(huán)境里面的,要充分利用云資源的優(yōu)點,比如?云服務(wù)的彈性和分布式優(yōu)勢派草。
那具體要怎么利用呢撑帖,請參考下圖:
微服務(wù)
微服務(wù)解決的是我們軟件開發(fā)中一直追求的低耦合+高內(nèi)聚,記得有一次我們系統(tǒng)的接口出了問題澳眷,結(jié)果影響了用戶的前臺操作胡嘿,于是黎叔拍案而起,靈魂發(fā)問:“為啥這兩個會互相影響钳踊?衷敌!”
微服務(wù)可以解決這個問題,微服務(wù)的本質(zhì)是把一塊大餅分成若干塊低耦合的小餅拓瞪,比如一塊小餅專門負(fù)責(zé)接收外部的數(shù)據(jù)缴罗,一塊小餅專門負(fù)責(zé)響應(yīng)前臺的操作,小餅可以進一步拆分祭埂,比如負(fù)責(zé)接收外部數(shù)據(jù)的小餅可以繼續(xù)分成多塊負(fù)責(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ù)交付 + 容器化