無服務(wù)器架構(gòu)是當(dāng)下云計(jì)算領(lǐng)域最熱門的趨勢(shì)之一。據(jù)統(tǒng)計(jì),只有 35% 的技術(shù)人員還沒有使用無服務(wù)器平臺(tái),越來越多的企業(yè)出于降低成本、簡化運(yùn)維、加快產(chǎn)品上市速度等原因選擇轉(zhuǎn)向無服務(wù)器架構(gòu)。那么,開發(fā)人員該如何轉(zhuǎn)變自己的開發(fā)方式以適應(yīng)和充分利用無服務(wù)器架構(gòu)?在業(yè)務(wù)快速變化的情況下如何采用無服務(wù)器架構(gòu)加速應(yīng)用開發(fā)進(jìn)程?Serverless 架構(gòu)如何與 AI 等應(yīng)用場景進(jìn)行高質(zhì)量的結(jié)合?
亞馬遜云科技 TechTalk 特別版直播活動(dòng)榮幸的邀請(qǐng)到了亞馬遜云科技首席無服務(wù)器專家 Luca Mezzalira,他結(jié)合親身經(jīng)驗(yàn)為開發(fā)者提供了無服務(wù)器架構(gòu)下應(yīng)用開發(fā)的實(shí)用建議。
無服務(wù)器架構(gòu)的 核心價(jià)值和挑戰(zhàn)
InfoQ:無服務(wù)器架構(gòu)的核心價(jià)值是什么?亞馬遜云科技的無服務(wù)器架構(gòu)有哪些優(yōu)勢(shì)?
Luca Mezzalira:“無服務(wù)器”這一概念經(jīng)過多年演變,如今我們稱其是一種策略。用戶采取無服務(wù)器策略時(shí)可以將同質(zhì)化的繁重工作交給亞馬遜云科技,自己專注編寫開發(fā)新功能,滿足你的客戶需求。
無服務(wù)器架構(gòu)有幾個(gè)優(yōu)勢(shì):首先是業(yè)務(wù)敏捷性。無服務(wù)器架構(gòu)的優(yōu)勢(shì)在于模塊化,我們能夠在基礎(chǔ)設(shè)施層面來將這一概念付諸實(shí)踐。基于無服務(wù)器架構(gòu),客戶可以享受到亞馬遜云科技內(nèi)置的各種通用模式。
無服務(wù)器的另一大優(yōu)勢(shì)就是我們擁有豐富的基礎(chǔ)設(shè)施管理經(jīng)驗(yàn),客戶可以直接享用我們多年來學(xué)到的所有最佳實(shí)踐,而開發(fā)人員或整個(gè)企業(yè)就可以專注于自己的差異化競爭優(yōu)勢(shì)——也就是他們的軟件或他們正在開發(fā)的項(xiàng)目。
InfoQ:您提到了無服務(wù)器架構(gòu)的這么多優(yōu)勢(shì),但任何事物都有兩面性。那么在您看來,無服務(wù)器架構(gòu)現(xiàn)在面臨著哪些挑戰(zhàn)?我們又該如何應(yīng)對(duì)這些挑戰(zhàn)呢?
Luca Mezzarila:事物確實(shí)都有兩面性,特別是對(duì)于那些第一次接觸無服務(wù)器服務(wù)的人來說,想要上手確實(shí)得花點(diǎn)功夫。大家要在多個(gè)維度上轉(zhuǎn)變自己的思維,拋棄過去自己熟悉的傳統(tǒng)開發(fā)方式,轉(zhuǎn)而在代碼層面開始習(xí)慣模塊化表達(dá),同時(shí)試著將更多權(quán)力下放給基礎(chǔ)設(shè)施。確實(shí)我們?yōu)榱松鲜忠c(diǎn)時(shí)間,但這并不是多難的事情。
InfoQ:在無服務(wù)器架構(gòu)中,冷啟動(dòng)延遲非常重要,也是一個(gè)常見的問題。Amazon Lambda SnapStart 可以將冷啟動(dòng)時(shí)間降低 90%,這絕對(duì)是了不起的成就。你能分享一下這背后的故事嗎?
Luca Mezzarila:Amazon Lambda SnapStart 特別關(guān)注 Java 的應(yīng)用場景,因?yàn)槭澜缟嫌泻芏嘟M織都高度依賴于 Java。將來的 Amazon Lambda SnapStart 也可能適用于其他環(huán)境,因?yàn)?Amazon Lambda 支持多種由亞馬遜云科技托管的運(yùn)行時(shí)。
很多開發(fā)者都很擔(dān)心冷啟動(dòng)問題。但根據(jù)我個(gè)人在行業(yè)內(nèi)工作了 20 年的經(jīng)驗(yàn),其實(shí)并不是所有 API 都必須擁有超低的啟動(dòng)延遲。大家一直在努力讓自己的軟件達(dá)到最好的效果。但我們還是應(yīng)該先弄清楚瓶頸究竟在哪里。
我們每年推出的版本中總有一些功能會(huì)幫助大家改善自己的工作體驗(yàn),而且開發(fā)者和公司完全不用改變自己的工作習(xí)慣。他們一早醒來,會(huì)突然發(fā)現(xiàn)軟件的延遲有所降低。這是種非常奇妙的體驗(yàn)。
無服務(wù)器架構(gòu)下 應(yīng)用開發(fā)的實(shí)用建議
InfoQ:在開發(fā)無服務(wù)器應(yīng)用時(shí),有哪些好的實(shí)踐和策略可以提供更好的性能?
Luca Mezzarila:有幾個(gè)手段是我們可以重點(diǎn)關(guān)注的。我們可以從模式出發(fā),以不同的視角看待問題。比如,當(dāng)我們的解決方案其中有一部分是同步,而另一部分是異步時(shí),同步的部分需要根據(jù)傳入的請(qǐng)求來擴(kuò)展,方案的其余部分可以保持較低的擴(kuò)展度,從而降低維護(hù)難度。傳統(tǒng)單體架構(gòu)中,你往往需要優(yōu)化峰值流量、預(yù)先配置基礎(chǔ)設(shè)施等,但無服務(wù)器架構(gòu)下這些資源都是開箱即用且可以按需擴(kuò)展的。
我還特別推薦大家認(rèn)真觀察并思考自己在做的工作,想想有什么可以優(yōu)化的地方。比如說有一些 SLA 或功能可以和產(chǎn)品團(tuán)隊(duì)討論,只要一些簡單的調(diào)整就可以更加充分地利用它們,讓開發(fā)者的工作更輕松,同時(shí)給用戶帶來顯著影響。
無服務(wù)器技術(shù)的高性能和穩(wěn)定性往往是由細(xì)節(jié)決定的。現(xiàn)在你不用再操心在哪里使用 circuit breaker,在哪里存儲(chǔ)內(nèi)存信息,而是直接借用成熟方案,而且不用自己去維護(hù)它們,這樣你就可以專注于那些真正重要的任務(wù)。
InfoQ:您說易于使用和易于維護(hù)是非常重要的,那么您能和我們分享一下如何將應(yīng)用程序劃分為小型、獨(dú)立的功能模塊,并利用無服務(wù)器架構(gòu)構(gòu)建和部署這些模塊嗎?
Luca Mezzarila:當(dāng)我們談到分布式系統(tǒng)時(shí),主要的挑戰(zhàn)在于建模部分。有些公司先是針對(duì)細(xì)碎的服務(wù)做出一些非常小的模塊,然后再嘗試耦合;還有些公司則是先構(gòu)建一些小體量或模塊式的單體架構(gòu),然后當(dāng)他們對(duì)新技術(shù)有更深刻的理解時(shí)再進(jìn)一步拆分它。我認(rèn)為第二種模式效果最好,尤其是當(dāng)你不太確定你是否想采用微服務(wù)時(shí)。
有一些實(shí)踐可以幫助你理解如何拆分應(yīng)用。首先我推薦大家了解一些領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的知識(shí)。研究這種技術(shù)的社區(qū)提供了很多極具啟發(fā)性的方案和一些能夠幫助你拆分應(yīng)用的工具。例如事件風(fēng)暴就是一個(gè)很好的起點(diǎn)。首先,業(yè)務(wù)部門和技術(shù)部門通過事件風(fēng)暴會(huì)議攜手合作,并且只關(guān)注用戶的整個(gè)使用流程。大家在白板上羅列出用戶為了完成某一項(xiàng)或多項(xiàng)任務(wù)所必須經(jīng)歷的所有事件,這樣就可以直觀展示使用應(yīng)用或特定功能的整個(gè)流程,看到促成流程推進(jìn)的關(guān)鍵事件。它們代表著不同任務(wù)之間的邊界,接下來我們就可以順利地將各部分工作分配給各個(gè)團(tuán)隊(duì)。
這時(shí)團(tuán)隊(duì)已經(jīng)可以從業(yè)務(wù)的角度出發(fā),對(duì)自己想要表達(dá)的內(nèi)容有了比較清晰的認(rèn)知,并且可以將其付諸代碼。然后團(tuán)隊(duì)就可以輕松地把一個(gè)個(gè)環(huán)節(jié)映射到無服務(wù)器服務(wù)上。而如果沒有事件風(fēng)暴這一環(huán)節(jié),直接不管不顧開始寫代碼的話,你很可能會(huì)在代碼的構(gòu)建、重構(gòu)和刪除上浪費(fèi)大量時(shí)間。
第二點(diǎn),我們不應(yīng)該過早開始預(yù)先設(shè)計(jì),你不需要在開始寫代碼前幾個(gè)月就開始構(gòu)思準(zhǔn)備。你應(yīng)該采用一個(gè)非常精簡的方法,在有限的時(shí)間內(nèi)收集盡可能多的信息,然后根據(jù)掌握的信息做出決定。有時(shí)你很有可能要改變?cè)镜脑O(shè)計(jì)方向,而無服務(wù)器是在基礎(chǔ)設(shè)施級(jí)別實(shí)現(xiàn)模塊化的,所以我們就可以直接刪除或丟棄一些代碼,然后沿著更適合我們軟件的新方向前進(jìn)。
此外,事件風(fēng)暴的另一大亮點(diǎn)是你可以看到各個(gè)團(tuán)隊(duì)在與哪些人交流,以及服務(wù)中的各個(gè)部分在與哪些服務(wù)溝通。這樣架構(gòu)師就可以輕松調(diào)整架構(gòu),改善團(tuán)隊(duì)溝通機(jī)制,對(duì)整個(gè)系統(tǒng)的認(rèn)識(shí)也會(huì)更加清晰。
無服務(wù)器 VS 微服務(wù):無服務(wù)器架構(gòu) 是微服務(wù)的一種表現(xiàn)形式
InfoQ:我們談了這么多關(guān)于無服務(wù)架構(gòu)的內(nèi)容,但我們知道在這個(gè)領(lǐng)域另一項(xiàng)非常重要的技術(shù)叫做微服務(wù)。那么您對(duì)這兩種架構(gòu)之間的關(guān)系有何看法?您認(rèn)為一項(xiàng)技術(shù)會(huì)取代另一項(xiàng)嗎?
Luca Mezzarila:微服務(wù)只是一個(gè)術(shù)語,表示一個(gè)特定的實(shí)體或工作單元,而且它是完全獨(dú)立的,可以由單一團(tuán)隊(duì)管理。微服務(wù)要有一個(gè)強(qiáng)大的封裝。而這個(gè)強(qiáng)大的封裝可以是由各種方式設(shè)計(jì)的,可能是代碼,可能是某種基礎(chǔ)設(shè)施。我認(rèn)為無服務(wù)器應(yīng)該算是微服務(wù)的一種表現(xiàn)形式。現(xiàn)實(shí)應(yīng)用中并不存在它們之間的硬性分割,大家完全可以用容器、虛擬機(jī)或者無服務(wù)技術(shù)等各種方式來實(shí)現(xiàn)微服務(wù)。
真正重要的是我們到底想用模塊化微服務(wù)表達(dá)什么。很多 API 其實(shí)根本沒有那么高的要求,也許我們只想用它獲取數(shù)據(jù)和查詢數(shù)據(jù)庫,這時(shí)候無服務(wù)器也是個(gè)好選擇。但無服務(wù)器可能并不適合每一個(gè)負(fù)載,所以大家不必盯著一套方案到處使用,這反而會(huì)限制你做架構(gòu)優(yōu)化的能力。
在設(shè)計(jì)系統(tǒng)時(shí),我們需要考慮太多因素,包括成本、性能、可擴(kuò)展性和可靠性等等。真正有意義的是先想清楚要不要用微服務(wù),再思考要用哪種方法來實(shí)現(xiàn),而無服務(wù)器只是實(shí)現(xiàn)方法之一。
InfoQ:哪些企業(yè)適合使用無服務(wù)架構(gòu),哪些又適合微服務(wù)架構(gòu)?
Luca Mezzarila:首先,利用無服務(wù)器構(gòu)建解決方案能幫初創(chuàng)企業(yè)快速部署生產(chǎn)環(huán)境。而大企業(yè)顯然面臨著更大的挑戰(zhàn),因?yàn)樗麄冇写罅康呐f代碼和舊邏輯需要處理,而當(dāng)初編寫這些代碼、設(shè)計(jì)這些邏輯的人可能已經(jīng)離職。因此他們需要先審視整個(gè)業(yè)務(wù)體系,然后思考該如何拆分這些代碼和邏輯,從而讓它們更容易被新人理解,下一步才是思考具體該使用哪種服務(wù)。所以有時(shí)候,采用混合架構(gòu)也不錯(cuò),畢竟系統(tǒng)中的某些部分可能跟容器匹配得更好,而某些部分更適合無服務(wù)器架構(gòu)。
一切工作的本質(zhì)都在于整合,而無服務(wù)器架構(gòu)恰好是實(shí)現(xiàn)整合的出色方案。無服務(wù)器架構(gòu)能用隊(duì)列輕松消化掉流量,也可以用事件或使用 Amazon Lambda 函數(shù)來與其他系統(tǒng)同步。所以每當(dāng)大家談到邊緣架構(gòu)時(shí),我想到的首選都肯定是無服務(wù)器架構(gòu)。
另外我還發(fā)現(xiàn),其實(shí) API 并沒有大家想象中那么脆弱。我們完全可以用 CDN 將流量轉(zhuǎn)出源站,無服務(wù)器在這方面也有巨大優(yōu)勢(shì),因?yàn)榇蠹抑恍璋磳?shí)際用量付費(fèi)。所以如果絕大多數(shù)流量都流經(jīng) CDN,那我們根本不用為所在區(qū)域的源站支付多少成本。
總之,想清楚自己的軟件要表達(dá)什么是很重要的,這會(huì)為日后省下很多不必要的麻煩。
InfoQ:如果沒有無服務(wù)器架構(gòu),編程工作會(huì)變得更復(fù)雜嗎?
Luca Mezzarila:通常情況下,對(duì)于公司所掌握的每項(xiàng)服務(wù)、每段代碼,我們天然希望它能對(duì)應(yīng)一套連貫且統(tǒng)一的代碼庫。所以團(tuán)隊(duì)就得一同定義設(shè)計(jì)路徑、確定所要使用的工具等等。但遺憾的是,這樣的一致性總會(huì)隨著時(shí)間的推移發(fā)生變化。對(duì)于開發(fā)人員來說,這就像是在戴著鐐銬跳舞。所以,我認(rèn)為基礎(chǔ)設(shè)施的模塊化表達(dá)可以在這里派上用場,我們只需根據(jù)業(yè)務(wù)稍做調(diào)整,而不必每次都重新做一遍配置。另外,從應(yīng)用程序的整體性出發(fā),我們會(huì)看到相似的情況總比特殊情況要多,而無服務(wù)器架構(gòu)可以將這些相似的工作集成在架構(gòu)中,減輕開發(fā)者的負(fù)擔(dān)。
亞馬遜云科技 Serverless 化 全面改造的最新進(jìn)展
InfoQ:亞馬遜云科技在推動(dòng)向無服務(wù)器的全面轉(zhuǎn)型方面做了哪些努力?
Luca Mezzarila:我們?cè)趤嗰R遜云科技建立了多個(gè)項(xiàng)目。我們面向的不只是開發(fā)者群體,同時(shí)也嘗試改變企業(yè)高管層的思維方式,讓他們了解包括無服務(wù)器在內(nèi),整個(gè)現(xiàn)代開發(fā)思維所帶來的好處。除此之外,我們也有面向架構(gòu)師和開發(fā)人員的項(xiàng)目,與他們一起走向現(xiàn)代化,也幫助他們了解如何構(gòu)建事件驅(qū)動(dòng)架構(gòu)和微服務(wù)架構(gòu)。我們也會(huì)與擁有無服務(wù)器經(jīng)驗(yàn)的合作伙伴通力合作,甚至可以為客戶推薦能幫其達(dá)成目標(biāo)的合作伙伴。
我們?yōu)榭蛻魷?zhǔn)備了很多充滿潛力的選項(xiàng)。客戶只需說明自己想達(dá)成怎樣的目標(biāo),亞馬遜云科技就能夠提供相應(yīng)的協(xié)助方案,而且大部分服務(wù)都是免費(fèi)的。只要我們能在建模階段把工作做到位,并在網(wǎng)站上發(fā)布豐富的說明文檔、博文素材、應(yīng)用實(shí)例,開發(fā)人員就能切實(shí)掌握值得借鑒的最佳實(shí)踐。并且我們的努力涵蓋各個(gè)領(lǐng)域,能幫助任何企業(yè)在云端取得成功。
InfoQ:亞馬遜云科技自己的無服務(wù)器實(shí)踐目前走到哪一步了?
Luca Mezzarila:無服務(wù)器技術(shù)在亞馬遜云科技的內(nèi)、外部工具中正在迅速普及。Amazon Lambda 函數(shù)的調(diào)用總量已達(dá)到 1 萬億。通過無服務(wù)器技術(shù),我們部署了大量開箱即用的最佳實(shí)踐,就連可用性保障都已經(jīng)在函數(shù)部署過程中被默認(rèn)內(nèi)置,客戶用不著為這些麻煩事分心。我們也在亞馬遜云科技內(nèi)部使用它支持客戶、支撐自己的服務(wù)。
當(dāng) Severless 遇上生成式 AI
InfoQ:無服務(wù)架構(gòu)在機(jī)器學(xué)習(xí)領(lǐng)域的前景如何?
Luca Mezzarila:現(xiàn)在已經(jīng)出現(xiàn)了不少使用無服務(wù)器架構(gòu)的示例,特別是在粘合各種系統(tǒng)的場景下。在我看來,最重要的就是用無服務(wù)器架構(gòu)充當(dāng)粘合劑,實(shí)現(xiàn)這些信息的跨系統(tǒng)傳輸,讓開發(fā)者可以專注于真正重要的事情。
關(guān)于生成式 AI,我們?cè)趤嗰R遜云科技中已經(jīng)成功落地。在開發(fā)層面,我們推出了 Amazon CodeWhisperer 插件,可以根據(jù)提示生成代碼編寫建議。另一項(xiàng)生成式 AI 服務(wù)是 Amazon Bedrock。它允許用戶選擇自己想要使用的大語言模型。我們還開發(fā)了自己的大語言模型,也就是 Amazon Titan。隨著這些服務(wù)的推出,我堅(jiān)信這種幫助客戶靈活選擇、定制大語言模型的方案一定能夠大放異彩。
InfoQ:您對(duì) AI 和無服務(wù)器之間的關(guān)系有何看法?二者有什么聯(lián)系嗎?
Luca Mezzarila:就目前來講,我覺得只能算是有松散的聯(lián)系。我們還需要進(jìn)一步探索,畢竟大語言模型對(duì)內(nèi)存容量有著極高的要求。盡管無服務(wù)器技術(shù)擁有自己的優(yōu)勢(shì),但正如我之前提到的,它最大的優(yōu)勢(shì)應(yīng)該是把不同的系統(tǒng)粘合起來,確保技術(shù)人員能專注于真正重要的工作。比如在 AI 語境下,你就可以專注于思考如何訓(xùn)練你的模型等等。同時(shí),我很確定會(huì)有一些通過無服務(wù)器技術(shù)實(shí)現(xiàn)的有趣應(yīng)用。社區(qū)那邊就發(fā)布過不少方法,以新穎的生成式 AI 方法嘗試簡化開發(fā)者的工作體驗(yàn)。我有種感覺,其實(shí)很多工作正在幕后悄悄推進(jìn),只是我們還沒看到。
面向未來,無服務(wù)器架構(gòu) 將為開發(fā)者帶來怎樣的機(jī)遇?
InfoQ:您如何看待無服務(wù)器架構(gòu)的未來發(fā)展趨勢(shì)?
Luca Mezzarila:我覺得最重要的還是研究客戶用例。過去幾年間出現(xiàn)了大量關(guān)于無服務(wù)器的需求。亞馬遜云科技推出的絕大多數(shù)功能都是應(yīng)客戶的要求而生。未來幾年的重點(diǎn)應(yīng)該是為無服務(wù)器重新找準(zhǔn)定位,因?yàn)楝F(xiàn)在我們將其視作一種策略,而不只是簡單的 Lambda 函數(shù)。
我們有些客戶一直立足前沿,正在做一些我們從未預(yù)料的瘋狂嘗試。但同時(shí)也有很多客戶要么對(duì)服務(wù)不完全信任,要么持明確的懷疑態(tài)度,還有一些客戶并不太了解這項(xiàng)技術(shù)。所以我一直在努力為大家答疑解惑。我們建立了一套心智模型來幫助客戶方的開發(fā)人員、架構(gòu)師和平臺(tái)團(tuán)隊(duì)把自己的軟件以科學(xué)的方式映射到無服務(wù)器架構(gòu)。這樣,無服務(wù)器的負(fù)載就能快速增長,因?yàn)槲覀円酝挠^察已經(jīng)證明無服務(wù)器架構(gòu)具有諸多優(yōu)勢(shì),令許多客戶從中受益。
InfoQ:對(duì)于開發(fā)者來說,無服務(wù)器架構(gòu)未來有哪些潛在的機(jī)會(huì)?
Luca Mezzarila:開發(fā)人員面前的機(jī)會(huì)有很多。他們可以編寫出免維護(hù)的代碼、建立更快的反饋循環(huán),并開始研究如何幫助業(yè)務(wù)和產(chǎn)品所有者一同重塑業(yè)務(wù)。還有一個(gè)挑戰(zhàn)是思維方式的轉(zhuǎn)變。企業(yè)中仍然流行一種非常集中制的思維模式,單純由組織頂層人員、或者說技術(shù)領(lǐng)導(dǎo)層來決定一切,而開發(fā)人員只是螺絲釘。他們沒有機(jī)會(huì)與產(chǎn)品團(tuán)隊(duì)溝通,共同塑造成功的軟件。產(chǎn)品和技術(shù)團(tuán)隊(duì)永遠(yuǎn)在彼此指責(zé)和爭吵,我覺得必須要避免這種爭執(zhí),讓雙方更好地合作,這才能給軟件帶來益處,進(jìn)而惠及整個(gè)組織。
InfoQ:時(shí)代車輪滾滾向前,過去開發(fā)者可能更關(guān)注學(xué)習(xí)哪種語言、哪種新技術(shù),但現(xiàn)在,特別是在疫情過去之后,企業(yè)開始更多關(guān)注利潤。他們苦苦掙扎,要在糟糕的經(jīng)濟(jì)環(huán)境下生存下去。在這樣的背景下,開發(fā)人員應(yīng)該掌握哪些軟技能呢?如何面對(duì)這樣的大環(huán)境變化?
Luca Mezzarila:在組織中,“軟技能”已經(jīng)成為了核心技能。如果我們沒有能力開展有效溝通、做出權(quán)衡,并代表企業(yè)的利益發(fā)言,即使你可以成為世界上最了不起的開發(fā)者,你也沒法把握成功的脈搏。因?yàn)楫?dāng)今的現(xiàn)實(shí)是,我們寫的每一行代碼都不是為了娛樂自己而寫,而是為我們的客戶創(chuàng)造價(jià)值。
另外,開發(fā)人員現(xiàn)在需要身兼數(shù)職,他們工作中的開發(fā)占比越來越低,而需要對(duì)事物的發(fā)展變化具備更敏銳的感知。我建議大家不要局限于特定的框架或語言,而是著眼于更廣泛的問題,包括架構(gòu)、安全性、平臺(tái)、基礎(chǔ)設(shè)施等。這些會(huì)讓我們成為更全面的開發(fā)者、更優(yōu)秀的人才。還有一點(diǎn)要著重強(qiáng)調(diào),當(dāng)你以開發(fā)者身份做出一個(gè)超出自己能力的決定時(shí),必須意識(shí)到這不只是一項(xiàng)技術(shù)決策,它也一定會(huì)在架構(gòu)和組織層面產(chǎn)生相應(yīng)的影響。
我發(fā)現(xiàn)很多開發(fā)者對(duì)分布式系統(tǒng)特別興奮,或者每一種新語言都想去試試。但每一個(gè)框架都有自己的哲學(xué)、思維方式和合作生態(tài)。我覺得我們永遠(yuǎn)都要保持開放思維。你掌握了一種編程語言或框架,這當(dāng)然是好事。但與此同時(shí)你需要看看你的周圍,通過團(tuán)隊(duì)內(nèi)不同成員的協(xié)同,我們才能構(gòu)建真正有效的功能單元,在特定場景下大放光彩。我們要做 T 型人才,涉獵廣泛的領(lǐng)域,并在特定的領(lǐng)域精通鉆研下去,同時(shí)也有具備相應(yīng)的軟技能,從而在職業(yè)生涯中不斷成長前進(jìn)。
-
服務(wù)器
+關(guān)注
關(guān)注
12文章
9295瀏覽量
85871 -
AI
+關(guān)注
關(guān)注
87文章
31490瀏覽量
269896 -
亞馬遜
+關(guān)注
關(guān)注
8文章
2680瀏覽量
83511
原文標(biāo)題:對(duì)話無服務(wù)器專家 Luca Mezzalira:你真的為 Serverless X AI 做好準(zhǔn)備了嗎?
文章出處:【微信號(hào):AI前線,微信公眾號(hào):AI前線】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論