快速部署 Spring PetClinic 到函数计算平台

本文涉及的产品
函数计算FC,每月15万CU 3个月
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介:

快速部署 Spring PetClinic 到函数计算平台

简介

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

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

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

spring-petclinicPetClinic 是一个 Spring Boot 、Spring MVC 和 Spring Data 结合使用的示例项目,是学习 Spring Boot 经典案例。


Spring 框架是由一些小而美的 Java 框架以松散耦合的方式集成在一起。这些 Java 框架可以独立或者集成使用以构建许多不同类型的工业级应用程序。PetClinic 示例应用程序是为了说明如何使用 Spring 应用程序框架来构建简单且功能强大的面向数据库的应用程序。它演示了 Spring 核心功能用法。

使用控制反转和 MVC 的 Web 表示层,基于 JavaBeans 的应用程序配置,通过 JDBC,Hibernate 或 JPA 进行数据库访问,基于 JMX 声明式事务管理的应用程序监视,使用 AOP 数据验证来支持但不依赖于表示层的 Spring 框架提供了大量有用的基础结构,以简化应用程序开发工作。

本应用模板使用函数计算的 Custom 运行时RDS-MySQL 云服务作为 Spring Boot 应用的运行环境。借助于资源编排服务(ROS)的能力,该模板会自动创建 VPC、VSwitch、SecurityGroup、RDS 和绑定了 HTTP Trigger 的函数,以及绑定到 HTTP 函数的自定义域名,并自动配置好这些服务,以达到迅速上线开箱即用的效果。

注意:

  1. 需要提供一个域名(支持二级域名),如果部署在国内 Region 该域名需要在阿里云备案,然后把域名的 CNAME 记录指向 12345.cn-shanghai.fc.aliyuncs.com,其中 12345 换成您的 AccountID,如果是在国外 Region 可以免去备案环节,请查看更多参考
  2. 模板创建的 RDS-MySQL 云服务选用了最便宜的按量付费实例,费用大约为:¥0.236/小时,使用前需要确保账户有 100 元的余额,并且试用完成以后建议通过 ROS 控制台删除该应用,以免产生超出预期的费用。

快速开始

下面我们借助于函数计算的应用中心,快速地将 Spring PetClinic 快速部署到函数计算平台。

  1. 打开函数计算 Spring PetClinic 应用详情页。如果您尚未开通函数计算服务可能需要先,开通服务是免费的,另外函数计算有每月免费额度,试用服务不会产生费用。
  2. 滚动到 Spring PetClinic 应用详情页的最底部,点击“立即部署”按钮。
  3. 填写应用名称和域名,其中域名需要先去设定 DNS 的 CNAME 记录,然后点击“部署”按钮。
  4. 稍等片刻,等到部署成功以后,拷贝 URL 网址。
  5. 在浏览器中打开上面拷贝的网址

工作原理

本示例中,我们打算使用函数计算的 Custom 运行时 来移植 Petclinic 项目。顾名思义, Custom Runtime 就是自定义的执行环境, 用户基于 Custom Runtime 可以完成以下目标:

  • 可以随心所欲持定制个性化语言执行环境(例如 Golang、Lua、Ruby)以及各种语言的小版本(例如 Python3.7、Nodejs12 )等,打造属于自己的自定义 Runtime
  • 现有的 Web 应用或基于传统开发 Web 项目基本不用做任何改造,即可将项目一键迁移到函数计算平台

该应用的架构图如下:

定制化开发

依赖工具

本项目是在 MacOS 下开发的,涉及到的工具是平台无关的,对于 Linux 和 Windows 桌面系统应该也同样适用。在开始本例之前请确保如下工具已经正确的安装,更新到最新版本,并进行正确的配置。

Fun 工具依赖于 docker 来模拟本地环境。

对于 MacOS 用户可以使用 homebrew 进行安装:

brew cask install docker
brew tap vangie/formula
brew install fun

Windows 和 Linux 用户安装请参考:

  1. https://github.com/aliyun/fun/blob/master/docs/usage/installation.md

安装好后,记得先执行 fun config 初始化一下配置。

注意, 如果你已经安装过了 funcraft,确保 funcraft 的版本在 3.2.1 以上。

$ fun --version
3.2.1

初始化

git clone https://github.com/awesome-fc/spring-petclinic-for-serverless
cd spring-petclinic-for-serverless

编译打包

mvn package -Dmaven.test.skip=true

本地运行

MYSQL_HOST=localhost MYSQL_PORT=3306 MYSQL_DBNAME=petclinic MYSQL_USER=root MYSQL_PASSWORD= ./bootstrap

请在运行上述命令前启动好本地的 MySQL 数据库,并将上述 MYSQL_* 的值替换为您本地 MySQL 数据库的配置。

部署

make deploy

为了获得更好的开发体验,建议安装 Aliyun Serverless VSCode Extension

参考链接

  1. Serverless 实战 —— 移植 spring-petclinic 到函数计算
  2. Funcraft
  3. Aliyun Serverless VSCode Extension
相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
目录
相关文章
|
9天前
|
存储 人工智能 Serverless
AI 短剧遇上函数计算,一键搭建内容创意平台
为了帮助更多内容创作者和企业快速实现 AI 短剧创作,函数计算 FC 联合百炼联合推出“AI 剧本生成与动画创作解决方案”,通过函数计算 FC 构建 Web 服务,结合百炼模型服务和 ComfyUI 生图平台,实现从故事剧本撰写、插图设计、声音合成和字幕添加到视频合成的一站式自动化流程。创作者只需通过简单操作,就能快速生成高质量的剧本,并一键转化为精美的动画。
|
2月前
|
人工智能 Java Serverless
阿里云函数计算助力AI大模型快速部署
随着人工智能技术的快速发展,AI大模型已经成为企业数字化转型的重要工具。然而,对于许多业务人员、开发者以及企业来说,探索和利用AI大模型仍然面临诸多挑战。业务人员可能缺乏编程技能,难以快速上手AI模型;开发者可能受限于GPU资源,无法高效构建和部署AI应用;企业则希望简化技术门槛,以更低的成本和更高的效率利用AI大模型。
168 12
|
11天前
|
XML Java 应用服务中间件
Spring Boot 两种部署到服务器的方式
本文介绍了Spring Boot项目的两种部署方式:jar包和war包。Jar包方式使用内置Tomcat,只需配置JDK 1.8及以上环境,通过`nohup java -jar`命令后台运行,并开放服务器端口即可访问。War包则需将项目打包后放入外部Tomcat的webapps目录,修改启动类继承`SpringBootServletInitializer`并调整pom.xml中的打包类型为war,最后启动Tomcat访问应用。两者各有优劣,jar包更简单便捷,而war包适合传统部署场景。需要注意的是,war包部署时,内置Tomcat的端口配置不会生效。
106 17
Spring Boot 两种部署到服务器的方式
|
16天前
|
人工智能 JSON 自然语言处理
一键生成毛茸萌宠形象,基于函数计算极速部署 ComfyUI 生图系统
本次方案将帮助大家实现使用阿里云产品函数计算FC,只需简单操作,就可以快速配置ComfyUI大模型,创建出你的专属毛茸茸萌宠形象。内置基础大模型+常用插件+部分 Lora,以风格化图像生成只需用户让体验键配置简单方便,后续您可以根据自己的需要更换需要的模型、Lora、增加插件。
|
2月前
|
JSON 人工智能 Serverless
一键生成毛茸萌宠形象,基于函数计算极速部署ComfyUI生图系统
通过阿里云函数计算FC 和文件存储NAS,用户体验 ComfyUI 和预置工作流文件,用户可以快速生成毛茸茸萌宠等高质量图像。
一键生成毛茸萌宠形象,基于函数计算极速部署ComfyUI生图系统
|
24天前
|
Java 测试技术 应用服务中间件
Spring Boot 如何测试打包部署
本文介绍了 Spring Boot 项目的开发、调试、打包及投产上线的全流程。主要内容包括: 1. **单元测试**:通过添加 `spring-boot-starter-test` 包,使用 `@RunWith(SpringRunner.class)` 和 `@SpringBootTest` 注解进行测试类开发。 2. **集成测试**:支持热部署,通过添加 `spring-boot-devtools` 实现代码修改后自动重启。 3. **投产上线**:提供两种部署方案,一是打包成 jar 包直接运行,二是打包成 war 包部署到 Tomcat 服务器。
45 10
|
24天前
|
监控 JavaScript 数据可视化
建筑施工一体化信息管理平台源码,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
智慧工地云平台是专为建筑施工领域打造的一体化信息管理平台,利用大数据、云计算、物联网等技术,实现施工区域各系统数据汇总与可视化管理。平台涵盖人员、设备、物料、环境等关键因素的实时监控与数据分析,提供远程指挥、决策支持等功能,提升工作效率,促进产业信息化发展。系统由PC端、APP移动端及项目、监管、数据屏三大平台组成,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
|
25天前
|
存储 人工智能 安全
函数计算助您 7 分钟极速部署开源对话大模型
本方案利用函数计算的无服务器架构,您可以在函数计算控制台选择魔搭(ModelScope)开源大模型应用模板;同时,我们将利用文件存储 NAS ,为应用服务所需的大模型和相关文件提供一个安全的存储环境;最终通过访问提供的域名进行模型的调用与验证。仅需三步,即可玩转目前热门 AI 大模型。
|
2月前
|
消息中间件 运维 安全
C5GAME 游戏饰品交易平台借助 RocketMQ Serverless 保障千万级玩家流畅体验
游戏行业蓬勃发展,作为国内领先的 STEAM 游戏饰品交易的服务平台,看 C5GAME 如何利用 RocketMQ Serverless 技术,为千万级玩家提供流畅的游戏体验,同时降低成本并提升运维效率。
160 14
C5GAME 游戏饰品交易平台借助 RocketMQ Serverless 保障千万级玩家流畅体验
|
25天前
|
存储 人工智能 Serverless
7分钟玩转 AI 应用,函数计算一键部署 AI 生图大模型
人工智能生成图像(AI 生图)的领域中,Stable Diffusion WebUI 以其强大的算法和稳定的输出质量而闻名。它能够快速地从文本描述中生成高质量的图像,为用户提供了一个直观且高效的创作平台。而 ComfyUI 则以其用户友好的界面和高度定制化的选项所受到欢迎。ComfyUI 的灵活性和直观性使得即使是没有技术背景的用户也能轻松上手。本次技术解决方案通过函数计算一键部署热门 AI 生图大模型,凭借其按量付费、卓越弹性、快速交付能力的特点,完美实现低成本,免运维。

相关产品

  • 函数计算