書名: Nuclio實戰(zhàn)及源碼分析:基于Kubernetes的Serverless FaaS平臺作者名: 李彬 詹煜卓 任勝寒 張晨編著本章字數(shù): 824字更新時間: 2024-08-06 16:59:53
1.1 Serverless簡介
1.1.1 Serverless的發(fā)展背景
軟件部署使開發(fā)商和開發(fā)人員常常需要花費大量的時間來管理和維護服務器基礎設施,并且還需要關注應用程序所需的操作系統(tǒng)和配置信息等。軟件部署的發(fā)展可以劃分為四個時期:裸金屬時期、虛擬機時期、容器化時期、Serverless時期(無服務器時期)。
1)裸金屬時期。此時期的系統(tǒng)管理員要為部署的軟件準備物理服務器,這涉及安裝操作系統(tǒng)和相關的設備驅(qū)動程序、確保有足夠的內(nèi)存/磁盤/處理器可用,還要負責硬件升級等。物理硬件和部署的軟件之間存在強烈耦合,相互依賴性很強。在這里,部署單元是一個實際的服務器。
2)虛擬機時期。此時期的物理服務器上托管多個虛擬機,開發(fā)人員無須直接部署到給定的硬件,而是提供給一個虛擬機(Virtual Machine, VM)。這給升級和遷移帶來了很大的靈活性,使得部署更加可重復和靈活,而此時軟件與硬件開始分離。如果出現(xiàn)硬件故障,系統(tǒng)管理員可以將虛擬機遷移到其他硬件并避免出現(xiàn)問題。在這里,部署單元是虛擬機。
3)容器化時期。這個時期誕生了許多容器化技術,如Docker、OpenVZ、LXC、FreeBSD Jail和Solaris zones等。這些技術使系統(tǒng)管理員能夠“分割”操作系統(tǒng),在同一系統(tǒng)上運行不同的應用程序,而不會相互干擾。它們還可以讓開發(fā)人員擁有與生產(chǎn)環(huán)境緊密匹配的輕量級環(huán)境,從而使不同環(huán)境之間的操作更加一致。此外,此時期還開發(fā)了許多工具來簡化容器的創(chuàng)建和維護,許多公司使用它們來加快開發(fā)和部署的節(jié)奏。在這里,部署單元是一個容器。
4)Serverless時期。開發(fā)人員不需要考慮服務器,只需要專注自己的業(yè)務邏輯。一切服務器的配置均交給平臺執(zhí)行。業(yè)務執(zhí)行是按需收費的,這讓計算資源從固定成本變?yōu)榱丝勺兂杀尽_@對于那些流量波動大的業(yè)務來說很有吸引力。
從軟件部署層面看,在這幾個時期,都有軟件在“他處”執(zhí)行的概念,無論是在本地物理服務器上,還是在云主機的虛擬機上或者是容器上。此外,無服務器從另一個方面給出了一個抽象層次:代碼本身。有了這種新的抽象層次,就不必擔心代碼托管在“哪里”。圖1-1所示是軟件部署發(fā)展歷史的一個縮略圖。

圖1-1 軟件部署發(fā)展歷史
- Data Visualization with D3 4.x Cookbook(Second Edition)
- Learning Single:page Web Application Development
- LabVIEW 2018 虛擬儀器程序設計
- Mastering Objectoriented Python
- Java技術手冊(原書第7版)
- Practical DevOps
- INSTANT Weka How-to
- Scala謎題
- SQL Server與JSP動態(tài)網(wǎng)站開發(fā)
- C語言程序設計
- Java語言程序設計教程
- 汽車人機交互界面整合設計
- 鴻蒙OS應用編程實戰(zhàn)
- Troubleshooting Citrix XenApp?
- Web前端開發(fā)技術:HTML、CSS、JavaScript