亞馬遜的Chris Munns在最近于紐約市舉辦的無服務器會議(Serverless Conference NYC)上宣布,AWS Lambda將很快支持一項名為流量轉移(traffic shifting)的功能。這項功能能對不同Lambda函數別名之間進行權重,調整同一函數在兩個版本之間的流量分配,使canary發布(canary releases)和藍綠部署(blue/green deployment)在lambda上進行成為可能。
Canarying是基礎設施即服務(IaaS)的主要運營模式之一,像Netflix等公司對它相關使用也有很詳實的記錄(例如:Roy Rapoport在QCon NYC 2014中的演講“Canary Analyze All The Things)”。使用canary發布的關鍵在于是否能夠跨越多個版本來引導流量,并控制流量分配到新部署版本的比例。基于無服務器架構的FaaS實現(如Lambda)可能會在后臺使用負載均衡器(load balancers),但是以前并不能控制這些負載均衡器。
無服務器的先驅,如Paul Johnston曾評論過在Lambda中進行canary發布的困難。在發表的《無服務器和部署問題(Serverless and Deployment Issues)》一文中,他特地用了一個章節來討論這個問題。 Johnston提出的解決方法是創建一個路由器函數(router function),但他(和其他人)也承認將任務關鍵基礎設施代碼作為應用程序的一部分并不合適。 Johnston和一些無服務器會議的與會者一樣,抓取并轉發Munns的幻燈片到推特上。其他與會者發現,觀眾對此的歡呼聲很高。
上述的功能尚未作為官方聲明發布在AWS的博客上。一般來說,博客上會包括整體的使用和配置的概述以及首先要更新的區域。
原文鏈接:Traffic Shifting in AWS Lambda Aliases Coming Soon
感謝薛命燈對本文的審校。