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

<optgroup id="cczp1"><ruby id="cczp1"><cite id="cczp1"></cite></ruby></optgroup>
  • <acronym id="cczp1"></acronym>
    <acronym id="cczp1"><option id="cczp1"><ol id="cczp1"></ol></option></acronym>
    <delect id="cczp1"></delect>
    <center id="cczp1"></center>
    <delect id="cczp1"></delect><em id="cczp1"><button id="cczp1"><blockquote id="cczp1"></blockquote></button></em>
    1. <optgroup id="cczp1"><td id="cczp1"><dfn id="cczp1"></dfn></td></optgroup>

      實操教學(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é)假日休息