迁移 Spring Boot 到函数计算

本文涉及的产品
应用实时监控服务-应用监控,每月50GB免费额度
应用实时监控服务-用户体验监控,每月100OCU免费额度
函数计算FC,每月15万CU 3个月
简介: 本文介绍如何将 Spring Boot 应用部署到函数计算。与传统的部署方法相比,您可将传统的 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
  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 等技术领域、聚焦云原生流行技术趋势、云原生大规模的落地实践,做最懂云原生开发者的技术圈。”

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
2月前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
62 2
|
3月前
|
SQL JSON Java
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和PageHelper进行分页操作,并且集成Swagger2来生成API文档,同时定义了统一的数据返回格式和请求模块。
112 1
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
|
6月前
|
SQL Java 数据库
使用Spring Boot和Flyway进行数据库迁移
使用Spring Boot和Flyway进行数据库迁移
|
3月前
|
缓存 NoSQL Java
Springboot自定义注解+aop实现redis自动清除缓存功能
通过上述步骤,我们不仅实现了一个高度灵活的缓存管理机制,还保证了代码的整洁与可维护性。自定义注解与AOP的结合,让缓存清除逻辑与业务逻辑分离,便于未来的扩展和修改。这种设计模式非常适合需要频繁更新缓存的应用场景,大大提高了开发效率和系统的响应速度。
100 2
|
5月前
|
Cloud Native Java Serverless
一键上天!如何将Spring PetClinic瞬间迁移到云端函数计算平台
【8月更文挑战第8天】在现代云原生开发中,将Spring应用迁移到Serverless环境正成为趋势。本文通过对比传统部署与函数计算,指导如何快速部署Spring PetClinic应用。传统部署需手动配置服务器和中间件,而函数计算则免除了这些步骤,仅需上传代码。首先,准备好Spring PetClinic源码或jar包;接着选择函数计算平台,本文以阿里云为例;随后对应用进行适配,并使用Maven构建部署包;登录阿里云控制台上传jar包并配置HTTP触发器;最后测试应用确保正常运行。
59 3
|
5月前
|
监控 Java Serverless
美团 Flink 大作业部署问题之想在Serverless平台上实时查看Spring Boot应用的日志要怎么操作
美团 Flink 大作业部署问题之想在Serverless平台上实时查看Spring Boot应用的日志要怎么操作
|
6月前
|
SQL XML Java
解决Spring Boot项目中的数据库迁移问题
解决Spring Boot项目中的数据库迁移问题
|
7月前
|
关系型数据库 Serverless 分布式数据库
PolarDB产品使用问题之普通版本的集群如何迁移到Serverless集群
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
7月前
|
运维 Java 关系型数据库
Spring运维之boot项目bean属性的绑定读取与校验
Spring运维之boot项目bean属性的绑定读取与校验
70 2
|
7月前
|
存储 运维 Java
Spring运维之boot项目开发关键之日志操作以及用文件记录日志
Spring运维之boot项目开发关键之日志操作以及用文件记录日志
80 2

相关产品

  • 函数计算