近日,苹果工程师近日分享了他们用 Swift 重写 Java 服务器端应用的经历。
据介绍,这个服务器端应用是 “密码监视” 功能的核心组件,原本采用 Java 实现,每天需要处理来自世界各地设备的数十亿次请求。
采用 Swift 重写后,该服务的后端性能提升了 40%,同时增强了可扩展性、安全性和可用性。
-
性能提升
与之前的 Java 服务相比,更新后的后端性能提升了 40%。
在当前的生产硬件上,99.9% 的请求的延迟在 1 毫秒以内。
-
内存占用
迁移到 Swift 后,服务的内存占用显著减少,降低 90%
-
代码量变化
Swift 允许编写更小、更简洁、更易读的代码库,代码量减少了约 85%。
-
资源利用率
迁移后,服务的内存和 CPU 利用效率提高,释放了约 50% 的容量供其他工作负载使用。
在重写过程中,该团队选择了开源 Swift Web 框架 Vapor 框架作为开发基础。该框架提供了路由、控制器和内容模块,他们在此基础上进行构建
Swift 重写这项服务给予了非常正面的评价,比最初估计的速度更快地完成了任务。
借此机会,我想向大家推荐我的课程 《Swift Vapor 实战》,带你深入掌握 Swift 和 Vapor 框架,构建高效、可扩展的后端系统。本文将探讨苹果为何选择 Swift,以及如何通过我的课程学习相关技能。
为什么选择 Swift 进行服务器端开发?
苹果的“密码监视”服务是其密码管理应用的核心,每天处理来自全球设备的数十亿请求,通过私有集合交集协议检查密码是否泄露,同时保护用户隐私。然而,Java 的垃圾回收机制在高负载下导致性能瓶颈,频繁的暂停和内存开销成为问题。Swift 凭借其现代化的内存管理和性能优化,成为了更优的选择。
在《Swift Vapor 实战》中,你将深入了解 Swift 在服务器端开发的独特优势:
- 高性能:Swift 的编译时优化和低运行时开销使其非常适合高吞吐量服务。
- 安全性:Swift 的类型安全和内存管理机制减少了 bug,提升代码可靠性。
- 生态系统:结合 Vapor 框架,Swift 让开发者可以轻松从客户端开发过渡到服务器端。
Vapor:苹果重写的基石
苹果的工程团队选择 Vapor 作为“密码监视”服务重写的基础。Vapor 是一个基于 SwiftNIO 的开源 Swift Web 框架,提供了异步高性能支持,能够满足复杂需求,例如椭圆曲线运算和定制中间件用于审计与错误处理。结果是一个更快、更可扩展且易于维护的后端系统。
在《Swift Vapor 实战》中,你将亲手实践 Vapor,学习:
- 在 macOS 或 Linux(如 Ubuntu 16.04)上搭建 Vapor 项目。
- 使用 Vapor 的路由和控制器系统构建 RESTful API 和服务器端应用。
- 集成定制包以实现特定功能,类似苹果团队用于加密操作的做法。
- 优化高负载场景的性能,借鉴苹果 90% 内存减少的经验。
《Swift Vapor 实战》课程亮点
本课程专为希望掌握 Swift 服务器端开发的开发者设计。无论你是想扩展技能的 iOS 开发者,还是探索 Swift 的后端工程师,《Swift Vapor 实战》通过项目驱动的教学让你快速上手。课程内容包括:
- 环境搭建:在 macOS 或 Linux 上配置 Vapor 和 SwiftNIO 开发环境。
- API 开发:使用 Vapor 的路由、控制器和中间件创建 RESTful API。
- 数据库集成:通过 Vapor 的 ORM 框架 Fluent 连接 MySQL 或 PostgreSQL 数据库。
- 性能优化:学习降低延迟和内存使用的技巧,参考苹果的优化成果。
- 实战项目:构建一个可扩展的后端服务,模拟注重隐私的密码监视系统。
为什么现在学习?
苹果将“密码监视”服务迁移到 Swift,证明了该语言在服务器端开发的成熟和多功能性。随着更多企业效仿这一趋势,掌握 Swift 和 Vapor 将让你在行业中占据领先地位。《Swift Vapor 实战》将理论与实践结合,助你构建生产级后端系统。