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

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

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

提纲:

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

从应用场景推导出故事

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

一,如何从零开始?

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

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

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

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

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

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

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

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

Discache:管理memcached和redis。

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

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

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

即,

/*

先有场景, \

再有故事, \

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

最后归入某个版本, \

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

*/

二,何谓应用场景?

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

譬如说:

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

愿景:

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

应用场景举例:

场景一:

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

背后的数据支撑:

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

场景二:

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

背后的数据支撑:

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

这就是愿景和场景。

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

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

WHY?

不合逻辑,必有问题。

再举一个应用场景例子:

预研课题:CloudEngine

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

服务器申请的步骤有:

选择应用

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

填写节点数

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

分配服务器

服务器初始化

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

部署应用

checkservice等自检

收集监控数据

服务器申请成功提示

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

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

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

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

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

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

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

用户:研发经理小丁

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

小丁

CE

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

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

列表展示,字段有:

应用中文名

应用codename

应用类型

应用领域

代码仓库

状态

创建人,创建时间

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

更多操作

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

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

编辑

删除

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

应用元数据字段有:

应用中文名

应用codename

应用描述

应用类型

应用领域

代码仓库

应用配置信息

默认访问端口

状态:启用/禁用

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最后在做页面组织

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

资源

数据

流程

操作

开始构建一个体系。

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

时间: 2024-10-15 21:22:28

如何从零开始搭建一个技术平台?的相关文章

vue-用Vue-cli从零开始搭建一个Vue项目

Vue是近两年来比较火的一个前端框架(渐进式框架吧). Vue两大核心思想:组件化和数据驱动.组件化就是将一个整体合理拆分为一个一个小块(组件),组件可重复使用:数据驱动是前端的未来发展方向,释放了对DOM的操作,让DOM随着数据的变化自然而然的变化(尤神原话),不必过多的关注DOM,只需要将数据组织好即可.本文用Vue-cli从零开始搭建一个Vue项目. 准备工作 1.下载安装Node.js 下载地址:https://nodejs.org/en/download/ ,选择合适自己的版本下载即可

从零开始搭建一个网站

开始做项目,从零开始搭建一个网站的过程.这里以www.sampe.com为例,步骤如下. 1.在万网购买域名:www.sample.com 2.购买阿里云ECS云主机 3.在万网的域名管理中将域名解析到所购买的阿里云主机的ip地址上面. 4.在服务器(也就是云主机上面)设置域名的绑定(教程:http://www.cnblogs.com/yiluxiuxing/p/4347702.html) 至此完成网站搭建

搭建一个网站平台

LAMP:搭建一个网站平台 Linux apache mysql php 基础环境搭建需要有一个干净的系统,配好本地yum 源,网络通顺可以使用远程连接,易操作. 主机名修改:#cat /etc/hosts(本地域名解析) #cat /etc/hostname #vi /etc/hostname修改主机名 #hostname 主机名 #login重新进行登录 关闭防火墙(selinux)关闭 #vi /etc/hosts 进入:加上ip地址 主机名 保存退出:wq #cat /etc/hosts

【TGUI】从零开始搭建一个基于Unity的UI库 01

作为一个初学Unity3D一个来月的小菜鸟,要想自己搭建一个UI库也是挺疯狂的,但是老大不给用NGUI,然后那时候Unity4.6正式版还没发布(或者说我还不知道Unity4.6有自带UI),然后就无所畏惧的写下来了,目前虽然功能很简陋,实现的控件也非常少,但是作为练手的目的已经达成了,所以放上来给大家分享. -------------------------------------------------- 分割线 ---------------------------------------

webpack简单教程(1)--从零开始搭建一个webpack小例子

基于Windows操作系统下搭建webpack的运行环境,这里采用npm环境,node.js官网下载最新版本的, 这里忽略下载和安装,然后直接运行  Node 环境,如下图所示. 检查一下,node版本和npm工具的版本确保是最新的,这里并不是最新版本的, 如果版本都是最新的,那么就可以来直接搭建webpack一个小demo案例. 1.在F盘中创建一个文件夹webpack 2.在文件夹中创建index.html <!DOCTYPE html> <html lang="en&qu

从零开始搭建一个react项目

如果只是想试试 React,那么建议使用 create-react-app来创建一个react项目.快速开始 因为 create-react-app 和 vue-cli 不一样,create-react-app将webpack的相关配置直接封装好了,所以自定制化程度不高,所以考虑手动构建一个 React项目 代码下载 准备工作 安装node环境. 配置cnpm(看个人需求). 准备一个空的文件夹react-demo. 初始化工程 从这里开始新建一个react工程 1. 初始化工程目录 1 cd

小白也可以很容易的从零开始搭建一个网站

1)安装phpStudy_2014_setup.1413444920.exe 并启动数据库 2)将软件自带的WWW实例替换成我发的这个模板(DouPHP),网上也可以下载. 网上能找到更好模板的也可以不用这个,网上很多,刚入门就不用自己做了哈. 3)在浏览器里登陆localhost (默认会指向http://localhost/install/index.php) 下一步安装DouPHP企业网站管理系 数据库账号默认root, 密码也是默认root . 管理员账号密码随意自定义 4)登陆管理员账

超强教程:如何搭建一个 iOS 系统的视频直播 App?

现今,直播市场热火朝天,不少人喜欢在手机端安装各类直播 App,便于随时随地观看直播或者自己当主播.作为开发者来说,搭建一个稳定性强.延迟率低.可用性强的直播平台,需要考虑到部署视频源.搭建聊天室.优化界面等难题,具备一定的难度与挑战! 那假如自己搭建一个直播平台,该如何下手呢?莫慌,本文就给大家详细介绍如何搭建一个 iOS 系统的直播 App? 1 流程熟悉 1.1 选择协议 想要实现直播 App ,我们得先知道如何播放从服务器传来的视频数据. 目前,主流视频直播网站使用的协议多为 RTMP(

从零开始搭建 creact-react-app 脚手架

本次学习如何从零开始搭建一个react官方提供的脚手架并添加less配置项以及如何处理在搭建过程中出现的bug 在此过程中默认使用yarn工具, 使用官方提供的命令:(此过程可能会因为个人网速不同,创建的时间也会有所不一样) >yarn create react-app sugar 如图所示我们已经创建了一个基本的脚手架,但是由于在项目中我们会安装less插件,所以我们还需要将文件进行暴露,暴露文件的命令 yarn eject >yarn eject yarn run v1.17.3 $ re