SAE部署Jar包
名词解释
ACK
容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级 Kubernetes 容器化应用的全生命周期管理。容器服务 Kubernetes 版简化集群的搭建和扩容等工作,整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳的 Kubernetes 容器化应用运行环境。
SAE
Serverless 应用引擎 SAE(Serverless App Engine)是一个全托管、免运维、高弹性的通用 PaaS 平台。SAE 支持 Spring Boot、Spring Cloud、Dubbo、HSF、Web 应用和 XXL-JOB、ElasticJob 任务的全托管,零改造迁移、无门槛容器化、并提供了开源侧诸多增强能力和企业级高级特性。
弹性公网IP(EIP)
弹性公网 IP(Elastic IP,简称 EIP)提供独立的公网 IP 资源,包括公网 IP 地址与公网出口带宽服务。 可以与弹性云服务器、裸金属服务器、虚拟 IP、弹性负载均衡、NAT 网关等资源灵活地绑定及解绑。 一个弹性公网 IP 只能绑定一个云资源使用,且弹性公网 IP 和云资源必须在同一个区域,不支持跨区域使用弹性公网 IP。
传统型负载均衡 CLB
传统型负载均衡 CLB(Classic Load Balancer)是将访问流量根据转发策略分发到后端多台云服务器的流量分发控制服务。CLB 扩展了应用的服务能力,增强了应用的可用性。CLB 通过设置虚拟服务地址,将添加的同一地域的多台云服务器虚拟成一个高性能和高可用的后端服务池,并根据转发规则,将来自客户端的请求分发给后端服务器池中的云服务器。
CLB 默认检查云服务器池中的云服务器的健康状态,自动隔离异常状态的云服务器,消除了单台云服务器的单点故障,提高了应用的整体服务能力。 此外,CLB 还具备抗 DDoS 攻击的能力,增强了应用服务的防护能力。
网络型负载均衡 NLB
网络型负载均衡 NLB(Network Load Balancer )是阿里云面向万物互联时代推出的新一代四层负载均衡,支持超高性能和自动弹性能力,单实例可以达到 1 亿并发连接,帮您轻松应对高并发业务。
NLB 单实例最大支持 1 亿并发连接和 100 Gbps 带宽,能够轻松应对面向物联网海量连接的高并发场景。
NAT网关
NAT 网关是基于阿里云自研分布式网关,使用 SDN 技术推出的一款虚拟网络硬件。 NAT 网关支持 100 Gbps 的转发能力,为大规模公网应用提供支撑。 NAT 网关的规格、EIP 的规格和个数均可以随时升降,轻松应对业务变化,同时 NAT 网关还可以按使用量计费。 NAT 网关跨可用区部署,可用性高。
NAT+EIP
部署在 Serverless 应用引擎 SAE(Serverless App Engine)上的应用,其业务通常需要获取公网资源或者跨 VPC 访问。
通过NAT+EIP实现SAE出入公网。
为同一 VPC 下的所有应用实例配置一个公共 NAT 网关代理并绑定 EIP,通过 SNAT 功能为 VPC 内所有无公网 IP 地址的应用实例配置访问公网代理。
如果 VPC 内多个 vSwitch 下的实例需要出公网,则针对多个 vSwitch 都需要配置 SNAT。
单个 VPC 内存在多个应用访问公网,配置代理后仅需绑定 1 个 EIP。
部署策略
SAE支持单个容器扩缩(手动),也支持容器个数的增加或减少(手动 / 自动)。
SpringBoot应用
应用必须无状态
CPU内存
根据业务需求,选择自己需要的CPU数量和内存空间。实例支持变更规格,在runing状态下,支持单实例热变更。
Java环境
使用 Dragonwell 8 ,很强大。
JVM参数
JVM初始堆等参数使用系统推荐的参数,可自动适配容器的变化,当容器扩容时,JVM的堆大小等参数也会随之增大。
开启微服务性能提升 和 开启应用内存优化。
options参数
1 | -XX:+UseContainerSupport -XX:InitialRAMPercentage=70.0 -XX:MaxRAMPercentage=70.0 -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/home/admin/nas/gc-${POD_IP}-$(date '+%s').log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/admin/nas/dump-${POD_IP}-$(date '+%s').hprof -XX:+UnlockExperimentalVMOptions -XX:+UseWisp2 -Dio.netty.transport.noNative=true -XX:+UseG1GC |
args参数
1 | 指定启动分支,重定向日志 |
应用出入公网
如果应用没有出入公网需求,可以不设置弹性公网IP,会自动绑定VPC下内网IP。
否则,
应用较少时,使用绑定弹性公网IP;应用较多,使用NAT网关+弹性公网IP更方便和划算。有扩容需求也建议使用NAT+EIP。
SLS日志记录
持久化日志,新增日志Project,设置args参数中的日志路径(/tmp/stdout.log)。在查询分析属性中,打开包含中文开关,否则日志检索不支持中文检索。
应用健康检查
检测应用存活状态,通过HTTP拨测检查,通过TCP拨测检查,通过执行命令检查。
SLB(CLB)
添加负载均衡SLB(CLB)
若SLB配置了域名443访问,需要申请SSL,再配置域名DNS解析。
DNS解析配置
设置SLB的域名的DNS解析。
限流策略
通过AHAS,设置限流策略,仅支持Java。可设置API限流策略,也可设置整体的流控规则,如QPS的自适应流控。
安全策略
应用层安全,AHAS限流安全(SAE),DDOS安全(SLB自带一定量防护),WAF安全(SLB安全防护开通)。
热更新
使用SAE灰度发布功能,要求实例数大于1。满足实例条件,通过灰度发布功能,实现热部署。