首页 文章 精选 留言 我的

精选列表

搜索[业务线],共10000篇文章
优秀的个人博客,低调大师

VPC最佳实践(六):业务如何从经典网络平滑迁移到VPC

专有网络VPC(Virtual Private Cloud)正受到越来越多用户的欢迎,已经成为云上用户的首选网络类型,也是阿里云默认推荐的网络类型。然而,云上还有很多存量用户在使用经典网络,这些用户如何从经典网络迁移到VPC呢?本文将介绍相关的迁移方案。 方案概述 阿里云将提供三种迁移方案。这三个方案可以独立使用,也可以组合使用,以满足不同的迁移场景。 混挂和混访方案 ClassicLink方案 单ECS迁移方案 混挂和混访方案 混挂和混访方案是一种系统平滑迁移方案,即用户通过在VPC中新建ECS等云产品实例,然后将系统平滑迁移到VPC。当所有系统都迁移到VPC后,再将经典网络内的资源释放,从而完成经典网络到VPC的迁移。 在使用本方案时,请注意: 本方案可以满足绝大部分系统的迁移要求,但无法实现有经典网络ECS和专有网络ECS私网通信需求的系统的迁移。 本方案仅用于经典网络迁移到VPC。 混挂 负载均衡(SLB)混挂,即一个负载均衡实例可以同时挂载经典网络和VPC类型的ECS作为后端服务器来接收监听转发的请求,支持虚拟服务器组形式的混挂。 支持混挂的负载均衡实例类型如下: 公网负载均衡实例 私网负载均衡实例(包括经典网络和VPC) 注意:VPC私网负载均衡实例同时挂载经典网络和专有网络ECS时,如果使用四层(TCP和UDP协议)监听,目前无法在经典网络ECS上获取客户端的真实IP,但在专有网络ECS上还可以正常获取客户端的真实IP。对七层监听(HTTP和HTTPS协议)没有影响,可以正常获取客户端的真实IP 混访 云数据库RDS和对象存储OSS等云产品支持混访,即支持同时被经典网络和专有网络中的ECS访问。注意需要使用不同的访问域名,一个是经典网络私网访问域名,另外一个是专有网络访问域名。 云数据库RDS支持混访的操作指南,参考经典网络迁移VPC-RDS等支持混访说明。 对象存储OSS的专有网络访问域名,参考访问域名和数据中心。 ClassLink方案 ClassicLink方案可以将一台经典网络ECS链接到一个VPC,从而实现经典网络ECS直接通过私网访问VPC内的云资源(如ECS,RDS,SLB等)。 ClassicLink功能已经在华北2(北京)、华南1(深圳)、华东2(上海)、华东1(杭州)上线,其它地域近期会陆续上线。该功能当前处于灰度中,如有需要请联系您的客户经理 使用ClassicLink方案时,请注意: 经典网络ECS实例只能通过ClassicLink链接到同账户、同地域的一个VPC。 ClassicLink链接没有传递性,经典网络ECS实例不能通过链接的VPC的高速通道访问另外一个VPC的云服务。 ClassicLink的VPC默认支持172.16.0.0/12网段。如果VPC使用的是其它网段,需要注意以下两点: 如果要Link到的VPC的网段是10.0.0.0/8,那么和经典网络ECS通信的交换机的网段必须是10.111.0.0/16。 如果要Link到的VPC的网段是192.168.0.0/16,那么需要在经典网络ECS中增加到192.168.0.0/16网段的路由。 已Link到VPC的经典网络ECS可以访问VPC内的所有资源,但VPC中的ECS只能访问已Link的经典网络ECS,不能访问未Link的经典网络ECS,也不能访问经典网络内的其它云产品。 宕机迁移、热迁移、过保迁移、停止、启动、重启、更换系统盘等操作,已建立的ClassicLink链接将保持不变。 单ECS迁移方案 单ECS迁移方案,即经典网络ECS通过本方案直接迁移到专有网络中(需重启ECS)。无需通过创建镜像、重新购买等步骤就能把实例迁移到专有网络。 1. 预约迁移 需要在ECS控制台的待办任务中选择预约实例迁移。默认情况下,符合迁移条件的实例会显示在预约窗口列表中。 注意:当前预约迁移必须先通过客户经理申请,请将需要迁移的实例列表提供给客户经理。待阿里云处理后,您方可通过控制台进行预约迁移。 2. 正式迁移 完成预约后,本迁移工具将在预约时间点开始迁移。迁移完成后,您将收到迁移成功的短信消息提醒。 在使用单ECS迁移方案时,请注意: 暂不支持经典网络系列I类型实例进行迁移。 迁移过程中实例需要进行重启,请关注对系统的影响。 使用此迁移方案,ECS的公网地址和私网地址都会变化。 迁移的目标交换机的可用区必须和要迁移的ECS实例的可用区相同。 迁移过程中实例ID及登录信息不变。 包年包月购买方式的实例迁移过程中不需要额外付费。从新的计费周期开始,按照同规格专有网络的价格计算。 迁移前如有续费变配未生效订单或未支付订单,迁移后该订单将被取消且不能恢复,请您重新下单。 各迁移方案使用示例 混挂和混访方案迁移示例 ClassicLink迁移示例 单ECS迁移示例 混挂和混访方案迁移示例 迁移提醒 在正式迁移之前,请务必先了解专有网络和相关网络产品。专有网络和经典网络存在很大的不同,除了安全隔离外,专有网络让用户在云上具备了网络管理能力,但这些管理需要用户使用相关的网络产品实现。 注意:以下示例仅供参考,很多系统都比下面的迁移示例复杂很多。在迁移前需要仔细评估,梳理清楚系统依赖,制定严谨的迁移方案。 待迁移系统说明 待迁移的经典网络系统如下图所示,该系统使用了SLB、ECS、RDS、OSS四个产品。公网SLB实例有两台ECS作为后端服务器,ECS上的程序会访问RDS和OSS。现在要将这个系统迁移到VPC中。 步骤一 准备网络环境 首先,需要准备网络环境。创建专有网络和交换机,确定要迁移的专有网络和交换机的相关信息。 关于VPC的网络规划,参考网络规划。 步骤二 在专有网络中创建ECS并完成配置 如下图所示,在VPC中新建两台ECS,并在ECS上部署程序。注意将RDS和OSS的访问域名修改为专有网络的访问域名。配置完成后,需要仔细验证测试是否可以正常访问OSS和RDS。 前提条件 准备好RDS和OSS的专有网络访问域名。 RDS可以通过Open API/SDK将经典网络切换到VPC,切换时可以保留经典网络访问域名。切换后,RDS同时拥有了VPC和经典网络的访问域名。 RDS控制台的网络类型切换功能目前无法保留经典网络访问域名。 RDS网络类型切换,参考经典网络迁移VPC-RDS等支持混访说明。 参考访问域名和数据中心获取OSS的专有网络访问域名。 步骤三 将专有网络中的ECS添加到公网SLB实例 如下图所示,将在VPC中新建的ECS添加到公网SLB实例中。添加后,注意观察SLB实例中新加入的ECS的健康检查状态。可以将新加入的专有网络ECS的权重设置小一些,这样可以在健康检查状态正常但是有其它异常时,减少对系统的影响。同时,仔细观察系统状态、流量监控、日志等。 步骤四 将经典网络ECS从公网SLB实例中移除 如下图所示,当系统运行正常后,将经典网络ECS从公网SLB实例中移除。可以先将经典网络ECS的权重设置为0,待经典网络ECS上无请求流量时再移除。 步骤五 将RDS和OSS切换到专有网络中 如下图所示,将RDS和OSS切换到专有网络中。 RDS可以通过控制台完成网络类型切换,切换后RDS的经典网络访问域名就删除了;也可以通过Open API/SDK进行切换,同时保留经典网络和VPC的访问域名。OSS本身提供经典网络和VPC两个域名,不需要切换。 步骤六 释放经典网络ECS 如下图所示,系统运行一段时间无异常后,将经典网络ECS释放。因为公网SLB实例本身支持挂载专有网络ECS,不再需要迁移。因此,到这里整个迁移工作就完成了。 一个稍微复杂系统的迁移 考虑如下图所示的相对复杂点的系统迁移。公网SLB实例挂载了两台ECS,分别为ECS_1和ECS_2,这两台ECS需要访问一个私网SLB实例。私网SLB实例也挂载了两台ECS,分别为ECS_3和ECS_4,这两台ECS需要访问RDS和OSS。 在这个系统中,由于SLB只支持混挂,不支持混访。如果按上面的步骤先将公网SLB实例中的后端ECS,ECS_1和ECS_2迁移到VPC,会遇到VPC内的ECS无法访问经典网络中的私网SLB实例的问题。因此,不能这么迁移,而需要先迁移私网SLB实例及其后端ECS。基本步骤如下: 1. VPC内新建两台ECS,用于迁移私网SLB实例挂载的经典网络ECS_3和ECS_4。 2. 配置VPC内新建的这两台ECS,使用RDS和OSS的专有网络访问域名。 3. 在VPC内新建一个私网SLB实例,用于代替经典网络的私网SLB实例。 4. 配置VPC内的私网SLB实例,添加步骤一中新建的两台ECS作为后端服务器。 5. 在VPC内再新建两台ECS,用于迁移公网SLB实例的经典网络ECS_1和ECS_2。 6. 配置这两台新建的ECS。特别注意,此时需要将访问经典网络中的私网SLB的地址替换为VPC的私网SLB地址。 7. 接下来的过程就和上面的示例差不多一样了。 ClassLink方案使用示例 基本步骤 1. 在VPC控制台针对需要的VPC启用ClassicLink功能。 2. 在ECS控制台将经典网络ECS Link到VPC。 3. 安全组授权。 步骤一 VPC开启ClassicLink功能 1. 登录VPC管理控制台。 2. 在左侧导航栏,单击专有网络。 3. 单击专有网络的ID链接,进入详情页面。 4. 单击开启ClassicLink。 5. 在弹出的对话框中,单击确定开启该功能。 步骤二 将ECS实例链接到VPC 1. 登录ECS管理控制台。 2. 在左侧导航栏,单击实例。 3. 找到目标实例,单击更多>连接专有网络。 注意:确保ECS实例的地域和VPC的地域相同。 4. 在弹出的对话框中,选择一个专有网络,然后单击确定。 步骤三 安全组授权 最后,您需要添加相应的安全组规则: 如果经典网络ECS要访问专有网络的ECS,需要在专有网络的ECS的安全组内添加一条内网入方向允许Classic ECS的地址段访问的安全组规则。 如果专有网络内的ECS要访问经典网络的ECS,则同样需要在经典网络ECS的安全组内添加一条内网入方向允许专有网络ECS的地址段访问的安全组规则。 下面以经典网络ECS访问链接的VPC为例,示范如何添加安全组规则。 1. 登录ECS管理控制台。 2. 在左侧导航栏,单击实例。 3. 找到需要授权的专有网络ECS实例,单击实例ID链接进入实例详情页面。 4. 在左侧导航栏,单击本实例安全组。 5. 单击配置规则,然后添加如下一条安全组规则。 注意:当前ClassicLink的安全组授权暂时只支持地址段授权,后续会支持安全组授权。 步骤四 验证测试 在已经Link到VPC的经典网络ECS上通过ping等方式测试私网通信是否正常。 其他操作 您可以在ECS控制台查看经典网络ECS到VPC的连接状态,也可以取消经典网络ECS到VPC的链接。对于没有任何链接的VPC,您可以在VPC控制台关闭ClassicLink功能。 单ECS迁移方案使用示例 基本步骤 1. 预约迁移 2. 正式迁移 3. 查看迁移结果 步骤一 预约迁移 在预约迁移时,请注意: 当前预约迁移必须通过客户经理申请。请将需要迁移的实例列表提供给客户经理,待阿里云处理后,方可通过控制台进行预约迁移。 本迁移会重启ECS并更换ECS的公网和私网IP,请严谨评估对系统的影响并做好相应预案。 具体预约步骤如下: 1. 登录ECS管理控制台。 2. 在右上方的常用操作区域,单击待处理事件。 3. 在待处理事件页面,单击专有网络迁移页签。 4. 选择需要迁移的实例,然后单击预约迁移。 5. 在弹出的对话框中,选择要迁移到的专有网络、交换机、迁移时间等配置,然后单击确定。 6. 在左侧导航栏,单击全部事件,查看事件状态 步骤二 正式迁移 完成预约后,本迁移工具将在预约时间点开始迁移。 步骤四 查看迁移结果 您可以通过多种方式查看迁移结果: 在事件中查看事件状态。如果事件状态为执行完成表明已经成功迁移,如下图所示。 查看是否收到迁移成功的短信提醒。 登录到ECS管理控制台,在实例详情页面,查看实例的“网络类型”是否为“专有网络”。 常见问题 Q:SLB混挂开放了哪些地域? 国内地域都已经完成开放。 Q:ClassicLink方案开放了哪些地域? 目前开放了华北2(北京)、华南1(深圳)、华东2(上海)、华东1(杭州)地域,其它地域陆续开放中。 Q:RDS混访如何操作?哪些数据库类产品支持混访? 参考经典网络迁移VPC-RDS等支持混访说明。 Q:OSS如何获得VPC访问域名? 参考OSS经典网络和VPC访问方式。 Q:除了RDS以及OSS支持混访外,还有哪些产品支持? RDS数据库之外的实例型云产品目前都还不支持混访。 OSS等非实例型云产品,且可以通过两个域名分别提供VPC和经典网络访问入口的,不需要额外再开发,本身就支持混访了。 Q:单ECS迁移什么时候能支持不变公网IP? 由于该功能比较复杂,当前还在研发中,暂时还没有精确的时间。

优秀的个人博客,低调大师

看这四条线

### **三方对不上的那笔账** 一次大促结束后复盘。财务说:这个活动的补贴支出比预算多了十几万。技术说:券库存没超发,发放数量和配置的数量一致。运营说:规则是照着方案配的,满100减20,没配错。 三个人说的可能都对,但对不上账的原因通常在这三处之一: 1. **券被重复核销了**——同一张券在并发下被用了两次,或者退款时券被返还后可再用; 2. **分摊规则没定义**——平台券和商家券混在一起,谁承担多少在系统里没有字段,最后全部记在"平台补贴"; 3. **逆向没闭环**——订单退款了,但券的状态还停留在"已核销",账面上少了一笔可回收的权益。 这三点,没有一点和"生成券码"有关。 ![](https://developer.qcloudimg.com/http-save/audit-5746064/2a5519888481e3b13de696b51a343428.jpg) ### **为什么说它是准金融系统** 一张优惠券,本质上是一句承诺:**未来某个时刻,我可以少收你X元**。这句话在财务上有对应含义——公开技术资料中通常把代金券视为企业的负债或预收账款性质,因为它代表未来要履行的义务。[行业经验,具体会计处理需财务与审计确认] 一旦承认这个性质,系统的要求就变了: |**普通内容模块的要求**|**券系统的要求**| | --- | --- | |展示出来即可|每一张券都要有唯一标识与完整生命周期记录| |出错可以改回来|发出去的券很难撤回,核销掉的补贴不可逆| |不需要对账|需要按活动、按承担方、按订单生成对账单| |并发无所谓|高并发下超发就是直接亏损| |不需要风控|券等同于现金,是黑产的重点目标|   ### **四个高危点:出事的地方都在这里** **一、超发**:根因是"读库存—判断—扣库存"不是原子操作。常见工程做法是把判断与扣减放进同一个原子操作里执行(例如用Redis脚本原子扣减),再用数据库层的乐观锁做第二道保险,并通过定时任务对账双向校准。这两层都要有,只做一层在极端情况下仍会出问题。[公开技术实践] **二、重复领取与重复核销**:根因是网络重试、消息重投和用户重复点击。做法是在发券与核销两个环节都做幂等——用唯一索引或幂等表挡住重复写入,消息队列消费端做幂等消费。 **三、风控**:券等于现金,批量注册账号、同设备多账号、IP聚集是典型攻击特征。公开资料中常见的做法是:领券环节加验证码或滑块作为前置门槛,做设备指纹与多维频控,实时规则引擎秒级拦截明显攻击,离线模型挖掘关联账号团伙。 **四、分摊与对账**:一张平台通用券在A店铺被使用,这笔补贴由平台全额承担、店铺承担,还是按比例分摊?这个规则必须在结算环节有明确字段,并生成可核对的对账单。**这是最容易被漏掉、也最难后补的一环**,因为它要打通订单、营销、结算、财务四个域。 ![](https://developer.qcloudimg.com/http-save/audit-5746064/409d8f4d4d81035f89afdeca4a57558f.jpg) ### **比技术更贵的,是规则** 真正让优惠券系统变贵的,往往不是并发方案,而是规则数量。下面这份清单,建议在上系统之前逐条写清: **基础规则** 4. 券的类型:满减、折扣、立减、包邮、兑换券、权益券? 5. 门槛:按订单金额、商品金额、还是指定商品数量?金额是否含运费? 6. 适用范围:全场、品类、品牌、单品、店铺、指定SKU?是否支持排除名单? 7. 有效期:固定日期、领取后N天、还是按自然月?过期是否提醒? 8. 领取限制:每人限领几张?每天限领几张?活动总量多少? **叠加规则** 9. 多张券能否叠加?同类型能否叠加? 10. 券与满减活动、会员折扣、积分抵扣能否同时生效? 11. 冲突时的优先级:谁先算、谁后算?价格是按顺序计算还是取最优? 12. 是否需要"优惠试算"接口,让用户在下单前看到最优组合? **发放规则** 13. 发放方式:主动领取、系统定向发放、兑换码、还是随单赠送? 14. 定向发放的人群条件由谁定义(标签、等级、消费行为)? 15. 是否可以转赠?转赠后限领规则是否重新计算? ![](https://developer.qcloudimg.com/http-save/audit-5746064/d0fcf2b073581f559d8d1b3fa701e777.jpg) **核销与逆向规则** 16. 核销后订单部分退款,券是否返还?返还后有效期怎么算? 17. 全额退款时,已核销券退回还是作废? 18. 券用于支付的订单发生售后,补贴由谁承担? 19. 券能否开具发票?开票金额按原价还是实付? **结算与数据规则** 20. 每张券的承担方字段(平台/商家/按比例)是否落到订单明细? 21. 活动维度的补贴报表由谁导出、与财务哪张表对齐? 22. GMV统计是否扣除券金额?口径是否全公司统一? 23. 券的作废、召回、延期,是否需要审批流与操作审计? 这20条,只要有三条在开发时没定义,后期就是三个需求变更。**而且它们不是"多加一个字段"那么简单——第13、14条会改动退款单模型,第17条会改动结算单模型。** ### **什么时候不用定制,什么时候值得** |**你的情况**|**建议**| | --- | --- | |单店商城,只有满减券和包邮券|用现成SaaS营销插件,别定制| |用有赞/微盟等成熟电商SaaS|先用官方营销工具,跑不通再考虑外挂| |多商家入驻平台,需要平台/商家分摊|值得定制,重点是结算分摊与对账| |券要作为渠道激励发给B端经销商|值得定制,需要券包、发放审批与核销归因| |券与ERP、财务系统、会员等级深度联动|值得定制,重点是接口与主数据统一| |大促峰值流量极高、有过超发事故|值得重构,重点是原子扣减与对账补偿|   ![](https://developer.qcloudimg.com/http-save/audit-5746064/a8028ff10532116bae4cd3ff53a176f1.jpg) 一句话:**如果你的券规则能用一句话说清("满100减20全场通用"),不要定制;如果说清需要一张表格,就该认真做。** ### **失败风险:退款时券没回来** 这是最常见、也最少被提前设计的一类事故。 典型链路([行业经验]):用户用券下单 → 支付成功 → 券状态改为"已核销" → 用户申请部分退款 → 系统退钱,但券不做处理 → 用户用原订单剩余商品继续享受了优惠,同时券本可以按比例回收。更糟的情况是:全额退款后券被返还,又被用于下一单,等于同一笔补贴发了两次。 **如何提前识别**:在需求评审时问一句"下单用了券,退一半货,券怎么办?"如果答案是"这个还没想",说明逆向链路缺失。 **如何降低风险**:把"券—订单—退款单"三者的关系画成一张图,明确写出:部分退款时券回收比例、全额退款时券返还规则、返还后的有效期。这张图应该在开发前定稿,而不是上线后补。 **无法完全消除的风险**:黑产手段持续进化,任何风控规则都存在被绕过的可能;券作为营销承诺,一旦发出就存在法律上的履约义务,召回可能引发客诉。这两点只能靠监控、限额与人工兜底缓解。 ![](https://developer.qcloudimg.com/http-save/audit-5746064/eb6988b238afb261ad150a899efd9969.jpg) ### **适用边界** · **本文适用**:多商家平台、渠道激励场景、券规则超过10条的成熟商城、有过超发或对账事故的系统。 · **本文不适用**:只发过两三种券、月订单量很小的店铺——先把订单和结算理顺更优先。 · **应暂缓开发**:还没跑通"稳定出单"的商城。营销系统的价值建立在有流量的基础上。 · **应先做小规模验证**:只做一种券 + 一种分摊规则 + 完整逆向链路,跑两个月,再扩展玩法。 ### **行动建议** 上线前,找开发方要两张图、一份表: 24. **券生命周期状态图**(生成→发放→领取→核销→逆向→作废,旁路写清过期与召回); 25. **券—订单—退款单关系图**(明确三种退款情形下券的处理); 26. **补贴对账表样表**(字段至少包含:活动ID、券ID、订单号、券面额、平台承担、商家承担、核销时间、退款冲回)。 拿不到这三样,说明这个团队还没把券系统当金融系统做。拿到了,你才真正知道自己在买什么。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册