你好,歡迎來(lái)到川北在線
微信
騰訊微博
新浪微博
亞馬遜云科技的Amazon Lambda結(jié)合了Serverless和EDA,是一項(xiàng)Serverless事件驅(qū)動(dòng)型計(jì)算
時(shí)間:2023-07-18 17:51   來(lái)源:今日頭條   責(zé)任編輯:青青

  原標(biāo)題:亞馬遜云科技的Amazon Lambda結(jié)合了Serverless和EDA,是一項(xiàng)Serverless事件驅(qū)動(dòng)型計(jì)算服務(wù)

  近年來(lái),云計(jì)算和微服務(wù)架構(gòu)的流行使得許多公司開(kāi)始將應(yīng)用程序部署到云上。在這個(gè)過(guò)程中,一些新的技術(shù)和概念也隨之而來(lái),比如MAD(現(xiàn)代化應(yīng)用)架構(gòu)。MAD架構(gòu)的主要目的是讓企業(yè)能夠更好地利用云計(jì)算和微服務(wù)架構(gòu)來(lái)構(gòu)建靈活、高效、可擴(kuò)展的應(yīng)用程序。

  在介紹MAD架構(gòu)之前,先回顧一下最近十年應(yīng)用部署架構(gòu)的演進(jìn)。

  假設(shè)現(xiàn)在有一個(gè)任務(wù)需求,需要將用戶(hù)上傳到mp4文件轉(zhuǎn)換為WMV格式再存儲(chǔ)到數(shù)據(jù)中。

  單體架構(gòu)

  如果使用最早的單體架構(gòu)部署,作為最傳統(tǒng)的應(yīng)用部署模式,是將整個(gè)應(yīng)用程序作為一個(gè)單一的、緊密耦合的單元進(jìn)行開(kāi)發(fā)和部署。

  在這種情況下,MP4文件轉(zhuǎn)換為WMV格式的功能將作為應(yīng)用程序的一部分實(shí)現(xiàn)。整個(gè)應(yīng)用程序在一個(gè)部署單元中運(yùn)行,包括處理用戶(hù)界面、業(yè)務(wù)邏輯和數(shù)據(jù)訪問(wèn)等功能。

  遇到問(wèn)題

  使用這種模式,問(wèn)題非常明顯,雖然部署簡(jiǎn)單,但會(huì)導(dǎo)致代碼和功能之間的緊密耦合,遇到局部bug會(huì)影響整個(gè)應(yīng)用功能運(yùn)行,可伸縮性受限,整個(gè)應(yīng)用程序需要按照 負(fù)載需求進(jìn)行伸縮,而不僅僅是轉(zhuǎn)換文件的功能。這可能導(dǎo)致資源浪費(fèi)和低效的資源利用,另外也會(huì)存在單點(diǎn)故障問(wèn)題,如果應(yīng)用程序的某個(gè)組件出現(xiàn)故障,整個(gè)應(yīng)用程序都會(huì)受到影響。

  在單體架構(gòu)中,所有的功能模塊都被打包在一起,共享同一個(gè)數(shù)據(jù)庫(kù)和用戶(hù)界面。單體架構(gòu)在早期的軟件開(kāi)發(fā)中非常常見(jiàn),因?yàn)樗?jiǎn)單、易于理解和實(shí)現(xiàn),但受限于可擴(kuò)展、可維護(hù)性、高可用性等問(wèn)題,單體架構(gòu)逐漸被時(shí)代淘汰。

  容器技術(shù)/微服務(wù)

  為了解決單體架構(gòu)存在問(wèn)題,容器技術(shù)孕育而生,直至docker容器技術(shù)出現(xiàn),行業(yè)改變了以往的架構(gòu)模式。

  從過(guò)去以物理機(jī)和虛擬機(jī)為主體的開(kāi)發(fā)運(yùn)維環(huán)境,向以容器為核心的基礎(chǔ)設(shè)施的轉(zhuǎn)變過(guò)程,這并不是一次溫和的改革,而是涵蓋了對(duì)網(wǎng)絡(luò)、存儲(chǔ)、調(diào)度、操作系統(tǒng)、分布式原理等各個(gè)方面的容器化理解和改造。

  容器技術(shù)發(fā)展徹底釋放了微服務(wù)天性,在單體架構(gòu)部署存在的問(wèn)題,在微服務(wù)架構(gòu)中,應(yīng)用程序被拆分為多個(gè)小型、獨(dú)立部署的服務(wù),每個(gè)服務(wù)專(zhuān)注于一個(gè)特定的功能。對(duì)于MP4文件轉(zhuǎn)換為WMV格式的過(guò)程,可以將其作為一個(gè)單獨(dú)的轉(zhuǎn)換服務(wù)實(shí)現(xiàn),甚至可以根據(jù)轉(zhuǎn)換過(guò)程進(jìn)一步拆分,實(shí)現(xiàn)更精細(xì)化管理,每個(gè)服務(wù)可以獨(dú)立部署和伸縮,提供更好的靈活性和可擴(kuò)展性,服務(wù)之間都是獨(dú)立的,可以獨(dú)立開(kāi)發(fā)、測(cè)試、擴(kuò)展和部署。

  遇到問(wèn)題

  隨之而來(lái)地系統(tǒng)復(fù)雜性增加,微服務(wù)架構(gòu)引入了分布式系統(tǒng)的復(fù)雜性,包括服務(wù)之間的通信、數(shù)據(jù)一致性和故障處理等方面。

  部署和管理成本增加,管理多個(gè)服務(wù)的部署和運(yùn)維需要更多的工作和資源。

  企業(yè)需求

  對(duì)于企業(yè),如果希望既要實(shí)現(xiàn)高效、可伸縮、高可用等功能,同時(shí)提高團(tuán)隊(duì)人員效率,開(kāi)發(fā)者可以專(zhuān)注于編寫(xiě)業(yè)務(wù)邏輯,而無(wú)需擔(dān)心服務(wù)器的配置、擴(kuò)展或管理。

  還是之前“MP4文件轉(zhuǎn)換為WMV格式存儲(chǔ)到數(shù)據(jù)”例子中,如何實(shí)現(xiàn)開(kāi)發(fā)者可以專(zhuān)注于編寫(xiě)業(yè)務(wù)邏輯,而無(wú)需擔(dān)心服務(wù)器的配置、擴(kuò)展或管理問(wèn)題?

  可以通過(guò)兩個(gè)步驟來(lái)了解:

  1、Serverless服務(wù)

  2、事件驅(qū)動(dòng)架構(gòu)(EDA)

  Serverless在基礎(chǔ)設(shè)施端解決運(yùn)維困擾

  在Serverless計(jì)算服務(wù)中,開(kāi)發(fā)人員只需關(guān)注應(yīng)用程序的業(yè)務(wù)邏輯,云服務(wù)提供商將負(fù)責(zé)管理和調(diào)配計(jì)算資源,平臺(tái)根據(jù)需求自動(dòng)擴(kuò)展計(jì)算資源,以適應(yīng)變化的工作負(fù)載,同時(shí)按使用付費(fèi),根據(jù)實(shí)際使用的計(jì)算資源付費(fèi),避免了長(zhǎng)期維護(hù)和不必要的成本。

  EDA讓開(kāi)發(fā)者可以專(zhuān)注于編寫(xiě)業(yè)務(wù)邏輯使用事件驅(qū)動(dòng)架構(gòu)

  使用EDA架構(gòu)來(lái)實(shí)現(xiàn)將MP4文件轉(zhuǎn)換為WMV格式的過(guò)程可以提供一種高度可擴(kuò)展和靈活的方式。

  1、事件源:

  事件源是用戶(hù)上傳的MP4文件,上傳成功后存儲(chǔ)在云存儲(chǔ)服務(wù)(如Amazon S3)中。當(dāng)有新的MP4文件上傳時(shí),Amazon S3會(huì)發(fā)送一個(gè)事件通知。

  2、事件觸發(fā)器:

  創(chuàng)建一個(gè)事件觸發(fā)器,以捕獲Amazon S3的事件通知,并將其轉(zhuǎn)化為事件。這可以通過(guò)使用Amazon S3的事件通知功能,或者使用專(zhuān)門(mén)的觸發(fā)器服務(wù)來(lái)實(shí)現(xiàn)。

  3、事件總線:

  搭建一個(gè)事件總線(如消息隊(duì)列或事件流服務(wù)),用于接收和傳遞事件。事件總線可以作為中心樞紐,接收來(lái)自不同事件觸發(fā)器的事件。

  4、事件處理程序:

  編寫(xiě)事件處理程序,可以使用云函數(shù)(如Amazon Lambda)或自己搭建的應(yīng)用程序來(lái)處理事件。事件處理程序?qū)⒔邮盏降氖录鳛橛|發(fā)器,執(zhí)行MP4文件轉(zhuǎn)換為WMV格式的操作。

  5、MP4轉(zhuǎn)換為WMV:

  在事件處理程序中,使用適當(dāng)?shù)墓ぞ呋蚍⻊?wù)(如FFmpeg)來(lái)執(zhí)行MP4文件轉(zhuǎn)換為WMV格式的任務(wù)。通過(guò)編寫(xiě)代碼來(lái)提取上傳的MP4文件,使用合適的轉(zhuǎn)換命令和參數(shù)將其轉(zhuǎn)換為WMV格式。

  6、結(jié)果處理:

  一旦MP4轉(zhuǎn)換為WMV完成,將轉(zhuǎn)換后的文件存儲(chǔ)云存儲(chǔ)服務(wù)(如Amazon S3)中。根據(jù)需求,還可以將轉(zhuǎn)換結(jié)果通知相關(guān)方(如用戶(hù)、運(yùn)維管理員),還可以將其集成到其他應(yīng)用程序中。

  通過(guò)以上的架構(gòu),當(dāng)用戶(hù)上傳MP4文件到指定的存儲(chǔ)桶時(shí),Amazon S3會(huì)發(fā)送事件通知到事件觸發(fā)器。事件觸發(fā)器將通知轉(zhuǎn)換為事件并發(fā)送到事件總線。事件總線將事件分發(fā)給相應(yīng)的事件處理程序,觸發(fā)MP4到WMV格式轉(zhuǎn)換的任務(wù)。事件處理程序處理完任務(wù)后,將轉(zhuǎn)換后的文件存儲(chǔ)在適當(dāng)?shù)奈恢,并可以通過(guò)適當(dāng)?shù)姆绞酵ㄖ嚓P(guān)方。

  通過(guò)EDA架構(gòu),每個(gè)事件模塊有自己的處理?xiàng)l件和界限,同時(shí)提供可擴(kuò)展性和彈性,并且允許在需要時(shí)添加更多的事件處理程序來(lái)處理多個(gè)轉(zhuǎn)換任務(wù)。還可以與其他服務(wù)和組件進(jìn)行集成(例如:日志監(jiān)控等),以實(shí)現(xiàn)更復(fù)雜的工作流程和自定義邏輯。

  Amazon Lambda

  Serverless和事件驅(qū)動(dòng)架構(gòu)(EDA)是現(xiàn)代應(yīng)用開(kāi)發(fā)中的兩個(gè)重要概念,在所有廠商中,亞馬遜云科技算是排在行業(yè)前茅,它們的Amazon Lambda結(jié)合了Serverless和EDA,是一項(xiàng)Serverless事件驅(qū)動(dòng)型計(jì)算服務(wù),可以從200多個(gè)Amazon服務(wù)和軟件即服務(wù)(SaaS)應(yīng)用程序中觸發(fā)Amazon Lambda,且只需按 到毫秒級(jí)別的使用量付費(fèi)。例如:

  01/文件處理

  使用Amazon S3在上傳后實(shí)時(shí)觸發(fā)Amazon Lambda數(shù)據(jù)處理,或連接到現(xiàn)有的Amazon EFS文件系統(tǒng),從而為大規(guī)模文件處理啟用大規(guī)模并行共享訪問(wèn)。

  根據(jù)需要,設(shè)置合適的Amazon Lambda內(nèi)存執(zhí)行代碼,Amazon Lambda實(shí)例數(shù)自動(dòng)擴(kuò)展以匹配請(qǐng)求量,并啟用自定義事件觸發(fā)器。

  02/流處理

  通過(guò)Serverless流處理的工作原理。社交媒體流加載到Amazon Kinesis中,然后觸發(fā)Amazon Lambda。Amazon Lambda運(yùn)行代碼生成主題標(biāo)簽趨勢(shì)數(shù)據(jù),并將數(shù)據(jù)存儲(chǔ)在DynamoDB中方便查詢(xún)。

  03/Web應(yīng)用程序

  通過(guò)Amazon S3、API網(wǎng)關(guān)、Amazon Lambda和DynamoDB如何協(xié)同工作以檢索Web或移動(dòng)應(yīng)用程序的天氣數(shù)據(jù)。

  04/IoT后端

  使用Amazon Lambda構(gòu)建無(wú)服務(wù)器后端,以處理Web、移動(dòng)、物聯(lián)網(wǎng)(IoT)和第三方API請(qǐng)求。

  對(duì)于開(kāi)發(fā)者而言,Amazon Lambda允許開(kāi)發(fā)人員在云中運(yùn)行代碼,無(wú)需管理服務(wù)器,能以更簡(jiǎn)單、更靈活的方式構(gòu)建和運(yùn)行應(yīng)用程序,提供了自動(dòng)擴(kuò)展、事件驅(qū)動(dòng)、事件日志和監(jiān)控、可定制性、多語(yǔ)言支持等功能,與其他Amazon服務(wù)集成緊密,可幫助開(kāi)發(fā)人員構(gòu)建高效、可靠的云應(yīng)用。

   投稿郵箱:chuanbeiol@163.com   詳情請(qǐng)?jiān)L問(wèn)川北在線:http://sanmuled.cn/

川北在線-川北全搜索版權(quán)與免責(zé)聲明
①凡注明"來(lái)源:XXX(非在線)"的作品,均轉(zhuǎn)載自其它媒體,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé),本網(wǎng)不承擔(dān)此類(lèi)稿件侵權(quán)行為的連帶責(zé)任。
②本站所載之信息僅為網(wǎng)民提供參考之用,不構(gòu)成任何投資建議,文章觀點(diǎn)不代表本站立場(chǎng),其真實(shí)性由作者或稿源方負(fù)責(zé),本站信息接受廣大網(wǎng)民的監(jiān)督、投訴、批評(píng)。
③本站轉(zhuǎn)載純粹出于為網(wǎng)民傳遞更多信息之目的,本站不原創(chuàng)、不存儲(chǔ)視頻,所有視頻均分享自其他視頻分享網(wǎng)站,如涉及到您的版權(quán)問(wèn)題,請(qǐng)與本網(wǎng)聯(lián)系,我站將及時(shí)進(jìn)行刪除處理。



合作媒體
金寵物 綠植迷 女邦網(wǎng) IT人
法律顧問(wèn):ITLAW-莊毅雄律師