溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

重構(gòu)遷移到Serverless(Lambda)

發(fā)布時間:2020-07-06 20:08:17 來源:網(wǎng)絡 閱讀:392 作者:Eteng 欄目:云計算

服務器準備:
近兩年無服務器是軟件開發(fā)熱門話題。AWS引領這項技術(shù)且在不斷進步,而各云廠商都具有自己的技術(shù)標準,如果要做各個云廠商之前無縫移植,從目前看來幾乎不可能,不過我相信對這一技術(shù)的創(chuàng)新未來有可能會出現(xiàn)第三方無縫對接或者統(tǒng)一標準,我們期待有這么一天。
由于無服務具備以下突出的優(yōu)點,如:1.實現(xiàn)業(yè)務快速上線、2.無須運維人員維護基礎資源,降低運維成本、3.系統(tǒng)級安全性更高、4.降低開發(fā)成本、5.適合微服務框架,在這些優(yōu)點吸引下以及大云廠商推薦下,很多用戶就會試著把他們原來在On-prem的業(yè)務使用重構(gòu)的方式往Lambda遷移,而這些嘗試首先必須要求用戶的人員能夠在微服務基礎上繼續(xù)拆分成Function的能力,能夠把業(yè)務做成無狀態(tài)。
重構(gòu)遷移到Serverless(Lambda)
業(yè)務演進圖1

從原來巨型業(yè)務Refactor到Function,這對開發(fā)人員要求越來越高,需要開發(fā)人員對業(yè)務進行細粒度拆分,以滿足這種新技術(shù)的要求。

實踐分享:
由于客戶原來在On-premises的應用已經(jīng)無法滿足業(yè)務的日益擴展,需要對原來的應用進行代碼重構(gòu)后上云??蛻魶]有具備技術(shù)很強架構(gòu)師或開發(fā)人員,幾乎都是初級外包人員。我們的人工程師協(xié)助過客戶的外包人員做一個基于Python的Lambda Demo測試之后,他們的外包人員開始自己使用SpringBoot借助Lambda技術(shù)對原來的應用進行重構(gòu)上云,然而進行到一定階段時發(fā)現(xiàn)此技術(shù)需要很專業(yè)的技術(shù)人員才能夠完全掌握,最后不得不放棄Lambda使用,回歸到EC2部署方式。以下是做過一定刪減的客戶業(yè)務架構(gòu)設計圖:
重構(gòu)遷移到Serverless(Lambda)
業(yè)務架構(gòu)圖2

1)業(yè)務及人員
這種新技術(shù)是要求開發(fā)人員必須具備一定微服務的能力,能夠應用進行拆分,并能夠通過業(yè)務代碼解決新技術(shù)存在一些缺點,還要求開發(fā)人員對原來的業(yè)務邏輯完全掌握。在新技術(shù)并不完善的情況下,并不是所有業(yè)務場景都合適重構(gòu)為Serverless服務。此客戶情況如下:

  1. 開發(fā)人員與架構(gòu)師對微服務掌握程度并不夠
  2. 對要進行拆分的業(yè)務邏輯只是表面上的理解
  3. 開發(fā)人員的代碼能力并不高
  4. 客戶的業(yè)務屬于重型且持續(xù)交易電商平臺
  5. 客戶的測試流程并不完善
    重構(gòu)遷移到Serverless(Lambda)
    Timeout報錯日志圖3

2) 技術(shù)選型:
在進行技術(shù)選型時,必須有一到兩個人員對某一技術(shù)有一定掌握,前期進行大量測試與預研,充分掌握此技術(shù)缺點與優(yōu)化。Lambda技術(shù)出現(xiàn)并不長,必然存在一些不完善,這樣就要求開發(fā)人員能夠?qū)@些不完善有所掌握,并能夠通過其他技術(shù)手段解決Lambda存在的缺陷,以滿足業(yè)務持續(xù)服務的要求。
1. 冷啟動時間
2. 開發(fā)語言是否合適
3. Lambda的請求并發(fā)與內(nèi)存配置容量上限
4. AWS各個服務Timeout時間
5. 在Lambda內(nèi)存達到上限后,重啟的問題
6. 使用Lambda預熱方案能否滿足未來業(yè)務擴展
7. 微服務化后,能否集成CI/CD功能

實踐總結(jié):
用戶在經(jīng)歷以上使用體驗后,慢慢知道有些業(yè)務還要具備一定能力后,才能夠去嘗試,而不是急于求成,需要聽更多專業(yè)人員的建議,一步一個腳印完成業(yè)務遷移,先從簡單再到復雜,先從Rehost再到Refactor,如果要Refactor必須經(jīng)過大量驗證測試。以下是經(jīng)歷過此案例后一些建議:
1. Lambda合適在輕量級業(yè)務場景
2. 做足冷啟時間評估與測試
3. 能夠更細粒度拆分業(yè)務,以Function方式寫業(yè)務
4. 掌握并測試AWS各個服務的限制(例如:API gateway的Timeout 20秒,Lamdba的內(nèi)存上限3GB等)
5. 選擇更輕量開發(fā)語言(例如:Nodejs/Python等),盡量減少部署包的大小
6. 非常熟練自己的業(yè)務
7. 具備高級以上開發(fā)工程師
8. 使用完善的監(jiān)控,不斷優(yōu)化Function
Refactor是遷移當中最高級且最復雜的方式,最好有專業(yè)人員進行協(xié)助與指導,避免重復的成本浪費。建議如果客戶的業(yè)務確實需要進行重構(gòu),請必須經(jīng)過大量的功能與性能測試驗證。(此文章若有錯誤,請指正,謝謝!)

參考學習地址:
https://blog.csdn.net/j01G58UC80251/article/details/78591424
https://www.jeremydaly.com/lambda-warmer-optimize-aws-lambda-function-cold-starts/

重構(gòu)遷移到Serverless(Lambda)
作為一家專業(yè)的云計算服務型企業(yè),博思云為專為客戶提供 AWS 上的運營服務:包括架構(gòu)咨詢服務、遷移服務、云安全集成服務、混合云管理服務、大數(shù)據(jù)服務以及 DevOps 服務。目前,博思云為在大數(shù)據(jù)、DevOps、架構(gòu)、數(shù)據(jù)庫以及操作系統(tǒng)等都已取得廠商認證,在上海、南京、杭州、武漢等地設有分公司。為創(chuàng)新服務模式、引領 IT 服務業(yè)的發(fā)展,博思云為將持續(xù)投入資源開展智能混合云管理平臺、圖數(shù)據(jù)庫的研發(fā)等。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI