aws lambda_适用于无服务器Java开发人员的AWS Lambda:它为您提供了什么?
aws lambda
無服務(wù)器計算如何幫助您的生產(chǎn)基礎(chǔ)架構(gòu)?
在過去的幾年中,無服務(wù)器計算架構(gòu)一直受到關(guān)注,因為它專注于應用程序的主要組件之一:服務(wù)器。 這種體系結(jié)構(gòu)采用了不同的方法。
在下面的文章中,我們將解釋無服務(wù)器的含義,并嘗試了解它是否以及何時可以為您的應用程序提供幫助。 系好安全帶。
云的新衣
無服務(wù)器計算的概念談?wù)摰氖遣渴鸫a,而不是服務(wù)器。 一開始聽起來可能有些混亂,因為這意味著您可以將服務(wù)器整體丟棄,并在沒有服務(wù)器的情況下運行應用程序。 但是您可以猜到,事實并非如此。
無需購買,管理和擴展它們,云提供商可以處理對VM的請求。 因此,您仍然需要服務(wù)器,但是這種新模型使您無需承擔責任。 換句話說,處理服務(wù)器上的部署或任何類型的已安裝軟件都沒有麻煩。 基本上,您需要的只是一臺托管云服務(wù)和一臺計算機。
輸入AWS Lambda
該模型于2014年由Amazon作為AWS Lambda首次引入。該公司是第一家提供無服務(wù)器服務(wù)的產(chǎn)品,是Amazon Web Services套件的一部分。
AWS Lambda基于事件驅(qū)動的平臺,由注冊,更新等事件觸發(fā)。 事件發(fā)生時,它將調(diào)用相關(guān)函數(shù),依次運行代碼。 所有這些,同時管理和計算運行和僅使用它們所需的資源。
換句話說,基本工作流程保持不變:編寫代碼,將其上傳到服務(wù)器以使其運行,以及消除對響應時間,操作等方面的擔憂。
AWS Lambda有時被稱為功能即服務(wù)(FaaS),因為這些事件觸發(fā)了處理請求所需的相關(guān)功能,從而使我們能夠輕松運行我們的功能。
與FaaS一起,無服務(wù)器架構(gòu)也稱為后端即服務(wù)(BaaS),它消除了很大一部分數(shù)據(jù)庫管理開銷,并為不同的用戶和級別提供了授權(quán)。
AWS Lambda總經(jīng)理Tim Wagner 共享了一個圖表,該圖表說明了組件及其連接:作為計算資源(“后端”)的Lambda函數(shù)和直接與其連接的移動應用程序,以及提供HTTP端點的Amazon API Gateway靜態(tài)的Amazon S3托管網(wǎng)站:
無服務(wù)器架構(gòu)圖。 資料來源:亞馬遜
照顧好你的代碼
AWS Lambda的主要目標是允許開發(fā)人員以簡單的方式構(gòu)建較小的,按需和事件響應型應用程序。 它為您工作,并管理“計算團隊”,以平衡內(nèi)存,CPU,網(wǎng)絡(luò),應用安全補丁,監(jiān)視運行狀況以及任何其他所需的資源和操作。
外包服務(wù)是一種很好的看待方式。 它不僅可以“重新安置IT”,而且甚至可以幫助您降低運營成本,因為您可以消除基礎(chǔ)架構(gòu)成本,甚至可以減少維護服務(wù)器所需的團隊成員數(shù)量。
說到成本,您只需要根據(jù)使用的功能數(shù)量和代碼執(zhí)行的時間來支付使用的費用。 重要的是要聲明免費層每月包括100萬個免費請求,每月最多有320萬秒的計算時間。
從請求開始作為對事件或調(diào)用的響應開始執(zhí)行時開始計算每個請求的計算。 而且還包括來自控制臺的測試。
據(jù)亞馬遜稱,AWS Lambda是許多應用程序場景的平臺。 但是當然有一個陷阱,該語句僅與AWS Lambda支持的語言有關(guān):Node.js,Java和Python。
從好的方面來說,可以使用您已經(jīng)知道的工具(Maven或Gradle)來完成用Java構(gòu)建AWS Lambda函數(shù)的過程,并且構(gòu)建過程幾乎相同。
給我看代碼
完成基本設(shè)置后,調(diào)用AWS Lambda函數(shù)非常簡單,您可以在此處查看完整說明。
它包括定義代表輸入和輸出JSON的POJO,指定代表我們的微服務(wù)的接口,并使用被調(diào)用時調(diào)用的Lambda函數(shù)的名稱對其進行注釋。
下一步將使用LambdaInvokerFactory創(chuàng)建此接口的實現(xiàn)。 這將使我們能夠調(diào)用Lambda上運行的服務(wù)。 然后,我們可以使用此代理對象簡單地調(diào)用我們的服務(wù),例如……計數(shù)貓:
CountCatsInput input = new CountCatsInput(); input.setBucketName("pictures-of-cats"); input.setKey("three-cute-cats");int cats = catService.countCats(input).getCount();在你開始前…
當然,沒有什么是完美的,主要選擇代碼的選項也有一些缺點。 由于它仍然是一項相當新的技術(shù),因此很容易找到用戶不太滿意的問題列表,例如:
控制 –您正在“移交”服務(wù)器,希望您的云主機可以最好的方式處理它們。 但是您可能會遇到重大問題,您必須坐下來等待它們解決,甚至可能包括停機時間和客戶不滿意。
鎖定 –說到將所有內(nèi)容交給云主機,使用AWS Lambda意味著您必須使用AWS。 現(xiàn)在可能不是問題,但是如果您考慮遷移到Google或僅使用自己的服務(wù)器,它將成為一個問題。
靈活性 –您將無法登錄到計算實例或自定義操作系統(tǒng)或語言運行時。
安全性 –使用第三者還意味著使用其安全性。 我們并不是說AWS并不安全,而是您將這項責任完全轉(zhuǎn)移給了可能不太理想的第三方。 。
監(jiān)視 –使用AWS Lambda,您只能使用內(nèi)部工具CloudWatch監(jiān)視和調(diào)試系統(tǒng)。 盡管您仍然可以創(chuàng)建自定義警報,但可以查看請求率和錯誤率–這是一個非常基本的工具,它可能無法幫助您了解問題的根本原因。
這只是該體系結(jié)構(gòu)缺點的一小部分(但很重要)。 還必須指出,如果您已經(jīng)有一個應用程序,并且想要將其遷移到無服務(wù)器架構(gòu),則可能會發(fā)現(xiàn)自己是從頭開始編寫的。 因此,您可能需要考慮一下,或者只是將其積壓到計劃中的下一個新應用程序中。
最后的想法
亞馬遜從AWS Lambda開始了無服務(wù)器的發(fā)展,如今,微軟,谷歌,IBM等其他公司以及小型公司和初創(chuàng)公司都提供這種模式。
如果不得不賭博,我們會說無服務(wù)器是未來。 如果您考慮一下,這是云計算發(fā)展的下一步,這使我們對云以及除我們自己以外的提供商完全信任。
目前,最好保留當前的云或本地服務(wù)器。 它仍然是一項新技術(shù),在我們放棄服務(wù)器之前,亞馬遜,谷歌和其他公司需要經(jīng)歷一些挑戰(zhàn)。 可能是嬰兒的腳步,但不管我們是否喜歡,我們都朝著這個方向前進。
翻譯自: https://www.javacodegeeks.com/2016/08/aws-lambda-serverless-java-developers-whats.html
aws lambda
總結(jié)
以上是生活随笔為你收集整理的aws lambda_适用于无服务器Java开发人员的AWS Lambda:它为您提供了什么?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 阿里云DDOS(阿里云ddos是什么)
- 下一篇: linux备份文件系统(linux 备份