全部产品
云市场

自定义技术栈使用指南

更新时间:2020-01-14 18:47:07

应用管理通过技术栈来管理应用在发布部署时需要安装的软件包以及要执行的部署脚本。目前已经提供了 SOFA Lite、Spring 等常用的系统技术栈供您使用。当然您也可以通过自定义技术栈来定制更多个性化的需求。

本文档将以创建 Spring Boot 技术栈为例,介绍如何自定义技术栈。

自定义技术栈的操作包括以下六个步骤:

  1. 进入技术栈管理页面
  2. 创建技术栈实例
  3. 配置技术栈软件
  4. 添加部署脚本
  5. 环境兼容性配置
  6. 提交技术栈实例

进入技术栈管理页面

进入应用管理控制台,点击左侧导航栏中的 技术栈管理,进入技术栈管理页面。

创建技术栈实例

  1. 在技术栈管理页面中,点击左上方的 创建 按钮创建技术栈实例。

  2. 填写以下技术栈信息后,点击 创建

    • 技术栈:选择所要创建的技术栈框架。
    • 技术栈版本:输入版本前缀,后缀默认为租户名。
    • 支持操作系统:支持 CentOS 6.5 64bit、CentOS 7.2 64bit、CentOS 7.6 64bit 操作系统。
    • 调试模式:勾选调试模式意味着在发布技术栈后,仍可以对该技术栈进行任意修改,从而方便您对技术栈在云上进行集成测试,但调试模式的技术栈无法共享给任何租户。发布之后取消调试模式则无法再次开启调试模式,取消调试模式之后,技术栈可重新分享给其他租户。
    • 技术栈包:点击 上传文件 上传本地技术栈包。
    • 环境参数:点击 添加 输入环境参数。

配置技术栈软件

创建技术栈实例后默认进入技术栈的 软件配置 页面,此页面配置应用部署时需要安装的软件包。软件配置包括通用软件配置和自定义软件配置:

  • 通用软件配置:金融科技平台已经上传一些常用的软件包,并进行了分类,您可以直接选择自己需要的软件包。
  • 自定义软件包:通用软件的配置不满足时,可以通过自定义软件包增加更多的软件包。

通用软件配置

  1. 软件组 下点击 添加 按钮,进入如下图所示界面(可供选择的软件套件由创建实例时所选择的技术栈框架决定)。

    自定义技术栈 _ 通用软件 _ 选择套件

  2. 点击 确定 按钮,成功添加套装软件。

  3. 在技术栈实例详情页面上,在新添加的通用软件右侧点击 配置软件,在弹出的软件配置对话框中配置软件。

  4. 点击 确定 按钮,提交软件配置,并自动返回技术栈实例详情页面。您可以点击 配置软件 编辑这一软件配置,也可以点击 删除 直接删除该软件配置。

自定义软件配置

自定义软件 下点击 添加 按钮,进入自定义软件添加界面,自定义软件分为 OSS 下载、自动安装两种安装方式。在弹出的 添加自定义软件 对话框中,填写软件基本信息:

安装方式:

  • OSS 下载:其中存储路径必须为 .rpm 文件。

  • 自动安装:

说明:自动安装软件使用了操作系统的包管理功能(如 yum),使用前可以先登录到您的 ECS 服务器使用 yum 安装,验证可成功安装后,使用对应的软件名及版本添加自定义软件。

添加部署脚本

点击 部署脚本 标签,进入部署脚本页面,出现以下提示:

自定义技术栈 _ 部署脚本

刚创建的技术栈实例,无部署脚本,您需要根据页面上所给的提示上传一个自定义发布部署脚本。

您可以通过 SOFAStack 平台提供的 SDK 完成发布部署脚本的编写。SDK 的详细开发文档见 xDeploy 部署脚本使用说明

上传脚本流程如下:

  1. 点击 下载 SDK 按钮,按界面提示下载 SDK。

  2. 完成自定义脚本。

  3. 上传至金融科技平台:点击 +上传 按钮,进入上传界面。

说明:仅支持上传 .tgz、.zip 格式的脚本。

完成部署脚本上传后,您可以下载脚本包,也可以编辑应用的安装路径,部署脚本页面如下图所示。技术栈部署脚本

环境兼容性配置

环境兼容性配置用来定义此技术栈支持的操作系统,一般使用默认配置即可。

提交技术栈实例

完成技术栈实例编辑之后,您可以在技术栈实例详情页面右上角点击 提交 按钮,提交技术栈实例,如下图所示。

自定义技术栈 _ 提交技术栈实例

提交之后,技术栈状态转为 已提交 状态。

至此,技术栈就定义完成。创建应用时就可以选择到此技术栈。

技术栈升级

技术栈的软件包、部署脚本变更时,需要提交一个新的技术栈版本才会生效。通过这种机制确保使用老版本的应用不受影响。

可以通过发布部署应用来升级应用的技术栈版本。

在创建发布单时选择 编辑高级信息,选中 部署策略升级/降级技术栈,然后选择要升级的技术栈版本,如下图所示。

部署大盘 _ 新建发布 _ 编辑高级信息 _ 部署策略 _ 升级检测

部署中常见问题

关流量失败

  • 关流量失败

    可能原因:应用所挂载的 SLB 出现问题。

下载脚本包失败

  • 文件不存在

    可能原因:脚本未上传到 OSS 或者所使用的 OSS 出现问题。

环境安装失败

  • 执行超时

    可能原因:网络不佳。

配置环境失败

  • 执行出错

    可能原因:

    • 针对 Sofa4:

      错误信息:no appname or confregurl error

      错误原因:在 /etc/metafile 中没有 appname=xxx 或者 confreg=xxx 的对应值

下载应用失败

  • 执行出错

    可能原因:应用下载失败。

  • md5 错误

    可能原因:应用包的实际 MD5 值和期望的 MD5 值不相符。

部署应用失败

  • 执行超时

    可能原因:

    针对 Sofa4:应用配置有问题,导致部署过程无法退出而超时,建议检查一下 Antx 的配置。

服务检查失败

  • 执行出错

    可能原因:

    • 针对 Sofa4: 部署过程出错,可以检查一下 logs 目录下的日志报错。log 检查的顺序依次是:

      logs/stderr.log, cloudengine/common-enrror.log, sofa/sofa-startup.log , 应用目录下的 common-error.log

开流量失败

  • 开流量失败

    可能原因:服务器所挂载的 SLB 出现问题。

关于 domainname 的问题

针对 Sofa 的 domainname 的生成规则为:

  1. domainname=datacenter_name-workspace_name-tenant_name.[instance_name.]domain

/etc/metafile 中存在以上这些值时,就会在配置环境阶段将 domainname 写入到 /home/admin/conf/buildpack.conf 中,否则不会写入。

关于 dbmode 的问题

针对 Sofa 的 dbmode 的生成规则为:

  1. dbmode=workspace_name

/etc/metafile 中的值存在 workspace_name 时,就会在配置环境阶段将 dbmode 写入到 /home/admin/conf/buildpack.conf 中,否则不会写入。

关于 zone 的问题

针对 Sofa 的 zone 的生成规则为:

  1. zone=datacenter_iaas_id

/etc/metafile 中的值存在 datacenter_iaas_id 时,就会在配置环境阶段将 zone 写入到 /home/admin/conf/buildpack.conf 中,否则不会写入。

关于 /etc/metafile 的问题

/etc/metafile 文件的生成会在服务器创建好后的初始化阶段完成。文件中的内容,现在包括以下信息,以 Sofa4 举例:

  1. datacenter_name=hzzmf01
  2. datacenter_id=0000000001
  3. workspace_id=0000010063
  4. customer_name=myjf
  5. tenant_id=0000000001
  6. instance_name=dev01
  7. paas_id=0000021818
  8. workspace_name=TEST058
  9. confregurl=confreg.hzzmf01-test058-mybank.dev01.alipay.net
  10. outer_ecs=0
  11. appname=sofa4Test
  12. domain=alipay.net
  13. iaas_id=i-31gypurss
  14. tenant_name=myBank
  15. customer_id=0000000001
  16. datacenter_iaas_id=cn-hangzhou-bj-c

此文件一旦生成基本不会被改变,除非服务器被重新初始化。

说明:有一些早期申请的机器(2015.05 上旬之前)可能没有这个文件或者这个文件中信息不全。