38

迁移 Spring Boot 到函数计算

 4 years ago
source link: https://segmentfault.com/a/1190000022300491
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

AfmQJrv.jpg!web

首先介绍下在本文出现的几个比较重要的概念:

函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。函数计算更多信息 参考

Fun: Fun 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API 网关、日志服务等资源。它通过一个资源配置文件(template.yml),协助您进行开发、构建、部署操作。Fun 的更多文档 参考

备注: 本文介绍的技巧需要 Fun 版本大于等于 3.6.3。

7JFN7vm.png!web

背景信息

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
  4. 在项目的根目录下执行 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] ------------------------------------------------------------------------
  5. 部署项目到函数计算仅需要一个命令 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 等技术领域、聚焦云原生流行技术趋势、云原生大规模的落地实践,做最懂云原生开发者的技术圈。”


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK