应用是组成项目的某个业务特性实现,以代码、程序包或者镜像为载体,可独立部署运行。在MSAP中,对于只是创建但未部署的应用称为静态应用,对于创建并已部署的应用称为已发布应用。应用管理主要是对静态应用进行管理。
在MSAP中,应用分类有微服务和通用两种,其中,MSAP微服务应用目前支持Spring Cloud框架或者Dubbo框架,微服务应用中使用的注册配置中心为云原生Stack中的注册配置中心NACOS,微服务类型应用会使用云原生Stack中微服务治理中心MSC和应用性能监控APM的能力,而这也是微服务应用和通用应用重要区别。
创建微服务应用
在MSAP上创建微服务应用,创建静态应用的同时也会部署到指定环境。创建微服务应用的简要流程如下:
1.选择应用分类;
2.选择语言;
3.填写应用基本信息;
4.填写应用配置和应用高级配置;
5.确认应用创建信息并创建微服务。
下面以图文形式更加详细的演示创建微服务的过程。
首先,应用分类选择微服务,语言选择Java。
其次,填写应用基本信息,主要包括:
应用名称。
应用来源。对于微服务应用,应用来源有3种,即:源码仓库、制品和镜像。如果选择源码仓库,还需要勾选代码源,目前支持Gitee和Github,填写代码仓库地址和选择服务连接;如果选择制品,则需要选择制品类型,Java微服务类型有Jar包和War包两种类型;如果选择镜像,在应用基本信息引导页面无需填写任何信息了。
应用描述。
然后需要填写应用配置信息,主要包括:
选择部署环境。
选择集群类型,目前只支持k8s集群。
部署来源。部署来源主要有3种,即:源码、制品和镜像。
选择运行环境。
填写部署版本。 填写pod数量和单个pod cpu和内存的规格。
创建源码微服务
概述
源码微服务作为源码、制品和镜像这三种微服务接入方式中最为常见的一种类型,是创建微服务应用中最重要的一种。目前MSAP支持Java 语言Spring Cloud和Dubbo框架的微服务,创建微服务应用,可以使用微服务引擎MSE微服务服务治理相关能力以及应用性能监控APM的相关能力。在本章中,我们将会详细阐述创建源码微服务的完整步骤,也为后面创建制品微服务和镜像微服务做好铺垫。
填写应用基本信息。源码微服务应用基本信息包括:
应用名称。
接入方式。选择源码仓库。
代码源。目前,MSAP支持通用Git,Gitee和Github这三种代码源。
代码仓库地址。
服务连接。此处的服务连接主要是为了编译阶段拉取代码。
应用描述。
紧接着,填写应用配置信息。源码微服务应用配置信息包括:
部署环境。
集群类型。目前,MSAP只支持kubernetes集群。
工作负载类型。目前仅支持无状态应用(Deployment)和有状态应用(StatefulSet)。
部署来源。源码类微服务部署来源在新建应用时,只有源码。
分支/Tag名称。编译时需要使用的分支/Tag。
编译环境。
程序包名称。编译成功时输出的程序包名称。
程序包路径。此处为相对路径,相对于编译时拉取下的代码仓库的路径,通常对于Java微服务,为“/target”。
程序包版本。编译成功时的程序包版本。
运行环境。程序包的运行环境,实际上为镜像构建阶段使用的基础镜像。
部署版本。微服务每次部署都需要使用一个唯一的部署版本号。
Pod数量。单Pod资源配额。这里的资源指cpu和内存资源。
然后填写应用高级配置。微服务应用高级配置包括:
微服务治理。设置服务注册与发现配置、无损上线等服务治理能力。
调度规则。设置应用实例的调度规则,如亲和性/反亲和性。
启动命令。设置容器启动和运行时需要的命令。
环境变量。设置容器运行环境中的一些变量,便于部署后灵活变更容器配置。
持久化存储。设置持久化存储数据、日志等,通过持久化存储可以支持应用使用文件存储NAS和对象存储OSS以及本地盘等。
本地存储。设置本地存储数据、日志等。
应用生命周期管理。设置应用健康检查。
日志收集管理。设置日志收集规则,能将业务日志输出到ALS,便于统一管理和分析。
配置管理。通过挂载文件的方式,向容器中注入配置信息。
标签配置。为应用设置Pod标签,便于部署后基于Pod标签对应用进行分组管理。
DNS配置。为应用设置Pod的DNS策略及配置。
Tomcat配置。设置Tomcat的端口、应用访问路径以及最大线程等参数信息。
Java启动参数配置。设置GC策略和JVM内存配置等参数信息。
限流降级配置。设置应用是否启用限流降级功能
注解(Annotation)配置。为应用设置Pod注解,为应用额外添加资源描述信息。
Sidecar & InitContainer配置。为应用设置Sidecar容器和InitContainer。
下面对高级配置进行更加详细的说明。
应用高级配置——微服务治理。在MSAP中部署的SpringCloud和Dubbo应用能够无侵入对接云原生Stack中微服务治理中心MSC的能力。MSAP支持您在创建和部署应用时为应用配置注册中心实例和无损上线。
注册中心是在Java微服务架构中用于实现服务的注册与发现,能够屏蔽、解耦服务之间的相互依赖,以便对微服务进行动态管理的。目前MSAP只支持用户从云原生Stack中订购的注册配置中心NACOS产品实例。
无损上线是云原生Stack中微服务治理中心MSC产品提供的一种能力。针对应用启动的多个阶段提供了相应的保护能力,具体功能包含服务预热、服务延迟注册以及无损滚动发布等。
无损上线参数名称 | 无损上线参数含义 |
预热时长 | 应用实例下一次启动的预热时间。 |
预热曲线 | 基于已配置的预热时长,被预热的应用流量权重会根据配置的预热曲线呈指数型增长。在指定预热时长内,预热曲线值越大被预热应用刚启动时分配的流量权重越小,以满足需要较长时间进行预热的复杂应用的预热需求。 默认为2(适合于一般预热场景),表示在预热周期内服务提供者的流量接收曲线形状呈2次曲线形状。预热曲线设置范围为0~20。相同预热时间,预热曲线值越大,表示预热开始将接收的流量越小,临近预热结束时接收的流量增幅越大。 |
延迟注册时间 | 延迟注册到注册中心实例的时长。 |
无损滚动发布 | 通过就绪检查前完成服务注册:为应用无侵入提供54199端口用于检查微服务是否已经完成注册,如果已注册完成,端口返回200,否则返回500。 通过就绪检查前完成服务预热:为应用无侵入提供54199端口用于检查微服务是否已经完成预热,如果已预热完成,端口返回200,否则返回500。 |
应用高级配置——调度规则。在MSAP使用部署微服务应用至k8s集群时,如果用户希望根据自己的需求自定义应用实例的调度规则,比如,将Pod尽可能部署在多个节点或者将Pod固定在某个节点等。调度规则通常建议用户只使用内置配置模式,如果要使用自定义模式,需要用户精通K8s相关技术原理。调度规则分为两种模式,即内置配置模式和自定义配置模式。
选择内置配置模式
内置配置模式参数名称 | 内置配置模式参数含义 |
节点调度 | 内置配置模式下的节点调度有2种选项 l 默认调度:实例按照节点资源负载情况调度。 l 尽量多节点部署:实例尽量分散到不同节点上部署,以实现应用高可用部署。 |
选择自定义配置模式
通常用户只需要使用内置配置模式即可,如果有更加复杂或者自定义的需求,可以使用自定义配置模式。自定义配置模式主要包含4部分,即:节点亲和性、应用亲和性、应用反亲和性和调度容忍。
添加节点亲和性调度规则
节点亲和性参数名称 | 节点亲和性参数含义 |
选择器 | 用户需要在每个选择器下配置节点标签名、操作符号和节点标签值。 |
权重 | 在尽量满足的节点亲和性规则中才需要配置,权重范围为1-100,默认为1. |
添加应用亲和性调度规则
应用亲和性参数名称 | 应用亲和性参数含义 |
K8s命名空间 | 应用所在的K8s命名空间 |
拓扑域 | K8s中一种表示“空间位置”关系的概念,目前MSAP只支持节点。 |
选择器 | 用户需要在每个选择器下配置应用标签名、操作符号和应用标签值。 |
权重 | 在尽量满足的应用亲和性规则中才需要配置,权重范围为1-100,默认为1. |
添加应用反亲和性调度规则
应用反亲和性参数名称 | 应用反亲和性参数含义 |
K8s命名空间 | 应用所在的K8s命名空间 |
拓扑域 | K8s中一种表示“空间位置”关系的概念,目前MSAP只支持节点。 |
选择器 | 用户需要在每个选择器下配置应用标签名、操作符号和应用标签值。 |
权重 | 在尽量满足的应用反亲和性规则中才需要配置,权重范围为1-100,默认为1. |
添加调度容忍规则
调度容忍是应用根据配置的标签名、标签值和操作符号以及效果这四部分去匹配合适的污点。
调度容忍参数名称 | 调度容忍参数含义 |
标签名 | 标签的名称 |
操作符号 | 有Equal和Exists共2种操作符号。 |
标签值 | 标签对应的值 |
效果 | 匹配到节点对应污点后,应用运行的效果。有NoSchedule、NoExecute和PreferNoSchdule共3种效果可选择。 |
容忍时间(秒) | 当效果取值为NoExecute时,用户才能配置容忍时间,需要注意的是容忍时间的单位是秒。 当配置的规则匹配到节点对应污点时,容忍时间表示应用在节点上可以继续运行的时间。 |
应用高级配置——启动命令。在MSAP使用部署微服务应用至k8s集群时,如果用户希望在启动前进行特殊配置或不采用MSAP中预设的启动参数,用户可设置容器启动和运行时需要的命令。启动命令通常不建议用户使用,除非用户是精通docker和k8s技术原理和细节。
启动命令参数名称 | 启动命令参数含义 |
启动命令 | 启动命令,例如:nginx。 |
启动参数 | 启动参数,每个参数都需要单独一行。例如:对于nginx -g daemon off,在文本框中输入-g,然后在新的参数行中增加参数daemon off。 |
应用高级配置——环境变量。应用运行需要配置特定的环境变量,都可以在创建或者部署应用时自定义环境变量。一个环境变量包含类型、变量名和变量值/变量引用(当类型为配置项或保密字典时,需要填写对应的变量应用数据)。
应用高级配置——持久化存储。MSAP的K8s集群支持PVC挂载功能,实现了应用实例数据持久化存储和实例间多读共享数据。
PVC挂载
展开持久化存储,填写PVC挂载信息
参数名称 | 参数含义 |
挂载名称 | 挂载名称由小写字母、数字及-组成,且开始和结尾只能是数字和字母 |
选择PVC | 选择已经建好的PVC,如需新建,请在云容器引擎控制台新建即可 |
挂载目录 | 挂载文件目录 |
挂载模式 | 挂载模式分为只读和可读写 |
PVC模板
填写PVC模板信息
参数名称 | 参数含义 |
模板名称 | PVC模板名称由小写字母、数字及-组成,且开始和结尾只能是数字和字母 |
挂载目录 | 挂载文件目录 |
存储类型 | 选择已有的存储类型,如需新建请在云容器引擎控制台创建即可 |
容量 | 容量,单位为Gi,最小为1Gi |
访问模式 | 访问模式可为单节点读写挂载、多节点只读挂载和多节点读写挂载 |
应用高级配置——本地存储。使用本地存储可以把K8s宿主机上的文件或者目录挂载到Pod中。本地存储支持K8s宿主机本地文件和emptyDir两种类型。
K8s宿主机本地文件挂载
K8s宿主机本地文件挂载到Pod中,主要需要选择和填写如下参数:
K8s宿主机本地文件挂载 参数名称 | K8s宿主机本地文件挂载 参数含义 |
文件类型 | 选择文件类型。 |
宿主机文件路径 | K8s宿主机文件路径。 |
容器内文件路径 | 挂载到容器内的文件路径。 |
K8s宿主机本地文件挂载中支持的文件类型如下表所示,强烈推荐用户选择准确的文件类型,不要去选择默认的方式。
文件类型 | 文件类型说明 |
默认 | 不执行类型检查,直接挂载。 |
文件目录 | 文件目录,不存在则容器启动失败。 |
(新建)文件目录 | 文件目录,如果不存在,则会新建。 |
文件 | 文件,不存在则容器启动失败。 |
(新建)文件 | 文件,如果不存在,则会新建。 |
CharDevice | 字符设备文件,不存在则容器启动失败。 |
BlockDevice | 块储存设备文件,不存在则容器启动失败。 |
Socket | 标准Unix Socket文件,不存在则容器启动失败。 |
emptyDir挂载
emptyDir类型主要用于临时空间或者不同容器之间的数据共享。
emptyDir类型挂载所需要选择和填写的参数如下表:
emptyDir挂载参数名称 | emptyDir挂载参数含义 |
挂载模式 | 2种模式,即:只读和可读写。 |
挂载路径 | 容器内的挂载路径。 |
应用高级配置——应用生命周期管理。微服务应用部署到k8s集群时,需要读取Pod的存活状态并确定Pod是否准备好对外提供服务。MSAP通过云原生Stack中的容器云服务引擎集成了配置Pod探针的功能,支持配置Liveness探针来确定何时重启容器,以及配置Readiness探针来确定容器是否已经就绪可以接受流量。
Liveness探针参数名称 | Liveness探针参数含义 |
InitialDelaySeconds | 容器启动后到探针第一次执行的延迟时间。 |
PeriodSeconds | 探测周期。 |
SuccessThreshold | 探针探测失败后,只有连续成功次数达到该阈值才被认为再次成功。在Liveness探针中,该值固定为1。 |
TimeoutSeconds | 探针超时时间。 |
FailureThreshold | 探针探测成功后,只有连续失败次数达到该阈值才被认为探测失败。 |
模式 | 有3种模式,即Exec,HttpGet和TcpSocket。 · Exec:在容器中执行指定的命令,如果命令退出时返回码为0则认为诊断成功。 · HttpGet:对容器上的特定端点执行HTTP GET请求,如果响应的状态码大于等于200且小于400,则认为探测成功的。 · TcpSocket:检查容器的IP地址上的指定的TCP端口是否打开,如果打开则认为探测成功。 |
Readiness探针和Liveness探针的参数是几乎是完全一样的,这里不再赘述。
应用高级配置——日志收集管理。应用部署到k8s集群时,用户可以开通云原生Stack中的日志服务ALS,把业务文件日志、容器标准输出stdout、stderr日志输出到ALS,方便无限制行数地查看日志和自聚合分析日志。目前,ALS支持的采集日志类型为标准输出、文件日志,文件日志的采集路径支持配置为具体文件、文件夹。配置为具体文件时,系统只会采集该文件的日志;配置为文件夹时,系统会采集该文件夹下所有文件的日志。日志单元支持填写为空(系统自动创建名称为“msap_{应用名称}”的日志单元)、自定义新的日志单元、选择已有的日志单元。
需要注意的是,正常使用日志收集管理功能需要两个前提:第一,需要开通云原生Stack中的日志服务ALS;第二,需要在开通的云原生Stack中的云容器引擎实例中成功安装日志插件。
应用高级配置——配置管理。用户将创建好的K8s配置项或者K8s保密字典以文件的形式挂载到容器的指定目录,从而向容器中注入配置信息。
配置管理参数名称 | 配置管理参数含义 |
配置类型 | 目前支持K8s配置项和K8s保密字典 |
挂载类型 | 支持挂载到文件。 |
挂载源 | 需要挂载到应用容器文件系统中的配置项名称。 |
挂载主目录 | 设置容器的挂载主目录。路径必须以正斜线(/)开头。 |
文件挂载方式 | 保留原文件。保留原目录下的文件,相同文件名将保留本次挂载文件,隐藏原目录重名文件。 |
挂载配置 | · 要挂载的key:需要挂载到应用容器文件系统中的配置项指定的Key。 · 挂载文件路径:相对挂载主目录的子路径。 |
应用高级配置——标签配置
给应用配置标签,主要是为对配置了标签的应用进行分组管理,可以在K8s主机上执行kubectl命令获取相应标签的应用Pod。应用标签是由标签名称和值的键值对组成的。
应用高级配置——DNS配置。
用户根据自己的业务需求为Pod配置DNS。
DNS配置参数名称 | DNS配置参数含义 |
DNS策略 | 目前支持通过DNS策略(dnsPolicy)字段为每个Pod配置不同的DNS策略。 ClusterFirst:通过CoreDNS来做域名解析,Pod内/etc/resolv.conf配置的DNS服务地址是集群DNS服务的kube-dns地址。该策略是集群工作负载的默认策略。 ClusterFirstWithHostNet:强制在hostNetWork网络模式下使用ClusterFirst策略(默认使用Default策略)。 Default:Pod直接继承集群节点的域名解析配置。即在集群直接使用ECS的/etc/resolv.conf文件。 None:忽略集群DNS策略,需要您提供DNS配置(dnsConfig)字段来指定DNS配置信息,暂不支持此能力。 |
域名别名 | 通过hostAliases允许为Pod中的hosts文件增加本地域名解析条目。 IP地址:主机列表被解析到的目标IP地址。 主机名:将指定的主机解析到IP地址,多个主机名通过半角逗号(,)拼接。 |
应用高级配置——Tomcat配置。以WAR包或JAR包方式创建或部署应用时,您可以配置应用端口、应用访问路径以及最大线程数等Tomcat参数信息。
Tomcat配置参数名称 | Tomcat配置参数含义 |
应用端口 | 端口范围为1024~65535,小于1024的端口需要Root权限才能操作。因为容器配置的是Admin权限,所以请填写大于1024的端口。如果不配置,则默认为8080。 |
Tomcat Context | 选择应用的访问路径。 程序包名字:无需填写自定义路径,应用的访问路径是JAR包或WAR包名称。 根目录:无需填写自定义路径,应用的访问路径是/。 自定义:需要在下面的自定义路径中填写自定义的路径。 |
最大线程数 | 配置连接池的连接数大小,对应参数为maxThreads,默认大小是400。 |
Tomcat编码 | Tomcat的编码格式,包括UTF-8、ISO-8859-1、GBK和GB2312。如果不设置则默认为ISO-8859-1。 |
应用高级配置——Java启动参数配置。Java类型应用可以通过Java启动参数对JVM进行内存、GC(垃圾回收)策略以及服务注册与发现等配置。正确配置Java启动参数有助于降低GC(垃圾回收)开销,从而缩短服务器响应时间并提高吞吐量。
Java启动参数配置参数名称 | Java启动参数配置参数含义 |
内存配置 | 您可完成以下参数的配置: 初始堆内存:初始化的堆大小,单位为MB,0表示不限制使用大小。 最大堆内存:最大堆内存,单位为MB,可用范围为0~0.85*应用容器的Limit内存。 初始年轻代:初始化年轻代大小,单位为MB。 最大年轻代:最大的年轻代的大小,单位为MB,填写max_uintx意味着无上限的使用内存。 Eden/Survivor比例:Eden/Survivor内存大小的比例。 老年代/新生代比例:老年代/新生代内存大小的比例。 初始持久代:永久代的初始化大小,单位为MB。 最大持久代:永久代的最大大小,单位为MB。 最大直接内存:允许使用NIO类型的直接内存的最大值大小,单位为MB。 线程栈大小:线程栈大小,单位为KB。 |
GC策略 | 您可配置以下垃圾回收策略: 年轻代GC策略:用于设置年轻代垃圾回收器。 老年代GC策略:用于设置老年代垃圾回收器,必须先配置年轻代垃圾回收器。 并发GC线程数:配置并发GC将使用的线程数。 并行GC线程数:配置并行GC将使用的线程数。 |
工具 | 设置GC日志文件的日志目录、文件个数和文件大小,以及内存溢出时的Dump路径。 |
自定义 | 当上述配置参数不能满足您的配置需求时,您可以配置自定义参数,多个参数用空格分隔。 |
应用高级配置——限流降级配置。部署在K8s集群中的应用支持接入限流降级,并可在限流降级页面中实时监控流量,全面可视化地保障您的应用可用性。
应用高级配置——注解(Annotation)配置。注解可以将元数据附加到应用Pod上用于存储额外的信息,以便工具和库能够获取到有关对象的信息,同时不会影响Pod的运行。
应用高级配置——Sidecar & InitContainer 配置。为应用配置Sidecar容器可以帮助您运行辅助服务,例如日志收集、配置更新、网络代理。此外,您还可以配置Init Container,帮助您执行一些应用容器启动前的准备工作,例如设置配置文件、下载应用依赖、等待其他服务就绪或迁移数据库。
注意:单个输入框只能配置一个容器。如需配置多个容器,请单击+添加Sidecar Containers。
当填写完应用配置和应用高级配置后,点击“创建应用”,进入应用创建完成页面,确定应用创建信息无误,再点击“提交”,开始创建源码微服务应用。
随后页面跳转来到已发布应用菜单下的变更记录页面,等待源码微服务应用部署。
在应用管理的应用列表页面可以看到上面创建的微服务应用。
在已发布应用菜单可以看到上面创建的微服务应用。
创建制品微服务
概述
创建制品微服务的流程与创建源码微服务流程大体上是类似,主要区别在应用基本信息和应用配置页面填写和选择的信息不同。制品微服务目前支持Java语言Spring Cloud和Dubbo框架的jar报和war包类型制品。为避免赘述,这里只阐述不同之处,未提及流程均与创建源码微服务相同。
制品微服务应用基本信息包括:
应用名称。
应用来源。选择制品。
制品类型。因为是Java微服务,所以制品类型是Jar包或者War包。
应用描述。
制品微服务应用配置包括:
部署环境。
集群类型。目前,MSAP只支持kubernetes集群。
工作负载类型。目前仅支持无状态应用(Deployment)和有状态应用(StatefulSet)。
部署来源。制品微服务部署来源在新建应用时,只有制品。
部署包来源。有两种,即自定义程序包和官方Demo,自定义程序包需要用户上传一个程序包,官方Demo则直接选择官方Demo程序包即可。
制品版本。
运行环境。程序包的运行环境,实际上为镜像构建阶段使用的基础镜像。
部署版本。微服务每次部署都需要使用一个唯一的部署版本号。
Pod数量。
单Pod资源配额。这里的资源指cpu和内存资源。
应用高级配置。和创建源码微服务中的应用高级配置相同,这里不再赘述。
创建镜像微服务
概述
创建镜像微服务的流程与创建源码微服务流程大体上是类似,主要区别在应用基本信息和应用配置页面填写和选择的信息不同。镜像微服务目前支持Java语言Spring Cloud和Dubbo框架的Docker镜像。为避免赘述,这里只阐述不同之处,未提及流程均与创建源码微服务相同。
镜像微服务应用基本信息包括:
应用名称。
应用来源。选择镜像。
应用描述。
镜像微服务应用配置包括:
部署环境。
集群类型。目前,MSAP只支持kubernetes集群。
工作负载类型。目前仅支持无状态应用(Deployment)和有状态应用(StatefulSet)。
部署来源。镜像微服务部署来源在新建应用时,只有镜像。
镜像类型。MSAP支持3种类型,即:配置镜像、Demo镜像和公共镜像。
选择镜像。选择镜像仓库名称和版本。
部署版本。微服务每次部署都需要使用一个唯一的部署版本号。
Pod数量。
单Pod资源配额。这里的资源指cpu和内存资源。
应用高级配置。和创建源码微服务中的应用高级配置相同,这里不再赘述。
创建通用应用
概述
在MSAP创建应用,分为微服务应用和通用应用。如果用户的应用不是微服务应用,或者不需要使用微服务治理能力,那么可以选择创建通用应用。下面将详细阐述创建通用应用的流程。
在MSAP上创建通用应用,只会创建静态应用,这是和创建微服务应用最大的不同。创建通用应用的简要流程如下:
选择应用分类;
填写应用信息。
填写应用信息,通用应用的应用来源有源码仓库和其他,下面分这两种情况演示。
创建源码通用应用
创建源码通用应用,填写应用信息与创建源码微服务应用填写应用基本信息完全一样,这里就不再赘述该流程了。创建成功后,在应用管理菜单的应用列表中可以看到该应用。
创建其他通用应用
创建其他通用应用,主要为了解决通用应用也使用用户上传的制品部署应用这个问题。
通用应用部署配置
概述
对于已经创建成功的通用应用,如果需要部署到某个环境,则需要新建该应用在指定环境下的部署配置用于部署。目前部署配置都是特指容器部署配置。本章将简单介绍通用应用下创建容器部署配置。
对于已经创建成功的通用应用,如果需要部署到某个环境,则需要新建该应用在指定环境下的部署配置。部署配置内容包括:
部署环境
单Pod资源配额
调度规则
启动命令
环境变量
本地存储
持久化存储
应用生命周期管理
日志收集管理
配置管理
标签配置
DNS配置
Tomcat配置
Java启动参数配置
注解(Annotation)配置
Sidecar & InitContainer配置
通用应用部署配置中的内容和微服务应用中应用高级配置内容完全相同,这里就不在赘述了。
编辑应用
在MSAP上,无论是微服务应用还是通用应用,都能够编辑应用描述。对于应用来源为源码的应用,还可以修改服务连接。
删除应用
在MSAP上,删除应用前需要保证在各个部署环境上已经成功删除了该应用的实例。
微服务应用部署
概述
当微服务应用再次部署时,MSAP提供了三种部署方式,即:单批发布、分批发布和金丝雀发布。用户可以根据自己的发布需求,选择不同的部署方式。如果用户应用pod数量少且架构简单,可以直接选择单批发布;如果用户应用pod数量较多且架构复杂,可以分批次发布,直到全量更新完成;如果用户的应用是Java Spring Cloud框架或者Dubbo框架的微服务,为了验证应用的正确性,可使用金丝雀发布先进行小规模测试,然后再全量更新。
在MSAP上,微服务应用创建时,不仅仅会创建静态应用,也会部署应用。当用户需要再次部署该微服务应用到相同环境或者其他环境时,需要从应用管理菜单的应用列表处,点击“容器部署”。
微服务应用部署模式分为三种,即:单批发布、分批发布和金丝雀发布(灰度发布)。如果用户应用pod数量少且架构简单,可以直接选择单批发布;如果用户应用pod数量较多且架构复杂,可以分批次发布,直到全量更新完成;如果用户的应用是Java Spring Cloud框架或者Dubbo框架的微服务,为了验证应用的正确性、确保升级操作的安全性,可使用金丝雀发布先进行小规模测试,然后再全量更新。需要注意的是部署环境中已存在2个及2个以上实例时,才可以选择分批发布和金丝雀发布。
微服务应用单批发布
微服务单批发布时,和新建微服务应用时所填写的信息基本没有差别,这里就不再赘述了。
微服务应用分批发布
微服务分批发布时,和新建微服务应用填写内容基本没有差别,最大区别在于增加了发布策略,需要选择分批间处理方式和每批Pod数量。分批间处理方式分为手动和自动,手动指用户手动触发下一批次的发布,而自动指根据用户配置批次内部署间隔,MSAP自动触发下一批次的发布。
微服务应用金丝雀发布
微服务应用金丝雀发布时,和单批发布时所填写的信息一样,最大的区别在于需要填写发布策略。发布策略包括:
批次信息。分批间处理方式和批次及该批发布的实例个数。
灰度规则。灰度规则分为内容灰度、流量灰度和泳道灰度。
内容灰度参数名称 | 内容灰度参数含义 |
协议类型 | · Spring Cloud:需要设置path。 · Dubbo:需要选择服务和方法。 |
条件模式 | 选择同时满足下列条件或满足下列任一条件。 |
条件列表 | · Spring Cloud:可根据Cookie、Header或Parameter类型设置具体的参数。 · Dubbo:根据应用实际的参数、参数值获取表达式设置。 |
流量灰度参数名称 | 流量灰度参数含义 |
流量比例 | 流量会按配置的比例被转发到当前的灰度版本的实例。 |
泳道灰度参数名称 | 泳道灰度参数含义 |
泳道名称 | 自定义泳道灰度策略名称。 |
泳道组 | 选择已创建的泳道组。 |
泳道 | 选择已创建的泳道。 |
金丝雀完成第一批部署后,验证业务没有问题后,可以在该次变更记录中点击“执行下一批”,直至完成整个金丝雀发布。
通用应用流水线
在MSAP上的创建的通用应用,如果需要部署到某个环境或者发布私服时,就需要用到流水线,在应用管理中有流水线的入口,在流水线中,可以编排日常开发中常用的环节,具体流水线相关的操作,可以参见流水线相关章节,这里就不再赘述了。