领域驱动设计&中台/微服务的容器化实践0 码力 | 19 页 | 1.86 MB | 1 年前3
唯品会调度系统的前世今生代码较新,使用Quartz进行调度。提供 高可用和分布式功能 功能单一,只支持Java,不支持 Shell(PHP)和消息驱动的作业调度 对任务超时、任务执行情况、监控逻辑 支持粒度功能较单一或缺乏 没有容器化选型? 调度产品的定位 简易开发、简单维护 高可用、分片并发处理、资源调度动态平衡 支持Java、Shell以及本地模式(VIP还支持消息模式) 统一配置、统一监控、统一管理 VIP弹性调度系统 02 03 多种作业类型与 作业模式 资源动态平衡 框架与业务隔离 三大功能特性 Shell作业 消息作业* JAVA作业 分布式与本 地作业模式 • 完美兼容现有PHP的作业,可无缝迁移,成本最低 • 提供多种业务开发模式,满足不同的业务需求 • 多种业务运行模式,即可分布式管理也可本地管理 • 通过异步消息实现业务编排* 多种作业类型 人工指定 运行节点 系统自动 平衡负载 批量处理 强行终止 Dashboard … 为什么需要容器化 资源利用 提高物理资源的 利用率 系统弹性 资源弹性伸缩 运维效率 上线周期、峰值 应对 作业隔离 不同业务间作业 隔离 容器化的调度系统选型 开源程度 场景切合(秒级调度) 异构体系 管理成本 长驻处理? 使用后销毁? 物理资源层: Mesos / VM 容器/应用层: Marathon / K8S / Swarm0 码力 | 58 页 | 5.40 MB | 1 年前3
分布式 KV 存储系统 Cellar 演进之路桶号 存储节点 固定HASH算 法 固定数目 数据分片 桶->存储节点 对照表 Cellar起源—Tair架构 服务层 请求 mdb 响应 ldb fdb rdb 引擎层 迁移 复制 • 中心化集群问题 • 可用性问题 • 性能问题 • 运维问题 Cellar起源—Tair问题 Cellar起源 架构升级 性能优化 可用性优 化 可运维性 Cellar 机器宕机五分钟,数据补全两小时 节点升级,先切走流量再操作? • 节点流量只能切到有其他副本的节点 • 升级后的节点缺少升级期间的写入 Cellar—节点高可用 Cellar—节点高可用 • 秒级容灾 无数据迁移 • 节点静默升级 中心节点 A节点 1分片主 2分片备 B节点 1分片备 2分片主 分片1复制 回写增量log 分片2复制 分片2复制 分片1复制 客户端 分片1&2 log Cellar规划 目录 影响可用性的问题 • 数据迁移 • 请求超时抖动 Cellar—服务可用性提升 Cellar—无损数据迁移 数据迁移的问题 • 迁移速度不可控,易影响业务请求 • 路由表更新瞬间请求失败 • key级别迁移写入,引擎压力大 节点状态指标 • 引擎压力 • 网卡 • 队列 • QPS • ··· Cellar—无损数据迁移 智能调速+全程代理 A节点 B节点 桶20 码力 | 34 页 | 1.66 MB | 1 年前3
领域驱动设计&中台/演进式架构的平台化落地module module database API layer client requests client requests client requests 向以“领域”为中⼼心的架构迁移 演进数据库 (like code) — Tested — Versioned — Incremental scripting all db changes incrementally 微服务⼯工程创建 开发 框架 架构 ⻛风格 资源 配置 … 架构演进 服务 关系 分析 代码 质量量 分析 数据 库分 析 领域 模型 分析 运⾏行行资 源管理理 PaaS、 容器云资 源管理理 公共 部分 产品、⼈人 员维护 定义通⽤用 约束条件 定义服务 约束条件 可视化设计 服务地图 关联变更更到需求 设计API 导swagger ⽂文件 API清单 获得运⾏行行架构、实例例状态 ELK⽅方 案 对接资源室 获得组织结 构 对接175产品 定义管理理 Fitness Function执 ⾏行行引擎 集成Sonar Server 对接容器云 PaaS API变更更历史 部署架构变更更评审 定义 契约 契约变 更更评审 未评审 契约 提⽰示 已申请资源 登记 服务部署 脚本⽣生成 部署架构 推到⽬目标 运⾏行行(测0 码力 | 42 页 | 2.95 MB | 1 年前3
领域驱动设计&中台/用状态机封装领域逻辑状态 状态机图 vs. 活动图 顶点和边的含义相反 不同的思考范型 “状态的类”要说得通! 状态 网络上随便搜来 的“状态机图” 状态 子状态 互斥 状态 分层复用行为 提炼公共迁移 状态 缺省和历史 不是“流程开始”的意思 进入状态时,缺省的子状态 对象掉入集合时,缺省掉入哪 个子集合 历史:记住离开时的子状态 状态 并发状态 不同分区的状态并存 金额从2.56元到20.48元 请扫我微信以便当场转账 加微信时烦告知尊姓大名 状态 入口动作和出口动作 entry:进入时必须执行 exit:离开时必须执行 逻辑进一步内收 迁移 迁移的结构和执行顺序 1. 当前状态是否能接受事件 2. 警戒条件 如果为真 3. Exit:先子后父 4. Action和Message 5. 改变状态 6 . Entry:先父后子0 码力 | 30 页 | 1.75 MB | 1 年前3
大规模分布式系统架构下调测能力构建之道而“MOCK”,是最 有效的手段。 分布式服务框架mock能力构建 应用 服务容器(Consumer) Filter Chain 将mock能力内置到分布式服务框架中 开发mock能力过滤器,在服务调用链路上对服务调用进行挡截。 “开关机制”控制mock能力启停 mock能力启用时,服务容器初始化期间将加载mock数据文件到内存中,每个服务请求将和mock数据的入参定 义进行比对,满足(静态匹配 服务容器(Provider) Consumer Consumer 服务实现 服务实现 Accepter Filter Chain Filter1 线上数据 抓取过滤器 FilterN 抓取配置: 是否开启 抓取时长 抓取数量 落 盘 … … 导出 Mock文件A Mock文件B Mock文件C 应用服务直连调测 服务容器(Provider) 调用者 服务容器 提供者A 提供者A 服务容器 服务注册中心 服务列表 …… 无需注册中心 不需要服务消费者注册,直接通过本地配置文件指定的IP地址来绕过“服务路由”及“负载均衡”机制。 服务提供者不能采用token验证模式 基于包名过滤服务 团队往往开发某类业务服务,这类服务一般都具有相同的包名,因此,可以通过配置包名和服务IP的映射关系, 让服务框架自动将一批服务和特定的IP关联到一起。 直连调测机制0 码力 | 19 页 | 2.74 MB | 1 年前3
微服务和Service Mesh 在多个行业落地实践阶段一:单体架构群,多个开发组,统一运维组 www.163yun.com 阶段二:组织服务化,架构SOA化,基础设施云化 www.163yun.com 阶段三:组织DevOps化,架构微服务化,基础设施容器化 www.163yun.com Hailo Amazon Netflix 来源: https://www.linkedin.com/pulse/astonishingly-unde 设计要点十:日志中心 www.163yun.com 设计要点十一:全链路监控 www.163yun.com 设计要点十二:全链路压测 www.163yun.com 微服务平台总览 容器平台 (多集群基础设施) Pod & Deployment 网络 Calico, OVS 存储 Ceph 滚动更新 弹性伸缩 日志中心 基础设施监控 开 发 集 群 持续集成 中台化 PaaS托管 容器化 分布式事务 服务治理 全链路压测 性能监控 注册发现 服务管理 www.163yun.com ZIP源码包 持续集成 重新开发 迭代修改 个性开发 统一模版 接口统一 利于复用 文档一致 减少沟通 某视频监控企业:IT资产沉淀与IT能力复用 持续集成 容器化 注册发现 服务管理0 码力 | 39 页 | 3.06 MB | 1 年前3
声明式自愈系统——高可用分布式系统的设计之道-王昕不必处理数据复制和同步的问题 系统容量和高可用能力可以同步提升 服务节点可以随意迁移,不必固定 IP 和存储 有状态分布式系统的高可用问题 一致性 可用性 分区容错性 Paxos Raft 2PC Gossip Ø 处理请求需要特定节点 Ø 必须要考虑数据备份和同步 的问题 Ø 容量扩展和高可用需要不同 解决方案 Ø 服务节点不能随便迁移 CAP Is Not Simply 2 out of 30 码力 | 44 页 | 2.47 MB | 1 年前3
海量用户推送后台系统架构实践-曾振波多维度监控,告警系统 极光推送后台系统架构 08 K8S部署业务 • 原有系统的运维工作繁杂,资源利用率低 • 弹性扩容 • 配置统一管理 • 内外集群隔离 • Pod包含多个容器 - 辅助容器,业务容器 • 业务模块代码架构调整 • 监控体系调整 极光推送后台系统架构 09 结束语 • 高性能/低成本、高可用、高运维 • 只用验证过的开源组件 • 自研替代开源 • 能并行就不要串行0 码力 | 23 页 | 1.26 MB | 1 年前3
领域驱动设计&中台/可视化的遗留系统微服务改造明确系统边界 ⼩小步改造系统 可视化的认识遗留留系统 C4模型、⽤用户画像、⽤用户旅程 C4模型系统架构可视化 国家级 省级 道路路级 市级 C4模型系统架构可视化 系统上 下⽂文图 容器器图 代码图 组件图 已可视化 ⽤用户画像和旅程系统功能⽤用户可视化 ⽤用户画像 ⽤用户旅程 已可视化 突出⽤用户信息,诉求和价值体现 还原业务场景 可视化的划分遗留留系统 领域驱动设计、事件⻛风暴暴⼯工作坊、服务画布 包/类之间的依赖⽣生 成可视化表格 Structure101代码依赖分析 具体依赖细节 Structure101代码依赖分析 可以将包/类进⾏行行 ⾃自由组合,形成 容器器,查看容器器 之间的依赖 服务A 服务B 具体依赖细节 已可视化 Structure101代码依赖分析 与Intellij或Eclipse相 结合,实时查看依赖, 指导拆解过程0 码力 | 54 页 | 3.85 MB | 1 年前3
共 14 条
- 1
- 2













