熱愛開源,為我?guī)砹耸裁矗?/h1>

導(dǎo)語 | 眾多開源項目支持了 Serverless 的發(fā)展。開發(fā)者如何參與開源,共同打造 Serverless 的未來生態(tài)?本文由 Serverless Operations CEO Takahiro Horike 在 Techo TVP 開發(fā)者峰會 ServerlessDays China 2021上的演講《The Future of Serverless Accelerated by OpenSource》整理而成,向大家分享他的經(jīng)驗。
點擊可觀看精彩演講視頻
大家好,我演講的題目是 “由開源加速的無服務(wù)器的未來”。
Serverless 技術(shù)得到了很多開源產(chǎn)品和社區(qū)的支持,而不僅僅是云計算廠商提供的產(chǎn)品,這是 Serverless 領(lǐng)域非常有特色的地方之一。今天,我將談?wù)勎胰绾螀⑴c其中并為之做出貢獻,以及作為一名軟件工程師,這意味著什么。
一、Serverless 開源項目分享
我是Horike,是 Serverless Operations, Inc 的CEO和聯(lián)合創(chuàng)始人。我還是一個開源愛好者,創(chuàng)建并維護了一些開源項目,幫助無服務(wù)器領(lǐng)域的開發(fā)者。同時,我也是日本Serverless Meetup Tokyo的組織者之一。在疫情發(fā)生之前,我們每年都會舉辦Serverless Days Tokyo。
Serverless Operations, Inc 是一家位于日本的公司,本著“用無服務(wù)器實現(xiàn)云價值最大化”的公司理念,我們正在為許多公司提供AWS無服務(wù)器的咨詢和開發(fā)服務(wù),主要業(yè)務(wù)在日本。從大企業(yè)到小型創(chuàng)業(yè)公司,我們都在幫助它們開發(fā)使用無服務(wù)器技術(shù)的應(yīng)用程序。

大家知道,幾乎所有的 Serverless 產(chǎn)品都是按使用量付費的。這對很多公司來說是個好處,尤其是小型創(chuàng)業(yè)公司,因為創(chuàng)業(yè)公司的云計算花費大部分下情況都很便宜。但當(dāng)你的應(yīng)用有大量的流量或數(shù)據(jù)量,云計算花費可能就會很昂貴。

進入今天的主體內(nèi)容。我想告訴大家的是,加入無服務(wù)器領(lǐng)域的開源社區(qū)的價值,以及這對一個軟件工程師有什么大的影響。
首先,向大家介紹我們正在維護的一些開源項目。
眾所周知,AWS Step Functions是AWS無服務(wù)器的主要服務(wù)之一,它允許你使用Lambda函數(shù)、ECS、DynamoDB、SQS、Glue等來控制復(fù)雜的工作流,而無需底層應(yīng)用來管理和協(xié)調(diào)狀態(tài)。
來看我們公司的實際用例。我們與Lixil公司的開發(fā)團隊一起為該公司交付了會計系統(tǒng)。Lixil是一家在日本非常有名的公司,他們的物流業(yè)務(wù)有很多配送中心。該項目的目的是為配送中心自動計算賬單,我們建議用Serverless Step Functions插件來實現(xiàn),最終實現(xiàn)了自動化,并大大節(jié)省了成本。

第二個開源軟件是無服務(wù)器API網(wǎng)關(guān)服務(wù)代理。這也是Serverless Framework的插件,它支持亞馬遜API網(wǎng)關(guān)的AWS服務(wù)代理集成功能,你可以像這樣編寫一個SQS集成。
在這個例子中,如果你向API路徑發(fā)送一個POST請求,斜線SQS,而POST請求直接發(fā)送serverless.yml文件中QueuName部分的指定SQS隊列,就不需要再編寫只連接AWS服務(wù)的代碼了。目前,該插件支持的AWS服務(wù)有Kinesis Streams、SQS、S3、SNS、DynamoDB、EventBridge。

這是我們公司的實際使用情況:

WWD JAPAN 是一個面向日本時尚行業(yè)的網(wǎng)絡(luò)雜志網(wǎng)站,它有一個以10分鐘間隔的、頁面瀏覽量實時排名功能。
通常,為了建立這樣的排名功能,我們使用Google Analytics API。但是,它并不支持獲得幾分鐘前的排名的功能,我們決定使用Kinesis Streams作為實時排名的數(shù)據(jù)存儲來取代它。以下是實時排名系統(tǒng)的架構(gòu)。
首先,API網(wǎng)關(guān)從Web前端接收訪問者視圖數(shù)據(jù),數(shù)據(jù)被收集并存儲在Kinesis Streams中。這張圖右邊的獲取排名API從Kinesis流中獲取收集到的排名數(shù)據(jù),并將排名響應(yīng)到Web前端,最終效果是可以在網(wǎng)站上瀏覽排名內(nèi)容。
通過使用無服務(wù)器API網(wǎng)關(guān)服務(wù)代理,我們建立了連接API網(wǎng)關(guān)和Kinesis流的API。一旦訪問者訪問了文章頁面,API就會被調(diào)用,并將文章ID和當(dāng)前時間發(fā)送到Kinesis流中。

接下來,第三個開源軟件是Jeffy。
這是一個名為Jeffy的Python運行時Lambda的應(yīng)用框架,它是Lambda函數(shù)的實用程序套件,能讓開發(fā)無服務(wù)器應(yīng)用程序變得容易。有幾個類似的產(chǎn)品,如DAZN Lambda Powertools、Middy,Jeffy也提供類似的功能。
二、我為什么要加入開源社區(qū)?
以上是我們的開源項目的介紹。接下來,我將說說我的背景和經(jīng)歷,解釋為什么我一直在為開源而努力。
從我開始做軟件工程師到現(xiàn)在,大概有15年了。大概十年前,我已經(jīng)開始使用AWS,而AWS Lambda在2014年發(fā)布,這對我影響很大。在那之前,要在AWS上運行代碼,你需要在運行代碼之前使用EC2設(shè)置基礎(chǔ)設(shè)施。但是Lambda發(fā)布了,就變成了只需要寫代碼,意味著軟件工程師只需要寫代碼就可以在AWS上創(chuàng)建一個新的、有趣的產(chǎn)品。

2015年,亞馬遜API網(wǎng)關(guān)發(fā)布,這是對我的第二個重大影響。在那之前,代碼只能在AWS上運行,它是一個如此封閉的空間。但是API網(wǎng)關(guān)發(fā)布了,你交付的新的、有趣的產(chǎn)品就可以通過API發(fā)布,并且可以被AWS以外的世界各地的人看到。
我一直癡迷于無服務(wù)器,花了很多時間來玩API Gateway、Lambda、DynamoDB,并將我的想法寫成很多博客文章發(fā)表。當(dāng)我在使用無服務(wù)器時,我注意到無服務(wù)器的一些問題,比如:
-
Lambda上的代碼無法通過AWS管理控制臺上傳。
-
我怎樣才能對我的代碼進行版本管理?
如何創(chuàng)建CI/CD流水線?
那時,我發(fā)現(xiàn)了無服務(wù)器框架,我心花怒放,因為這些問題已經(jīng)被它解決了。
于是我開始與社區(qū)交流,和核心團隊討論它如何能成為更好的工具。就是在那時,我開始加入 Serverless 社區(qū)。

總結(jié)一下,什么是參與開源社區(qū)的重要的事?
無服務(wù)器技術(shù)實際上得到了很多開源項目的支持,這是無服務(wù)器領(lǐng)域的一大特色。
為什么?這并不意味著云廠商的產(chǎn)品質(zhì)量差。無服務(wù)器技術(shù)尚未成熟,而且永遠(yuǎn)不會停止發(fā)展。大家都知道,大多數(shù)情況下,產(chǎn)品在最初發(fā)布時并不都具備你需要的所有功能,因為云廠商的產(chǎn)品一般都是作為最低可行的產(chǎn)品發(fā)布的。實際上,AWS Lambda在2014年并沒有開發(fā)者需要的一些功能,它的執(zhí)行時間被限制在幾秒鐘,甚至不能使用環(huán)境的重要功能。然而,這些缺失的部分為我們帶來了通過開源理念修復(fù)它的好機遇。

Serverless 開源社區(qū)是如此巨大。每天,開發(fā)者們都在討論一些東西來促進產(chǎn)品發(fā)展,在這樣一個巨大的社區(qū)里,有很多有才華的開發(fā)者,與他們一起工作,你的開發(fā)技能會得到提高。開源中采用的優(yōu)秀工作流程,如發(fā)布和測試,對你的工作也很有幫助,所以你可以通過參與開源社區(qū)學(xué)到很多東西。不僅如此,參加 Serverless 社區(qū)活動時,我很高興能結(jié)識到日本之外的其他國家的社區(qū)成員。
這是開源社區(qū)中最重要的心態(tài)。想象一下,你的代碼在全世界范圍內(nèi)被使用,并為某個地方的人帶來快樂。這對開發(fā)者來說是一件很好的事。

無服務(wù)器技術(shù)還沒有成熟,所以有很多事情需要用你的開源想法來解決。如果你對開源社區(qū)感興趣,請快加入吧!
謝謝大家的聆聽。今天很高興來到這里。
講師簡介
Takahiro Horike
Serverless Operations CEO
Takahiro Horike,來自日本的Serverless Operations, Inc。他們?yōu)榭蛻籼峁┳稍兓蜷_發(fā)服務(wù),以AWS Serverless為主。他是一個開源軟件愛好者,為 Serverless 維護一些開源軟件。
推薦閱讀
GitHub Star數(shù) 4 萬的貢獻者教你如何做 Serverless 開發(fā)
Serverless + 低代碼,讓技術(shù)小白也能成為全棧工程師?
左耳朵耗子:Serverless 究竟是什么?
點擊觀看峰會的精彩總結(jié)視頻??
?? 錯過了直播懊悔不已?本次峰會所有嘉賓的演講視頻回顧上線啦,點擊「閱讀原文」即可觀看~
?? 看視頻不過癮還想要干貨PPT?關(guān)注本公眾號,在后臺回復(fù)關(guān)鍵詞「serverless」即可獲取!

瀏覽
47

點擊可觀看精彩演講視頻
大家好,我演講的題目是 “由開源加速的無服務(wù)器的未來”。
Serverless 技術(shù)得到了很多開源產(chǎn)品和社區(qū)的支持,而不僅僅是云計算廠商提供的產(chǎn)品,這是 Serverless 領(lǐng)域非常有特色的地方之一。今天,我將談?wù)勎胰绾螀⑴c其中并為之做出貢獻,以及作為一名軟件工程師,這意味著什么。
一、Serverless 開源項目分享
我是Horike,是 Serverless Operations, Inc 的CEO和聯(lián)合創(chuàng)始人。我還是一個開源愛好者,創(chuàng)建并維護了一些開源項目,幫助無服務(wù)器領(lǐng)域的開發(fā)者。同時,我也是日本Serverless Meetup Tokyo的組織者之一。在疫情發(fā)生之前,我們每年都會舉辦Serverless Days Tokyo。
Serverless Operations, Inc 是一家位于日本的公司,本著“用無服務(wù)器實現(xiàn)云價值最大化”的公司理念,我們正在為許多公司提供AWS無服務(wù)器的咨詢和開發(fā)服務(wù),主要業(yè)務(wù)在日本。從大企業(yè)到小型創(chuàng)業(yè)公司,我們都在幫助它們開發(fā)使用無服務(wù)器技術(shù)的應(yīng)用程序。

大家知道,幾乎所有的 Serverless 產(chǎn)品都是按使用量付費的。這對很多公司來說是個好處,尤其是小型創(chuàng)業(yè)公司,因為創(chuàng)業(yè)公司的云計算花費大部分下情況都很便宜。但當(dāng)你的應(yīng)用有大量的流量或數(shù)據(jù)量,云計算花費可能就會很昂貴。

進入今天的主體內(nèi)容。我想告訴大家的是,加入無服務(wù)器領(lǐng)域的開源社區(qū)的價值,以及這對一個軟件工程師有什么大的影響。
首先,向大家介紹我們正在維護的一些開源項目。
眾所周知,AWS Step Functions是AWS無服務(wù)器的主要服務(wù)之一,它允許你使用Lambda函數(shù)、ECS、DynamoDB、SQS、Glue等來控制復(fù)雜的工作流,而無需底層應(yīng)用來管理和協(xié)調(diào)狀態(tài)。
來看我們公司的實際用例。我們與Lixil公司的開發(fā)團隊一起為該公司交付了會計系統(tǒng)。Lixil是一家在日本非常有名的公司,他們的物流業(yè)務(wù)有很多配送中心。該項目的目的是為配送中心自動計算賬單,我們建議用Serverless Step Functions插件來實現(xiàn),最終實現(xiàn)了自動化,并大大節(jié)省了成本。

第二個開源軟件是無服務(wù)器API網(wǎng)關(guān)服務(wù)代理。這也是Serverless Framework的插件,它支持亞馬遜API網(wǎng)關(guān)的AWS服務(wù)代理集成功能,你可以像這樣編寫一個SQS集成。
在這個例子中,如果你向API路徑發(fā)送一個POST請求,斜線SQS,而POST請求直接發(fā)送serverless.yml文件中QueuName部分的指定SQS隊列,就不需要再編寫只連接AWS服務(wù)的代碼了。目前,該插件支持的AWS服務(wù)有Kinesis Streams、SQS、S3、SNS、DynamoDB、EventBridge。

這是我們公司的實際使用情況:

WWD JAPAN 是一個面向日本時尚行業(yè)的網(wǎng)絡(luò)雜志網(wǎng)站,它有一個以10分鐘間隔的、頁面瀏覽量實時排名功能。
通常,為了建立這樣的排名功能,我們使用Google Analytics API。但是,它并不支持獲得幾分鐘前的排名的功能,我們決定使用Kinesis Streams作為實時排名的數(shù)據(jù)存儲來取代它。以下是實時排名系統(tǒng)的架構(gòu)。
首先,API網(wǎng)關(guān)從Web前端接收訪問者視圖數(shù)據(jù),數(shù)據(jù)被收集并存儲在Kinesis Streams中。這張圖右邊的獲取排名API從Kinesis流中獲取收集到的排名數(shù)據(jù),并將排名響應(yīng)到Web前端,最終效果是可以在網(wǎng)站上瀏覽排名內(nèi)容。
通過使用無服務(wù)器API網(wǎng)關(guān)服務(wù)代理,我們建立了連接API網(wǎng)關(guān)和Kinesis流的API。一旦訪問者訪問了文章頁面,API就會被調(diào)用,并將文章ID和當(dāng)前時間發(fā)送到Kinesis流中。

接下來,第三個開源軟件是Jeffy。
這是一個名為Jeffy的Python運行時Lambda的應(yīng)用框架,它是Lambda函數(shù)的實用程序套件,能讓開發(fā)無服務(wù)器應(yīng)用程序變得容易。有幾個類似的產(chǎn)品,如DAZN Lambda Powertools、Middy,Jeffy也提供類似的功能。
二、我為什么要加入開源社區(qū)?
以上是我們的開源項目的介紹。接下來,我將說說我的背景和經(jīng)歷,解釋為什么我一直在為開源而努力。
從我開始做軟件工程師到現(xiàn)在,大概有15年了。大概十年前,我已經(jīng)開始使用AWS,而AWS Lambda在2014年發(fā)布,這對我影響很大。在那之前,要在AWS上運行代碼,你需要在運行代碼之前使用EC2設(shè)置基礎(chǔ)設(shè)施。但是Lambda發(fā)布了,就變成了只需要寫代碼,意味著軟件工程師只需要寫代碼就可以在AWS上創(chuàng)建一個新的、有趣的產(chǎn)品。

2015年,亞馬遜API網(wǎng)關(guān)發(fā)布,這是對我的第二個重大影響。在那之前,代碼只能在AWS上運行,它是一個如此封閉的空間。但是API網(wǎng)關(guān)發(fā)布了,你交付的新的、有趣的產(chǎn)品就可以通過API發(fā)布,并且可以被AWS以外的世界各地的人看到。
我一直癡迷于無服務(wù)器,花了很多時間來玩API Gateway、Lambda、DynamoDB,并將我的想法寫成很多博客文章發(fā)表。當(dāng)我在使用無服務(wù)器時,我注意到無服務(wù)器的一些問題,比如:
-
Lambda上的代碼無法通過AWS管理控制臺上傳。 -
我怎樣才能對我的代碼進行版本管理? 如何創(chuàng)建CI/CD流水線?
那時,我發(fā)現(xiàn)了無服務(wù)器框架,我心花怒放,因為這些問題已經(jīng)被它解決了。
于是我開始與社區(qū)交流,和核心團隊討論它如何能成為更好的工具。就是在那時,我開始加入 Serverless 社區(qū)。

總結(jié)一下,什么是參與開源社區(qū)的重要的事?
無服務(wù)器技術(shù)實際上得到了很多開源項目的支持,這是無服務(wù)器領(lǐng)域的一大特色。
為什么?這并不意味著云廠商的產(chǎn)品質(zhì)量差。無服務(wù)器技術(shù)尚未成熟,而且永遠(yuǎn)不會停止發(fā)展。大家都知道,大多數(shù)情況下,產(chǎn)品在最初發(fā)布時并不都具備你需要的所有功能,因為云廠商的產(chǎn)品一般都是作為最低可行的產(chǎn)品發(fā)布的。實際上,AWS Lambda在2014年并沒有開發(fā)者需要的一些功能,它的執(zhí)行時間被限制在幾秒鐘,甚至不能使用環(huán)境的重要功能。然而,這些缺失的部分為我們帶來了通過開源理念修復(fù)它的好機遇。

Serverless 開源社區(qū)是如此巨大。每天,開發(fā)者們都在討論一些東西來促進產(chǎn)品發(fā)展,在這樣一個巨大的社區(qū)里,有很多有才華的開發(fā)者,與他們一起工作,你的開發(fā)技能會得到提高。開源中采用的優(yōu)秀工作流程,如發(fā)布和測試,對你的工作也很有幫助,所以你可以通過參與開源社區(qū)學(xué)到很多東西。不僅如此,參加 Serverless 社區(qū)活動時,我很高興能結(jié)識到日本之外的其他國家的社區(qū)成員。
這是開源社區(qū)中最重要的心態(tài)。想象一下,你的代碼在全世界范圍內(nèi)被使用,并為某個地方的人帶來快樂。這對開發(fā)者來說是一件很好的事。

無服務(wù)器技術(shù)還沒有成熟,所以有很多事情需要用你的開源想法來解決。如果你對開源社區(qū)感興趣,請快加入吧!
謝謝大家的聆聽。今天很高興來到這里。
講師簡介
Takahiro Horike
Serverless Operations CEO
Takahiro Horike,來自日本的Serverless Operations, Inc。他們?yōu)榭蛻籼峁┳稍兓蜷_發(fā)服務(wù),以AWS Serverless為主。他是一個開源軟件愛好者,為 Serverless 維護一些開源軟件。
推薦閱讀
點擊觀看峰會的精彩總結(jié)視頻??
?? 看視頻不過癮還想要干貨PPT?關(guān)注本公眾號,在后臺回復(fù)關(guān)鍵詞「serverless」即可獲取!

