這不是我想要的Serverless

2021-09-22 23:58:50 字數 2404 閱讀 3264

本文講的是這不是我想要的serverless【譯者的話】本文作者就serverless闡述了一些自己的想法,以及對標準的訴求。

【深入淺出學習 etcd】etcd為分布式系統提供可靠、高效的配置管理服務,在docker、kubernetes、mesos等平台中扮演了越來越重要的角色。作為2023年開始的專案,它還很年輕,官方文件中缺乏實現上全面、系統的介紹,本課程深入淺出地介紹了etcd的實現,並為運維和二次開發提供了系統的指導和建議。

最近,我們在container solution平台上**了serverless的適用面,更重要的是,我們討論了它可能的走向。之前玩過lambda,我發現討論遠比實際執行更加有趣,因為它始於我們想要的以及我們所得到的。

我拒絕接受由**商執掌「serverless」發展軌跡的現狀,大家需要乙個標準。我有乙個目標,乙個基於個人想法的目標。最後乙個純粹出於個人嗜好,接受它或是提出你的建議。

在aws推出lambda時,我認為這將會造成業界的興奮以及許多情況下的困惑。我不太確定是否每個人都能理解它是如何工作的以及這是否會為大家帶來幫助。此後,lambda證明了它是一款非常酷的工具,毫無疑問它能夠削減運維的開銷。它同樣助長了我們正在經歷的serverless熱潮。

坦白說,我個人並不喜歡aws,azure和gce對於serverless的描述。我喜歡這些**商,我認為它們的平台是令人嘆為觀止的,但我是乙個發自內心的純粹主義者。我認為要落實serverless,必須為其開發乙個開放標準。

我也認為這些**商正在尋求能夠滿足顧客需求的最廉價的解決方案。但這通常並不會成為最佳解決方案。

開發標準會拉近大家距離,讓大家說同樣的術語,使工具更具相容性,這一切完全說得通。

當前的faas(function as a service)根本沒有做到這些。它們都在其生態中提供了框架,你只需要在此完成工作。

我們需要乙個開放標準,但是它應該是怎樣的呢?好吧,首先,我們需要建立關於其如何工作的基本準則。

在現有的產品中,上述內容得不到任何保證。我需要想象乙個擁有上述一切的世界。

因此我需要從未來借調一些內容,並且在最後我會帶大家回到過去。

容器是我們將會在serverless系統中嘗試,並用以實現安全性和速度的技術。當我們談及容器,大多數人馬上就會想到docker。docker其實並不能很好地適配serverless功能,它慢、臃腫且需要乙個守護程序。這並不是在挖苦docker,但他確實並不算是serverless的乙個好選擇。畢竟我們需要一把外科手術刀,而docker是一把瑞士軍刀。docker和rkt均非容器,它們只是用來促進容器化的工具罷了。

這並不意味著我們無法開發乙個工具以使我們的工具容器化,使之得以在數毫秒內啟動,並使所有的功能遵循相同的隔離。

或許unikernel才是答案,而非容器,或許僅需一台經過調整的linux伺服器,使其高效地隔離每個程序,不賦予它們檔案訪問權,僅允許向外的tcp連線。

在這個議題上,我想我會讓我的同事不厭其煩,但是至少就使用標準輸入和輸出而言,我成為了一名堅定的信徒。自使用諸如aws kcl之類的工具之初,我便震驚了,它們提供了乙個守護程序,並使用其包裝你的程序,如此你便可以在任意語言中提取kinesis訊息了。我便在lambda上使用nodejs的包裝器包裝了我的第乙個go程式。我們可以用不同的語言,使用不同的協議進行通訊,但是stdin/stdout則是普適的。

serverless方法的理念就是生成、執行和銷毀,對我而言,這是一種獲取資料的好規範。

如果你深究雲**商的faas實現,你會發現它們僅提供2個變數。其一是「event」,它們不關心內部有什麼。其二便是「context」,它將請求置於上下文中。與可執行程式中通過stdin傳送標記和環境變數相比,這並沒有什麼不同。

考慮更加簡單的stdin/stdout確實給了我們很大的自由。它允許我們的方法是語言無關的,並且通過linux強大的管道命令,我們便可構建非常健壯的功能鏈了。

json看起來像是乙個事實上的標準,使大家回到通訊,但是在雲的世界裡,我認為需要更進一步。且在道別前花點時間。

當前市場中,我認為存在2種相對理想的格式,cap'n proto和protobuf。前者允許快速傳送大量資料,後者則允許向現存載荷拼接資料。從目前來看,我無法確定哪乙個才是更加理想的選擇,抑或是可能會出現更加優秀的方案。但有一點我很清楚,如果我們建立了程序間共享資料的標準,那麼完全可以在之後構建可替換的部分(標準)。

我並不認為我們當前擁有的「serverless」基礎設施,就是我們想要的**商無關的那種。儘管我們擁有能夠很好工作的工具,但是它們僅為服務提供商的利益而工作,這完全能夠理解,然而常止於進一步的開發工作無法為它們帶來利潤時。是時候開始考慮乙個開放的框架了,這使我們能夠開發強大而開放的工具。如果我們可以開發乙個符合開放標準的平台,那麼第三方服務就可以圍繞我們的標準開發工具。標準開發的目的並不在於鎖定**商或為迎合你的最高消費顧客。

原文發布時間為:

2017-05-23 孫科

這不是我想要的serverless

這,不是我想要的生活

我理想的工作與生活都是乾乾淨淨 簡簡單單。而似乎現實並不是這樣的。周圍充斥的不純粹,為了保護自己,只好高高豎起尾巴,時刻提防著身邊的點點滴滴。我明白哪些人是在危難時刻會挺身而出,我也明白哪些人會在背後 一刀。但我堅信大家都是有難處,當我對你不滿,斥責時候,不是我在宣洩情緒而是再提醒你,我對你很失望。...

這不是我想要的ABAP開發者

在吃餅乾的過程中偶然看到這篇文章,立刻被uc化的標題吸引到了。全文讀完,感覺作者還是有點刻薄的。比如,裡面似乎提到,相比前端技術來說,abap的學習曲線過長,人工有點小貴。而現實恐怕恰恰相反。當前的前端技術本身也許不算更複雜,但是,如果考慮到它正處於快速演變的歷史時期,缺少成熟的學習方案,學習過程中...

這不是教程

來到csdn有5年了,在這裡找到不少對我有幫助的博文。但我自己卻不寫,總覺得網上高手那麼多,我會的別人都會,而且寫得也一定比我好。上次折騰了mindjet巨集 的編寫,在csdn搜了搜,好像是沒人寫過,於是我就寫了篇博文。過了2個月,我又想起mindjet了,可當時折騰的過程卻記不清了,回頭看看博文...