前言

日拱一卒,功不唐捐,一个知识领域里的 “道 法 术 器” 这四个境界需要从 微观、中观以及宏观 三个角度来把握。微观是实践,中观讲套路,宏观靠领悟。本系列文章我把它命名为《分布式系统架构设计36式》,讲诉分布式系统里最重要的三十六个的中观套路,而微服务的本质也是分布式,因此搞明白这三十六个最重要的知识点也就同时能搞明白微服务。

“兵者,国之大事,死生之地,存亡之道,不可不察也”,这句话对企业来讲,兵即产品,国即企业,察即研究探讨,产品关系到企业的存亡,所以不可以不慎重地加以研究探讨。本文提出toB产品交付双轮驱动思维模型以探讨toB软件产品的交付方法论。

动机

架构设计人员是业务与技术之间的桥梁,其既需要保证产品需求合理,也要保证产品交付的功能是对客户、用户有用、有价值的。为了能够准确的落地业务需求同时又能保证产品按时交付,架构设计人员就需要一个可以量化执行的产品业务需求与产品交付的思维模型。

双轮驱动思维模型

受 《持续交付2.0》的启发这里提出toB产品交付之双轮驱动思维模型。双轮驱动思维模型以业务需求为出发点,探索业务真实有用的价值,以最节约的成本和最可控的风险,通过持续的业务价值探索和产品迭代交付快速交付价值与市场锲合的产品,其思维模型如下图所示:

双轮驱动模型

总则

产品的交付的是价值,因此双轮驱动思维模型是一个产品价值交付模型,总的理念是以“真北业务价值”为导向,以“产品快速交付”为动力,将“业务价值”与“产品交付”双个环节紧密结合,前轮业务价值把握方向,后轮产品交付提供动力,从而驱动业务与产品一起前进。它以“产品价值与市场锲合”为指导思想,以“以客户为中心”为工作理念,以“指北需求”,“精简过滤”、“量化分解”、“快速反馈”和“演化迭代”为工作原则,是一套持续集成持续交付产品的思维模型。

  • 产品价值与市场锲合,指的是客户需要什么以及你能提供什么的从而获得产品商业成功的问题。朴素的说法就是产品的价值是市场需要的,是客户的痛点、恐惧点、难点以及挑战点,是客户要什么你就给什么,而不是从自己的角度出发,自我感觉良好地强塞给客户什么,是自身提供的产品能否准确满足市场真实需求的问题,度量的指标是”客户是否愿意快速的为你的产品买单“

  • 以客户为中心,指的是“以客户需求为导向、为客户提供高质量低价格的产品、为客户提供满意的服务以及快速响应客户需求”,以客户为中心不是没有底线的跪添客户或者一些违法的行为,而是走正道为客户提供优质低价的产品或服务,快速响应客户的需求,帮助客户取得商业上的成功的问题。

  • “指北需求”,“精简过滤”、“量化分解”、“快速反馈”和“演化迭代”,指的是挖掘客户的真需求,需要对客户的需求精简过滤、去伪存真,再通过量化分解客户的需求为可落地执行的行为,这样才能快速交付产品、快速验证、迭代演进。

价值轮

价值轮是一个理解真北需求、去伪存真的过程,具体包括以下四个环节:

  • 需求:通过”客户、用户、团队“三个维度收集需求,将收集到的业务需求信息输入到价值轮;

  • 确定:针对输入的需求去伪存真、去粗存精确定真北需求,识别客户的痛点、难点、恐惧点以及挑战点;

  • 探讨:团队讨论,深入理解需求,拿出可行的解决方案以及实现方案;

  • 精炼:为了节约团队资源,不是所有的方案都需要传递给产品交付环去执行,因此需要精炼过滤这些方案,有些通过常识就可以判断不合理的方案就不需要往交付轮传递,其次要进行价值优先级评估,筛选出最有价值的需求与方案,以作为交付轮的输入,并等待交付轮的交付与反馈。

交付轮

产品或服务在被客户买单之前都是成本,只有被客户采购并且最终能够买单或者被用户使用并且最终兑现,才能证明其价值的存在。因此在价值轮达成共识后要借助“交付轮”快速交付,才能将其传递到客户或用户手中,从而得到真实且可靠的反馈以验证之。

交付轮它也包含四个环节,分别是(1)开发;(2)测试;(3)运维;(4)反馈:

  • 开发:指以及价值轮的输入需求以及精简过的方案,依据质量要求进行软件架构设计以及进行软件开发并且达到可运行要求;

  • 测试:指的是测试以及验证设计开发阶段交付的软件是否达到功能、质量与约束的要求;

  • 运维:指的是将开发以及测试好的软件包部署到生产环境中运行或交付给客户为客户提供生产服务;

  • 反馈:指的是监测生产运行情况以及收集用户使用情况与反馈的信息,再将收集到的信息反馈给价值轮,作为业务参考以便做出下一步的业务决策与判断。

小结

本文讲述”toB产品交付双轮驱动思维模型“,日拱一卒,功不唐捐,分享是最好的学习,与其跟随不如创新,希望这几个思维模型对大家有用。另作者能力与认知都有限,”我讲的,可能都是错的“[1],欢迎大家拍砖留念。

作者简介

常平,中科大硕,DELL EMC 资深首席工程师,主要从事分布式产品的交付、架构设计以及开发工作。

版权申明

本文的版权协议为 CC-BY-NC-ND license:https://creativecommons.org/licenses/by-nc-nd/3.0/deed.zh

在遵循署名、非商业使用(以获利为准)以及禁止演绎的前提下可以自由阅读、分享、转发、复制、分发等。

参考资料

[1]《持续交付2.0 - 业务引领的DevOps精要》 乔梁著

分布式计算中间件之信息分析基础

构建与领域设计

通常分布式计算中间件可以从两个层面进行划分:

1,构建与运维 : 分布式功能的设计与实现

2,领域设计 : 具体领域相关功能的设计与实现

  • 数据计算与分析中间件,实现数据计算与分析领域功能,比如 Flink, Spark, elasticsearch等
  • 深度学习计算中间件, 实现深度学习领域功能,比如 tensorflow, caffe等;

信息分析基础

信息分析基础:下图从功能,质量、模型、定义、本质、视角、职责、相关性、难题以及Lucene 等方面归纳了检索与分析技术领域基础10项。

信息检索模型

作者简介

常平,中科大硕,DELL EMC 资深首席工程师,主要从事分布式产品的交付、架构设计以及开发工作。

版权申明

本文的版权协议为 CC-BY-NC-ND license:https://creativecommons.org/licenses/by-nc-nd/3.0/deed.zh

在遵循署名、非商业使用(以获利为准)以及禁止演绎的前提下可以自由阅读、分享、转发、复制、分发等。

参考资料

[1]《信息检索导论》

前言

日拱一卒,功不唐捐,一个知识领域里的 “道 法 术 器” 这四个境界需要从 微观、中观以及宏观 三个角度来把握。微观是实践,中观讲套路,宏观靠领悟。本系列文章我把它命名为《分布式系统架构设计36式》,讲诉分布式系统里最重要的三十六个的中观套路,而微服务的本质也是分布式,因此搞明白这三十六个最重要的知识点也就同时能搞明白微服务。

实现一个分布式系统通常会面临只见“点与线”而不见“面与体”的难题 。本系列中的思维模型章节主要是为了解决分布式系统设计中的“面与体”的难题,它包括:需求分析思维模型、 技术思维模型、产品思维模型、创新思维模型以及商业思维模型,依据这些模型往上套就可以从“点、线、面、体”这四个层面系统性的设计一个分布式系统。

如果说技术是分布式系统工程师的一根DNA螺旋线,那么“产品、创新、商业”等就是DNA的另外一根螺旋线,只有两根螺旋线俱全并且不停的演化才能进化出新物种,本文将讲述思维模型里的 “需求分析思维” 模型。

需求分析思维模型

架构师是业务需求与产品落地之间的桥梁,因此准确地理解业务需求也是架构师必备的一个基本能力,准确地理解业务需求需要从理解业务愿景、策略与执行以及软件需求开始。理解业务愿景需要理清楚业务目标与产品的技术目标,理解策略与执行需要看清楚企业的战略方针、团队定位以及执行方法论,再次才是理解软件的产品需求。

业务愿景

1,业务目标

业务目标是很粗略的业务描述,比如需要提供物联网数据的存储服务或者比如给深度学习框架提供专门的训练芯片等.

2,技术目标

技术目标分为功能目标与非功能目标,功能目标是跟业务需求强相关的软件功能需求,比如提供原生的时序数据存储功能,还比如分布式计算功能。非功能目标可以分为质量目标与约束目标,比如性能质量、可用质量以及系统硬件规格约束等,对于产品来说质量与约束都需要可度量化、可验证化。

策略与执行

1, 战略方针

产品的战略意味着方向、资源以及取舍,方针是如何打造出这么一款产品的策略,一开始从全方位复制再处处差异化竞争也是一个思路,比如全面复制市场上已有的产品,再从产品、技术、销售、服务、运营、客户定位等方面处处差异化竞争。

2, 团队定位

团队文化即产品文化,打造一款产品需要一个团队,组织文化也深刻的影响着产品,团队不同意味着不同。国内一些企业团队复制国外产品的时候,往往有其形而无其神,原因之一往往是团队定位以及企业文化的不同。

通常来讲团队可以用四种类型来类比:海盗、特种兵、军队以及警察。海盗团队求生存,特种作战团队求根据地,军队团队求统一全国,警察团队求维稳。采用不愁吃喝的警察维稳的思路开发一款新产品又怎么能跟需要打下根据地的特种作战部队一样呢,跟需要求生存的海盗部队更不一样。

3, 执行策略

执行策略是指产品落地的方法论,持续交付2.0的方法论就很类似火箭思维,采用火箭思维意味着先开工再在过程中矫正,先确保大方向正确,开工过程中矫正直至准确命中目标。

软件需求

架构师需要能准确理解业务愿景、产品策略,将抽象的愿景、目标、策略等分解成可量化的、可执行的具体任务,从而准确实现业务到产品的落地。

从业务到产品的过程中,能够准确的理解业务的软件需求也是一个非常重要的思维能力,这样可以保证大方向的正确性,这里提出一种从业务到产品的需求分析模型,以准确的理解软件需求,从而保证软件产品的落地方向的准确性。这里我提出一个公式:

软件需求 = [客户,用户,团队] x [功能,质量,约束]

依据这个公式我提出“三三制需求分析思维模型”以抛砖引玉,如下图:

需求分析 功能 质量 约束
“大”客户 业务目标 多、快、好、省 时间、质量、成本
遗留系统,法律法规
技术趋势,竞争对手
行业标准等
“大”用户 业务需求 性能,可用性
可靠性,可伸缩性
可观测性,可运维性
易用性,安全性,韧性
业务环境
用户能力
用户群特征
“大”团队 基本功能 ,核心功能
增值功能 ,可有可无功能
有害无益功能
可扩展
可读性
可测试性
可维护性
资源预算,上级要求
开发团队能力
产品规划,信息安全
运行环境
“大”客户

这里的“大”字有两个层面的意思,首先是范围上的”大“,三三制模型里的客户不只是狭义上的产品的客户,还包括整个产品利益链上的客户,比如客户的客户,因此这里称之为 “大“客户。第二这里的”大“字是规模上的大,从商业的角度来看大订单客户理应获得更大的关注。

功能

客户关注的功能即为业务目标,比如获取商业上的成功、业务难点、恐惧点、挑战点以及压力点等。对架构师来说 “以客户为中心”导向的业务功能目标不只是提供“高质量、低成本、服务好、响应及时”的基本产品或服务需求,还包括帮助客户获取商业上的成功,帮助客户解决难点、痛点、恐惧点、挑战点以及压力点。

质量

客户对产品质量的需求一般可以用四个字概括,即”多、快、好、省“,当然从软件工程的角度来说,四个方面全满足是极其困难的,因此应该根据实际情况合理取舍,对客户的需求需要进行合理的”过滤“,去粗存精,去伪纯真。

约束

对于客户的需求只关注功能和质量而忽视约束也是不够全面的。客户在产品交付的时间、质量与成本上需要取舍,客户原来遗留的系统以及资产,当前国家的法律法规,市场上的技术趋势,以及竞争对手与行业标准等都属于当前需要考虑的约束需求。

”大“用户

这里的”大“用户的”大“字,也分为两个层面的意思,一是范围”大“,不只是当前产品的用户,还包括用户的用户以及整个产品使用链上的所有用户,二是规模”大“,主流用户的需求更应该第一时间满足,有限的资源应该在第一时间满足主流用户的需求。

功能

功能需求指的是满足用户对业务的需求,用户需要什么就提供什么,而不是我有什么就非要给用户什么,以”用户“为中心的思路也是正确的。

质量

用户的产品质量需求一般称为使用质量需求,可以从以下几个维度进行分析:

  • 合适的性能(Performant),性能指标一般包括 TPS, QPS, Latency, IOPS, response time等,这里用”合适的性能“作为表达,指的是性能合适即可、够用即可,高性能当然好,但是高性能也意味着更高的成本,有些场景高性能反而是一种浪费行为,性能需求需要理解业务场景适可而止;

  • 可用性(Availability),可用性指的是系统长时间可对外提供服务的能力,通常采用小数点后的9的个数作为度量指标,按照这种约定“五个九”等于0.99999(或99.999%)的可用性,默认企业级达标的可用性为6个9。但是当前从时间维度来度量可用性已经没有太大的意义,因为设计得好的系统可以在系统出现故障得情况下也能保证对外提供得服务不中断,因此,当前更合适得可用性度量指标 是请求失败率;

  • 可靠性(Reliability),可靠性一般指系统在一定时间内、在一定条件下可以无故障地执行指定功能的能力或可能性, 也是采用小数点后的9的个数作为度量指标,通常5个9的可靠性就可以满足企业级达标;

  • 可伸缩性(Scalability),是指通过向系统添加资源来处理越来越多的工作并且维持高质量服务的能力;

  • 韧性(resilience),通常也叫容错性(fault-tolerant),也就是健壮和强壮的意思,指的是系统的对故障与异常的处理能力,比如在软件故障、硬件故障、认为故障这样的场景下,系统还能保持正常工作的能力;

  • 可观测性(Observability),是一种设计理念,包括告警、监控、日志与跟踪,可以实时地更深入地观测系统内部的工作状态;

  • 安全性(security),指的是阻止非授权使用,阻止非法访问以及使用,保护合法用户的资产的能力;

  • 易用性(usability),指的是软件的使用难易程度,对于产品的易用性来说, 易用性不仅仅 是软件使用角度的易用,还包括安装、部署、升级上的易用,升值还包括硬件层面的易用,比如产品的外观,形状等;

  • 可运维性(operability),可运维性指的是运维人员对系统进行运维操作的难易程度,主要包含以下几个方面的难以程度: 系统的部署、升级、修改、监控以及告警等。

约束

用户的约束需求包括 用户的业务环境,用户的能力以及用户群的特征等。

”大“团队

这里的大团队的”大“指的是范围上的大,不只是直接开发人员,还包括跨职级、跨部门的利益相关人员。

功能

软件功能需求从产品的角度来说可以分为五种,即:

  • 基本功能,这是在产品概念阶段就必须实现的功能也是在产品的第一个发布版本中必须提供的功能,比如数据处理产品的”读与写“;
  • 核心功能,核心功能是产品的主要功能,扩展了基本功能的外延,比如为了保证性能达标的缓存功能、分布式功能等;

  • 增值功能,这里指的是一些产品差异化的能力,比如安全、监控、告警、日志、升级、部署等;

  • 可有可无功能,有些特性存在还是不存在不影响产品的使用也不会带来产品的优势,只起到锦上添花的作用,因此属于可有可无的功能;

  • 有害无益功能,指的一些功能不只没用还有害,没有识别出来消耗了团队资源不说还对产品有拉后腿的作用。

质量

团队的质量需求,指的是产品开发周期内的质量需求,高质量的代码几个最重要的要素有:

  • 可测试性( testability),指的是单元测试,集成测试,打桩测试等的难易;

  • 可维护性(Maintainability), 指的是代码升级,部署,定位bug,添加功能的难易;

  • 可扩展性( extensibility), 指的是未来增加新的功能与模块的难易;

  • 可读性( readability),指的是代码的易理解程度。

约束

几个中药得团队的约束需求有:

  • 资源预算,产品的质量与功能以及发布周期受限于预算;

  • 上级要求,上级的要求相当于客户要求也是非常重要的约束条件;

  • 开发团队的能力,开发团队的能力组成、知识结构组成决定了产品是否能够交付以及能否高质量的交付;

  • 产品规划,产品规划得进度是产品的交付周期以及开发进度得约束条件;

  • 此外还有信息安全以及产品运行环境 的约束。

小结

本系列文章讲述了五个思维模型: “需求分析思维模型、技术思维模型、创新思维模型、商业思维模型以及产品思维模型”,再结合分布式流存储做了简单的举例分析。本文讲述”需求思维模型“,日拱一卒,功不唐捐,分享是最好的学习,与其跟随不如创新,希望这几个思维模型对大家有用。另作者能力与认知都有限,”我讲的,可能都是错的“[1],欢迎大家拍砖留念。

作者简介

常平,中科大硕,DELL EMC 资深首席工程师,主要从事分布式产品的交付、架构设计以及开发工作。

版权申明

本文的版权协议为 CC-BY-NC-ND license:https://creativecommons.org/licenses/by-nc-nd/3.0/deed.zh

在遵循署名、非商业使用(以获利为准)以及禁止演绎的前提下可以自由阅读、分享、转发、复制、分发等。

参考资料

[1]《软件架构设计》 温昱著

进EMC马上两年,12月份里程碑两件。

一是硬技能,项目里个人提交的代码突破6万行,产品第一个版本月底发布;

二是软技能,专利公司内过审3个,写文章推广产品以及提升团队的技术影响力获得公司副总裁认可给了个奖。

代码行数突破6万行

codeline

专利过三

patent

GEEK BANG 技术文章活动奖

award

前言

注:本思维模型系列文章已被infoq采纳并推荐至首页:https://www.infoq.cn/article/JjycubQz3YTBgozaZ4G9

日拱一卒,功不唐捐,一个知识领域里的 “道 法 术 器” 这四个境界需要从 微观、中观以及宏观 三个角度来把握。微观是实践,中观讲套路,宏观靠领悟。本系列文章我把它命名为《分布式系统架构设计36式》,讲诉分布式系统里最重要的三十六个的中观套路,而微服务的本质也是分布式,因此搞明白这三十六个最重要的知识点也就同时能搞明白微服务。

“兵者,国之大事,死生之地,存亡之道,不可不察也”,这句话对企业来讲,兵即产品,国即企业,察即研究探讨,产品关系到企业的存亡,所以不可以不慎重地加以研究探讨。

我们知道一个产品的成功不只是技术的成功,它还包括商业、创新、管理、资本、运营以及销售等的成功。当打造一个产品的时候,通常来说工程人员往往会比较关注技术层面的东西: 方案、功能、难点、亮点以及如何实现等,深度有余但高度与广度往往不足 。一般有点经验的工程人员都可以从点或线的层面考虑一个产品的实现,但往往缺乏从面及体的层面看待一个产品的能力。

因此,如果说技术思维是架构师的一根DNA螺旋线,那么产品思维、创新思维以及商业思维等就是架构师的另外一根DNA螺旋线,只有两根DNA螺旋线俱全才能有机会进化出新物种。

动机

人的知识与能力可以从“时空”这两个角度进行评价,其可分为四个维度:深度、广度、高度以及跨度。空间角度指的是深度、广度、高度,时间角度指的是跨度。深度靠专研,广度靠学习,高度靠抽象,而跨度靠长久地积累经验。这四个维度组合成了一个人的知识与能力的时空度。

万事万物逃脱不出“不易、简易、变易”这三个层次,金庸先生的《天龙八部》里少林寺有72技,其每一技又千变万化,想要样样精通,今生无望,然而练就“小无相功”却可以以这功法催动不同的“技”,甚至可以比原版更具威力,以“不易 简易”之功施展“变易”之术。那么对于技术开发人员来说技术也是“变易”的,更新快,领域多,复杂度高,样样精通也是今生无望,那么需要的就是找出适合自己的“功”,技术思维模型、产品思维模型、创新思维模型、商业思维模型就是这样的“功”。

因此本系列文章提出了技术、产品、创新与商业这四个思维模型,这一系列文章不是为了解决具体的某个分布式系统设计里的难题,它提出了一种思维框架,从技术、产品、创新以及商业的角度,给工程人员以一种系统性的分析分布式系统设计难题的模型,这也是一种系统思维的体现。

产品思维模型

最后一个思维模型是产品思维模型,它是以上三个思维模型的组合与新生,如下图:

产品思维模型

产品思维模型灵感来自于阿基米德的一句话:”给我一个支点,我可以撬起地球。“,因此定义它为阿基米德产品思维模型。

如上图所示,在产品思维模型里产品被看作是一个圆,在圆之外还有一个杠杆、一个支点以及一个作用力。在产品圆里除了技术火箭六元组、产品创新奇点、五看三定六要素之外还补充了 产品价值网,企业文化、企业制度以及组织结构这三个要素。

价值网

产品价值网指的是产品所在的市场,是产品需要去匹配的市场,也是产品的市场天花板,市场空间的大小意味着产品的增长局限性,它可以是10倍增长的、缓缓增长的或者存量市场等。一个自我快速膨胀的市场空间里往往可以事半功倍,比如2000年后的互联网市场。

价值网是产品所在的市场,通常采用三个指标来描述产品是否适合价值网:技术-产品匹配,产品-市场匹配以及价值-市场匹配

技术-产品匹配(Technology-Product Fit)

TPF这个概念是我新提出的,做工程不同做研究,工程当中技术取舍的关键在于适合即可,技术超前于产品是优势但是也是成本,技术落后于产品,缺乏创新,也容易被市场淘汰。技术于产品锲合度的度量在于满足客户需求即可,包括核心需求与增值需求。

产品-市场匹配(Product-Market Fit)

产品-市场匹配的意思指的是产品确定是可以满足市场真正的需求的,并且产品可以从客户那边获取生存下来。

产品-市场匹配度的度量标准有: 客户的下载数量、客户付费数量、客户求购的数量、客户愿意付钱。

价值-市场匹配(Value-Market Fit)

价值-市场匹配指的是产品所提供的价值是真正满足市场需求的,从软件的角度来说可以匹配的价值有:产品质量、性能、可扩展性、可靠性、可视化、安全、审计、辅助工具以及各种插件等。

企业文化、企业制度以及组织结构

产品也是受企业文化、企业制度以及企业组织结构影响的,对于”这三要素如何影响产品?“这一主题没有研究过,这里不敢展开讲。但是可以确定的是“诚信 以人为本”的企业比“KPI导向 利益驱动”的企业更能出现优秀的作品。

支点

支点即关键着力点,它是撬动产品的着力点,它也可以是”以客户为中心,为客户创造价值“的理念,也可以是关键资源、战略投入等,最适合自己的、自己最拿手的要素就是支点。

杠杆

杠杆可以是创新,也可以是资本,是撬动产品从而获得10倍增长效应的关键要素,关键时刻需要对产品启动杠杆效应以获取大规模爆发机会。

关键能力

一个企业的能力包括:技术,产品,渠道、市场、资源,资本,管理,运营,人力,销售,财务等,这里的关键能力,指的是最拿手的一个或几个能力, 选出最适合自己的, 比如技术领先的能力、打造产品的能力等,当然也可以认为是管理能力或财务能力,然后作为驱动产品的杠杆作用力。

分布式流存储所在的市场是物联网以及IT运维这样的高速增长市场,产品的支点是”以客户为中心,为客户创造价值“这样的理念,同时在关键能力上,团队组成、企业的存储基因等都是关键能力。

小结

本系列文章讲述了四个思维模型: “技术思维模型、创新思维模型、商业思维模型以及产品思维模型”,再结合分布式流存储做了简单的举例分析。本文讲述”产品思维模型“,日拱一卒,功不唐捐,分享是最好的学习,与其跟随不如创新,希望这几个思维模型对大家有用。另作者能力与认知都有限,”我讲的,可能都是错的“[1],欢迎大家拍砖留念。

作者简介

常平,中科大硕,DELL EMC 资深首席工程师,主要从事分布式产品的交付、架构设计以及开发工作。

版权申明

本文的版权协议为 CC-BY-NC-ND license:https://creativecommons.org/licenses/by-nc-nd/3.0/deed.zh

在遵循署名、非商业使用(以获利为准)以及禁止演绎的前提下可以自由阅读、分享、转发、复制、分发等。

参考资料

[1]《第二曲线创新》 李善友

[2]《如何在一分钟内用5个问题讲清你的商业模式》 中欧商业评论,关苏哲

[3] Pravega.io

前言

注:本思维模型系列文章已被infoq采纳并推荐至首页:https://www.infoq.cn/article/JjycubQz3YTBgozaZ4G9

日拱一卒,功不唐捐,一个知识领域里的 “道 法 术 器” 这四个境界需要从 微观、中观以及宏观 三个角度来把握。微观是实践,中观讲套路,宏观靠领悟。本系列文章我把它命名为《分布式系统架构设计36式》,讲诉分布式系统里最重要的三十六个的中观套路,而微服务的本质也是分布式,因此搞明白这三十六个最重要的知识点也就同时能搞明白微服务。

“兵者,国之大事,死生之地,存亡之道,不可不察也”,这句话对企业来讲,兵即产品,国即企业,察即研究探讨,产品关系到企业的存亡,所以不可以不慎重地加以研究探讨。

我们知道一个产品的成功不只是技术的成功,它还包括商业、创新、管理、资本、运营以及销售等的成功。当打造一个产品的时候,通常来说工程人员往往会比较关注技术层面的东西: 方案、功能、难点、亮点以及如何实现等,深度有余但高度与广度往往不足 。一般有点经验的工程人员都可以从点或线的层面考虑一个产品的实现,但往往缺乏从面及体的层面看待一个产品的能力。

因此,如果说技术思维是架构师的一根DNA螺旋线,那么产品思维、创新思维以及商业思维等就是架构师的另外一根DNA螺旋线,只有两根DNA螺旋线俱全才能有机会进化出新物种。

动机

人的知识与能力可以从“时空”这两个角度进行评价,其可分为四个维度:深度、广度、高度以及跨度。空间角度指的是深度、广度、高度,时间角度指的是跨度。深度靠专研,广度靠学习,高度靠抽象,而跨度靠长久地积累经验。这四个维度组合成了一个人的知识与能力的时空度。

万事万物逃脱不出“不易、简易、变易”这三个层次,金庸先生的《天龙八部》里少林寺有72技,其每一技又千变万化,想要样样精通,今生无望,然而练就“小无相功”却可以以这功法催动不同的“技”,甚至可以比原版更具威力,以“不易 简易”之功施展“变易”之术。那么对于技术开发人员来说技术也是“变易”的,更新快,领域多,复杂度高,样样精通也是今生无望,那么需要的就是找出适合自己的“功”,技术思维模型、产品思维模型、创新思维模型、商业思维模型就是这样的“功”。

因此本系列文章提出了技术、产品、创新与商业这四个思维模型,这一系列文章不是为了解决具体的某个分布式系统设计里的难题,它提出了一种思维框架,从技术、产品、创新以及商业的角度,给工程人员以一种系统性的分析分布式系统设计难题的模型,这也是一种系统思维的体现。

商业思维模型

IBM有个商业战略思维模型叫做”五看三定“, 经过很多家企业的验证,表示效果很好。这里扩充”五看三定“思维模型为“五看三定六要素”思维模型,作为产品的商业模式思维模型。”五看三定六要素“即:五看:看趋势、看市场、看对手、看自己、看机会,三定:定目标、定策略、定执行,六要素:客户、产品、供给、盈利、创新及风险。

商业思维模型

五看

1,五看,首先要看的是趋势,属于宏观的范畴,行业趋势、行业风向,国家政策,经济周期,技术趋势,资源方向等,从而判断出正确的资源投入方向;

2,接着看市场,看看市场需求在哪里?客户的真实需求在哪里?客户愿意买单的点在哪里?产品与市场的最佳适配点在哪里?从而输出正确的客户目标;

3,再看对手,可以从三个方面进行看对手:

  • 赚得到钱,如果有对手已经验证过了这个市场可以获取高额利润,那么就可以确定这个方向的正确性;

  • 赚不到钱,如果对手正在介入的市场领域属于赚不到钱的领域,那么自己去做赚不到钱的概率也一样非常的大,现在新介入的话就需要非常非常的谨慎;-

  • 没有对手,如果是一个没有对手的领域,要么是新开拓的市场空白机会,要么根本就是没有真实的客户需求的伪需求市场,这也是需要非常谨慎介入方向。

4,看完对手就要看自己,看自己说的是,看看自己的优势在哪里,劣势在哪里,有什么关键资源能力,自己能做什么不能做什么,介入这个市场领域的话,对比其他对手有什么优势胜出,如果没有胜出优势就需要谨慎介入。

5,最后看机会,判断真机会的依据是:行业趋势正确,有真实的客户需求,对手有钱赚,自己团队有优势,那么这样的机会输出点就是”真机会“。

三定

五看后就要三定,看好机会后,需要定目标,定策略以及定执行。

1,首先定好需要达到的市场目标,比如3年利润1个小目标(1亿¥);

2,然后开始着手制定如何达到这个目标的策略,比如:1)分解这个目标,1年到什么阶段、2年到什么阶段、3年到什么阶段等;2)是先单点突破最佳盈利点,再以此为树干长出树枝?还是借助资源优势全面铺开?

3,再就是定执行,定策略是如何做的范畴,而定执行是让谁做,什么时候做出来的问题,属于生成资料、生成工具分配的范畴。

六要素

”五看三定“分析完后,更进一步需要进行商业模型六要素的分析[2]。

1,客户,客户指的是市场定位,是想赚谁的钱、不想赚谁的钱的问题,是客户是谁、又不是谁的问题,是客户如何取舍的问题。

2,产品,产品指的是打算用什么东西去赚钱,是卖产品还是卖服务,是提供的满客户需求的价值是什么又不是什么的问题。

3,供应,供应指的是如何生产出好产品以及怎么样把产品卖出去。如何打造与市场最佳适配的产品?如何保证技术与产品的最佳适配,如何交付出这样的好产品?然后又准备怎么把这样的产品卖出去?渠道在哪? 价格怎么定义?然后自己又有哪些强力的资源优势?这也是产品成败的一个非常关键的点。

4,盈利,盈利讲的是如何赚钱的问题,是做产品?还是做平台?或者做生态?然后又怎么保证可以持续地赚钱?做产品离钱近,一手交钱一手交货;做平台,投入大、但是空间也大;做生态,投入巨大、周期长,但是如果成了,那么收益也巨大。

5,创新,创新指的是以上四点如何创新,如何持续的创新,可以从寻找差异化入手,也可以从先同质化模仿再处处差异化创新入手,可以是 ”更好“,也可以是”不同“,还可以是”新生“。

6,风险,风险指的是风险管理,居安思危,失败风险是否在可承受的范围之内?以上五点的风险在哪里,方方面面是否都考虑周全?

依据以上近乎穷举的系统分析法,可以发现,为物联网以及IT运维市场专门设计一个存储系统是值得投入的一个机会点。

小结

本系列文章讲述了四个思维模型: “技术思维模型、创新思维模型、商业思维模型以及产品思维模型”,再结合分布式流存储做了简单的举例分析。本文讲述”商业思维模型“,日拱一卒,功不唐捐,分享是最好的学习,与其跟随不如创新,希望这几个思维模型对大家有用。另作者能力与认知都有限,”我讲的,可能都是错的“[1],欢迎大家拍砖留念。

作者简介

常平,中科大硕,DELL EMC 资深首席工程师,主要从事分布式产品的交付、架构设计以及开发工作。

版权申明

本文的版权协议为 CC-BY-NC-ND license:https://creativecommons.org/licenses/by-nc-nd/3.0/deed.zh

在遵循署名、非商业使用(以获利为准)以及禁止演绎的前提下可以自由阅读、分享、转发、复制、分发等。

参考资料

[1]《第二曲线创新》 李善友

[2]《如何在一分钟内用5个问题讲清你的商业模式》 中欧商业评论,关苏哲

[3] Pravega.io

前言

注:本思维模型系列文章已被infoq采纳并推荐至首页:https://www.infoq.cn/article/JjycubQz3YTBgozaZ4G9

日拱一卒,功不唐捐,一个知识领域里的 “道 法 术 器” 这四个境界需要从 微观、中观以及宏观 三个角度来把握。微观是实践,中观讲套路,宏观靠领悟。本系列文章我把它命名为《分布式系统架构设计36式》,讲诉分布式系统里最重要的三十六个的中观套路,而微服务的本质也是分布式,因此搞明白这三十六个最重要的知识点也就同时能搞明白微服务。

“兵者,国之大事,死生之地,存亡之道,不可不察也”,这句话对企业来讲,兵即产品,国即企业,察即研究探讨,产品关系到企业的存亡,所以不可以不慎重地加以研究探讨。

我们知道一个产品的成功不只是技术的成功,它还包括商业、创新、管理、资本、运营以及销售等的成功。当打造一个产品的时候,通常来说工程人员往往会比较关注技术层面的东西: 方案、功能、难点、亮点以及如何实现等,深度有余但高度与广度往往不足 。一般有点经验的工程人员都可以从点或线的层面考虑一个产品的实现,但往往缺乏从面及体的层面看待一个产品的能力。

因此,如果说技术思维是架构师的一根DNA螺旋线,那么产品思维、创新思维以及商业思维等就是架构师的另外一根DNA螺旋线,只有两根DNA螺旋线俱全才能有机会进化出新物种。

动机

人的知识与能力可以从“时空”这两个角度进行评价,其可分为四个维度:深度、广度、高度以及跨度。空间角度指的是深度、广度、高度,时间角度指的是跨度。深度靠专研,广度靠学习,高度靠抽象,而跨度靠长久地积累经验。这四个维度组合成了一个人的知识与能力的时空度。

万事万物逃脱不出“不易、简易、变易”这三个层次,金庸先生的《天龙八部》里少林寺有72技,其每一技又千变万化,想要样样精通,今生无望,然而练就“小无相功”却可以以这功法催动不同的“技”,甚至可以比原版更具威力,以“不易 简易”之功施展“变易”之术。那么对于技术开发人员来说技术也是“变易”的,更新快,领域多,复杂度高,样样精通也是今生无望,那么需要的就是找出适合自己的“功”,技术思维模型、产品思维模型、创新思维模型、商业思维模型就是这样的“功”。

因此本系列文章提出了技术、产品、创新与商业这四个思维模型,这一系列文章不是为了解决具体的某个分布式系统设计里的难题,它提出了一种思维框架,从技术、产品、创新以及商业的角度,给工程人员以一种系统性的分析分布式系统设计难题的模型,这也是一种系统思维的体现。

创新思维模型

受李善友老师的《第二曲线创新》的启发,这里提出“奇点破界”创新思维模型,如下图:

创新思维模型

创新三重境:”更好、不同、新生“

  • 更好,指的是市场是明确存在需求的,但是提供的新产品在质量、功能、渠道、价格等方面比原有产品更具优势,是用更好的体验来满足客户的真需求;

  • 不同,指的是差异化竞争,”与其更好不如不同”[1],不同不只是技术面的不同,而是处处差异化不同,理念、技术、渠道,运营,销售等处处差异化竞争;

  • 新生,指的是 从0到1,从无到有的创造一个新物种,是指用凭空创造出一个新产品来满足客户需求,这种形态的产品要么是颠覆式的创造带来巨大的商业上的成功,要么就是没有真实客户需求的新事物,商业上完全失败。

这里,分布式流存储采用的是“更好与不同”这两个产品创新方法论,组合原有的技术开拓出新产品,规避风险,满足客户真实的需求。

奇点破界

物理学认为宇宙从无到有始于一个点,这个点叫做“奇点”,它积聚了形成现有宇宙中所有物质的势能,当这一个点的能量平衡被破坏后,宇宙大爆炸发生,从而生成我们现在的宇宙。如果把宇宙比作我们的产品,奇点就是这个产品赖以出现与存在的关键点,“奇点破界”创新思维模型的理论依据是奇点创新三部曲:“破坏,外延,重生”,即:

1,破坏,找到产品奇点并加以破坏。产品缺点不是奇点,奇点是产品赖以出现与存在的点,找到它,然后破坏它,类似于使得宇宙奇点能量失去平衡;

2,外延,产品奇点下移,产品边界外延,类似于宇宙大爆炸从而造成宇宙边界外延;

3,重生,重构产品奇点,形成新的产品体系,类似于新宇宙的形成。

以分布式流存储的创新为例,这里只涉及技术面的创新,销售、渠道、运营、管理、商业模式等方面的创新不在本文范围。可以知道的是目前市面上的分布式流存储的最大竞争对手是Kafka,对其应用奇点创新思维模型的步骤有:

1, 破坏,找出产品奇点,然后破坏它的奇点。例如,我们知道Kafka的赖以依存的关键点有:提供消息服务语义;分布式的;依赖于代理中心的横向扩展以及依赖于分区的数据冗余;依据初代版本时间点的硬件特性进行软件的设计;

2,外延,产品奇点下移,破界,新的产品边界外延。针对以上Kafka的四条关键点,提出分布式流存储的新奇点:提供存储语义服务而不是消息语义;依据云原生、微服务的理念进行产品架构,扩展分布式系统外延;软件定义,抽象1层存储与2层存储,平衡高性能与无限扩容的问题;抓住技术进步的福利,依据当前最新的硬件特性进行产品软件设计;

3, 重生,最后更新的、更具有技术竞争力的、针对流式数据而实现的新产品”分布式流存储“诞生。

这一套创新思维模型的关键点在于找出原有的产品赖以出现以及存在的“奇点”,然后破界重生。

小结

本系列文章讲述了四个思维模型: “技术思维模型、创新思维模型、商业思维模型以及产品思维模型”,再结合分布式流存储做了简单的举例分析。本文讲述”创新思维模型“,日拱一卒,功不唐捐,分享是最好的学习,与其跟随不如创新,希望这几个思维模型对大家有用。另作者能力与认知都有限,”我讲的,可能都是错的“[1],欢迎大家拍砖留念。

作者简介

常平,中科大硕,DELL EMC 资深首席工程师,主要从事分布式产品的交付、架构设计以及开发工作。

版权申明

本文的版权协议为 CC-BY-NC-ND license:https://creativecommons.org/licenses/by-nc-nd/3.0/deed.zh

在遵循署名、非商业使用(以获利为准)以及禁止演绎的前提下可以自由阅读、分享、转发、复制、分发等。

参考资料

[1]《第二曲线创新》 李善友

[2]《如何在一分钟内用5个问题讲清你的商业模式》 中欧商业评论,关苏哲

[3] Pravega.io

前言

注:本思维模型系列文章已被infoq采纳并推荐至首页:https://www.infoq.cn/article/JjycubQz3YTBgozaZ4G9

日拱一卒,功不唐捐,一个知识领域里的 “道 法 术 器” 这四个境界需要从 微观、中观以及宏观 三个角度来把握。微观是实践,中观讲套路,宏观靠领悟。本系列文章我把它命名为《分布式系统架构设计36式》,讲诉分布式系统里最重要的三十六个的中观套路,而微服务的本质也是分布式,因此搞明白这三十六个最重要的知识点也就同时能搞明白微服务。

“兵者,国之大事,死生之地,存亡之道,不可不察也”,这句话对企业来讲,兵即产品,国即企业,察即研究探讨,产品关系到企业的存亡,所以不可以不慎重地加以研究探讨。

我们知道一个产品的成功不只是技术的成功,它还包括商业、创新、管理、资本、运营以及销售等的成功。当打造一个产品的时候,通常来说工程人员往往会比较关注技术层面的东西: 方案、功能、难点、亮点以及如何实现等,深度有余但高度与广度往往不足 。一般有点经验的工程人员都可以从点或线的层面考虑一个产品的实现,但往往缺乏从面及体的层面看待一个产品的能力。

因此,如果说技术思维是架构师的一根DNA螺旋线,那么产品思维、创新思维以及商业思维等就是架构师的另外一根DNA螺旋线,只有两根DNA螺旋线俱全才能有机会进化出新物种。

动机

人的知识与能力可以从“时空”这两个角度进行评价,其可分为四个维度:深度、广度、高度以及跨度。空间角度指的是深度、广度、高度,时间角度指的是跨度。深度靠专研,广度靠学习,高度靠抽象,而跨度靠长久地积累经验。这四个维度组合成了一个人的知识与能力的时空度。

万事万物逃脱不出“不易、简易、变易”这三个层次,金庸先生的《天龙八部》里少林寺有72技,其每一技又千变万化,想要样样精通,今生无望,然而练就“小无相功”却可以以这功法催动不同的“技”,甚至可以比原版更具威力,以“不易 简易”之功施展“变易”之术。那么对于技术开发人员来说技术也是“变易”的,更新快,领域多,复杂度高,样样精通也是今生无望,那么需要的就是找出适合自己的“功”,技术思维模型、产品思维模型、创新思维模型、商业思维模型就是这样的“功”。

因此本系列文章提出了技术、产品、创新与商业这四个思维模型,这一系列文章不是为了解决具体的某个分布式系统设计里的难题,它提出了一种思维框架,从技术、产品、创新以及商业的角度,给工程人员以一种系统性的分析分布式系统设计难题的模型,这也是一种系统思维的体现。

技术思维模型

技术思维模型很多,适合自己的才是最好的,这里提出“火箭技术思维模型”以抛砖引玉,如下图:

技术思维模型

火箭思维

在这个技术思维模型里,产品被看作一个圆,技术是一个三角形火箭,它包括“势 道 法 术 器 界”这六个要素。其中技术只是产品当中的一个子集,在产品圆内还有企业文化、企业制度以及组织关系,这也是影响产品的几个非常重要的因素。

在这个技术思维模型中的火箭也体现了一种产品开发思维,开发产品的时候应该先确定好大概的方向(趋势),这时并不需要非常精确但是方向一定要对,然后发射(开工),在过程中不断矫正迭代更新,使得短期目标与长期目标相符合,在这个火箭模型中每一级都都是上一级的动力,一级一级地推动,直至最终命中目标(产品满足市场需求,从而获取商业上的成功)。

技术与产品匹配(TPF: Technology-Product Fit)

在做产品的时候第一步讲的是产品需要与市场匹配 (PMF: Product-Market Fit),找出与市场匹配的产品,然后进行最小可行性验证(MVP: Minimal Viable Product)。同样在做技术的时候,技术需要与产品匹配,这里提出一个新的概念TPF:Technology-Product Fit, 即技术与产品匹配。在技术思维模型里,当技术三角大于产品圆时,技术领先与产品需求,当技术三角小于圆时,技术落后于产品需求,但技术三角的三个点与圆刚好相交时,技术与产品达到最佳匹配,匹配合适度的评判标准是看是否符合下面的“五看三定六要素”的商业思维模型里的输出。

“势、道、法、术、器、界“ 六元组

狭义上的技术通常指的是技能属于“术”的范畴,而广义的技术则是市场趋势、自己的优势与劣势、产品设计理念、工程方法论、技术技能、工程工具以及约束限制这几个方面的组合体,抽象成工程哲学即“势、道、法、术、器、界”这六个字 ,简称技术思维六元组。

势:时势,是市场趋势、是产品定位同时也是自我的优势与劣势

“天时、地利、人和”,打造的产品必须符合市场趋势、准确定位客户需求,同时也要看看自己团队的优势与劣势。例如:依据市场的趋势判断,未来IOT 以及 IT运维市场是处于快速增长状态的,这可以成为为这两个市场提供数据存储服务的决策支持。同时,也要看清自我团队的优势与劣势,是否有能力打造这样的产品。

道:本质,是“不变”的范畴,是一个产品的灵魂、设计理念以及价值观

“能工摹其形,巧匠摄其魂”,代码本身是没有灵魂、没有设计理念、没有价值观的,由打造它的人铸其形而赋其神。如同雕塑与画画一般,好的匠人与宗师可以赋予作品以灵魂。同样的产品由不同的人打造,不同的设计理念体现了不同的产品灵魂,这跟打造它的人相关、也跟企业制度、企业文化、组织结构等相关。

分布式流存储从工程哲学以及设计理念的角度定义了自己的产品灵魂,工程哲学体现在“Best of Breed” 即“最佳物种”这句话,专门为物联网以及日志场景下的流式数据而设计,产品与市场适配,技术与产品适配。而它的设计理念又涵盖了:可度量化的高质量,云原生、微服务架构,软件定义存储,资源自动伸缩,消除数据冗余,数据无限存储,开箱即用,安全等。

法:方法论,是”简变“的范畴,是工程的套路方法

方法论体现在产品的设计原则、产品创新、产品交付以及功能与非功能特性的定义。 分布式流存储的设计原则是最佳物种的工程哲学方法论以及以客户为中心的设计理念,产品创新依据是 ”奇点创新“三部曲:破坏、下移、重生,这一点在”奇点创新思维模型”这一章里会讲述。产品交付依从“持续交付2.0” ,探索环与验证环互补互利、互为驱动。功能特性:分布式流存储系统的核心功能就一个:提供分布式流存储服务,而非功能特性可以一分为二:质量与约束。

术:技能,是”易变”的范畴,狭义上的技术,通常指的就是这一点

术,指的是技术上的设计方案与实现,在产品里占据了最大的一块版图。分布式流存储里的术可分为:

  • 架构视图:通常架构可以分为场景、物理、逻辑、数据处理以及开发这五个架构视图。分布式流存储最为朴素的数据处理架构视图即为抽象缓存与2层存储资源为流资源,实时性的读和写都在缓存里,数据恢复采用分布式日志系统,而长期存储采用了2层分布式文件存储系统,这也是分布式流存储最重要的一个设计理念。

  • 控制面:分布式流存储的控制面最重要的两个工作就是:流管理与集群管理。流管理负责流的抽象、流的生命周期管理,而集群管理体现在集群状态管理以及集群的可服务管理。

  • 数据面:数据面最重要的职责是数据“段“的抽象与管理:创建、删除、修改、使用。

  • 高级企业特性:分布式流存储也提供了多租户、安全、监控告警、事务、读群组、状态同步器以及保序等企业级特性。

器:工具,也是”易变”的范畴, “工欲善其事,必先利其器”

工具的使用对人类的进化起到至关重要的作用,生产工具是人类进步的一大要素,用好“器”可以事半功倍。在分布式流存储里采用的器可分为:

  • 构建与运维工具:k8s、Docker, 部署,版本回滚、升级、发布,监控、告警等组件;

  • 测试验证工具:集成测试的Jenkins, 单元测试的 Mock , 以及A/B测试的方法论等;

  • 此外企业平台提供的资源支持也可以属于器的范畴。

界:是约束,也是限制

技术思维模型里的三角形的三条边代表着“界” ,是技术边界也是技术约束与技术限制,对市场来说它是技术壁垒,对产品来说它是法律法规、是功能约束,对团队来说它是资源约束、是自我能力约束。分布式流存储的最大的技术优势也是最大的技术约束就是它是为 物联网、IT日志这样的数据格式而设计的,不是所有的数据类型存储都适用。

小结

本系列文章讲述了四个思维模型: “技术思维模型、创新思维模型、商业思维模型以及产品思维模型”,再结合分布式流存储做了简单的举例分析。本文讲述”技术思维模型“,日拱一卒,功不唐捐,分享是最好的学习,与其跟随不如创新,希望这几个思维模型对大家有用。另作者能力与认知都有限,”我讲的,可能都是错的“[1],欢迎大家拍砖留念。

作者简介

常平,中科大硕,DELL EMC 资深首席工程师,主要从事分布式产品的交付、架构设计以及开发工作。

版权申明

本文的版权协议为 CC-BY-NC-ND license:https://creativecommons.org/licenses/by-nc-nd/3.0/deed.zh

在遵循署名、非商业使用(以获利为准)以及禁止演绎的前提下可以自由阅读、分享、转发、复制、分发等。

参考资料

[1]《第二曲线创新》 李善友

[2]《如何在一分钟内用5个问题讲清你的商业模式》 中欧商业评论,关苏哲

[3] Pravega.io