文档章节

如何从零开始搭建一个技术平台

旁观者-郑昀
 旁观者-郑昀
发布于 2016/04/26 09:53
字数 2353
阅读 131
收藏 9

郑昀 创建于2016/3/30 最后更新于2016/4/8

关键词:技术预研课题,平台设计,应用场景,故事,信息架构,业务流程,数据流程


本文档适用人员:全体研发

提纲:

  1. 如何从零开始搭建一个技术平台?

  2. 应用场景其实就是我们的愿景

  3. 从应用场景推导出故事

  4. 从故事推导出信息架构和业务流程


一,如何从零开始?

如果让你把下面这套技术体系串联起来,从零开始构建一个技术平台,你如何做需求分析呢,在没有产品经理帮助你梳理的情况下?

 

下面这些系统涵盖了我们研发测试运维日常工作的方方面面:

  1. idCenter:它定义用户、用户组、权限。研发测试都有了唯一的身份和权限集合,贯穿所有系统。

  2. iDB:数据库自动化运维系统能把数据库建帐号、授予权限、建表、改表结构、刷库这些日常操作都变成流程,DBA审核通过后就可以自动执行,以及自动回滚。

  3. Touchstone:容器私有云的管理控制台,管理镜像库、应用、容器、主机等。日常发布就在这里做。

  4. JobCenter:定时任务调度和管理。

  5. Summoner:大型计算任务的调度和管理。云纵佣金计算就是在这上面跑的。

  6. Notify:异步消息可靠推送。所有的异步消息都走这个中间件。

  7. Discache:管理memcached和redis。

  8. OAP:运维自动化系统。主要是资产管理、资源管理和发布。

  9. Secret:天机和鹰眼。数据库、Java、PHP、业务指标,监控报警都做进来了。

 

你就是一个说故事的人,为了保证大家对故事的理解没有偏差,所以大家『都希望你说得具体点儿(User Story),把故事落实在产品的需求点(Product Backlog),然后在这些需求点里面排出优先级(Sprint Backlog),然后排出版本(Version),这样兄弟们做开发和不断燃烧(Burn Up)』。[注1]

即,

/*

先有场景, \

再有故事, \

通过故事拆解出信息架构,即菜单结构和功能点, \

最后归入某个版本, \

在所有的故事、功能点和版本都确定之后,我们就进入不断的排序优先级和循环的过程。

*/

 

二,何谓应用场景?

大家也许会注意到,当我发起技术预研课题时,我通常都会给出我想象中的、心目中这个课题的愿景,以一个目标用户是如何使用这个平台的应用场景的方式。

 

譬如说:

本地生活服务商户“魔镜”计划

  • 愿景:

    • 为公司分销、共创和运营的决策提供门店数据支撑,提供(自助)可视化数据和自助数据查询能力

  • 应用场景举例:

    • 场景一:

      • 开站决策支持:哪些城市值得开站,哪些不值得?

      • 背后的数据支撑:

        • 开展过互联网营销服务并且经营得尚可的门店清单以及销售情况

    • 场景二:

      • 餐饮和美业品类下,优先向哪些商户推纵横客?

      • 背后的数据支撑:

        • 门店的地址电话,用户活跃度,门店星级,团购和外卖商品数,折扣领取次数等

这就是愿景和场景。

 

我们对于上游业务部门流转过来的需求,也必须熟练运用下面这种逆推能力:

先构造出合乎逻辑的多种应用场景,然后回头审视自己的概念设计、功能设计、信息架构设计是否正确。如果你的表结构等设计不符合这些应用场景,必定是你的设计不对。

WHY?

不合逻辑,必有问题。

 

再举一个应用场景例子:

预研课题:CloudEngine

场景CE-main-004:服务器申请

服务器申请的步骤有:

  1. 选择应用

  2. 选择虚拟化技术(注:即容器还是虚拟机)

  3. 填写节点数

  4. 修改应用配置(注:可选)

  5. 分配服务器

  6. 服务器初始化

  7. 添加监控等各种运维基础设施

  8. 部署应用

  9. checkservice等自检

  10. 收集监控数据

  11. 服务器申请成功提示

使用者:研发经理,配管,SA

目的:既能在环境初始化时解决 stable 环境的发布,也能在环境就绪之后新建临时应用时的服务器申请和发布。

有了应用场景,就可以针对不同的用户设计故事。

 

三,从应用场景推导出故事

顺着场景展开,就可以得到一个又一个的故事。

 

譬如说,对于上面的场景,我们可以针对用户“研发经理小丁”来设计 User Story,我们看到了什么,操作了什么,又得到了什么结果:

对应的场景:场景CE-main-001,登记和维护应用

用户:研发经理小丁

故事CE-main-001-story-01:

小丁

CE

登录CE,从左侧菜单“应用管理”,选择“应用列表”

展示登记备案的应用清单。

列表展示,字段有:

  1. 应用中文名

  2. 应用codename

  3. 应用类型

  4. 应用领域

  5. 代码仓库

  6. 状态

  7. 创建人,创建时间

  8. 最后一次维护人,最后一次维护时间

  9. 更多操作

本列表页可以按应用类型筛选。

”更多操作“区域里有以下操作入口:

  1. 编辑

  2. 删除

点击列表页上的“新增应用”按钮

应用元数据字段有:
  1. 应用中文名

  2. 应用codename

  3. 应用描述

  4. 应用类型

  5. 应用领域

  6. 代码仓库

  7. 应用配置信息

  8. 默认访问端口

  9. 状态:启用/禁用

点击新增应用页上的“保存”按钮

生成新应用,提示保存成功,一段时间后跳转回列表页

 

 

越细越好,越有助于设计页面,理解系统需要提供哪些接口和数据。


四,从故事推导出信息架构和业务流程

顺着故事,我们可以假想出人们是怎么抵达这些故事的。与此同时,即使是同一个应用场景,也会有多种进入途径。

譬如说,小丁同学既可以在首页的工作台上进入应用维护功能,也可以在二级菜单上找到对应的入口。如下图所示:


从故事推导出信息架构和业务流程

 

通过上图,我们可以整理出信息架构: 

  • 首页(工作台):应用快捷入口,环境快捷入口,……

  • 应用管理-应用列表(创建应用、编辑应用)

  • 环境管理-环境列表(公共配置查看、公共配置编辑)

故事越写越多,进入途径梳理清楚之后,我们就能总结出需要哪些 Dashboard、一级菜单、二级菜单,进一步还能整理出业务流转流程。

 

以上这种思考问题和推演方法,有助于我们从零开始,一点点切入平台,而不是像下面这样“拍脑袋”地逆向设计:

  1. 先构想一级菜单和二级菜单

  2. 再构想菜单点击之后需要实现的功能点

  3. 最后在做页面组织

 

我们的技术预研课题一般都围绕着这四个核心概念:

  1. 资源 

  2. 数据 

  3. 流程 

  4. 操作 

开始构建一个体系。

我们顺着 场景——>故事——>信息架构——>业务流程——>版本——>功能点,就可以把我们所掌握的资源(虚拟机集群、Docker集群、物理机、……),外界采集的数据(组织架构、员工信息、有效门店、交易……),业务流转的,各个部门的操作,顺利地结合起来。


注1:

这段『User Story-Product Backlog-Sprint Backlog-Version-Burn Up』的文字出自于《产品的视角:从热闹到门道》(百度产品架构师鲁克著)。

 

延伸阅读:

技术高手如何炼成

 

技术平台方案集:

#研发解决方案#分布式并行计算调度和管理系统Summoner

#研发解决方案#iDB-数据库自动化运维平台

#研发解决方案#基于Apriori算法的Nginx+Lua+ELK异常流量拦截方案

从宏观到微观——天机与鹰眼联手

#研发解决方案介绍#Tracing(鹰眼)

#研发中间件介绍#异步消息可靠推送Notify

#研发解决方案介绍#IdCenter(内部统一认证系统)

#研发解决方案介绍#基于持久化配置中心的业务降级

#研发中间件介绍#定时任务调度与管理JobCenter

#研发解决方案介绍#基于StatsD+Graphite的智能监控解决方案

#研发解决方案#discache-分布式缓存查询与管理系统

#研发解决方案介绍#基于ES的搜索+筛选+排序解决方案

#数据技术选型#即席查询Shib+Presto,集群任务调度HUE+Oozie

 

-EOF-

欢迎订阅我的微信订阅号『老兵笔记』,请扫描二维码关注:
老兵笔记订阅号二维码

© 著作权归作者所有

旁观者-郑昀
粉丝 100
博文 77
码字总数 162700
作品 0
朝阳
私信 提问
资源 :数据科学类国家精品在线开放课程

前言 2019年1月22日,教育部办公厅公布了第二批国家精品在线开放课程认定结果。本文为您盘点数据科学与大数据专业领域的国家精品在线开放课程,包括2017年第一批认定课程(注:排名不分先后)...

数据分析v
01/23
0
0
180页PPT为你全解AI技术与产业发展 | 清华孙富春教授

来源:清华大学 ;整理:WPR;编辑转自:THU数据派;图片转自:机工教育; 本文多图,建议阅读10+分钟。 从背景与历史、深度学习、脑认知、产业(装备)发展、发展趋势等五个方面详细解读了人...

tw6cy6ukydea86z
2018/04/18
0
0
编程微刊第四期文章汇总(2018.4)

编程微刊创立也有一段时间了,在此感谢一直关注我的小伙伴们,你们的关注和支持,是我每天不断更新的动力,我每个月会总结一期微刊,方便大家的阅读。 1. 推荐文章 这个时代,抛弃你的时候,...

祈澈姑娘
2018/05/04
0
0
免费微信公众服务平台提供免费注册微信公众平台

问:我们为什么要免费? 答:上微是上弦科技有限公司的旗下产品,上微平台主要是为客户提供免费的第三方服务平台,平台所开放的所有功能均终身免 费使用,目前功能包括(微网站、微商城、优惠...

wanmei20
2014/05/12
0
0
springboot视频教程

一共八节课从零开始教会你如何使用springboot开发一个springMVC框架的web工程,学完这八节课就能保证你完全掌握springMVC的开发过程,虽然不能使你成为java高手,但是做个web开发或者面试个程...

kain80817
2016/05/28
41
0

没有更多内容

加载失败,请刷新页面

加载更多

安全组和云防火墙的区别

前言 熟悉云平台的朋友可能都会注意到这样一个事情:无论公有云还是私有云,创建虚拟机的时候都需要选择安全组,来对虚拟机进行安全防护;有的云平台在VPC里,还能选择防火墙,ZStack在3.6版...

ZStack社区版
32分钟前
2
0
教育性app开发的重要性和好处

在这个精通技术的世界中,流行的app主导着无聊的教育系统。当我们将技术和教育结合在一起时,它将带来当代以及强大的学习资源。因此,将教育移动app集成到您的学习过程中,并根据自己的信念把...

a429011717
33分钟前
3
0
IE6/7/8如何兼容CSS3属性

本文转载于:专业的前端网站➩IE6/7/8如何兼容CSS3属性 最近在工作中总是要求IE8兼容CSS3属性,在网上搜了搜主要是引入了一个htc文件(ie-css3.htc或者PIE.htc。个人认为这两个文件的作用差不...

前端老手
48分钟前
4
0
手把手教你ALLEGRO的约束规则的设置教程!

约束规则的设置 分三步, 定义规则(一、基本约束规则设置:1、线间距设置;2、线宽设置;3、设置过孔;4、区域约束规则设置;5、设置阻抗;6、设置走线的长度范围;7、设置等长:7.1、不过电阻的NET 等...

demyar
50分钟前
5
0
完美解决H5滚动滑动穿透方案:不使用系统滚动

网上有很多黑科技解决这个问题,都不是从根本去解决,例如通过js控制弹出时html加上position:fixed; 弹窗关闭后再去掉该样式,总觉得不太对,像是打补丁。 今天终于找到了滚动穿透的原因和完...

未来cc
54分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部