云原生落地,乐高拼搭还是外科移植?

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 云原生落地, 乐高拼搭还是外科移植? 张晓辉 Flomesh 高级架构师
2. 张晓辉 13 年软件开发经验,专注于基础架构,DevOps 践行者,Cloud Native 拥护者,坚守开发 一线打磨匠艺的架构师。 曾在汇丰软件、唯品会、数人云、小鹏汽车等公司任职。有多年的微服务和基础架构实践 经验,曾主导小鹏汽车云原生技术中台从 0 到 1 的建设和演进。主要工作涉及微服务、容 器、Kubernetes、DevOps 等。 开源、云原生爱好者,云原生社区管委会成员。 目前在 Flomesh 担任高级云原生架构师、布道师。
3. • 初识云原生 • 云原生实践 • 平台的演进 • 未来的方向
4. What • 软件系统是现实世界的抽象结果 • 微服务是一种架构风格、设计理念 • 云原生是一种方法论
5. How
6. So Easy?
7. • 初识云原生 • 云原生实践 • 平台的演进 • 未来的方向
8. 缺乏基础平台设施 出现问题,定位手段有限 痛点 以解决问题为出发点 缺乏统一技术规范 可用性支撑手段有限 生产缺乏弹性 运维手动
9. 概览 PaaS 平台 微服务化 基于 Spring Cloud 的微服务架构 容器化 & 服务编排 使用 Kubernetes 对容器进行编排和管理 微服务中台 微服务监控 研发中台 注册中心 调用链 服务注册、服务治理、监控 Google Dapper 分布式服务跟踪 CICD 平台 API 网关 协议控制、限流、熔断 授权、安全 服务管理 配置中心 告警管理 统一配置、实时更新 版本管理、灰度、回滚 微服务框架 DevOps 收敛公共逻辑、技术规范落地 生产级功能 JVM 监控 文档中心 自动化自动化、集中式管理 项目生成器 自动化告警收敛、对接 IM 降低技术门槛、标准化接入 Metrics 代码质量 弹性 弹性扩展、按需扩容 节省资源 存储 自动化存储管理 网络 虚拟网络、网络隔离 集群调度 Google BorgMon、自动化告警 持续自动化代码质量报告 动态调度、资源限制 监控大盘 自服务平台 应用抽象 自动化日志收集、实时查看 通过 CICD 实现高质量的应用快速交付 敏捷开发部署、自动化 DevOps 云平台 日志中心 自动化日志收集、实时查看 项目接入自动化 工作负载与能力特性分离
10. 赋能业务 微服务使用最佳实践:框架、配置调优、profile标准化、线程池和连接池调优 最佳实践 技术兜底 配置中心:提供不停机、动态调整应用配置能力 丰富问题定位手段:日志中心、注册中心、微服务全方位监控 (JVM/Trace/Metrics/告警) 系统级无埋点监控、业务Metrics提供扩展机制 无缝落地 代码生成器:提高新项目的研发效率,不需要一行代码即可接入中台 自动化CICD:镜像生成、Git自动tag处理、代码质量、自动化测试 自动化 网关自动接入:提供限流、熔断、访问控制、安全 自服务平台:流程实现自动接入平台
11. • 初识云原生 • 云原生实践 • 平台的演进 • 未来的方向
12. 多维度演进 可用性提升 GPU 支持 多语言 应用层抽象 效率提升 演进  提升可用性  精益标准化  提高易用性  降本提效
13. 可用性保障 业务系统无损升级 服务治理功能 异地双活 自动扩缩容 反亲和性 混沌工程
14. 业务系统无损升级 调整滚动升级策略 Tomcat 的优雅退出 升级过程中客户端发现服务 端超过一个实例不可用 请求未处理完实例退出 解决服务实例状态不 一致问题 Eureka AP 模型通过定时同步来 实现状态在多点的一致
15. GPU 支持 Code 使用 nvidia-device-plugin CUDA Image 为了充分利用资源 没有使用 nvidia.com/gpu: x Python Image Dockerfile 提供对 GPU 资源的监控 开发环境的双卡 GPU 出现双卡不均衡 资源使用粒度粗,超卖严重 Base Image
16. Sidecar 多语言支持 • spring-cloud-sidecar 实现 • 支持 Python(cpu/gpu)、NodeJS、Web • 复用中台的能力 Service SDK 进程隔离 服务发现 • SDK 功能下沉、降低版本碎片化 负载均衡 • ServiceMesh 的雏形 弹性路由 • 异构系统的统一治理 Sidecar 服务发现 熔断 微服务治理与业务逻辑的解耦 业务逻辑 业务逻辑 • • Service 动态配置 spring-cloud-sidecar 性能低 占用资源高 进程拆分 负载均衡 弹性路由 熔断 动态配置
17. 应用层抽象 应用 Kubernetes CRD 系统能力 业务逻辑 网络 存储 弹性 资源管理 调度 特性 Deployment Service PVC HPA Resource PriorityClass 2019 年 10 月 17 日阿里云联合微软全球发布开放应用模型(OAM) 较 OAM 扩展性差
18. 容器化部署平台 • 多集群部署 • 跨机房的日志聚合 • 历史修订版 • 云原生告警 • 封装应用层抽象
19. CICD Jenkins Global Pipeline Library • 目标:标准化、自动化 • 将 GitFlow 固化到流程中 Job Job Job Git Folder Pipeline Library DB Project Metadata • 与云平台、监控中心、质量平台、自动化 Pipeline Script 测试对接 Seed Job • 基于工程元数据自动生成作业 • DSL Script Jenkins Shared Library 对流程进行抽象 Harbor 弹性差、资源使用率低 Kubernetes SonarQube Nexus 自动化测试
20. 自动化++ 项目管理 数据同步 项目元数据、CMDB 对接 各环境数据同步 配置中心 名空间初始化 部署平台 作业初始化,权限同步 工单系统对接 SERVICE RBAC C <> DE CICD 权限、角色初始化 授权管理 监控告警平台 Dashboard、告警规则初始化
21. • 初识云原生 • 云原生实践 • 平台的演进 • 未来的方向
22. 演进的痛点 治理功能不够强大 • SDK 复杂度爆炸 • 版本碎片化严重 • 升级、维护困难 • 新语言 • 服务数量爆炸 • 功能“下沉” • 用户的期待 降本提效是个永 恒的话题
23. 服务网格-下一代微服务的核心 业务 原理 原协议转发 定位 负 载 均 衡 服务间通讯的基础设施层、语 言无关 路 由 熔 断 流 控 超 时 灰 度 服 务 发 现 可 观 测 性 Service Mesh 虚拟机 部署 Sidecar 模式,独立的辅助进 程、无侵入性、无感知升级 • • • 容器 与现有架构集成 Istio 的复杂性与学习曲线 特权容器 IoT . .
24. 云原生 CICD Tekton CRDs K8s Native Resource • Pipeline Core • Task Pod • Step . . Controller Manager Container • 容器化:可复制、可重用 动态编排:提高可靠性 Serverless:降低成本 兼容性 API:可移植性 . . Step Container . . . . Task Pod • • • 同样在演进中 持久化:依赖 etcd 默认支持并发低
25. GPU 共享调度 整合 gpushare-scheduler-extender 和 gpushare-device-plugin 实现 GPU 资源的软隔离。 Python Daemonset API Server Python Scheduler (gpushare-device-plugin) kubelet Kubernetes Node gpushare scheduler extender
26. 总结 取舍 • • 正视限制条件和目标价值,内省外观 • 以解决问题实现价值为出发点,不为炫技 • 从最小闭环开始,持续演进 进化 • • 好的架构不是设计出来的,而是演进出来的 • 未来的事情,未来再说
27. “ 道阻且长,行则将至! ”
28.

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.139.0. UTC+08:00, 2024-12-23 22:58
浙ICP备14020137号-1 $Map of visitor$