虛擬化及雲原生的一些概念
一、虛擬化
虛擬化是一種資源管理技術,是將計算機的各種實體資源(CPU、網路、記憶體、磁碟等)予以抽象和轉換後呈現出來,打破實體間不可切割的障礙。在實際的生產環境中,虛擬化主要解決高效能的物理硬體產能過剩和老舊物理硬體產能過低的重組重用兩個問題。
常用的虛擬化技術:
Docker:
Docker是容器技術,其是基於程序級別的隔離,是在作業系統內部程序與程序間的隔離。
Docker可以用來做服務應用開發(測試、部署、發版實現可持續釋出)和pass、sass等雲端計算領域
KVM:
KVM是整合在Linux核心中的虛擬化技術,可以使用Linux基於硬體的方式進行隔離,這種隔離方式是直接隔離的硬體,因此隔離的更徹底。
KVM可以用來做公有云、私有云和混合雲等虛擬化技術,同時由於KVM隔離的更徹底,因此要構建安全級別更高的私有云,就必須使用KVM。
OpenStack:
OpenStack技術是虛擬機器雲端計算基礎設定層管理平臺,例如網路、磁碟、CPU、記憶體等
VMware:
虛擬機器的PC端管理平臺
二、雲原生
(一)雲原生
雲原生是一種軟體架構開發思想,其作用(目的)就是為了讓開發的所有程式都執行在容器中。
雲原生有容器化、微服務、devops、ci/cd四個特點:
容器化:這也是雲原生的目的,就是開發的所有程式都執行在容器中,使各個專案進行隔離。
微服務:實現雲原生,最好採用微服務架構(CNCF-雲原生計算基金會:微服務 + 容器化 + service mesh)
devops:開發+運維,開發和運維的合體,devops是一種敏捷開發的思想,一種組織形式,可以實現專案的可持續交付、部署。
ci/cd:可持續整合、可持續部署
雲架構擴容思維:
雲端計算的三個層次模型分別為Iaas、Paas、Saas。
iaas:基礎設施級服務,例如物理機,kvm
paas:平臺級服務,雲平臺,例如常見的阿里雲
saas:軟體級服務,在paas的基礎上增減軟體,例如阿里雲的mysql資料庫
除了這三個層次模型外,還有Caas、Faas、Service mesh、serviceless等
Caas:容器級服務,所有的服務都執行在容器內
Faas:函式級服務,即微服務架構
Service Mesh:服務網路架構,主要是來做服務治理的,例如鏈路追蹤、服務限流、服務降級、服務監控等
serverless:無伺服器開發,開發時開發者只需要關注應用即可,不需要關注伺服器。
本地應用部署和雲原生對比
對比 | 本地部署 | 雲原生 |
程式碼更新 | 停機更新 | 不需要停機即可更新,始終會保持最新狀態,支援頻繁的更新 |
擴容 | 不支援動態擴容 | 可以動態伸縮排行擴容 |
環境要求 | 對物理硬體、網路、埠等強依賴 | 對物理硬體、網路、埠等不依賴,其物理資源是隔離的,可以實現伺服器無縫遷移 |
運維 | 需要人工運維 | 實現了自動化運維 |
對於雲原生的微服務架構,主要使用Spring Cloud,同時利用K8s將服務部署到雲端。
(二)服務部署的演變
服務部署的演變分為三個階段:物理機部署模式、虛擬機器部署模式、容器化部署模式。但是隨著服務越來越多,容器化部署並不能解決擴容、宕機恢復、容器監控、服務排程、資料安全等問題,因此服務編排工具就應運而生。
目前對於容器進行管理的三大主流平臺為Swarm、Mesos、K8s
Swarm:其特點是直接排程Docker容器,並且提供和標準Docker API一致的API。每臺伺服器上都裝有Docker並且開啟了基於HTTP的DockerAPI。這個叢集中有一個SwarmManager的管理者,用來管理叢集中的容器資源,管理者管理的物件不是伺服器層面,而是叢集層面的,也就是說通過Manager只能籠統的向叢集發出指令而不能具體到伺服器要幹什麼。
Mesos:Mesos針對不同的執行框架採取獨立的排程系統,其框架提供了Docker容器的原生支援。Mesos並不負責排程而是負責委派授權,因為很多框架都自己實現了複雜的排程。
K8s:K8s採用了pod和Lable這樣的概念把容器組合成一個個互相存在依賴關係的邏輯單元,相關容器被組成pod後會被一起排程和部署,這是K8S和Swarm、Mesos最大的區別,使用K8S可以:
自動化容器的部署和複製
隨時擴充套件和收縮容器規模
將容器組織成組,並且提供容器間的負載均衡
很容易的升級應用程式容器的新版本
提供彈性的容器等
------------------------------------------------------------------
-----------------------------------------------------------
---------------------------------------------
朦朧的夜 留筆~~