使用高速通道加速iOS版本审核

本文涉及的产品
云服务器 ECS,每月免费额度200元 3个月
云服务器ECS,u1 2核4GB 1个月
公网NAT网关,每月750个小时 15CU
简介: 原作者:阿里云解决方案架构师,云帅。此方案目的是为了加速苹果商店审核的网络通道和服务的稳定、低延迟、高可用,以保证APP满足审核条件下快速过审

1 市场现状


据Newzoo数据显示,2017年全球游戏市场规模预计达1089亿美元,较上年增长7.8%,移动游戏(包括平板和智能手机)方面,市场规模占整体游戏市场42%,占比最大,约457.38亿美元。预计2018年,全球手游市场规模将达到521亿美元,也将会是所有平台中,游戏规模增速最快、市场规模最大的游戏平台。
而在整个智能手机的普及率上,IOS的手机也占了将近半壁江山,同时它的CPI和相对更高,人群的付费意愿和能力相比Android也会略高。
a88defaf0b737c3ff24bfcad8cf936eb7ba16abf
但是一款手游要想发布在苹果商店的应用市场,最头痛的莫过于审核。最近,苹果在官网给出了截至2016年6月份应用被拒绝的十大条款(其中63%以上的应用被拒绝都是因为这10个条款),另外一个主要的原因就是跨境网络传输的不稳定、延迟高也是造成审核失败的重要原因,此方案目的是为了加速苹果商店审核的网络通道和服务的稳定、低延迟、高可用,以保证APP满足审核条件下快速过审。

2 需求和痛点


通信质量差

跨境的网络延迟较高,从上海到美东高峰延迟达到200~300ms;网络丢包率较高,而且不稳定,高峰期时刻的丢包率会达到50%,苹果审核经常由于网络问题失败。受到政策管控的影响,网络偶尔会发生终端,导致游戏服的包在苹果商店访问失败而审核失败。


本高

使用公网进行通信需要支付昂贵的公网流量费用或者带宽费用;使用专线保障稳定又需要支出更高的专线成本。海外资源相对匮乏,沟通和时间成本也是需要考虑。网络自建的维护成本较高,审核的需求不是经常有,带宽需求量很小。


不安全

通过公网传输存在被监听窃取的风险;游戏版本的迭代发行一旦版本泄漏,造成无法挽回的损失。审核服务很容易遭受到网络和业务上的攻击,同时如果服务器存在漏洞也容易被入侵和泄密。


组网复杂

游戏版本服务器如何提供给游戏研发进行高效运维管理和上传;游戏版本服务器如何与游戏服进行互通、交互、联网数据同步。游戏版本审核服务器如何快速迭代版本让审核业务更加高效、透明。


运维复杂度高

一般游戏审核服务器上会有不下100个游戏版本包的审核需求,如果每台服务器都提供一个IP,运维工作相当复杂;如何实现高速互联的网络复用,如何提高服务器、网路和海外Ip资源的高效自动化运维。如何再增加服务器和Ip资源的时候,达到快速满足业务需求,这些都是审核服需要面临的问题。

3 业务架构

8ffb4c9d1ed50c3f09362345164057ad912e36df

4 审核服配置

9a3b9e5f42bae8877eb16638f41c64da82c8c907
(注:图上红线隐去部分为公网IP)


5 网络架构

3487eed713829d240bf5d3030d5811627457781c


6 实施步骤

准备工作:账号有最多20个EIP限制,一个NATGW有最多绑定10个EIP限制。
单独起一个VPC规划好IP地址段,1个vswitch,也就是1个IP段。建议每台ECS的10个子接口IP段都是独立的,方便汇总。
第一步创建VPC购买云产品。上海VPC:高性能ECS   EIP。美西VPC:NatGW+共享带宽包+公网IP。
第二步 建立高速通道,添加路由建立高速通道:上海和美西的VPC之间建立高速通道。上海vroute 加默认路由0.0.0.0,0.0.0.0  下一跳路由接口到美西。美西vroute 加回ECS的路由:192.168.1.0/24   192.168.100.0/24  下一跳路由接口到上海。
上海vroute还需要添加子接口的路由:192.168.100.0/24  下一跳是ECS,目的是可以让子接口收到回包。
第三步 上海本地EIP绑定ECS主网卡eth0,美西NATGW做IP mapping的DNAT到ECS的子接口IP 见第4部分的对应关系建DNAT表就可以。
第四步 ECS上面
ifconfig eth0:1 192.168.100.1 netmask 255.255.255.255
Ifconfig eth0:2 192.168.100.2 netmask 255.255.255.255
第五步 在ECS上面带辅助网卡的子接口源IP地址去ping美西的任意IP,如果可以ping通,并且延迟是在预期内的,就可以了
ping 54.199.128.42 –I 192.168.100.1


7 带给客户的价值


安全

通信数据在阿里自建设施中传输,不经公网,不担心私密数据被窃取。
不同专有网络之间通过隧道ID进行隔离。专有网络内部由于交换机和路由器的存在,所以可以像传统网络环境一样划分子网,每一个子网内部的不同云服务器使用同一个交换机互联,不同子网间使用路由器互联。
由于使用隧道封装技术对云服务器的IP报文进行封装,所以云服务器的数据链路层(二层MAC地址)信息不会进入物理网络,实现了不同云服务器间二层网络隔离,因此也实现了不同专有网络间二层网络隔离。
专有网络内的ECS使用安全组防火墙进行三层网络访问控制。


可靠稳定

连续三分钟丢包率高于2%或连续5秒网络中断定义为网络不可用,总计网络可用时间除以当月总时间,为网络可用率。网络可用性大于99.5%。
双接入点的网络可用性大于99.95%,双接入点指客户使用两条线路接入阿里云的两个不同接入点。
VPC互联的网络可用性99.95%。
NAT网关跨可用区部署,可用性高。单个可用区的任何故障都不会影响NAT网关的业务连续性。
容灾集群的NAT网关和公网IP,打造极致稳定的公网网关服务。


高速互通

依托阿里巴巴集团优质基础设施实现,冗余线路保障通信稳定可靠。
跨境专线链路的质量提供给苹果商店审核,提高审核成功率。
NAT网关提供SNAT和DNAT功能。无需用户基于云服务器自己搭建,功能灵活、简单易用、稳定可靠。
基于阿里云自研分布式网关,使用SDN技术虚拟化推出的一款虚拟网络硬件。NAT网关支持10Gbps级别的转发能力,为大规模公网应用提供支撑。


灵活扩展

使用过程立即开通,跨境互通,高效便利。
开通后随时扩展,按需购买,带宽资源充足,满足客户后续弹性的需求。
高速通道的产品简明易用,几个简单的操作就能取代物理世界中复杂的网络配置。同时,您可以完全掌控您的高速通道的通信带宽、工作状态和两侧网络的路由配置,所见即所得。
NAT网关单实例提供万兆级吞吐量,百万级连接数,满足超大业务上云需求。


成本可控

规格配置丰富,不同规格提供不同的数据传输速度。您可以根据您的业务需求按需购买,成本可控。
NAT网关的规格、带宽和公网IP,均可以随时升降,轻松应对业务变化。
支持共享带宽,多台VPC ECS共享公网带宽,大幅降低公网带宽成本。

目录
相关文章
|
2月前
|
API 数据安全/隐私保护 iOS开发
利用uni-app 开发的iOS app 发布到App Store全流程
利用uni-app 开发的iOS app 发布到App Store全流程
105 3
|
4月前
|
存储 iOS开发
iOS 开发,如何进行应用的本地化(Localization)?
iOS 开发,如何进行应用的本地化(Localization)?
123 2
|
4月前
|
存储 数据建模 数据库
IOS开发数据存储:什么是 UserDefaults?有哪些替代方案?
IOS开发数据存储:什么是 UserDefaults?有哪些替代方案?
42 0
|
4月前
|
安全 编译器 Swift
IOS开发基础知识: 对比 Swift 和 Objective-C 的优缺点。
IOS开发基础知识: 对比 Swift 和 Objective-C 的优缺点。
106 2
|
2月前
|
API 开发工具 Android开发
iOS 和 Android 平台的开发有哪些主要区别?
iOS与Android开发区别:iOS用Objective-C/Swift,App Store唯一下载渠道;Android用Java/Kotlin,多商店发布(如Google Play、华为市场)。设计上,iOS简洁一致,Android灵活可定制。开发工具,iOS用Xcode,Android用Android Studio。硬件和系统多样性,iOS统一,Android复杂。权限管理、审核流程及API各有特点,开发者需依据目标平台特性进行选择。
36 3
|
10天前
|
前端开发 Android开发 iOS开发
【Flutter前端技术开发专栏】Flutter在Android与iOS上的性能对比
【4月更文挑战第30天】Flutter 框架实现跨平台移动应用,通过一致的 UI 渲染(Skia 引擎)、热重载功能和响应式框架提高开发效率和用户体验。然而,Android 和 iOS 的系统差异、渲染机制及编译过程影响性能。性能对比显示,iOS 可能因硬件优化提供更流畅体验,而 Android 更具灵活性和广泛硬件支持。开发者可采用代码、资源优化和特定平台优化策略,利用性能分析工具提升应用性能。
【Flutter前端技术开发专栏】Flutter在Android与iOS上的性能对比
|
10天前
|
存储 Swift iOS开发
使用Swift开发一个简单的iOS应用的详细步骤。
使用Swift开发iOS应用的步骤包括:创建Xcode项目,设计界面(Storyboard或代码),定义数据模型,实现业务逻辑,连接界面和逻辑,处理数据存储(如Core Data),添加网络请求(必要时),调试与测试,根据测试结果优化改进,最后提交至App Store或其它平台发布。
31 0
|
10天前
|
安全 Swift iOS开发
【Swift 开发专栏】Swift 与 UIKit:构建 iOS 应用界面
【4月更文挑战第30天】本文探讨了Swift和UIKit在构建iOS应用界面的关键技术和实践方法。Swift的简洁语法、类型安全和高效编程模型,加上与UIKit的紧密集成,使开发者能便捷地创建用户界面。UIKit提供视图、控制器、布局、动画和事件处理等功能,支持灵活的界面设计。实践中,遵循设计原则,合理组织视图层次,运用布局和动画,以及实现响应式设计,能提升界面质量和用户体验。文章通过登录、列表和详情界面的实际案例展示了Swift与UIKit的结合应用。
|
10天前
|
存储 安全 Swift
【Swift 开发专栏】使用 Swift 开发一个简单的 iOS 应用
【4月更文挑战第30天】本文介绍了使用 Swift 开发简单 iOS 待办事项应用的步骤。首先,阐述了 iOS 开发的吸引力及 Swift 语言的优势。接着,详细说明了应用的需求和设计,包括添加、查看和删除待办事项的功能。开发步骤包括创建项目、界面搭建、数据存储、功能实现,并提供了相关代码示例。最后,强调了实际开发中需注意的细节和优化,旨在帮助初学者掌握 Swift 和 iOS 开发基础。
|
18天前
|
iOS开发 开发者 UED
利用SwiftUI构建动态列表:iOS开发的新范式
【4月更文挑战第22天】在本文中,我们将深入探讨如何使用SwiftUI来创建动态列表。SwiftUI是苹果最新推出的用户界面工具集,它允许开发者以声明式的方式描述用户界面,从而简化了代码的复杂性。我们将通过具体的代码实例,展示如何利用SwiftUI的List和ForEach视图来创建动态列表,并讨论其在实际开发中的应用。
18 2