申通快递双11云原生应用实践
共 5366字,需浏览 11分钟
·
2020-11-28 21:53
申通云原生化架构的背景
采用云原生应用架构的诉求/驱动力
唯快不破。这里的“快”有两层含义,一是业务应用快速上线,通过云原生技术可以做到快速上线部署;二是在业务爆发式增长的时候,对资源的需求要做到开箱即用。
稳中求变。业务稳定性永远是第一位。通过监控埋点,业务日志收集,链路监控等手段保证了在快速迭代过程中业务系统的稳定性。
节省资源。通过对计算资源的水位监测,结合业务的峰值情况,当发现资源利用率偏低采用降配规格及数量,降低整个资源的费用。相比于一次性投入租建机房及相应的维护费用,使用公有云成本投入更低。
开拓创新。采用微服务架构,将之前臃肿的架构进行合理拆分,再结合容器编排的能力做到持续交付。让企业成功转型成为一家 DevOps 驱动的公司。
申通云原生架构历程
1. 云原生化技术改造
1)程序代码改造升级
应用容器化
微服务改造
2)引入云原生数据库方案
2. 云原生技术框架设计
整体架构
基础设施
流量接入
3. 平台选择
测试、集成、预发、生产统一环境,打通 DevOps 闭环
天生资源隔离,机器资源利用率高
流量接入可实现精细化管理
集成了日志、链路诊断、Metrics 平台
统一 APIServer 接口和扩展,天生支持多云跟混合云部署
4. 应用服务层设计
5. 运维管理
申通云原生应用服务特点
1. API 接口
封装 Kubernetes 管控 API
云原生业务系统
2. 应用和数据迁移
3. 服务集成
服务集成阐述
日志服务,通过集成日志服务方便研发人员方便定位业务及异常日志。
云监控,通过集成监控能力,方便运维研发人员快速发现故障。
服务接入,通过集成统一的接入,整个应用流量可做到精细化管理。
弹性伸缩,借助 ESS 的能力对资源进行动态编排,结合业务高低峰值做到资源利用率最大化。
4. 服务高可用
支持多可用区部署架构,由用户自定义分配比例
容器集群内故障迁移
AZ 故障整体容器迁移
5. 监控
技术/应用服务创新点
1. 从虚拟机到 Kubernetes
2. 基于 Terway 让 Pod 和 ECS 网络处于同等地位
不依赖 VPC 路由表,就能打通网络,节点规模不受路由表 Quota 限制
不需要额外为 Pod 规划 Overlay 的网段
混合云专线打通也无需额外配置路由
可以直接将 POD 挂到 SLB 后端
性能高,相比于社区的 Flannel 提升至少 20%
3. 定义三套接入环境及三套业务环境
1)三套接入环境
公网接入:适合于跟外部客户对接,通过统一的证书卸载,收敛公网 IP 办公网接入:适合于有敏感接口的对接,只允许指定源 IP 的请求,通过网络 ACL 让整个应用访问更安全。 内网接入:适合于业务之间及混合云架构下 IDC 的业务调用云上应用,内部调用性能更高也更安全。
2)三套业务环境
测试环境:全部的云资源都是给测试环境使用,可以采用低配资源来满足功能回归测试。 预发环境:准上线环境,连接生产环境的资源进行发布前最后一次功能验证。 生产环境:实际运行环境,接收真实流量处理业务请求。
应用效益
1. 成本方面
2. 稳定性方面
3. 效率方面
4. 赋能业务
总结和后续展望