Slide
Slide
Slide
Hitachi_AI_HCI
Hitachi_HCI
HCI
previous arrow
next arrow

雲原化傳統網站平台 AWS推「無伺服器LAMP堆疊」

AWS Lambda
AWS具備推出的本錢,仍擁有Lambda服務和Aurora數據庫。原理是Apache和處理PHP生成動態內容,改由Lambda和API Gateway負責。

新科技速遞

公有雲AWS推出了「無伺服器LAMP堆疊」(Serverless LAMP stack),迅速引起不少關注。AWS是最早推動雲原生技術的公有雲,LAMP又廣泛用於建立網站,雲原生可大大減低管理難度,甚至是營運成本。

以往建立LAMP,包括有4大組件,Linux作業系統、HTTP伺服器Apache、MySQL數據系統、PHP語言處理器, 所以稱為LAMP。不少流行應用框架,例如WordPress就利用了LAMP。

近年,PHP開發框架也大行其道,包括Laravel和Symfony,主要是出現了Composer的PHP函式庫管理技術,管理函式庫依存性,提供相依函式庫管理功能,結果建立極複雜PHP框架,以物件導向(Object Oriented)建立應用。不少人甚至認為Composer為PHP注入了新生命

LAMP堆疊潛力無限

全球有大量Web應用均以LAMP開發堆疊,如果變成雲原生的應用商機之大可想而知,也解決不少日常維護難題目前用戶在雲端配置LAMP的虛擬機器(以公有雲技語,或稱為Instance),必須選擇配置地點、處理器種類、記憶體數量等。不過,公有雲不負責資源配置缺乏足夠記憶體MySQL數據庫有可能無聲無息就停頓了

管理人員須監察用量。假如用量太高,須加負載平均器,以確保可用性。當然配置工作閣下自理額外費用自付

有人誤以為公有雲就毋須管理基建,實際上大錯特錯。除了公有雲「雲原生」服務,「基建即服務」的雲服務,管理基建仍是客戶責任。「無伺服器LAMP堆疊」的優點可讓LAMP建立應用,具備無限橫向的擴充能力,自動隨連線需求,自動置配額外資源。

AWS具備推出的本錢,仍是擁有Lambda服務和Aurora數據庫。原理為Apache和處理PHP生成的動態內容,改由Lambda和API Gateway負責。Lambda可透過虛擬方式執行任何類型的應用或後端服務,全部毋須管理,上傳程式碼之後,Lambda 運用其高可用性來處理執行程式碼及擴充各項工作。

Aurora則是AWS專門開發取代MySQL數據庫,據說性能比MySQL快5倍,Aurora也具備出伺服器版本,與MySQL完全兼容MySQL應用毋須更改直接在Aurora執行。

Lambda收費標準分別為程式碼執行時間 (每100毫秒加計一次費用),以及程式碼的觸發次數由於以用量收費用量低的話,幾乎毋須太大開支。如果網站有季節性變化,以Lambda按需收費比部署多部VM成本要低。

Lambda簡易部署

Lambda是無伺服器技術,只是按觸發而執行程式碼,不必佈建或管理伺服器,只需為使用的運算時間支付費用。Lambda是公有雲首個無伺服器的技術,然後各公有雲推出以Functions命名的無伺服器運算。上述性能相當吸引,不少應用相繼使用,結果變成AWS忠實用戶。

AWS的「無伺服器LAMP堆疊」也跟開源的LAMP有出入,網上從外間的HTTP請求,先經CloudFront全球內容交付網絡(CDN),靜態部分由負責Simple Storage Service讀寫或Amplify Console回應動態的PHP就經API Gateway送向Lambda執行,然後從Aurora讀寫數據,再回傳給CloudFront。

小題:雲原生各有利弊

本港不少機構亦利用CloudFront作為CDN,媒體庫和網站內容也分開,CDN可加快向網頁傳送靜態內容反應。上述的部署一舉可解決LAMP擴充的各項難題。

當然,各公有雲各師各法,具備不同雲原生方案,例如LAMP可變成Docker容器,然後再以Google雲原生Cloud Run方案,變成容器化運行既保留LAMP開放性,又具備了雲原生的各種優點

不少批評「無伺服器LAMP堆疊」,指用戶被鎖死在AWS但AWS開發便於部署的雲原生原意就是想留住用戶

從開發和配置角度AWS的LAMP堆疊」簡潔易明相對而言用戶包裝LAMP堆疊成為容器後,再上載至GitHub,配置Cloud Run上過程可能出錯的機會,肯定大得多。最後AWS技術支援和生態亦較其他公有雲積極和進取,所以「無伺服器LAMP堆疊」亦可能

https://aws.amazon.com/blogs/compute/introducing-the-new-serverless-lamp-stack/

Leave a Reply

Your email address will not be published. Required fields are marked *