亚洲精品中文免费|亚洲日韩中文字幕制服|久久精品亚洲免费|一本之道久久免费

      
      

            <dl id="hur0q"><div id="hur0q"></div></dl>

                實操教學(xué)|用Serverless 分分鐘部署一個 Spring Boot 應(yīng)用,真香

                實操教學(xué)|用Serverless 分分鐘部署一個 Spring Boot 應(yīng)用,真香

                昨天,棧長應(yīng)騰訊云小伙伴邀請參加了Techo Day 技術(shù)開放日的線上活動,這一期的主題是”輕量級云開發(fā)與云應(yīng)用“,包括輕量級應(yīng)用服務(wù)器、容器和中間件、云開發(fā)、微服務(wù)、大數(shù)據(jù)、安全等領(lǐng)域的應(yīng)用和原理等。

                這其中有一項技術(shù)講解——Serverless讓我感觸比較深。這門課打破了我對軟件開發(fā)領(lǐng)域的定義。

                在現(xiàn)代越來越強大的云計算加持下,我們大量運用了一些云組件,比如:

                • IaaS(基礎(chǔ)設(shè)施即服務(wù))
                • PaaS(平臺即服務(wù))
                • SaaS(軟件即服務(wù))

                沒錯,即使云服務(wù)應(yīng)用再多,我們也僅限在 “SaaS(軟件即服務(wù))” 層面的應(yīng)用。

                但這門課程提到的,是傳統(tǒng)的 “SaaS(軟件即服務(wù))” 不再是顆粒度最小的云服務(wù)器了,取而代之的是,你可以理解為 “方法級別” 的云服務(wù),即可以以方法作為獨立載體被部署在云上,顆粒度更小、靈活性更強,可以獲得盡可能大的彈性。

                大部分人看到 Serverless 仍是一知半解,所以我想有必要給大家做個專題分享,包括 Serverless 的正確理解及實現(xiàn)方案,以及騰訊云的 Serverless 是如何應(yīng)用的。

                Serverless 到底是什么?

                Serverless 介紹

                現(xiàn)在 Serverless 很火啊,到處都是人,包括 Spring 都已經(jīng)支持 Serverless 適配了,棧長當初看到這個名詞的時候以為是指 “無服務(wù)器”,相信很多人也會這樣以為,不過不要理解錯了,棧長在這里掃個盲。

                Serverless 是指 “無服務(wù)器架構(gòu)”,這里的 “無服務(wù)器” 并不是指程序不需要服務(wù)器運行,而是指我們的開發(fā)工作不需要關(guān)注服務(wù)器底層的資源,比如我們部署應(yīng)用時,經(jīng)常遇到以下一些服務(wù)器及基礎(chǔ)設(shè)施的相關(guān)工作:

                • 應(yīng)用需要用多少臺服務(wù)器?
                • 應(yīng)用需要用多少帶寬?
                • 應(yīng)用需要用什么操作系統(tǒng)?
                • 應(yīng)用需要運行多少個實例?
                • 應(yīng)用需要用到什么容器,怎么調(diào)度?
                • 等等……

                這些工作在傳統(tǒng)的業(yè)務(wù)中需要運維人員和開發(fā)人員一起協(xié)調(diào)完成,而 Serverless 的到來,我們通通都不用管了,Serverless 幫我們?nèi)ネ瓿蛇@些,程序員只需要關(guān)注業(yè)務(wù)邏輯本身即可。

                來看 Spring Serverless 第一張圖就明白了:

                實操教學(xué) 用Serverless 分分鐘部署一個 Spring Boot 應(yīng)用,真香!

                Serverless 只需要關(guān)注一件事:函數(shù)??!

                這里的 FaaS 就是 Serverless 最基本的一種表現(xiàn)形式。

                Serverless 優(yōu)勢

                Serverless 具有資源編排、自動伸縮、事件驅(qū)動等能力,覆蓋編碼-調(diào)試-測試-部署等全生命周期,減少維護基礎(chǔ)設(shè)施的成本和風險,利用云的能力可以更迅速的擴展。

                我們來看下面這張圖:

                實操教學(xué) 用Serverless 分分鐘部署一個 Spring Boot 應(yīng)用,真香!

                我們可以看到,Serverless 始終能滿足日益增長的需求,并能對資源做到靈活動態(tài)調(diào)整,一方面能在閑時減少資源以避免浪費,另一方面,即使流量溢出也能應(yīng)對。

                這里總結(jié)下 Serverless 的優(yōu)勢:

                高可用: 如多活、容災(zāi)、擴容、備份等能力,這些都不在話下;

                高彈性: 以方法為部署載體,比微服務(wù)更微,獲得極致彈性;

                輕運維: 免去大量的運維工作,專注核心開發(fā)業(yè)務(wù),大大節(jié)省工作量;

                等等……

                Serverless 實現(xiàn)方案

                Serverless 經(jīng)常不會單獨出現(xiàn),還有以下兩個衍生概念,也是目前最常見的 Serverless 實現(xiàn)方案:

                FaaS(函數(shù)即服務(wù)) + BaaS(后端即服務(wù))

                Function as a Service (FaaS)

                Function as a Service(FaaS)函數(shù)即服務(wù),這也是 Serverless 的基石,它是比 SaaS(軟件即服務(wù))/ BaaS(后端即服務(wù)) 更小的載體,每一個函數(shù)就是一個服務(wù),函數(shù)之間相互獨立。

                我們來看一張基于 FaaS 的架構(gòu)圖:

                實操教學(xué) 用Serverless 分分鐘部署一個 Spring Boot 應(yīng)用,真香!

                基于 FaaS 服務(wù)器底層的關(guān)系從下到上依次是這樣的:

                物理服務(wù)器(IaaS) > 虛擬機(PaaS) > 容器(PaaS) > 函數(shù)(FaaS)

                函數(shù)(也可以說方法)顆粒度更小,可以幫助應(yīng)用獲得極致彈性。

                Backend as Service(BaaS)

                Backend as a Service(Baas)后端即服務(wù),即為應(yīng)用提供后端云服務(wù),可以理解為 PaaS 和 SaaS 之間的一種服務(wù),它也是 Serverless 架構(gòu)中的一種表現(xiàn)形式,大量開箱即用的后端云上功能提升研發(fā)效能。

                后端服務(wù) BaaS 并不是必須的,F(xiàn)aaS 和 BaaS 都屬于 Serverless 架構(gòu)不同的表現(xiàn)形式,也可以說是 FaaS 和 BaaS 是 Serverless 架構(gòu),它們是相輔相成的。

                騰訊云 Serverless

                基本介紹

                騰訊云中的 Serverless 是指 Serverless Cloud Function,簡稱:SCF,也可以叫 “云函數(shù)”,是騰訊云提供的 Serverless 服務(wù),騰訊云用戶無需購買云服務(wù)器和虛擬機,代碼即可在騰訊云基礎(chǔ)設(shè)施上彈性、安全地運行,支持所有主流的編程語言。

                官方文檔:

                https://cloud.tencent.com/document/product/583

                騰訊云函數(shù)的魅力如下:

                實操教學(xué) 用Serverless 分分鐘部署一個 Spring Boot 應(yīng)用,真香!

                棧長了解到的情況如下:

                • 按量付費: 沒有用戶訪問時不花錢,可節(jié)約服務(wù)器開銷 30%;
                • 超低運維成本: 無需學(xué)習服務(wù)器知識,大幅度降低運維成本;
                • 彈性伸縮: 自動彈性伸縮,上不封頂,下可到 0;
                • 超高并發(fā): 每秒最高支持 10 萬并發(fā)請求數(shù);

                整個請求邏輯如下:

                實操教學(xué) 用Serverless 分分鐘部署一個 Spring Boot 應(yīng)用,真香!

                雖然我們只需要寫云函數(shù),但前面會有一道 API 網(wǎng)關(guān),是云函數(shù)的主要入口,它提供 HTTP 接口、參數(shù)校驗、鑒權(quán)、限流、自定義域名、自動化文檔等功能,這也是對云函數(shù)的強大支撐。

                解決方案

                通用解決方案

                結(jié)合 API 網(wǎng)關(guān),騰訊云函數(shù)提供基于小程序,H5,WEB 服務(wù),微服務(wù),REST API 等通用 HTTP 解決方案:

                實操教學(xué) 用Serverless 分分鐘部署一個 Spring Boot 應(yīng)用,真香!

                云函數(shù)無處不在,支持常用的、主流的客戶端載體,現(xiàn)在都支持上了云函數(shù)。

                這也讓我聯(lián)想到的一個云函數(shù)的優(yōu)勢:

                比如我們寫個 JavaScript 函數(shù)部署到了云端,然后客戶端再調(diào)用該云函數(shù),而不是像傳統(tǒng)軟件開發(fā)將函數(shù)直接內(nèi)嵌在客戶端代碼中,這樣在安全方面也能杜絕前端代碼被破譯的可能。

                所以,用上云函數(shù)真香!

                Serverless 應(yīng)用中心:

                https://cloud.tencent.com/product/sls

                彈性微服務(wù) TEM

                隨著團隊和業(yè)務(wù)規(guī)模的發(fā)展,后端服務(wù)逐漸從單體架構(gòu)演變成微服務(wù)架構(gòu),微服務(wù)架構(gòu)提供敏捷開發(fā)、靈活部署和高擴展性的同時,也增加了服務(wù)治理和運維的復(fù)雜度,提高了技術(shù)門檻。

                彈性微服務(wù)(Tencent Cloud Elastic Microservice,TEM)是面向微服務(wù)應(yīng)用的 Serverless 平臺,實現(xiàn) Serverless 與微服務(wù)的完美結(jié)合,提供開箱即用的微服務(wù)解決方案,提供應(yīng)用托管、服務(wù)注冊發(fā)現(xiàn)、微服務(wù)治理、多維度監(jiān)控等能力,支持 Zookeeper、Nacos、Consul 等注冊中心。

                產(chǎn)品地址:

                https://cloud.tencent.com/product/tem

                我們來看官網(wǎng)的架構(gòu)圖:

                實操教學(xué) 用Serverless 分分鐘部署一個 Spring Boot 應(yīng)用,真香!

                通過它我們可以快速構(gòu)建微服務(wù)應(yīng)用,只需要實現(xiàn)我們自己的微服務(wù)即可(灰色區(qū)域),這樣就能大幅提升運維效率,降低服務(wù)治理的復(fù)雜度與技術(shù)門檻,有更多的時間去聚焦核心業(yè)務(wù)本身。

                騰訊云函數(shù)初體驗

                棧長也第一時間拿到了騰訊云小伙伴給我的實驗資格,終于體驗了一把 Serverless 的魅力!

                實操教學(xué) 用Serverless 分分鐘部署一個 Spring Boot 應(yīng)用,真香!

                安裝 TCCLI

                TCCLI 是管理騰訊云資源的統(tǒng)一工具,可以快速調(diào)用騰訊云 API 來管理您的騰訊云資源。

                官方文檔:

                https://cloud.tencent.com/document/product/440/6176

                需要安裝 Python 環(huán)境和 pip 工具,Python 版本必須為 2.7 及以上版本。

                這里我們使用使用yum安裝Python3:

                yum install python3 -y

                實操教學(xué) 用Serverless 分分鐘部署一個 Spring Boot 應(yīng)用,真香!

                安裝 Python3 會同時安裝一些相關(guān)的依賴包,比如 pip。

                再執(zhí)行下面的命令安裝 TCCLI:

                sudo pip3 install tccli

                安裝完成之后,執(zhí)行以下命令,檢測是否安裝成功:

                tccli –version

                實操教學(xué) 用Serverless 分分鐘部署一個 Spring Boot 應(yīng)用,真香!

                TCCLI 安裝成功了。

                啟用命令自動補全

                TCCLI 提供了一個自動補全的功能,可以使用下面的命令進行啟用:

                echo “$(which tccli_completer)” && complete -C “$(which tccli_completer)” tccli

                實操教學(xué) 用Serverless 分分鐘部署一個 Spring Boot 應(yīng)用,真香!

                開通云函數(shù)

                點擊登錄騰訊云控制臺,開通云函數(shù)服務(wù):

                實操教學(xué) 用Serverless 分分鐘部署一個 Spring Boot 應(yīng)用,真香!

                完成以后,自動進入概覽控制面板,這里可以看到各種 SCF 應(yīng)用的調(diào)用統(tǒng)計信息:

                實操教學(xué) 用Serverless 分分鐘部署一個 Spring Boot 應(yīng)用,真香!

                配置 TCCLI

                首先要獲取訪問密鑰,訪問密鑰是構(gòu)建騰訊云 API 請求的重要憑證,調(diào)用任何一個騰訊云 API 都需要提供訪問密鑰,一對完整的訪問密鑰包括 SecretId 和 SecretKey 兩部分。

                進入訪問管理控制臺,找到【訪問密鑰】- 【API密鑰管理】,并在其中新建一個訪問密鑰:

                實操教學(xué) 用Serverless 分分鐘部署一個 Spring Boot 應(yīng)用,真香!

                再進行 TCCLI 初始化配置,使其完成使用云 API 的必要前提條件:

                tccli configure

                進入交互模式,TCCLI 會要求提供 SecretId 和 SecretKey 等信息,配置完成后,可測試下使用 CLI 拉取云主機列表:

                tccli cvm DescribeInstances

                實操教學(xué) 用Serverless 分分鐘部署一個 Spring Boot 應(yīng)用,真香!

                OK,配置成功了。

                創(chuàng)建云函數(shù)

                下面我們來創(chuàng)建一個無服務(wù)器云函數(shù),并且調(diào)用它。

                mkdir -p /data/hello && touch /data/hello/hello.py

                實操教學(xué) 用Serverless 分分鐘部署一個 Spring Boot 應(yīng)用,真香!

                這里實驗?zāi)J用的是 Python,云函數(shù)支持所有主流編程語言。

                部署云函數(shù)

                現(xiàn)在開始部署上面的云函數(shù):

                tccli scf CreateFunction –FunctionName “hello” –Code ‘{“ZipFile”:”‘$(cd /data/hello && zip -r – * | base64 | tr -d “”)'”}’ –Handler “hello.main_handler” –Description “My first scf”

                部署成功后,會有 Success 的返回。

                管理云函數(shù)

                再次進入控制臺,可以看到剛部署好的云函數(shù):

                實操教學(xué) 用Serverless 分分鐘部署一個 Spring Boot 應(yīng)用,真香!

                點擊該函數(shù)進入函數(shù)管理頁面:

                實操教學(xué) 用Serverless 分分鐘部署一個 Spring Boot 應(yīng)用,真香!

                其實在這個控制臺頁面也可以新建、編輯、上傳、部署云函數(shù)。

                測試云函數(shù)

                新建一個測試模板發(fā)起測試:

                實操教學(xué) 用Serverless 分分鐘部署一個 Spring Boot 應(yīng)用,真香!

                點擊測試按鈕:

                實操教學(xué) 用Serverless 分分鐘部署一個 Spring Boot 應(yīng)用,真香!

                成功返回了,日志也輸出了,到這里我就全程體驗了一把云函數(shù)。

                回到實驗頁面,退出實驗。

                實操教學(xué) 用Serverless 分分鐘部署一個 Spring Boot 應(yīng)用,真香!

                騰訊云函數(shù)再體驗(Java)

                創(chuàng)建云函數(shù)

                實驗?zāi)J使用的是 Python,并且會要安裝、配置很多東西,那是實驗臺,而在真實控制臺是不需要這么麻煩的流程的,我們到控制臺來創(chuàng)建一個 Java 云函數(shù)試試。

                在函數(shù)服務(wù)中點擊新建按鈕,官方有很多內(nèi)置的 Java 云函數(shù)模板,我們選擇一個 Java 8 相關(guān)的模板進行快速創(chuàng)建,當然也可以從 0 開始。

                實操教學(xué) 用Serverless 分分鐘部署一個 Spring Boot 應(yīng)用,真香!

                實操教學(xué) 用Serverless 分分鐘部署一個 Spring Boot 應(yīng)用,真香!

                創(chuàng)建成功了。

                部署云函數(shù)

                現(xiàn)在進去部署吧:

                實操教學(xué) 用Serverless 分分鐘部署一個 Spring Boot 應(yīng)用,真香!

                下載示例代碼,然后上傳部署即可。

                Java 云函數(shù)的核心代碼其實就是一個基于 Spring Boot 的接口:

                @RestController@SpringBootApplicationpublic class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } @GetMapping(“/hello”) public String hello(@RequestParam(value = “name”, defaultValue = “World”) String name) { return String.format(“Hello %s!”, name); }}

                測試云函數(shù)

                部署成功后,現(xiàn)在發(fā)起測試:

                實操教學(xué) 用Serverless 分分鐘部署一個 Spring Boot 應(yīng)用,真香!

                Java 云函數(shù)也成功了!

                云函數(shù)的魅力

                棧長體驗了兩把云函數(shù),最大的感受就是不需要自己運維服務(wù)器了,包括環(huán)境配置、JDK 安裝配置、權(quán)限、開放端口、日志、網(wǎng)絡(luò)等設(shè)置全都內(nèi)置或者有自定義配置。

                下面我們來看幾個配置頁面。

                各種函數(shù)的配置管理:

                實操教學(xué) 用Serverless 分分鐘部署一個 Spring Boot 應(yīng)用,真香!

                流量設(shè)置,可以做灰度發(fā)布:

                實操教學(xué) 用Serverless 分分鐘部署一個 Spring Boot 應(yīng)用,真香!

                并發(fā)配額,可以設(shè)置函數(shù)獨占配額、函數(shù)預(yù)置并發(fā)數(shù):

                實操教學(xué) 用Serverless 分分鐘部署一個 Spring Boot 應(yīng)用,真香!

                實操教學(xué) 用Serverless 分分鐘部署一個 Spring Boot 應(yīng)用,真香!

                還有更多配置,這里就不一一介紹了。

                總結(jié)

                看到這里,想必大家對 Serverless 有了一定程序的認識了,總之,程序員要做的只是上傳函數(shù)代碼而已,其他一切底層資源都可以在云上管理,并且是函數(shù)級別的資源管理,再結(jié)合騰訊云的各種云能力,簡直不要太香了。

                當然,這也會產(chǎn)生一定的費用,但都是按量付費的,并且可以按需要自動彈性調(diào)整,肯定要比自己全套搞要劃算,畢竟連運維和服務(wù)器都省了,最重要的是省心、省時間。

                >來源公眾號:Java技術(shù)棧

                鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
                用戶投稿
                上一篇 2022年7月1日 06:07
                下一篇 2022年7月1日 06:07

                相關(guān)推薦

                • 推薦48個微商引流推廣的方法(微商引流推廣的方法有哪些)

                  微商引流技能01——同行互推 資源共享,大家才會共贏。加入你是做穴位貼的,你的朋友是做化妝品的,這是兩個沒有交集的行業(yè),你們可以友情互推,這樣每個月的資源就都擴大了一倍,而且這些資…

                  2022年11月27日
                • 存儲過程語法(sql server存儲過程語法)

                  今天小編給各位分享存儲過程語法的知識,其中也會對sql server存儲過程語法進行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧! oracle存儲過程基本語法…

                  2022年11月26日
                • 《萬里歸途》密鑰延期至12月31日 目前票房15.65億

                  11月22日,由饒曉志執(zhí)導(dǎo),張譯、王俊凱、殷桃主演的電影《萬里歸途》宣布密鑰將延期至12月31日。 《萬里歸途》宣布密鑰將延期至12月31日。 據(jù)燈塔專業(yè)版數(shù)據(jù),該片上映54天,票…

                  2022年11月25日
                • 銳龍97900x參數(shù)規(guī)格跑分評測 銳龍97900x屬于什么檔次

                  銳龍9 7900X是銳龍7000系列處理器中性能頂尖的型號之一,它采用了這一代標配的zen4架構(gòu)和5nm制程工藝,那么它具體的參數(shù)跑分如何,在電腦上世紀發(fā)揮怎么樣呢,下面就來看看銳…

                  2022年11月24日
                • 我叫MT歸來墓園有什么用 我叫MT歸來墓園什么時候開啟?

                  多小伙伴是不是都不知道我叫MT歸來墓園有什么用?全明星激斗作為一款3D卡牌手游,受到了很多小伙伴的關(guān)注,我叫MT歸來墓園攻略小伙伴們知道了嗎?下面就和小編一起來了解一下吧。 我叫M…

                  2022年11月22日
                • 寬帶測速軟件(手機寬帶測速軟件)

                  中國聯(lián)通用戶可登錄中國聯(lián)通網(wǎng)上營業(yè)廳,選擇寬帶寬帶服務(wù)寬帶測速,按頁面指導(dǎo)進行測速,測速時建議您直連電腦,如測速結(jié)果無法達到簽約速率,您可通過中國聯(lián)通APP,“服務(wù)報障在線報障”進…

                  2022年11月22日
                • 馬斯克凌晨一點半曬“代碼審查”現(xiàn)場,編排他的段子比瘋狂星期四還多

                  夢晨 Pine 發(fā)自 凹非寺 量子位 | 公眾號 QbitAI 每一個真正會寫代碼的人,請在下午2點到總部10層報到。 每一個真正會寫代碼的人,請在下午2點到總部10層報到。 馬斯…

                  2022年11月21日
                • ftp端口號(ftp端口號可以自定義嗎)

                  FTP端口號是21在FTP服務(wù)器中,我們往往會給不同的部門或者某個特定的用戶設(shè)置一個帳戶但是,這個賬戶有個特點,就是其只能夠訪問自己的主目錄服務(wù)器通過這種方式來保障FTP服務(wù)上其他…

                  2022年11月21日
                • 暴雪啟動器卡在“正在更新暴雪啟動器”?

                  一直卡,用360流量監(jiān)控看到agent連不上服務(wù)器,C:\ProgramData\Battle.net\Agent\Agent.1040\Logs里的AgentErrors文件里有…

                  2022年11月20日
                • 軟件開發(fā)階段的6大劃分詳解(需求規(guī)格說明書在哪個階段)

                  1計劃 對所要解決的問題進行總體定義,包括了解用戶的要求及現(xiàn)實環(huán)境,從技術(shù)、經(jīng)濟和社會因素等3個方面研究并論證本軟件項目的可行性,編寫可行性研究報告,探討解決問題的方案,并對可供使…

                  2022年11月19日

                聯(lián)系我們

                聯(lián)系郵箱:admin#wlmqw.com
                工作時間:周一至周五,10:30-18:30,節(jié)假日休息