網站開發(fā) 如何高效、極簡構造無服務器Web應用(組圖) aspnet開發(fā)酒店網站 大約多少錢
2022-10-01
正如它在過去顛覆諾基亞一樣,它的出現(xiàn),也帶來了一種全新的、顛覆性的云開發(fā)架構模式。在它出現(xiàn)之前,開發(fā)人員無法想象能夠在幾分鐘內快速在線部署 Web 應用程序。近日,騰云網絡技術講座特邀資深技術專家孫華分享《如何高效、最小化地構建 Web應用》。孫華從 .
時代應用發(fā)展
2012年,鐵云網首先提出了這一概念。2014年,騰云網絡的發(fā)布,首次從概念走向落地,也標志著時代的開始。孫華認為,作為一種計算服務,主要有以下四個特點。
的出現(xiàn),為應用程序的開發(fā)和部署提供了極簡模式。目前有幾十萬用戶,用戶的通話高峰通常在每秒百萬以上。
可口可樂騰云網是用戶之一。疫情期間,可口可樂在短短一周內迅速將倒酒應用原型上線,實現(xiàn)了手機與飲料機的毫秒級通信,從構思到交付的時間縮短了50%。
它是一家在線教育服務提供商。疫情期間,在線學習訪問量增長了2-3倍。通過將服務遷移到服務器,P95 的性能得到了提高(降低了近 50%),并且通過提高利用率將成本降低了四分之一。
無服務器 Web 應用程序用例
該架構常見的應用場景包括數(shù)據處理、IT運維自動化等,很多用戶也會將其應用到前端的web應用中,包括.js、.js等應用。它可以將對應的網頁渲染到客戶端,也支持提供json來分離前后端的REST API。靜態(tài)的,Vue前端通過HTTP請求調用后端API網站開發(fā),獲取數(shù)據,展示給客戶。此外,移動后端應用程序經常使用開發(fā)小程序的后端。
無服務器 Web 應用程序的特點是什么?首先,在開發(fā)Web應用程序最常見的方式中,Web應用程序進程運行在服務器中。此時,Web 應用程序將監(jiān)聽一個端口。此外,每個請求都由一個單獨的計算實例處理,無論 CPU 或內存如何,它都專用于服務該請求。這種方式的好處是可以隔離每個請求,不會有一個請求崩潰,影響其他用戶的并發(fā)需求。
其次,Web 應用程序在其中運行,并且需要是無狀態(tài)的應用程序。由于請求是隨機分布到多個計算實例上的,每個計算實例在本地緩存數(shù)據,下一個請求可能不會分配到同一個實例。因此網站優(yōu)化,如果您需要共享狀態(tài),可以將其存儲在 or 數(shù)據庫中。
第三,在計算環(huán)境中,每次調用的請求處理完畢后,計算環(huán)境都會被凍結網站建設,直到下一個請求。在這段時間內,沒有CPU資源,后臺任務無法運行,因此后臺進程無法在其中運行。
最常見的基于前后端分離的Web應用架構通常將前端SPEA應用放在S3上進行HTTP等,前端通過CDN加速。用戶下載前端后,前端會通過API調用后端的動態(tài)數(shù)據。API 提供相應的 HTTP 入口并觸發(fā)該函數(shù)以運行 Web 應用程序。Web 應用程序可以訪問數(shù)據庫或任何后端。
新:網址
騰云網絡經常收到客戶的反饋??蛻粝M麑W習在 Web 上運行 Web 應用程序或在其上運行單個應用程序。URL對應的所有業(yè)務邏輯都在里面處理,只需要暴露一個HTTP入口,幾乎沒有額外的學習成本。上個月,騰云網絡推出了內置的 URLs 端口,可以通過在函數(shù)中配置 URL 來提供。此功能目前僅可用,并將在不久的將來在中國推出。URL 指向的最新版本或別名。別名可以指向1或2個版本,所以可以通過指向來進行灰度發(fā)布或者藍綠部署。
URL 和 API 有什么區(qū)別?
首先,URL 是提供 HTTP 條目的一種非常簡單的內置方式。它是在公共網絡上公開的 HTTP 條目。入口方式是yes,認證方式可以通過IAM權限控制,也可以在公網上實現(xiàn)。URL 不提供支持,但提供 CORS 支持,因此可以進行跨站請求,例如從瀏覽器,URL 會根據配置主動返回相應的結果,不會違反功能。但是,URLs只有一些簡單的功能,并沒有辦法實現(xiàn)一些高級功能,例如使用、基于WAF的集成和內部配置,目前還不能實現(xiàn)URLs。因此,如果要使用WAF、、、等,請使用API??的Rest API。
其次,URL 的超時時間與函數(shù)的超時時間相同。例如,如果函數(shù)運行時間最長為 15 分鐘,則 URLs 請求可以運行 15 分鐘,而 Rest API 和 HTTP API 的超時時間僅為 29-30s。在大小上,URL 與 6MB 相同。
第三,使用 URL 沒有額外費用,但使用 Rest API 和 HTTP API 有相應的費用。
許多用戶要求 Web 應用程序具有相應的自定義域名才能訪問網站。此時,您可以在前面通過CDN的方式添加自定義域名,例如添加自己的域名,同時結合WAF保護相應的集成應用。因為 URL 只提供入口,所以 CDN 回源時,會回源站點。Host無法返回源站,無法獲取用戶實際訪問的自定義域名。如果域名是固定的,可以通過應用中的配置來學習,但是如果域名不固定,則需要根據二級域名來判斷是哪個租戶在做相應的處理。在這種情況下,您可以利用該功能。域名可以在用戶請求端獲取,添加到另一個,然后發(fā)送回源站。在源站的應用中,可以通過這個獲取用戶訪問的真實域名。
如果基于 URL 部署單功能 Web 應用,靜態(tài)資源通過代理放在 S3 中進行動態(tài)請求,結構統(tǒng)一如下,不需要 API。
新工具:
URL 為您提供了一種非常簡單的獲取 HTTP 入口的方法,但開發(fā)方法是基于事件驅動的方法網站開發(fā),將事件從事件源轉換為 json 對象。對于熟悉 Web 應用開發(fā)的開發(fā)者,會有額外的學習成本。一般的做法是在應用中寫一個函數(shù),進行一層轉換,將json轉換成web應用需要的格式,不過這種方法還可以進一步簡化。.
騰云網絡推出的新工具的作用是幫助用戶完成轉化。Web 應用程序可以在 Web 應用程序上運行而無需修改代碼。獲取對應的json對象,轉換成HTTP請求,發(fā)送給Web應用。Web應用程序處理完后,通過HTTP返回,并轉換成需要的json格式。這樣,無論使用什么語言或 Web 框架,都可以通過這種方式開發(fā) Web 應用程序或 HTTP API,而無需修改代碼或添加任何依賴項。,您可以使用熟悉的方法在本地開發(fā)和調試 API。
此外,API 的 Rest API、HTTP API 都支持作為 HTTP 的事件源。無論是哪種格式,都可以進行相應的解析和轉換。同時,由于 URL 的事件格式與 API HTTP API V2 的事件格式完全相同,因此無需任何修改即可訪問 URL。用戶結合 URL 并可以在其上運行 Web 應用程序或 HTTP API。同時,由于web應用可能會返回圖片等數(shù)據,因為數(shù)據不能直接存儲在json中,所以需要做數(shù)據,會檢測返回的數(shù)據是否為數(shù)據,并自動完成轉碼。
同時支持容器鏡像形式的打包功能,也支持zip形式的打包功能。當用戶使用容器鏡像打包功能時,生成的容器鏡像既可以運行在互聯(lián)網上,也可以運行在容器環(huán)境中,甚至可以運行在本地計算機上。因此,Web 應用程序可以很容易地運行在不同的計算平臺上,并且可以在不同平臺之間平滑遷移而無需修改。
在實踐中構建無服務器 Web 應用程序
Web 應用程序是使用 URL 構建的,并且可以通過熟悉的 API 輕松訪問。但是如果使用它,是否可以在其上運行現(xiàn)有的 Web 應用程序?
騰云網試過了。是電商場景,為什么要在上面跑呢?首先,在網站上,100個訪問量最大的網站中,份額第一;其次,是基于PHP開發(fā)的,在web應用網站建設中使用了PHP,大約70-80%的網站都是基于PHP開發(fā)的,用途非常廣泛;第三,每次請求進入都需要重新初始化PHP語言,與無狀態(tài)計算環(huán)境非常兼容。
騰云網絡團隊采用以下 架構運行。
前端架構采用并做CDN,使用運行中的應用,使用URL代替API作為入口,通過S3存儲靜態(tài)資源。然后,通過函數(shù)中的鏡像方式,加載PHP、PHP和PHP FPM運行的進程管理服務,并用它打包代碼。后端使用相應的數(shù)據庫,例如最新的V2數(shù)據庫來緩存數(shù)據,并使用EFS共享系統(tǒng)保存用戶上傳的文件。通過這個架構,騰云網絡實現(xiàn)了在基礎上的運營。
在其上運行的網站的實際性能如何?如果你想在你的網站上取得更好的性能,你可以將靜態(tài)內容制作成靜態(tài)內容,放到前端的CDN網站上。如果您正在運營電子商務網站,用戶會瀏覽產品、將產品添加到購物車、提交訂單和付款。這些是動態(tài)請求,需要返回到后端 PHP 應用程序。對于靜態(tài)應用,可以在3分鐘內實現(xiàn)從無請求到最高峰的性能,1小時內每分鐘可以處理多個訂單。在成本方面,每處理一個訂單需要調用 10 次 API,即處理 100 萬個訂單需要調用 1000 萬次函數(shù)。據統(tǒng)計,1000 萬次函數(shù)調用的成本僅為 300 美元。不僅,
分享最后,孫華演示了網站運行的實際表現(xiàn)并提供了相關信息。有興趣的開發(fā)者可以掃描下方二維碼獲取。