函數計算(FAAS)是一項由事件驅動的全托管 Serverless 計算服務,用戶無需管理和運維服務器等基礎設施,只聚焦于實現業務邏輯代碼。在這種模式下,開發者只需要編寫并上傳函數代碼,剩下的資源管理、服務器運維與監控、可擴展性和高可用性等都由云服務提供商處理。此外,函數計算還采用按需付費的模式,根據實際業務流量的大小彈性使用計算資源(包括網絡、內存、CPU、存儲、中間件等),按需付費。函數計算適合事件驅動的應用場景,例如響應HTTP請求、執行定時任務、處理文件上傳、處理音視頻等。
函數計算與傳統服務的核心差異
傳統的Serverful服務如上圖所示。要可靠地實現一個服務的功能,開發者不僅需要完成業務邏輯的開發,還要關心流量如何接入、流量如何調度、如何實現負載均衡、如何合理選型中間件及其在集群中的架構以實現高可用。總而言之,傳統的Serverful服務,開發者要維護各種服務資源和復雜的架構,伴隨著固定的投入成本,運維成本也很高,而開發效率比較低。
函數計算如上圖所示。開發者無需關心現代分布式服務中的諸如流量接入、流量調度、負載均衡、可觀測性、高可用和彈性伸縮等難題,這些都作為函數計算基礎設施的一部分,可以從云服務提供商處獲取,而開發者只需要聚焦實現自己的業務邏輯即可。
函數計算可以做什么
部署Web應用
Web應用是一種典型的事件驅動應用。函數計算搭配數據庫、緩存、消息中間件等云產品,開發者只需要編寫業務代碼即可快速構建可靠的、可彈性伸縮的Web應用。這些程序可同時部署在多個數據中心實現高可用運行。
數據分析和處理
函數計算支持豐富的事件源。通過簡單地配置事件觸發條件,只需要很少的配置和代碼,函數計算就可以對數據進行實時分析和處理。比如對日志數據進行清洗和處理、對上傳對象存儲的文件進行解壓、校驗和轉換等。
機器學習和AI推理
部署機器學習模型,借助云上的彈性資源,進行實時預測或批量預測,處理圖形、音頻、視頻等多媒體數據。
物聯網(loT)應用
處理來自loT設備的數據,如城市智慧交通中采集的各類傳感器讀數、執行邊緣計算任務等。
定時任務
設置定時觸發器,執行定時任務,如報表生成、數據備份等。只有在定時任務運行期間才需要使用資源,大大提升了資源利用率。
如何使用
使用準備
為了流暢地使用函數計算進行應用部署和調試,您需要具備以下經驗和知識:
- Serverless架構基礎:理解Serverless架構的基本理念,包括其三種形態:函數即服務(FaaS)、平臺即服務(PaaS)和后端即服務(BaaS)。
- 高級編程語言:熟悉至少一種如Python、Node.js、Java、Go、.NET Core等高級編程語言,并掌握相關運行環境和依賴管理的方法。
- 網絡知識:了解云計算基礎概念,包括公有云、私有云網絡等網絡相關知識。
工作流程
為了順利使用函數計算服務,您需要按照以下步驟操作:
- 開通服務:首先,您需要注冊天翼云賬號并按照指引開通函數計算服務,具體步驟請參考新手入門。
- 編寫應用:開發者使用合適的編程語言編寫函數應用,天翼云函數計算支持的開發語言參考代碼開發概述。
- 上傳應用:將開發完成的應用上傳至函數計算平臺,以便進行部署和后續的執行。
- 觸發執行:函數可以通過事件觸發執行。函數計算能夠根據請求量自動進行擴縮容,這一過程對用戶完全透明。
- 計費結算:費用將根據函數的實際執行時長和資源使用量進行結算,更多計費信息請參考計費概述。
使用方式
您可以通過函數計算控制臺提供的Web界面,通過控制臺可以方便地訪問和管理函數計算的各項功能。有關如何快速創建函數的詳細步驟和指引,請參考新手入門。
多語言支持
當前支持Python、Java、Go、Node.JS、PHP、C#等。
產品計費
關于函數計算的計費詳情,請參見計費概述。