Serverless作為近幾年興起的新概念,相信不少人都對其有所耳聞,但究竟什么是Serverless?它真的不需要服務器了嗎?傳統(tǒng)業(yè)務到底如何和Serverless適配呢?
本文將通過WordPress建站場景,為您介紹基于Serverless的低成本、高性能的全新建站方案。
01.
Serverless介紹
Serverless顧名思義,即為“無服務器”,這里的“無服務器”并不是真正不需要服務器,而是將服務器的維護交給云廠商處理,開發(fā)者只需要管理業(yè)務層代碼,并且按照計算使用量計費,大大節(jié)省了運維成本。以下圖為例,傳統(tǒng)部署方案,開發(fā)者必須先預估業(yè)務流量,并根據(jù)業(yè)務流量最大值購買服務器,往往會導致預估偏差導致流量溢出或資源浪費的問題。
Serverless方案則類似于網(wǎng)約車,根據(jù)請求量,自動進行擴縮容,真正實現(xiàn)資源都按照請求來計費,不使用不付費。
目前,Serverless的應用場景廣泛,大部分傳統(tǒng)業(yè)務均可以在Serverless云函數(shù)上完美支持,接下來將以部署一個WordPress網(wǎng)站為例,介紹HTTP服務在Serverless架構(gòu)的具體實現(xiàn)。
02.
Serverless WordPress架構(gòu)介紹
首先我們看一下傳統(tǒng)的PHP服務架構(gòu):
用戶請求通過Apache或Ngnix Web服務器,經(jīng)php-fpm模塊傳遞給服務端解析,最后然后將解析后的結(jié)果返回給用戶,如下圖所示:
而在云函數(shù)架構(gòu)下,這套邏輯通過函數(shù)的不同模塊實現(xiàn):
WordPress原生代碼掛載在CFS上,用戶的請求經(jīng)過API網(wǎng)關到達函數(shù)環(huán)境,函數(shù)通過內(nèi)置的PHP運行環(huán)境完成請求的轉(zhuǎn)發(fā)和處理,將獲取的WordPress解析結(jié)果返回給用戶,如下圖所示:
·傳統(tǒng)服務中的Apache/Nginx服務器模塊,由函數(shù)內(nèi)置環(huán)境模塊完成,用戶不需要再進行配置;
·PHP環(huán)境,可以在函數(shù)運行環(huán)境內(nèi),通過Custom Runtime打包自己的環(huán)境和代碼一起上傳部署;
·php-fpm模塊由PHP模塊替代,由于云函數(shù)為單實例單并發(fā),多個請求可自動擴縮容,無需通過php-fpm進行進程管理;
·Location轉(zhuǎn)發(fā)管理,由用戶函數(shù)handler.php實現(xiàn),handler.php文件和WordPress原生代碼一起掛載在CFS上;
03.
Serverless WordPress方案優(yōu)勢
和傳統(tǒng)Web應用部署方案對比如下:
對比而言,云函數(shù)建站方案主要優(yōu)勢如下:便宜、簡單,對于中長尾的低負載業(yè)務,可以做到無請求時不計費,自帶彈性伸縮、容災能力。
04.
Serverless WordPress部署實踐
目前,您可以通過騰訊云Serverless應用控制臺或CODING Pages網(wǎng)站托管服務,一鍵創(chuàng)建WordPress應用,將自動為您創(chuàng)建以下資源:
Serverless應用控制臺部署
1.進入Serverless應用控制臺,點擊「新建應用」按鈕,選擇「應用模版創(chuàng)建」,填入您的應用名稱,并選擇「WordPress框架」創(chuàng)建卡片;
控制臺鏈接:https://console.cloud.tencent.com/sls?from=wx
2.點擊「創(chuàng)建」,自動進入應用部署日志頁面,此過程通常需要90s左右,請耐心等候;
3.部署完成后,可以在應用詳情頁登錄您的WordPress網(wǎng)站,并實現(xiàn)頁面監(jiān)控,綁定自定義域名等后續(xù)操作;
CODING Pages網(wǎng)站托管服務部署
除了Serverless控制臺外,目前CODING Pages網(wǎng)站托管服務也已經(jīng)支持WordPress一鍵部署,如果您已有CODING賬號,歡迎體驗。