天天看點

如何從零開始搭建一個技術平台?

鄭昀 建立于2016/3/30 最後更新于2016/4/8

關鍵詞:技術預研課題,平台設計,應用場景,故事,資訊架構,業務流程,資料流程

本文檔适用人員:全體研發

提綱:

如何從零開始搭建一個技術平台?

應用場景其實就是我們的願景

從應用場景推導出故事

從故事推導出資訊架構和業務流程

一,如何從零開始?

如果讓你把下面這套技術體系串聯起來,從零開始建構一個技術平台,你如何做需求分析呢,在沒有産品經理幫助你梳理的情況下?

下面這些系統涵蓋了我們研發測試運維日常工作的方方面面:

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

應用類型

應用領域

代碼倉庫

狀态

建立人,建立時間

最後一次維護人,最後一次維護時間

更多操作

本清單頁可以按應用類型篩選。

”更多操作“區域裡有以下操作入口:

編輯

删除

點選清單頁上的“新增應用”按鈕

應用中繼資料字段有:

應用描述

應用配置資訊

預設通路端口

狀态:啟用/禁用

點選新增應用頁上的“儲存”按鈕

生成新應用,提示儲存成功,一段時間後跳轉回清單頁

越細越好,越有助于研發同學設計頁面,了解系統需要提供哪些接口和資料。

四,從故事推導出資訊架構和業務流程

順着故事,我們可以假想出人們是怎麼抵達這些故事的。與此同時,即使是同一個應用場景,也會有多種進入途徑。

譬如說,小丁同學既可以在首頁的工作台上進入應用維護功能,也可以在二級菜單上找到對應的入口。如下圖所示:

如何從零開始搭建一個技術平台?

通過上圖,我們可以整理出資訊架構: 

首頁(工作台):應用快捷入口,環境快捷入口,……

應用管理-應用清單(建立應用、編輯應用)

環境管理-環境清單(公共配置檢視、公共配置編輯)

故事越寫越多,進入途徑梳理清楚之後,我們就能總結出需要哪些 dashboard、一級菜單、二級菜單,進一步還能整理出業務流轉流程。

以上這種思考問題和推演方法,有助于我們從零開始,一點點切入平台,而不是像下面這樣“拍腦袋”地逆向設計:

先構想一級菜單和二級菜單

再構想菜單點選之後需要實作的功能點

最後在做頁面組織

我們的技術預研課題一般都圍繞着這四個核心概念:

資源 

資料 

流程 

操作 

開始建構一個體系。

我們順着 場景——>故事——>資訊架構——>業務流程——>版本以及版本包含的功能點,就可以把我們所掌握的資源(虛拟機叢集、docker叢集、實體機、……),外界采集的資料(組織架構、員工資訊、有效門店、交易……),業務流轉的流程,各個部門的操作,順利地結合起來。

注1:

這段『user story-product backlog-sprint backlog-version-burn up』的文字出自于《産品的視角:從熱鬧到門道》(百度産品架構師魯克著)。

延伸閱讀:

<a href="http://www.cnblogs.com/zhengyun_ustc/p/upgrade.html">技術高手如何煉成</a>

技術平台方案集:

<a href="http://www.cnblogs.com/zhengyun_ustc/p/summoner.html">#研發解決方案#分布式并行計算排程和管理系統summoner</a>

<a href="http://www.cnblogs.com/zhengyun_ustc/p/idb.html">#研發解決方案#idb-資料庫自動化運維平台</a>

<a href="http://www.cnblogs.com/zhengyun_ustc/p/flowguard.html">#研發解決方案#基于apriori算法的nginx+lua+elk異常流量攔截方案</a>

<a href="http://www.cnblogs.com/zhengyun_ustc/p/m2m.html">從宏觀到微觀——天機與鷹眼聯手</a>

<a href="http://www.cnblogs.com/zhengyun_ustc/p/55solution2.html">#研發解決方案介紹#tracing(鷹眼)</a>

<a href="http://www.cnblogs.com/zhengyun_ustc/p/55solution4.html">#研發中間件介紹#異步消息可靠推送notify</a>

<a href="http://www.cnblogs.com/zhengyun_ustc/p/55solution5.html">#研發解決方案介紹#idcenter(内部統一認證系統)</a>

<a href="http://www.cnblogs.com/zhengyun_ustc/p/55solution3.html">#研發解決方案介紹#基于持久化配置中心的業務降級</a>

<a href="http://www.cnblogs.com/zhengyun_ustc/p/55solution8.html">#研發中間件介紹#定時任務排程與管理jobcenter</a>

<a href="http://www.cnblogs.com/zhengyun_ustc/p/55solution9.html">#研發解決方案介紹#基于statsd+graphite的智能監控解決方案</a>

<a href="http://www.cnblogs.com/zhengyun_ustc/p/55solution10.html">#研發解決方案#discache-分布式緩存查詢與管理系統</a>

<a href="http://www.cnblogs.com/zhengyun_ustc/p/55solution6.html">#研發解決方案介紹#基于es的搜尋+篩選+排序解決方案</a>

<a href="http://www.cnblogs.com/zhengyun_ustc/p/55solution7.html">#資料技術選型#即席查詢shib+presto,叢集任務排程hue+oozie</a>

-eof-

上一篇: 自動化3
下一篇: 自動化4