IaaS之計算
1.1 IaaS概述
IaaS(Infrastructure as a Service )提供托管的 IT 基礎(chǔ)架構(gòu),供用戶調(diào)配處理能力、存儲、網(wǎng)絡(luò)和其他基礎(chǔ)計算資源。IaaS 提供商運(yùn)行并管理此基礎(chǔ)架構(gòu),用戶可以在此基礎(chǔ)架構(gòu)上運(yùn)行選擇的操作系統(tǒng)和應(yīng)用程序軟件。
在云平臺中還會涉及以下概念:
- PaaS:平臺即服務(wù)。對應(yīng)于上面所說的提供常用的技術(shù)組件方便系統(tǒng)的開發(fā)和維護(hù);
- SaaS:軟件即服務(wù)。對應(yīng)于上面所說的提供開發(fā)好的應(yīng)用或服務(wù),按功能或性能要求付費(fèi)。
- Faas:函數(shù)即服務(wù)。服務(wù)商提供一個平臺,允許客戶開發(fā)、運(yùn)行和管理應(yīng)用程序功能,而無需構(gòu)建和維護(hù)通常與開發(fā)和啟動應(yīng)用程序相關(guān)的基礎(chǔ)架構(gòu)。
1.2 服務(wù)部署演進(jìn)歷程
- 應(yīng)用拆分
按照業(yè)務(wù)功能來劃分應(yīng)用服務(wù),整個職責(zé)更清晰,相互之間可以做到獨(dú)立升級迭代。應(yīng)用之間可能會涉及到一些公共配置,可以通過分布式配置中心Zookeeper來解決。
架構(gòu)瓶頸:
不同應(yīng)用服務(wù)之間存在共用的組件,會導(dǎo)致相同代碼存在多份,公共功能升級時全部應(yīng)用代碼都要跟著升級。
比如說JSON字符串處理組件, 加密處理組件等。
- 微服務(wù)應(yīng)用
如用戶管理、訂單、支付、鑒權(quán)等功能在多個應(yīng)用中都存在,那么可以把這些功能的代碼單獨(dú)抽取出來形成一個單獨(dú)的服務(wù)來管理, 比如說加密封裝,鑒權(quán)處理接口等。
微服務(wù)架構(gòu),應(yīng)用和服務(wù)之間通過HTTP、TCP或RPC請求等多種方式來訪問公共服務(wù),每個單獨(dú)的服務(wù)都可以由單獨(dú)的團(tuán)隊來管理。
在服務(wù)治理層面, 可以通過SpringCloud等框架實(shí)現(xiàn)服務(wù)治理、限流、熔斷、降級等功能,提高服務(wù)的穩(wěn)定性和可用性。
架構(gòu)瓶頸:
不同服務(wù)的接口訪問方式不同,應(yīng)用服務(wù)可能需要適配多種訪問方式, 才能使用服務(wù),應(yīng)用服務(wù)之間也可能相互訪問,調(diào)用鏈將會變得非常復(fù)雜冗長,邏輯變得混亂。
- 企業(yè)服務(wù)總線ESB
應(yīng)用統(tǒng)一通過ESB來訪問后端服務(wù),服務(wù)與服務(wù)之間也通過ESB來相互調(diào)用,以此降低系統(tǒng)的耦合程度。
使用企業(yè)消息總線來解除服務(wù)之間耦合問題的架構(gòu),就是所謂的SOA(面向服務(wù))架構(gòu),這種架構(gòu)與微服務(wù)架構(gòu)容易混淆,因?yàn)楸憩F(xiàn)形式比較相似。
微服務(wù)架構(gòu)更多是指把系統(tǒng)里的公共服務(wù)抽取出來單獨(dú)運(yùn)維管理的思想,而SOA架構(gòu)則是指一種拆分服務(wù)并使服務(wù)接口訪問變得統(tǒng)一的架構(gòu)思想,SOA架構(gòu)中包含了微服務(wù)的思想。
架構(gòu)瓶頸:
業(yè)務(wù)不斷發(fā)展,應(yīng)用和服務(wù)都會不斷變多,應(yīng)用和服務(wù)的部署變得復(fù)雜,同一臺服務(wù)器上部署多個服務(wù)還要解決運(yùn)行環(huán)境沖突的問題。
對于如大促這類需要動態(tài)擴(kuò)縮容的場景,需要水平擴(kuò)展服務(wù)的性能,就需要在新增的服務(wù)上準(zhǔn)備運(yùn)行環(huán)境,部署服務(wù)等,運(yùn)維將變得十分困難。
- 容器化技術(shù)
目前最流行的容器化技術(shù)是Docker,最流行的容器管理服務(wù)是Kubernetes(K8S),應(yīng)用/服務(wù)可以打包為Docker鏡像,通過K8S來動態(tài)分發(fā)和部署鏡像。
Docker鏡像可理解為一個能運(yùn)行你的應(yīng)用/服務(wù)的最小的操作系統(tǒng),里面放著應(yīng)用/服務(wù)的運(yùn)行代碼,運(yùn)行環(huán)境根據(jù)實(shí)際的需要設(shè)置好。
把整個“操作系統(tǒng)”打包為一個鏡像后,就可以分發(fā)到需要部署相關(guān)服務(wù)的機(jī)器上,直接啟動Docker鏡像就可以把服務(wù)起起來,使服務(wù)的部署和運(yùn)維變得簡單。
架構(gòu)瓶頸:
使用容器化技術(shù)后服務(wù)動態(tài)擴(kuò)縮容問題得以解決,但是機(jī)器還是需要公司自身來管理,在非大促的時候,還是需要閑置著大量的機(jī)器資源來應(yīng)對大促,機(jī)器自身成本和運(yùn)維成本都極高,資源利用率低。
- 云平臺
系統(tǒng)可部署到公有云上,利用公有云的海量機(jī)器資源,解決動態(tài)硬件資源的問題
在大促的時間段里,在云平臺中臨時申請更多的資源,結(jié)合Docker和K8S來快速部署服務(wù),在大促結(jié)束后釋放資源,真正做到按需付費(fèi),資源利用率大大提高,同時大大降低了運(yùn)維成本。
所謂的云平臺,就是把海量機(jī)器資源,通過統(tǒng)一的資源管理,抽象為一個資源整體
在云平臺上可按需動態(tài)申請硬件資源(如CPU、內(nèi)存、網(wǎng)絡(luò)等),并且之上提供通用的操作系統(tǒng),提供常用的技術(shù)組件(如Hadoop技術(shù)棧,MPP數(shù)據(jù)庫等)供用戶使用,甚至提供開發(fā)好的應(yīng)用
用戶不需要關(guān)心應(yīng)用內(nèi)部使用了什么技術(shù),就能夠解決需求(如音視頻轉(zhuǎn)碼服務(wù)、郵件服務(wù)、個人博客等)。
1.3 云虛擬機(jī)
- 介紹
-
阿里云ECS
ECS(Elastic Compute Service)是阿里云提供的性能卓越、穩(wěn)定可靠、彈性擴(kuò)展的IaaS(Infrastructure as a Service)級別云計算服務(wù)。
-
亞馬遜EC2
EC2(Amazon Elastic Compute Cloud),是一種 Web 服務(wù),能在云中提供安全且可調(diào)整大小的計算能力。該服務(wù)旨在讓開發(fā)人員能夠更輕松地進(jìn)行 Web 規(guī)模的云計算。
-
騰訊云CVM
CVM(Cloud Virtual Machine),提供安全可靠的彈性計算服務(wù),可以在云端獲取和啟用 CVM,來實(shí)現(xiàn)計算需求。隨著業(yè)務(wù)需求的變化,可以實(shí)時擴(kuò)展或縮減計算資源。
- 云虛擬機(jī)對比
- 性能評測:
(累計值越小, 綜合排名越高。)
- 成本對比:
1.4 云虛擬機(jī)如何選型
-
虛擬機(jī)類型
主要類型對比:
類型 AWS代號 阿里云代號 騰訊云代號 通用型 M G S 計算型 C C C、CN 內(nèi)存型 R R M GPU計算型 P GN AMD、NVIDIA 存儲型 I、D I、D D 阿里云還包含: 本地SSD型、高主頻型、FPGA計算型、NPU計算型、超級計算集群(SCC)、彈性裸金屬服務(wù)器(自研新一代云服務(wù)器)等。
官方參考
騰訊云還包含: 高 IO 型實(shí)例族、批量型實(shí)例族等。
官方參考
-
代別更新
隨著虛擬化技術(shù)不斷發(fā)展, 云廠商需要不斷地對虛擬機(jī)進(jìn)行更新:
-
硬件方面, 比如CPU的換代, 內(nèi)存升級等;
-
軟件層面,比如內(nèi)核的改進(jìn),虛擬化技術(shù)的提升等。
-
-
實(shí)例配置
實(shí)例按業(yè)界標(biāo)準(zhǔn)劃分為micro、small、medium、large、xlarge。
類型 vCPU 內(nèi)存 micro 1 1 small 1 2 medium 2 4 large 2 8 xlarge 4 16 2xlarge 8 32
1.5 云虛擬機(jī)的創(chuàng)建操作
- 選擇虛擬機(jī)類型
如果測試, 可以選取搶占實(shí)例, 節(jié)省成本。
-
網(wǎng)路和安全組配置
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-UE2xoy6O-1660718280551)(images/image-20201112150546245.png)]
-
系統(tǒng)配置
- 分組設(shè)置
- 遠(yuǎn)程連接
通過遠(yuǎn)程連接可以直接進(jìn)行操作, 一般會采用遠(yuǎn)程連接工具進(jìn)行管理, 比如VNC或SSH連接工具。
如果需要節(jié)省成本, 可以選擇“停機(jī)不收費(fèi)”, 但不能保障穩(wěn)定性。
1.6 服務(wù)部署訪問
-
開通80端口訪問權(quán)限
在網(wǎng)絡(luò)與安全 -> 安全組里面, 新增配置:
-
安裝JDK
yum -y install java-1.8.0-openjdk.x86_64
-
打包服務(wù)
maven clean install
-
配置服務(wù)器連接
直接通過外網(wǎng)IP訪問:
-
運(yùn)行服務(wù)
java -jar app-basic.jar
-
訪問驗(yàn)證
http://47.104.9.75:10692/getOrder文章來源:http://www.zghlxwxcb.cn/news/detail-791054.html
專注Java技術(shù)干貨分享,歡迎志同道合的小伙伴,一起交流學(xué)習(xí)文章來源地址http://www.zghlxwxcb.cn/news/detail-791054.html
到了這里,關(guān)于架構(gòu)設(shè)計基礎(chǔ)設(shè)施保障IaaS之計算篇的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!