
作者:西流

导读:Spring Boot 是基于 Java Spring 框架的套件,它预装了 Spring 的一系列组件,让开发者只需要很少的配置就可以创建独立运行的应用程序。在云原生的环境中,有大量的平台可以运行 Spring Boot 应用,例如虚拟机、容器等。但其中最有吸引力的,是以 Serverless 的方式运行 Spring Boot 应用。
前置条件
Cloud Native
您需要有一个阿里云的账户;
您需要有一台能通过公网 ip 访问的机器,安装 MySQL,Redis 等 Mall 应用依赖的软件;
您需要在运行依赖软件的机器上安装 Git, Docker,Java 和 Maven 软件;
您需要安装并配置 Serverless Devs 工具。

1.1 Clone 代码仓库
git clone https://github.com/hryang/mall
git clone https://gitee.com/aliyunfc/mall.git
1.2 构建和运行 Docker 镜像
sudo bash docker.sh
1.3 验证依赖软件运行状态
sudo docker ps
2.1 修改 Mall 应用配置
host字段改成您第 1 步安装 MySQL 等软件的节点公网 ip,如图所示:
mall-admin/src/main/resources/application-prod.yml
mall-portal/src/main/resources/application-prod.yml
mall-search/src/main/resources/application-prod.yml

2.2 生成 Mall 应用容器镜像
sudo -E mvn package

sudo docker images,应该能看到 mall/mall-admin,mall/mall-portal,mall/mall-search 的 1.0-SNAPSHOT 版本的镜像。

2.3 将镜像推送到阿里云镜像仓库


quanxi-hryang命名空间下的镜像仓库。
cn-hangzhou和
quanxi-hryang修改为您自己的镜像仓库地域和命名空间。mall/mall-portal,mall/mall-search 以此类推。
sudo docker tag mall/mall-admin:1.0-SNAPSHOT registry.cn-hangzhou.aliyuncs.com/quanxi-hryang/mall-admin:1.0-SNAPSHOTsudo docker push registry.cn-hangzhou.aliyuncs.com/quanxi-hryang/mall-admin:1.0-SNAPSHOT
s.yaml文件,这是 Serverless Devs 工具的项目定义文件。这里面定义了函数计算的资源。
access
是您使用s config
配置的身份,默认是 default。如果您采用默认设置,那么这里不需要更改。
region
是您要部署的地域,有 cn-hangzhou,cn-shanghai,cn-beijing,cn-shenzheng 等选项。
函数使用了 custom-container 运行时,需要指定镜像地址。请将 s.yaml 中的镜像地址改为您上一步推送的 mall-admin 镜像地址。同理,也需要在 s.yaml 中更改 mall-portal,mall-search 的镜像地址。

2.5 部署 Mall 应用到函数计算平台
s deploy命令,部署成功后,您将看到对应的访问网址。


2.6 查看应用日志
s.yaml中为每个服务都设置了
logConfig:auto,代表 serverless-devs 工具会自动为服务创建日志库(LogStore),所有的服务都共享一个日志库。应用所有的日志都输出到。
您可以使用 s logs
命令查看所有服务某个时间点的日志;也可以使用 s mall-admin logs
查看 mall-admin 函数的日志;也可以使用 s mall-admin logs -t
以跟随模式实时显示当前时间点之后的日志;也可以使用 s mall-admin logs --keyword=abc
查看包含关键词 abc 的日志。
s mall-admin logs -t进入跟随模式,然后在浏览器中访问
mall-admin服务的 endpoint,就能看到整个应用的启动和请求处理日志。

2.7 部署 Mall 前端项目
git clone https://github.com/hryang/mall-admin-web
git clone https://gitee.com/aliyunfc/mall-admin-web.git
config/prod.env.js,将其中的 BASE_API 改为之前在函数计算上部署成功的 mall-admin 的 endpoint。

npm installnpm run build
sudo bash docker.sh
docker images命令,将看到 mall/mall-admin-web 镜像已经成功生成了。将镜像推送到阿里云镜像仓库。
cn-hangzhou和
quanxi-hryang修改为您自己的镜像仓库地域和命名空间。
sudo docker tag mall/mall-admin-web:1.0-SNAPSHOT registry.cn-hangzhou.aliyuncs.com/quanxi-hryang/mall-admin-web:1.0-SNAPSHOTsudo docker push registry.cn-hangzhou.aliyuncs.com/quanxi-hryang/mall-admin-web:1.0-SNAPSHOT
s.yaml,和部署 mall-admin 类似,根据您的配置调整
access,
region,将
image改为上一步推送成功的镜像地址。

s deploy,当部署成功后,就能看到 mall-admin-web 服务的网址。通过浏览器访问,将看到登录页面。填入密码
macro123,就能看到完整的效果。
总结
Cloud Native
Clone 项目代码 找到一台 VM,运行脚本一键式安装 MySQL,Redis 等依赖软件 修改应用配置中 host 这一项,将值填写为步骤2中的 VM 公网 ip 生成应用镜像,并推送到阿里云镜像仓库 部署应用到函数计算平台
文中网址汇总
Cloud Native
2)Mall:
https://github.com/macrozheng/mall
3)Serverless Devs 安装文档:
http://serverless-devs.com/zh-cn/docs/installed/cliinstall.html
#Nacos 架构与原理#

文章转载自阿里巴巴云原生,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




