官术网_书友最值得收藏!

1.1 Serverless簡介

1.1.1 Serverless的發展背景

軟件部署使開發商和開發人員常常需要花費大量的時間來管理和維護服務器基礎設施,并且還需要關注應用程序所需的操作系統和配置信息等。軟件部署的發展可以劃分為四個時期:裸金屬時期、虛擬機時期、容器化時期、Serverless時期(無服務器時期)。

1)裸金屬時期。此時期的系統管理員要為部署的軟件準備物理服務器,這涉及安裝操作系統和相關的設備驅動程序、確保有足夠的內存/磁盤/處理器可用,還要負責硬件升級等。物理硬件和部署的軟件之間存在強烈耦合,相互依賴性很強。在這里,部署單元是一個實際的服務器。

2)虛擬機時期。此時期的物理服務器上托管多個虛擬機,開發人員無須直接部署到給定的硬件,而是提供給一個虛擬機(Virtual Machine, VM)。這給升級和遷移帶來了很大的靈活性,使得部署更加可重復和靈活,而此時軟件與硬件開始分離。如果出現硬件故障,系統管理員可以將虛擬機遷移到其他硬件并避免出現問題。在這里,部署單元是虛擬機。

3)容器化時期。這個時期誕生了許多容器化技術,如Docker、OpenVZ、LXC、FreeBSD Jail和Solaris zones等。這些技術使系統管理員能夠“分割”操作系統,在同一系統上運行不同的應用程序,而不會相互干擾。它們還可以讓開發人員擁有與生產環境緊密匹配的輕量級環境,從而使不同環境之間的操作更加一致。此外,此時期還開發了許多工具來簡化容器的創建和維護,許多公司使用它們來加快開發和部署的節奏。在這里,部署單元是一個容器。

4)Serverless時期。開發人員不需要考慮服務器,只需要專注自己的業務邏輯。一切服務器的配置均交給平臺執行。業務執行是按需收費的,這讓計算資源從固定成本變為了可變成本。這對于那些流量波動大的業務來說很有吸引力。

從軟件部署層面看,在這幾個時期,都有軟件在“他處”執行的概念,無論是在本地物理服務器上,還是在云主機的虛擬機上或者是容器上。此外,無服務器從另一個方面給出了一個抽象層次:代碼本身。有了這種新的抽象層次,就不必擔心代碼托管在“哪里”。圖1-1所示是軟件部署發展歷史的一個縮略圖。

圖1-1 軟件部署發展歷史

主站蜘蛛池模板: 瑞金市| 长沙县| 内江市| 福泉市| 贵溪市| 都兰县| 花莲市| 阳城县| 泾阳县| 广德县| 临猗县| 仁布县| 临海市| 吴旗县| 云安县| 深州市| 文昌市| 肥东县| 都兰县| 阜阳市| 合山市| 乌苏市| 北流市| 古蔺县| 吉首市| 保德县| 乌海市| 济宁市| 吴桥县| 饶阳县| 吐鲁番市| 瓦房店市| 团风县| 龙门县| 湖南省| 瑞昌市| 安国市| 新建县| 邢台市| 福鼎市| 讷河市|