主頁 >  其他 > Serverless 架構開發手冊 — “人人都是 Serverless 架構師”先導篇

Serverless 架構開發手冊 — “人人都是 Serverless 架構師”先導篇

2022-02-15 07:04:54 其他

作者:寒斜

關于 Serverless 概念性的相關文章網上已經非常多,原本我也不想再做更多關于 Serverless 概念和價值相關的介紹,主要原因是我覺得當前的這個階段我們講 Serverless 應該到了結合現實生產去聊它的落地細節和實際的效果,而不應該還是用 PPT 給大家灌輸相關的理念,但基于本篇是筆者想做的《人人都是 Serverless 架構師》專題系列的開篇,所以也還是需要盡量通俗的先給大家做一個關于 Serverless 架構的開題介紹,

什么是 Serverless 架構

Serverless 架構是以 Serverless 服務體系為核心的應用架構設計理念,屬于分布式架構的一種,最明顯特征是它繼承了 Serverless 的核心優勢:及時彈性,能夠應對高并發請求并在降低計算服務成本的同時,具備微服務架構的高擴展,快速迭代等優勢,它是一種更加聚焦于業務開發的架構,

我們舉例介紹一下 Serverless 架構與傳統的架構的對比:

某初創的垂直領域電商公司,需要搭建一個完整的動態站點服務,從最開始的單體架構開始,需要在阿里云購買一臺 2 核 8G 的 ECS 和 200G 的硬碟,通常情況下 5M 帶寬一年的花費約為 4000+, 且需要用戶自己安裝 MySQL 資料庫,redis, nginx 等基礎軟體,還要有專業同學長期運維服務器,處理如防止磁盤變滿,服務器啟停及備份等作業,

當業務量上來之后,為了保持高可用和提高訪問性能,需要對基礎架構進行升級,要購買阿里云負載均衡、彈性伸縮服務和更多的 ECS 服務器,同時為了防止資料庫瓶頸,還需要升級使用云資料庫 rds ,此時的整體架構如下:

在這里插入圖片描述

除了架構層面的準備,還需要進一步設定 ECS 的安全組、伸縮規則、SlB 轉發規則,后續的運維會比單體的更復雜,整體價格成本也更高,

但是使用 Serverless 架構的話,不管是在專案初創亦或后續業務量變大等時期,整體架構都可以保持不變,其架構如下圖所示:

在這里插入圖片描述

業務增加只需橫向擴展路由配置并添加函式即可,成本上, 阿里云網關 ApiGateway 共享實體訪問量 1000w 次,共計 60 塊;阿里云物件存盤 OSS 按照存盤量和訪問流量收費,存盤量標準型是 0.12元/GB/月,訪問流量 0.5元/GB,阿里云函式計算有免費流量而且也是按量付費整體費用也非常低,資料庫根據需求可以采用 TableStrore 按量付費的模式,如果更習慣用 MySQL 則可以采購云資料庫,

Serverless 架構的優缺點

從前文中與傳統架構的對比可以看出 Serverless 架構的優勢:

  • 對初創專案有更好的成本優勢,架構體系中大部分按量付費的產品模式對初創專案而言可以最大程度的節省成本,運營成本和開發成本都會降低,

  • 擴展性更強,升級成本更低,不管是從最開始應對小規模的并發到更大流量的并發,整體的架構基本可以不變,只需要升級產品和實體規格即可(如網關升級到專享,函式記憶體規格增加),擴展業務無需重啟服務只需動態增加路由、函式和靜態配置便可以,并且完全不會影響現有業務,

  • 迭代效率更高,因為基礎架構部分幾乎無需付出更多關心,開發人員只專注業務函式即可,同時能夠做到快速部署上線,整體效率大幅度提升,

但是不可以忽視的是 Serverless 架構同樣存在以下缺陷:

  • 新的架構體系對公司的員工會有更高的要求,新技術體系需要重新學習,對公司組織會造成一定沖擊,

  • 廠商平臺鎖定,不同的服務提供商有自己的一套開發模式和規范,不利于遷移,這種風隙訓在公司必須遷移云服務商的時候會暴露的更加明顯,

  • 架構在應用層面表現的更加離散,持續集成和構建存在更多的風險,不同于部署到服務器上的應用,無服務架構的應用通常被拆的更加離散,業務路由,業務動態服務和靜態服務都分散到不同的產品上,應用層面的管理會是一個挑戰,

  • 除錯和部署更難,Serverless 服務本身對開發者是黑盒的,通常遇到問題不像服務器一樣可以登錄排查,對問題的定位變得更加困難,

當然對于后面的個問題,我們目前都給出了解決的答案,我會在后續的文章進行更詳細的介紹,

構建 Serverless 架構

Serverless 應用的的核心還是在業務邏輯處理上,不過你仍然需要更多相關的知識體系才能很好的把它落地,下面介紹一下構建 Serverless 架構我們需要哪些相關的知識儲備,

基本的云計算架構體系

因為 Serverless 架構是云原生的架構體系,構建在云上必然需要掌握一些基本的云計算架構知識,比如網路,存盤,安全等,網路部分主要包括你需要知道你應用的端到端訪問路徑,比如如果是 http 的請求,你需要知道域名決議,以及網關,

存盤部分則更多的是合理的規劃成本需要,比如你需要了解靜態資源擺放的最佳實踐應該是物件存盤,資料的存盤則毫無疑問應該是在資料庫中,不過至于是 Serverless 化的資料庫還是傳統的 Mysql 資料庫,則要看你的使用習慣、成本預算和對新事物的接受程度,安全的話題則比較多了,比如安全的秘鑰管理,安全的服務呼叫,安全的流量管控等,

雖然 Serverless 本身會面臨廠商鎖定的挑戰,但至少這些基礎的云端服務能力是每家云廠商都會有的,對于阿里云 設計網路相關的產品有 DNS 決議,CDN 加速,ApiGateway 等,存盤的話則有資料庫存盤 比如 RDS, OTS 等產品,物件存盤如 OSS,這些會在后面實戰中為大家詳細的介紹,

開發者工具

開發者工具則是開發 Serverless 架構的應用繞不開必選項之一,鑒于 Serverlss 架構是一種離散的架構,對云端服務物盡其用的架構,所以 Serverless 應用在構建部署,除錯,以及持續集成上都有別于傳統的應用,Serverless 架構的應用可能會是一個多語言多服務型別的集合體,對于 Monorepo 的訴求會更強烈,此外在構建部署以及除錯運維上也存在諸多不便,Serverless 的開發者工具正是為了彌補 Serverless 應用架構的不足而生的,

幾乎每一家云商都有自己的 Serverless 開發者工具,比如阿里云的 ServerlessDevs,AWS 的 SAM ,以及跟騰訊云合作的 Serverless Framework 等,

除了基本的專案初始化及構建部署能力之外,這三款工具又都兼具 Iac 的能力,能夠滿足多樣化的 Serverless 應用持續集成訴求,

本系列會以 Serverlss Devs 為核心工具,為大家講解 Serverless 的架構實踐,

在這里插入圖片描述

除了基礎云計算的相關概念以及開發者工具外,你還需要知道如何工程化的管理 Serverless 架構的應用,包括持續集成,多環境部署測驗,可觀測等,此外對安全有更高要求的專案還需要進一步處理安全的問題,還有性能調優等問題,

寫在最后

Serverless 的技術成熟度曲線已經從高熱度到目前的一個二次爬坡階段,實際上也是真正開始落地生產的階段,通過工具鏈的整合,已經可以做到把多個應用相關的專案整合成一個獨立的代碼倉庫,也就是有獨立的開發腳手架供更多的開發者使用去構建自己的 Serverless 應用,

隨著社會對創新落地的效率要求越來越高,我相信 Serverless 架構的天然優勢一定會比傳統的應用架構更能滿足這個訴求,所以希望能有更多的人參與進來一起踐行和為 Serverless 開發者生態貢獻,歡迎更多的開發者加入到我們自研的 Serverless 開發者工具 Serverless Devs 專案中來,

如果對 Serverless Devs 有任何疑問或希望更進一步了解,可以加入社區建設釘釘群:31193960

Serverless Devs社區官網:
http://www.serverless-devs.com/

專案倉庫:
https://github.com/Serverless-Devs/Serverless-Devs

Serverless Desktop 桌面客戶端:
https://serverlessdevs.resume.net.cn/zh-cn/desktop/index.html

Serverless 應用開發者套件:
http://serverlessdk.oss.devsapp.net/docs/tutorial-dk/intro/react

Serverless Devs CLI:
https://serverlessdevs.resume.net.cn/zhcn/cli/index.html

Serverless Hub 應用中心:
https://serverlesshub.resume.net.cn/#/hubs/special-view

作者介紹:

王慶(寒斜)|阿里云云原生中間件前端負責人

2016 年加入阿里中間件從事云產品企業控制臺研發作業,負責中間件 20 多款云產品前端研發作業,主要技術堆疊為大前端通用技術,目前專注在 Serverless 開發者工具鏈的建設,是云原生 Serverless Devs 研發負責人之一,

點擊此處,查看更多相關資訊!
發布云原生技術最新資訊、匯集云原生技術最全內容,定期舉辦云原生活動、直播,阿里產品及用戶最佳實踐發布,與你并肩探索云原生技術點滴,分享你需要的云原生內容,

關注【阿里巴巴云原生】公眾號,獲取更多云原生實時資訊!

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/423835.html

標籤:其他

上一篇:資料結構 - 堆疊

下一篇:Spring Boot Serverless 實戰 | Serverless 應用的監控與除錯

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more