PPT
个人简介
- 职业规划向技术专家方向发展, 往技术方向
- 对技术充满热情, 喜欢钻研新技术, 提高工作效率
分层搭建
微服务架构
- 分而治之面对复杂问题对惯用方法
- 微服务在拆分和治理两个方面给出了很好对实践经验( 亚马逊两个批萨团队 )
- 业务对复杂性需要新新的架构
- b/s -> mvc 架构 -> 四层架构
- android 的在升级新的编译架构, 分布式编译
- 异构的技术架构
- 架构通过 API 和消息的方式来协作
- 结合我们自己业务的特点, 流程和业务比较多, 而并发和吞度量
- 不与特点的语言绑定, 提供 Java 的最佳实践
- 可以快速方便的集成其他和适配其他的业务
- 架构通过 API 和消息的方式来协作
领域建模
- 微服务如何拆分和设计
- 领域用来确定业务的边界, 并在边界内解决业务问题
- 业务也需要按照 "高内聚低耦合" 的方法进行拆分
- 业务不断迭代, 需要持续维持业务和代码的一致性
- 怎么做
- 技术架构设计评审
- 需求非常复杂, 变化也非常快, 不可能研发个半年
- 在项目中使用到的时候逐步进行落地
- 核心域, 通用域和支撑域, 有些可以通过采购或外包来完成
业务组件
- 没有银弹
- 按照领域拆解之后, 领域之间存在不同程度的可复用性
- 为了不重复造轮子, 尽可能的服用业务能力
- 从技术角度来讲, 今年我们做一件事情需要 1 个月, 明年做类似的事情可能只需要 1 个星期
基础设施
- 公司自己的特点, 安全性的考量
- 互联网的业务让基础设施的技术发展的非常快, 包括云技术/ 大数据
- 微服务架构对基础设施的要求比较高, 对基础设施对稳定性, 按需交付能力
- 微服务架构的缺点
- 对基础设施要求比较高
- 这一块 Java 生态提高了丰富的
- 引入微服务给测试联调新增了复杂性, 导致不必要的成本消耗
关键交付物
- 提案这一机制是开源社区的运作机制
分支管理域
- 叠加
- 打造传英自己工程实践的概念
- 这些概念是在下游工具链上叠加起来的
- repo 工具链是 android 代码的管理本身是在 git 单个仓库基础上叠加起来的一样
- 通过 gerrit 来实现的我们自己的分支权限管控和代码 review
- 业务规则
- 分支命名规则
- 代码合入上下游卡控规则
- 临时量产分支需要合入代码必须先合入量产
研发基础设施层
- 敏捷的运转依赖低层的基础设施的能力
- 互联网包括构建了蓝绿维度发布, A/B 测试等能力
- 基于数据流量的调度策略, 这些暂时不是我们工作的重点
Web 制品环境晋级
- 统一交付的制品, 屏蔽了环境的差异
- 类似于整机的版本外发流程
Web 开发分支规范
- 单仓的规范
场测
- 业务价值
- 大禹子项目-场测管理系统与 IPM 测试平台联动
- 实现测试域的海外测试闭环协同:实现任务确认->范围确认->任务发布->任务各国排期->时间确认->各国报告回收->场测报告回收,覆盖海外测试全过程
- 收益
- 海外活跃用户约 300, 数据统计
- 除手工用例执行过程之外,测试过程整体提效 110%,250mins -> 120mins( 120mins)
IPM 共创项目域
项目域的版本迭代
- 共性问题通过 Excel 导入, 未来流程和数据上可以联通 JIRA 中的共性问题缺陷
大禹项目目标
- 流程承接
- 吻合 IPD 流程, 软件开发流程同 IPD 对齐
- 与 KT5/KT4 子专项协同, 对软件项目管理, 需求跟踪, 软件版本发布等流程进行全景梳理和优化, 保证软件工程化的推进和实现
- 高效协作
- 串联业务断点,整合割裂平台,实现一站式软件开发高效协作
- 效能洞察
- 沉淀端到端数据,洞察分析效能问题,持续优化改进
度量指标
- 可持续性
- 业务活动的覆盖率
- 业务流程 e 化率
- 组件服用率
- 临时方案, 未站在全局思考问题
- 有效性
- 每版本编译的被使用率被使用的比例
- 目标用户使用率
- 用户体验满意度
- 项目交付时间缩短
- 效率
- 开发效率
- 自动化冒烟测试覆盖率
- 版本发布平均耗时提升率
- 代码规范等引起的问题占比减少
- 开发效率
问题
- 交付物通过线下表格进行流转, 信息传递慢, 变更难管控
- SPD 重要信息通过 excel 来进行传递, 数据跟踪困难
- 审批通过邮件方式流转, 效率低
- 流程未完全串联起来, 版本编译需要填写信息
- 没有统一的需求管理, 需求管理比较零散
- 需求关联到代码, 代码关联到版本, 反项搜索
- 版本验证需要补充信息方向追踪到问题的源头
- 需求关联到代码, 代码关联到版本, 反项搜索
- 开发立项后
- 软件申请相关的开发资源靠邮件申请, 时效性和审批存在漏洞
- 编译
- android 的分布式编译优化
- android 编译的工作负载, 调度, 采用云原生的技术, 弹性伸缩