遷移 Spring Boot 到函數計算


etienne-bosiger-WTkUYzNCu-A-unsplash.jpg
首先介紹下在本文出現的幾個比較重要的概念:

函數計算(Function Compute): 函數計算是一個事件驅動的服務,通過函數計算,用戶無需管理服務器等運行情況,只需編寫代碼並上傳。函數計算准備計算資源,並以彈性伸縮的方式運行用戶代碼,而用戶只需根據實際代碼運行所消耗的資源進行付費。函數計算更多信息 參考
Fun: Fun 是一個用於支持 Serverless 應用部署的工具,能幫助您便捷地管理函數計算、API 網關、日志服務等資源。它通過一個資源配置文件(template.yml),協助您進行開發、構建、部署操作。Fun 的更多文檔 參考

備注: 本文介紹的技巧需要 Fun 版本大於等於 3.6.3。
2

背景信息

Spring Boot 是由 Pivotal 團隊在 2013 年開始研發,2014 年 4 月發布第一個版本的全新開源的輕量級框架。它基於 Spring4.0 設計,不僅繼承了 Spring 框架原有的優秀特性,而且還通過簡化配置來進一步簡化了 Spring 應用的整個搭建和開發過程。另外 Spring Boot 通過集成大量的框架使得依賴包的版本沖突,以及引用的不穩定性等問題得到了很好的解決。

步驟一:環境准備

本文介紹的方法,不需要安裝 Docker,僅僅安裝 Fun 即可,最簡單的方式就是直接下載可執行的二進制文件。

  1. 安裝 Fun 到本機。詳情請參見安裝文檔
  2. 執行 fun --version 檢查安裝是否成功。

步驟二:遷移流程

  1. 創建一個 Spring Boot 項目,詳情請參見 Spring Quickstart Guide,若有 Spring Boot 項目則跳過該步驟。

  2. 進入到剛剛創建的示例項目中或您的項目中。

    cd <project-name>
    
  3. 本地運行項目。

  • MacOS、Linux 平台運行項目:
    ./mvnw spring-boot:run
    
  • windows 平台運行項目:
    mvnw spring-boot:run
    
  1. 在項目的根目錄下執行mvn package命令打包,編譯輸出類似如下。。

    $mvn package
    [INFO] Scanning for projects...
    [INFO] 
    [INFO] ----------------------< com.example:Spring-Boot >-----------------------
    [INFO] Building Spring-Boot 0.0.1-SNAPSHOT
    [INFO] --------------------------------[ jar ]---------------------------------
    [INFO] 
    [INFO] --- maven-resources-plugin:3.1.0:resources (default-resources) @ Spring-Boot ---
    ... ... ...
    [INFO] 
    [INFO] Results:
    [INFO] 
    [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
    [INFO] 
    [INFO] 
    [INFO] --- maven-jar-plugin:3.1.2:jar (default-jar) @ Spring-Boot ---
    [INFO] Building jar: /Users/txd123/Desktop/Spring-Boot/target/Spring-Boot-0.0.1-SNAPSHOT.jar
    [INFO] 
    [INFO] --- spring-boot-maven-plugin:2.2.6.RELEASE:repackage (repackage) @ Spring-Boot ---
    [INFO] Replacing main artifact with repackaged archive
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  38.850 s
    [INFO] Finished at: 2020-03-31T15:09:34+08:00
    [INFO] ------------------------------------------------------------------------
    
  2. 部署項目到函數計算僅需要一個命令 fun deploy -y,Fun 會自動進入部署流程。

    $fun deploy -y
    current folder is not a fun project.
    Generating template.yml...
    Generate Fun project successfully!
    ========= Fun will use 'fun deploy' to deploy your application to Function Compute! =========
    using region: cn-qingdao
    using accountId: ***********3743
    using accessKeyId: ***********Ptgk
    using timeout: 60
    
    Collecting your services information, in order to caculate devlopment changes...
    
    Resources Changes(Beta version! Only FC resources changes will be displayed):
    
       			trigger httpTrigger deploy success
       	function Spring-Boot deploy success
    service Spring-Boot deploy success
    
    Detect 'DomainName:Auto' of custom domain 'Domain'
    Request a new temporary domain ...
    The assigned temporary domain is 15639196-XXX.test.functioncompute.com,expired at 2020-04-10 15:19:56, limited by 1000 per day.
    Waiting for custom domain Domain to be deployed...
    custom domain Domain deploy success
    

    部署完成后,您可以根據部署成功的日志看到,函數計算為您生成了臨時域名 ,您通過這個臨時域名直接訪問剛剛部署的應用。

    注意:臨時域名僅僅用作演示以及開發,是有時效的,如果用作生產,請綁定已經阿里雲備案的域名,可以參見 綁定自定義域名

總結

本文介紹如何將 Spring Boot 應用部署到函數計算。與傳統的部署方法相比,您可將傳統的 Spring Boot 應用一鍵部署至遠端直接用於生產。跳過購買機器等步驟的同時,還擁有了彈性伸縮、按量付費和免運維等特性。

阿里巴巴雲原生關注微服務、Serverless、容器、Service Mesh 等技術領域、聚焦雲原生流行技術趨勢、雲原生大規模的落地實踐,做最懂雲原生開發者的技術圈。”


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM