近年來,函式即服務(Function as a Service,FaaS)在資訊開發、資訊運作領域快速增長。函式即服務屬於雲端運算的一環,雲端運算則經常與其他熱門資訊技術一同被談及,如應用程式介面(API)、物聯網(IoT)、行動應用程式(Mobile App)等。
不過,雲端技術在開發上的用處價值遠大於其他熱門技術,在一份由New Stack發佈的「無伺服器技術指引(Guide to Serverless Technologies)」報告中,我們可以發現,「無伺服器」技術已在多種運用情境中被大程度地運用,依據運用率高低依序為73% HTTP REST應用程式介面與網頁型應用程式、68%批次作業或排程工作、60%商務商業邏輯運作,以及34%持續整合管線。
New Stack的調查報告並不讓人意外,最需要運用無伺服器技術的是雲端型應用程式,比例將近是整體受訪群的四分之三。而更有趣的在後頭,批次與排程的運用也佔了高比例,至於商務、商業邏輯串連運作也達過半。在四種高比例運用項中,「排程」這一項主要是運用雲端函式來管理雲端資產,而所謂的雲端資產指的是租賃使用的運算力、儲存空間、網路流量等。
運用無伺服器、函式即服務(Serverless、FaaS兩者近似但有時並不完全等同)的技術,可以把雲端運算資源最佳化運用,在運算負荷高時增加運算資源,而在輕量載送時則自動停用、釋放與歸還資源給雲端服務供應商,資源得以彈性、即時地縮放,此特別適合用於虛擬容器與微服務的搭配運作上。完全依據應用程式需求來增減資源,並依據資源使用量付費,閒置未用的資源則因歸還而不需付費,如此可讓雲端運算更自動化、合理精省成本。
有些人會覺得,應用程式閒置時確實會有一些資源浪費,其實並不多,不需要太在意。但是積少成多,如果同時開啟與執行多個應用程式,累積起來的閒置浪費與開銷就會很可觀。
要想達到「使用時開啟、閒置時退還」的自動化、合理化運作必須使用FaaS/Serverless的排程能力,事先想定各種應用程式的使用情境,以及因應情境而有的資源調配、調派動作,例如有些應用程式其實只給企業內員工在工作天時使用,如此在假日時就可以關起來,退用其運算資源,進而節省成本。
F5已與國際重量級雲端服務商合作,運用服務商的條件自動化公有雲函式,如AWS Lambda、Google Cloud Functions、Azure Functions等,來實現應用程式的預先排程運作,使過往在企業自有資訊機房、企業私有雲內運用的應用程式調派、調撥技術,也能在公有雲環境上實現。
<本文作者:張紘綱,目前為F5 Networks 台灣區總經理。>