這都可以?(無(wú)服務(wù)器是怎么回事)無(wú)服務(wù)器什么意思,無(wú)服務(wù)器 90% 的情況都很糟糕,中國(guó)衛(wèi)生考試中心,
目錄:
1.無(wú)服務(wù)器什么意思
2.無(wú)服務(wù)器是什么原因
3.無(wú)服務(wù)器連接怎么辦
4.無(wú)服務(wù) serverless
5.無(wú)服務(wù)器應(yīng)用
6.就沒(méi)有服務(wù)
7.無(wú)服務(wù)器app
8.無(wú)服務(wù)所選網(wǎng)絡(luò)不可用
9.無(wú)服務(wù)器通信
10.沒(méi)有服務(wù)器是什么意思
1.無(wú)服務(wù)器什么意思
本文最初發(fā)布于 Seve 的個(gè)人博客,經(jīng)原作者授權(quán)由 InfoQ 中文站翻譯并分享無(wú)服務(wù)器 10%的情況令人驚嘆剩下的 90%則是一個(gè)危險(xiǎn)的黑洞,里面是云鎖定、糟糕的測(cè)試、差勁的開(kāi)發(fā)體驗(yàn)和復(fù)雜的設(shè)置這就是為什么會(huì)有一些老人發(fā)誓不使用無(wú)服務(wù)器,同時(shí)又有大量的支持者(像我一樣)試圖把它推廣到任何適合的地方。
2.無(wú)服務(wù)器是什么原因
不管是哪一方,都有一些事項(xiàng)需要留意對(duì)于77導(dǎo)航無(wú)服務(wù)器的支持者而言:無(wú)服務(wù)器應(yīng)用程序的架構(gòu)并沒(méi)有更簡(jiǎn)單;無(wú)服務(wù)器消除/簡(jiǎn)化了 devops,因此,部署/devops 更簡(jiǎn)單了;為了讓無(wú)服務(wù)器產(chǎn)生預(yù)期的效果,你必須采用無(wú)服務(wù)器架構(gòu),這與許多公共框架(如 Rails)的最佳實(shí)踐建議不相符;。
3.無(wú)服務(wù)器連接怎么辦
沒(méi)有哪個(gè)云提供商的最佳實(shí)踐是真正的最佳實(shí)踐他們的興趣在于把你鎖定,因此,他們會(huì)嘗試將自己融入到你的開(kāi)發(fā)/測(cè)試工作流,或者在開(kāi)發(fā)中需要云連接;在同一個(gè)項(xiàng)目中使用多種語(yǔ)言并不是一項(xiàng)特性對(duì)于無(wú)服務(wù)器的反對(duì)者來(lái)說(shuō):
4.無(wú)服務(wù) serverless
幾乎可以肯定,遵循云提供商的最佳實(shí)踐已經(jīng)讓你吃不消了,忽略那些試圖鎖定你的云提供商,你會(huì)過(guò)得更好運(yùn)77導(dǎo)航行本地版本是有效的無(wú)服務(wù)器 DX 的必要條件,任何像樣的無(wú)服務(wù)器架構(gòu)都很容易像 docker 容器一樣運(yùn)行。
5.無(wú)服務(wù)器應(yīng)用
有一種無(wú)服務(wù)器架構(gòu)可以讓每個(gè)人在大多數(shù)情況下都滿意但這通常不明顯,因?yàn)樗幱跓o(wú)狀態(tài)服務(wù)器最佳實(shí)踐和云提供商最佳實(shí)踐的交叉點(diǎn)上,但永遠(yuǎn)不會(huì)完全是哪一個(gè)有效的無(wú)服務(wù)器架構(gòu)好了,現(xiàn)在我們已經(jīng)冷靜下來(lái),我們已經(jīng)認(rèn)識(shí)到,無(wú)服務(wù)器不是編程和應(yīng)用程序架構(gòu)的救世主。
6.就沒(méi)有服務(wù)
現(xiàn)在可以開(kāi)始構(gòu)建簡(jiǎn)單、易于維護(hù)、可測(cè)試的應(yīng)用程序了下面是無(wú)服務(wù)器架構(gòu)必須做到的一些要點(diǎn):一切都必須能夠在本地運(yùn)行,與傳統(tǒng)的有狀態(tài)服務(wù)器一樣(你需要能夠運(yùn)行自己的系統(tǒng));每個(gè)端點(diǎn)都應(yīng)該有針對(duì)本地運(yùn)行的無(wú)服務(wù)器實(shí)例運(yùn)77導(dǎo)航行的測(cè)試;
7.無(wú)服務(wù)器app
以一種簡(jiǎn)單、易于理解的方式處理路由,例如使用文件路徑作為端點(diǎn)或一個(gè)中心化的 JSON 配置;完全正常它應(yīng)該看起來(lái)像一個(gè) npm 包、一個(gè) pip 模塊等等沒(méi)有人需要通過(guò)看圖表來(lái)理解它是如何工作的;每個(gè)端點(diǎn)所需的樣板文件都盡可能少;
8.無(wú)服務(wù)所選網(wǎng)絡(luò)不可用
整體式的代碼組織,每個(gè)應(yīng)用程序一個(gè)庫(kù),其中包含多個(gè)端點(diǎn)云提供商應(yīng)提供以下特性:自動(dòng)擴(kuò)展端點(diǎn);自動(dòng)部署和版本控制;易于回滾關(guān)于無(wú)服務(wù)器的恐怖故事我曾見(jiàn)過(guò)有人在云提供商的云 IDE 中編寫(xiě)代碼,兩次測(cè)試之間要等 2 分鐘。
9.無(wú)服務(wù)器通信
有時(shí),一個(gè)端點(diǎn)連接到如此多的云服務(wù),所以真的只能在生產(chǎn)環(huán)境中進(jìn)行測(cè)試有時(shí)不是所有端點(diǎn)77導(dǎo)航都在一個(gè)庫(kù)中,而是有很多庫(kù),每個(gè)庫(kù)包含不同的系統(tǒng)組件開(kāi)發(fā)體驗(yàn)是快速實(shí)施的關(guān)鍵,你應(yīng)該努力保持快速的反饋循環(huán)和測(cè)試,讓你可以快速前進(jìn),而不必?fù)?dān)心整個(gè)系統(tǒng)崩潰。
10.沒(méi)有服務(wù)器是什么意思
優(yōu)質(zhì)的無(wú)服務(wù)器提供商每個(gè)無(wú)服務(wù)器提供商都必須經(jīng)過(guò)改造才能成為有效的架構(gòu)每個(gè)無(wú)服務(wù)器提供商都試圖讓你不可逆轉(zhuǎn)地將它們?nèi)谌肽悴恍枰阉鼈內(nèi)谌胱裱罴褜?shí)踐,除非它違反了“必須在本地運(yùn)行”的原則,否則你應(yīng)該沒(méi)事。
現(xiàn)在,我喜歡以下這兩家無(wú)服務(wù)器提供商:Vercel——基于 AWS Lambda 構(gòu)建,重視開(kāi)發(fā)體驗(yàn)優(yōu)秀的自動(dòng)部署和版本控制非常友好的價(jià)格我在把collegeai.com重構(gòu)到 Vercel 之后遭遇了峰值流量,而77導(dǎo)航它在第一天擴(kuò)展時(shí)就沒(méi)有出現(xiàn)任何嚴(yán)重的問(wèn)題。
你可能需要放棄他們的開(kāi)發(fā)系統(tǒng)(vc dev ),以獲得一個(gè)有效的容器化/本地運(yùn)行的應(yīng)用程序,但這并不困難Cloudflare Workers——Wrangler(worker 的命令行開(kāi)發(fā)工具)意識(shí)到本地開(kāi)發(fā)的重要性,而 cloudflare worker 非常便宜。
但是,我要提醒的是,它們對(duì) NodeJS 模塊的支持不是很好,所以它們還不是一個(gè)重要的選項(xiàng),除非在低成本擴(kuò)展絕對(duì)關(guān)鍵的情況下對(duì)于下面這兩家提供商,我要提醒你注意:AWS Lambda(直接)——對(duì)于應(yīng)用程序開(kāi)發(fā)人員來(lái)說(shuō),AWS Lambda 太復(fù)雜了,我從未見(jiàn)過(guò)一個(gè)讓人感覺(jué)正常、易于理解并77導(dǎo)航且使用 Lambda 在本地運(yùn)行的架構(gòu)。
Fastly——如果需要一個(gè)銷(xiāo)售電話來(lái)開(kāi)始,那么我可以打賭開(kāi)發(fā)體驗(yàn)將很垃圾我還沒(méi)有足夠的經(jīng)驗(yàn),聽(tīng)說(shuō)得也不是很多:Netlify——它似乎有一個(gè)正確的方法,但是我不理解他們的專(zhuān)業(yè)級(jí)無(wú)服務(wù)器定價(jià),為什么人們通常是從這里開(kāi)始。
這個(gè)領(lǐng)域正在迅速變化,當(dāng)看到新的競(jìng)爭(zhēng)者和新的架構(gòu)時(shí),我會(huì)更新這里的內(nèi)容無(wú)服務(wù)器 90%的情況都很糟糕,但也有 10%的情況令人驚嘆炒作沒(méi)問(wèn)題,但要有理由支撐無(wú)服務(wù)器使應(yīng)用程序易于擴(kuò)展和維護(hù)我在7年前編寫(xiě)的無(wú)服務(wù)器應(yīng)用程序仍然在運(yùn)行,幾乎不需要維護(hù),也幾乎不需要任何成本。
我相信,無(wú)服務(wù)器可以使個(gè)人能夠維護(hù)大型應(yīng)用程序,否則將需要一個(gè)團(tuán)隊(duì)和穩(wěn)77導(dǎo)航定的收入流