政策要求
政策要求
2024 年 2 月,继 CISA、NSA 及盟国机构发布指导意见之后,白宫国家网络总监办公室呼吁科技行业采用内存安全的语言。政府和关键基础设施领域的采购框架开始要求提供内存安全路线图。方向已定。对每一个运行着大量 PHP、C++、Java、Node 或 Python 系统的组织来说,问题在于:迁移是按自己的时间表规划,还是按别人的时间表被迫进行。
零停机
我们如何做到不停机迁移
gateway一个开关,数秒内可回退
legacy::servicePHP · Node · Java · C++ · Python
rust::service镜像流量
parity::verify生产流量上 old == new
cut_over()随后下线
系统梳理。
每个服务、依赖、数据流和调用方,全部记录在案。大多数组织会发现一些自己都忘了的系统。
排序。
按风险、价值和耦合度为服务排序。第一次迁移的选择是为了验证方法,而不是为了逞英雄。
绞杀者模式。
新的 Rust 服务部署在旧服务旁边,接收镜像流量,产出的结果会被自动比对。
一致性验证。
只有当新旧系统在真实生产流量上结果一致时,迁移才会推进,需要多久就等多久。
切换,一次一个服务。
流量通过一个数秒内即可回退的开关转到 Rust。
下线与交接。
旧服务退役,文档完整,您的团队已接受新服务的培训。
源 → 目标
适合迁移的系统
- PHP 单体应用(Laravel、Symfony、遗留代码)迁移为 API 网关后的 Rust 服务
- 存在吞吐量或内存问题的 Node.js 服务
- 许可、内存或延迟成本已成为结构性问题的 Java 和 C# 服务
- 有内存安全事故历史的 C 和 C++ 组件
- 瓶颈就在 Python 本身的 Python 数据与推理管道
坦诚
我们坦诚告诉客户的事
不是所有东西都该迁移。
财务部四个人用的报表工具,留在 PHP 里。处理您收入的支付路径,则不然。我们在第二周产出的系统地图就是讨论这件事的地方,它也是整个合作中最有价值的文件。
相关内容