企业IT架构方案
2020-01-07 13:56:04 2 举报
AI智能生成
企业整体IT架构设计方案概括
作者其他创作
大纲/内容
前后台协作共享
互联网公司要求
快速响应、敏捷、业务驱动、试错
共享服务平台(Shared Platform as Service,SPAS)
服务功能
服务的描述元数据
服务注册与发现机制
服务的访问控制与安全策略
应用服务Portal
服务依赖与运维管理
服务 SLA 协议
服务消费者的管理与支持工具
服务化辅助工具支持
服务调用分析与报表
服务成本核算与服务能力变现
文档与开发工具支持
服务化实施
API as Service
Product as Service
Solution as Service
中台与前端应用协作方式
业务中台对前端核心业务的紧密沟通机制
建立分歧升级机制
前后岗位轮换推动真正换位思考
业务持续沉淀及共建模式
数据化运营监控
业务架构师职责
负责针对业务的需求,通过对服务的组装设计出满足业务需求的服务调用链路
分布式服务调用链跟踪平台-“鹰眼”
中间件层面实现日志埋点
TraceID
每一个URL请求都会生成一个全局唯一的ID
生成规则:可以包含一定业务信息,例如前端应用IP地址、创建时间、顺序数(用于链路采样)
RpcID
用于标识日志埋点顺序和服务调用间的嵌套关系
0.1->0.1.1->0.1.1.1...
分布式日志处理平台-TLog
通过采样率的调整,可以动态设置某一应用实例的日志采样率
业务场景
服务实时监控
服务调用链跟踪
服务调用链分析
调用强弱依赖关系
业务全息排查
将服务链路信息与业务事件进行集成,
将业务事件通过服务调用链的TraceID和RcpID进行双向关联
TraceID/RpcId
DateKey : 记录业务事件发生的时间
业务主键 : 例如一行日志中包含了交易订单ID、会员ID、商品ID等,支持1个或者多个主键
业务详细记录 : 主键对应的键值
业务实时监控
共享服务中心建设
7大服务中心
用户中心(UIC)
统一用户数据、存储、服务接口
商品中心(IC)
商品描述、发布、管理、巡检、评价、数据分析等的能力
建立一个全球最大的商品库,同时提供商品库的管理运营方法和配套工具服务
交易中心(TC)
购物车、交易流程、订单管理、支持、结算、营销等
店铺中心(SC)
店铺管理、装修、生命周期管理、日常管理等业务
物流中心
营销中心
数据服务中心
服务中心划分原则
高内聚、低耦合
会员积分中心前期可以不要拆分,后期再拆
数据完整性原则
数据模型统一
业务可运营性原则
从业务出发的业务单元
承载业务逻辑
沉淀业务数据
产生业务价值
让数据来源、数据分析、业务生产可以形成闭环
能否用大数据能力提升运营水平是服务中心原则之一
渐进式的建设原则
阿里巴巴
电商系统架构
烟囱式架构 到 分布式架构 再到 共享式架构
系统建设模型
从 生产模型 升级到 运营型模型
从 版本模型 升级到 迭代模型
什么叫懂业务?
能对业务的下一步发展有着自己的理解和看法,对业务流程如何进一步优化能更好的提升业务,
甚至对企业现在的业务提出创新的想法,为企业带来新的业务增长点
七个人的团队协同效率是最高的
基础中间件服务
分布式数据库
分布式缓存
分布式消息
分布式配置
分布式文件系统
分布式日志
分布式远程调用框架
分布式服务框架
SOA架构
核心价值 - 服务重用
服务、滋养、稳定
SOA的特性
面向服务的分布式计算
服务间松散耦合
支持服务的组装
服务注册和自动发现
以服务契约方式定义服务交互方式
微服务架构
特征
分布式服务组成的系统
微服务服务边界划分一定是从业务的维度
按照业务而不是技术来划分组织 以及 做有生命的产品而不是项目
智能化服务端点与傻瓜式服务编排
自动化运维
系统容错
服务快速演化
分布式服务框架HSF
主要组件
服务提供者
服务调用者
地址服务器
为服务提供者和调用者提供部署环境中所有配置服务器
和Diamond服务器的服务器列表信息
Nginx实现
统一域名和通过DNS轮询
配置服务器
服务提供者、服务调用者的IP地址和端口
推送服务相关信息到服务节点
配置服务器与所有服务提供者和调用者全是长连接,采用心跳方式监控各服务运行节点的状况
服务调用调度的指挥官
Diamond服务器
统一配置管理服务,类似Zookeeper
承担配置规则保存,并持久化到数据库
服务调用安全管控规则
调用黑白名单
服务路由权重
服务QPS阈值
超过阈值拒绝服务继续调用
服务节点对配置服务器列表的获取
服务的注册发布
服务的订阅
服务规则的推送(如果需要)
服务交互
网络通信框架Netty+Hession数据序列化协议
容错机制
服务调用者已经保存订阅的服务提供者的服务器列表信息
服务调用者端识别异常服务实例,并从服务器列表中摘除
配置服务器长连接余服务节点通信,服务提供者实例出现故障,
可以秒级就能感知并摘除。并实时推送给服务订阅者
线性扩展
新增加的服务提供者实例一旦启动,可以快速完成服务注册发布、更新服务列表,并推送到服务调用者端
数据库能力扩展
扩展方法
读写分离
主数据库写能力无法扩展
分库分表
数据尽可能平均拆分
用户ID进行hash取模,平均分布数据
尽量减少事务边界
事务边界是指单个SQL语句在后端数据库上同时执行的数量
异构索引表尽量降低全表扫描频率
异构索引表:采用异步机制将原表内的每一次创建或更新,都换另一个维度保持一份完整的数据表或索引表
将多条件频繁查询引入搜索引擎平台
简单就是美
20%的场景进行数据异构索引处理,性能最优化,另外80%偶尔出现跨库或者全表扫描其实最有效
异步化与缓存原则
业务流程异步化
消息中间件方式实现业务异步化
数据库事务异步化
大事务拆分为小事务,降低数据库的资源被长时间事务锁占用而造成的数据库瓶颈
异步化实现还款流程
柔性事务
BASE支持大型分布式系统通过牺牲强一致性获得高可用性
柔性事务如何解决分布式事务问题?
引入日志和补偿机制
原子性由日志保证
事务日志中记录事务的开始、结束状态、事务参与者信息
可靠消息传递
消息处理实现幂等性
幂等 = 同一操作反复执行多次结果不变
最简单幂等实现方式: 根据业务流水号写日志,类似排重表
实现无锁
避免事务进入回滚
辅助业务变化明细表
记录增减变化明细表
乐观锁
基于数据版本(Version)记录机制实现
柔性事务框架
支付宝XTS分布式事务框架
基于BASE思想实现类似两阶段提交的分布式事务框架
XTS是TCC(Try/Confirm/Cancel)型事务,属于典型的补偿型事务
主要负责事务日志的记录
事务的参与者需实现XTS提供的接口,以实现XTS框架对于事务参与者的事务协调和控制
主要组件
业务服务
负责具体业务处理,如交易服务、红包服务等
账务前置
负责接收、检查并缓冲从业务服务发起的账务请求
账户核心
负责记账并更新分户余额
主事务管理器
负责主事务的启动、提交与回滚
分支事务管理器
负责分支事务的准备、确认与取消
事务恢复daemon
定时运行,负责恢复处于已准备状态,但在指定时间阈值内尚未确认或取消的事务
新一代分布式事务平台 TXC
基于BASE思想实现类似两阶段提交的分布式事务框架
TXC server 扮演事务协调者的角色
负责对整个事务上下文的日志记录以及在事务处理过程中全局的协调和控制
柔性事务框架实施配合方案
应用程序要实现幂等
特别是对数据库进行数据修改操作时
远程模块之间采用异步消息来驱动
异步消息还可以起到检查点的作用
平台稳定性
体系包含
机房布线、网络通信、硬件部署、应用架构、数据容灾等
保障措施
限流和降级
限流
最优的限流拦截点在前端接入层面
Nginx实现扩展组件TMD(Taobao Missile Defense 淘宝导弹防御系统)
限流措施
域名类限流
cookie限流
黑名单
安全策略
开源模块nginx-http-sysguard
识别负载过高,直接返回http状态码或者其它URL页面
应用实例限流
使用Spring的AOP机制,对接口定义advice拦截器
计算当前线程数或者QPS,返回异常信息
降级
降级代码开关
限流平台Sentinel
授权、限流、降级、调用统计监控
流量调度
实现原理
通过秒级获取服务器系统运行指标以及业务指标,通过流量调度平台设置的决策算法以及规则,当发现满足规则条件的指标状态发送时,对线上环境的服务器进行下线等操作,以屏蔽这些单点或局部出现故障的应用实例对整体平台的影响
HSF的ConfigServer推送给服务消费者的服务提供者列表带上服务调用的权重信息
业务开关
业务开关管理Switch平台
开关客户端是嵌入在应用端的SDK,采用注释的方式方便接入
容量压测及评估规划
容量压测是将线上真实的流量引流到压测目标机器上
容量规划平台
利用服务单机QPS数据,结合不同服务器机型处理能力的差异化分析,预测服务器资源需要
全链路压测平台
基础数据抽取、链路与模型构造、链路验证、业务改造、数据平台、流量平台、影子表、中间件改造、安全机制
业务一致性平台
实时业务审计平台BCP (Business Check Platform)
0 条评论
下一页