1、阿里云Serverless的解決方案承宗高級專家云上技術架構和業務架構的進化之路為什么我們需要Serverless?我們如何使用Serverless?阿里云為構建Serverless做了哪些準備?一、現代軟件研發的問題與進化二、Serverless帶來的改變三、阿里云與Serverless目 錄content一、大規模軟件研發的問題與進化大規模軟件研發與運維遇到的巨大挑戰1.隨著新舊業務一起發展,老的軟件架構越來越復雜,軟件與硬件的管理運維復雜度指數增長2.為應用增加新功能的周期越來越長3.復雜的業務模式下,硬件采購的估算成為世界難題,拍腦袋成為常態4.老的硬件和軟件需要被淘汰,業務永續出現巨
2、大風險5.系統架構中由于各種硬件或者軟件的原因,存在單點故障可能軟件研發過程與架構設計方法持續發展云服務成為高可用與彈性伸縮的選擇二、Serverless帶來的改變Serverless的概念要點1.Serverless,指的是由開發者實現的服務端邏輯運行在無狀態的計算容器中,它是由事件觸發,短暫的(可能只存在于一次請求過程中),完全被第三方管理,其業務層面的狀態被開發者使用的數據庫和存儲資源所記錄。2.Serverless并不是指不需要任何服務器,而是指開發者不需要顧慮任何服務器資源,特別是在云上部署的Serverless。3.Serverless和Function as a Service從
3、不同的角度闡述了對這個架構特點的理解。Serverless使用方式構建一個任務上傳代碼或鏡像設置一個事件觸發器監控服務Serverless架構的工作流程事件進入消息服務隊列事件消息函數計算服務或者Docker讀取事件,獲取事件里面描述的任務獲取任務解析任務,獲取環境變量,并且執行任務執行任務輸出結果到目標存儲輸出結果Serverless適用的場景后臺事務執行個人在網上商城上購買了一件商品付款之后,等待必要的反饋成功之后,觸發的一系列異步的操作,如更改購買記錄,推動數據進入廣告系統等等批量任務當存儲系統里面有一批圖片寫入完成之后,觸發了圖片識別的事件,完成批量的識別任務后,把處理結果異步的寫回數
4、據庫進行記錄數據處理工作流當Iot設備數據寫入時,觸發事件,后臺Serverless進行ETL,把數據導入大數據處理引擎,得到計算結果之后,寫入數據庫,并且通知前臺展示更新低頻反饋式任務自動聊天機器,當有用戶詢問時,根據詢問的內容在數據庫中檢索,找到最匹配的結果內容返回定時任務定時的爬蟲任務定時的數據整理人工觸發通過命令行工具和API,也可以由人工觸發任務三、阿里云與ServerlessFunction Compute提供一種完全對服務器無感知、事件驅動的Serverless產品Docker為Serverless的到來提供了技術準備消息服務提供了事件驅動的基礎設施日志服務為Serverless
5、提供報警監控和日志分析Serverless架構可以是數據處理的流水線API Gateway不僅把計算變成成服務,也把計算的結果變成服務Serverless產生的價值:以IoT場景為例制造業的裝配工廠里,機器,人,零件不斷的產生操作記錄,每一次操作都被作為一次事件記錄下來,輸入到消息服務隊列或者日志服務中設備產生事件當這些事件觸發了函數計算,通過某種規則將這些數據通過時間序列存儲在一起,如表格存儲TableStore中,事件就變成了數據事件產生數據數據導入到數加平臺,進行模型匹配,報表統計,產生結果數據產生價值這些經過模型匹配的結果,和統計后的數據,通過API網關開放出來,成為商業化的數據服務價值驅動商業