精华内容
下载资源
问答
  • 四个架构设计案例及其思维方式

    千次阅读 2019-02-11 12:45:51
    在本篇《架构之道~四个架构设计案例及其思维方式》中,我会通过四个案例,讲解如何综合运用这些武器,分别对小型系统,中型系统,基础架构,甚至是组织技术体系进行架构和设计。 二、小型系统案例~...

    一、介绍

    架构的本质是管理复杂性,抽象、分层、分治和演化思维是我们工程师/架构师应对和管理复杂性的四种最基本武器。

    在上一篇架构之道~四种核心架构思维中,我先介绍了抽象分层分治演化这四种应对复杂性的基本武器。在本篇《架构之道~四个架构设计案例及其思维方式》中,我会通过四个案例,讲解如何综合运用这些武器,分别对小型系统,中型系统,基础架构,甚至是组织技术体系进行架构和设计。

    二、小型系统案例~分布式消息系统

    这个是一个真实生产化的消息系统案例,由1个架构师+2个高级工程师设计开发,第一期研发测试到上生产约3个月,目前该系统日处理消息量过亿。

    假定公司因为业务需要,要构建一套分布式消息系统MQ,类似Kafka这样的,这个问题看起来很大很复杂,但是如果你抽丝剥茧,透过现象看本质,kafka这样的消息系统本质上是下图这样的抽象概念:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f94bH8K3-1581484282747)(http://jskillcloud.com/img/post/20180706/mq_abstraction.png)]

    1. 队列其实就是类似数组一样的结构(用数组建模有个好处,有索引可以重复消费),里头存放消息(Msg),数组一头进消息,一头出消息,
    2. 左边是若干生产者(Producer),往队列里头发消息,
    3. 右边是若干消费者(Consumer),从队列里头消费消息,
    4. 对于生产者和消费者来说,他们不关心队列实现细节,所以给队列一个更抽象的名字,叫主题(Topic)。
    5. 考虑到系统的扩容和分布式能力,一般一个主题由若干个队列组成,这些队列也叫分区(Partition),而且这些队列可能还是分布在不同机器上的,例如下图中Topic A的两个队列分布在DataNode1节点上,另外两个队列分布在DataNode2节点上,这样以后Topic可以按需扩容,DataNode也可以按需增加。当然这些细节由MQ系统屏蔽,用户只关心主题,不关心底层实现。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cKbEiuP5-1581484282749)(http://jskillcloud.com/img/post/20180706/store_abstraction.png)]

    单个数组队列的建模是整个MQ系统的关键,我们知道Kafka使用append only file建模队列,存取速度快。假设我们要存业务数据需要更高可靠性,也可以用数据库表来建模数组队列,如下图所示:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X4yQIoWr-1581484282750)(http://jskillcloud.com/img/post/20180706/mysql_table_modeling.png)]

    一个队列(或者一个分区)对应一张数据库表,表中的一个记录就是一条消息,表采用自增id,相当于数组索引。这张表是insert only的,且MySql会自动对自增id建优化索引,没有其它索引,所以插入和按id查找速度都非常快。

    下面是总体领域模型设计:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ukkmlgqH-1581484282750)(http://jskillcloud.com/img/post/20180706/domain_model.png)]

    1. 一个主题Topic对应若干个队列Queue
    2. 一个数据节点DataNode上可以住若干个队列Queue
    3. 消费者Consumer和队列Queue之间是多对多关系,通过消费者偏移Consumer Offset进行关联
    4. 一个消费者组Consumer Group里头有若干个消费者Consumer,它们共同消费同一个主题Topic

    至此,我们对MQ的抽象建模工作完成,下面的工作是将这个模型映射到具体实现,经过分解,整个系统由若干个子模块组成,每个子模块实现后拼装起来的MQ总体架构如下图所示:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I7LKHj4g-1581484282751)(http://jskillcloud.com/img/post/20180706/mq_arch.png)]

    1. Admin模块管理数据库节点,生产者,消费者(组),主题,队列,消费偏移等元数据信息。
    2. Broker模块定期从Admin数据库同步元数据,接受生产者消息,按路由规则将消息存入对应的数据库表(队列)中;同时接受消费者请求,根据元数据从对应数据库表读取消息并发回消费者端。Broker模块也接受消费者定期提交消费偏移。
    3. Producer接受应用发送消息请求,将消息发送到Broker,
    4. Consumer从Broker拉取消息,供上层应用进一步消费,
    5. 客户端和Broker之间走Thrift over HTTP协议,中间通过域名走Nginx代理转发,
    6. 这个设计Broker是无状态,易于扩展。

    架构思维总结

    整个架构设计的思路体现了先总体抽象,再分解按模块抽象并实现,最后组合成完整的MQ系统,也就是抽象+分治。这个MQ的实现工作量并不大,属于小型系统范畴,初期设计和开发由1个架构师+2个中高级工程师可以搞定。

    在初期研发和上生产之后,根据用户的不断反馈,系统设计经过多次优化和调整,符合三分架构,七分演化的演化式架构理念。目前该系统已经进入V2版本的架构和研发,其架构仍在持续演化当中,用户需求的多样性和对系统灵活性的更高要求,是系统架构演化的主要推动力。

    三、中型系统案例~容器云平台架构设计

    这个也是一个实际研发中的案例。

    目前不少技术组织在往DevOps(研发运维一体化)研发模式转型,目标是支持业务持续创新和规模化发展。支持DevOps的关键是需要一套DevOps基础平台,这个平台可以基于容器云构建,我们把它称为容器云平台。这个问题很大很复杂,我基于近年在一线互联网的实战经验积累+广泛调研,设计了如下容器云平台的总体抽象架构:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xVbV3e8Y-1581484282752)(http://jskillcloud.com/img/post/20180706/docker_cloud_arch.png)]

    核心模块:

    1. 集群资源调度平台:屏蔽容器细节,将整个集群抽象成容器资源池,支持按需申请和释放容器资源,物理机发生故障时能够实现自动故障转移(fail over)。目前基于Mesos实现,将来可考虑替换为K8S。
    2. 镜像治理中心:基于Docker Registry,封装一些轻量的治理功能,例如权限控制,审计,镜像升级流程(从测试到UAT到生产)治理和监控等。
    3. 租户资源治理中心:类似CMDB概念,在容器云环境中,企业仍然需要对应用app,组织org,容器配额quota等相关信息进行轻量级的治理。
    4. 发布控制台:面向用户的发布管理平台,支持发布流程编排。它和其它子系统对接交互,实现基本的应用发布能力,也实现如蓝绿,金丝雀和灰度等高级发布机制。
    5. 服务注册中心:类似Netflix Eureka,支持服务的注册和发现,流量的拉入拉出操作。
    6. 网关:类似Netflix Zuul网关,接入外部流量并路由转发到内部的微服务,同时实现安全,限流熔断,监控等跨横切面功能。
    7. 认证中心:上图未显示,基于OAuth2的授权认证中心,对容器云中各个组件的访问进行集中式授权和认证。

    核心流程:

    1. 用户或者CI系统对应用进行集成后生成镜像,将镜像推到镜像治理中心,
    2. 用户在资产治理中心申请发布,填报应用、发布和配额等相关信息,然后等待审批通过,
    3. 发布审批通过,开发人员通过发布控制台发布应用,
    4. 发布控制台通过查询资产治理中心获取发布规格信息,
    5. 发布控制台向容器资源调度平台发出启动容器实例指令,
    6. 容器资源调度平台从镜像治理中心拉取镜像并启动容器,
    7. 容器内服务启动后自注册到服务注册中心,并保持定期心跳,
    8. 用户通过发布控制台调用服务注册中心接口进行流量调拨,实现蓝绿,金丝雀或灰度发布等机制,
    9. 网关和内部微服务客户端定期同步服务注册中心上的路由表,将流量按负载均衡策略分发到服务实例上。

    架构思维总结

    经过抽象梳理,我们已经得到最终容器云平台的6大关键抽象模块和模块间交互流程,下一步就是围绕这6大核心模块组织6个小的研发团队,每个团队负责一个模块的设计和实现,待每个团队完成各自的模块,再将所有模块组合拼装起来,就能最终产出我们需要的容器云平台产品。整体架构设计思路还是抽象+分治,只不过每个模块的抽象粒度更大,整个平台的规模也更大,需要投入的研发团队资源也更多,对架构师的抽象能力要求也更高。每个模块的技术负责人在研发各自的模块时,同样遵循抽象+分治的思维方式,先做抽象架构,划分子模块,安排组员实现子模块,最后拼装组合成完整模块。

    由于这个平台规模较大较复杂,目前已经投入了近两个季度的时间,做第一期架构设计和研发,目前还没有完全生产化。在第一期过程中,随着对问题域的理解不断深入,架构设计经过多次调整,目前架构趋于稳定,已经进入预上线期。在后续生产落地过程中,仍然需要根据用户的反馈,借助进化的力量不断地调整和优化架构。这个符合演化式架构的思路。

    四、大型系统案例~微服务基础架构

    微服务架构是近年很多企业技术架构转型的趋势,实际上,微服务架构可以抽象分解为一个两层架构:上层是微服务业务架构,下层是微服务基础架构。上层业务架构由于每个企业的业务场景各不相同,所以一般很难通用化,大多企业都是定制自研。而下层基础架构由于近年业界实践的不断沉淀,已经比较通用化和模块化,其中的核心模块一般不需要自己重造轮子,重用那些在一线互联网公司已经落地并开源出来的产品就可以了。

    Netflix是一家伟大的科技公司,它内部的基础架构团队很牛逼,或者说抽象能力非常强,把一些核心微服务基础组件都以模块化方式开源出来了,使得其它公司只需组合拼装这些组件就可以快速搭建微服务架构,可以说Netflix将整个行业的技术水平提升了一个层次。

    波波老师2018年和极客时间合作,开设了一门叫《微服务架构实战160讲》的视频课程,这门课程基于我近年在一线互联网公司(携程和拍拍贷)落地微服务基础架构的实战经验和总结。该课程为大家深度剖析微服务8大核心模块的架构和实践,以及如何使用这些模块,采用抽象+分治的架构思维,像搭积木一样轻松构建微服务基础架构,敬请大家关注。

    波波的《微服务架构实战160讲》中涉及的8大模块包括

    • 服务认证授权中心Spring Security OAuth2
    • 服务配置中心Apollo
    • 服务调用链监控CAT
    • 服务网关Zuul
    • 服务限流熔断Hystrix/Turbine
    • 服务注册发现和软路由Eureka/Ribbon
    • 服务时间序列监控KairosDB
    • 服务监控告警ZMon

    整体拼装起来的微服务基础架构如下图所示,这个架构是经过实践落地的,可以作为一线企业搭建微服务基础架构的参考:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ugHst62S-1581484282752)(http://jskillcloud.com/img/post/20180706/msa_building_blocks.png)]

    五、技术体系架构案例

    在企业的整个技术体系架构层面,最基本的思考方式还是抽象+分治,只不过问题域更大更复杂,还涉及到组织和业务架构,所以一般还要增加分层的维度来解决,下图是2016年的eBay技术体系架构[图片来自附录1]:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rTls1esh-1581484282753)(http://jskillcloud.com/img/post/20180706/ebay_arch_2016.png)]

    我最早看到这个架构图是在2008年左右的一次all hands meeting上(当时我还在eBay中国研发中心做工程师),也就是说大致在2008年左右,eBay就已经有比较清晰的,以分层方式组织的技术体系架构。eBay当时把它的系统称为电子商务操作系统,因为据说整个系统的代码量超过Windows 7操作系统的代码量。

    eBay架构分为清晰的四个抽象层次:

    • Infrastructure:底层基础设施,包括云计算,数据中心,计算/网络/存储,各种工具和监控等,国内公司一般把这一层称为运维层。
    • Platform Services:平台服务层,主要是一些框架中间件服务,包括应用和服务框架,数据访问层,表示层,消息系统,任务调度和开发者工具等等,国内公司一般把这一层称为基础框架或基础架构层。
    • Commerce Services:电商服务层,eBay作为电子商务平台多年沉淀下来的核心领域服务,相当于微服务业务层,包括登录认证,分类搜索,购物车,送货和客服等等。
    • Applications:应用层,也称用户体验+渠道层,包括eBay主站,移动端app,第三方接入渠道等。

    我本人在吸收了eBay技术体系架构的基础上,也吸收了一些阿里巴巴中台战略的思想,同时融合近年的一些业界趋势(比如大数据/AI),抽象出一个更通用的分层技术体系架构,可以作为互联网公司技术体系架构的一般性参考,如下图所示:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gdDxwjBv-1581484282754)(http://jskillcloud.com/img/post/20180706/platform_arch.png)]

    顺便提一下,近年阿里提出的所谓大中台,小前台战略,其实就要强化技术中台+业务中台,中台做大做强了,业务前台才可以更轻更灵活的响应业务需求的变化。

    六、结论

    1. 架构的本质是管理复杂性,抽象、分层、分治和演化思维是架构师征服复杂性的四种根本性武器
    2. 掌握了、分层、分治和演化这四种基本的武器,你可以设计小到一个类,一个模块,一个子系统,或者一个中型的系统,也可以大到一个公司的基础平台架构,微服务架构,技术体系架构,甚至是组织架构,业务架构等等。
    3. 架构设计不是静态的,而是动态演化的。只有能够不断应对环境变化的系统,才是有生命力的系统。所以即使你掌握了抽象、分层和分治这三种基本思维,仍然需要演化式思维,在完成系统的初步架构设计之后,后续借助反馈和进化的力量推动架构的持续演进。
    4. 架构师在关注技术,开发应用的同时,需要定期梳理自己的架构设计思维,积累时间长了,你看待世界事物的方式会发生根本性变化,你会发现我们生活其中的世界,其实也是在抽象、分层、分治和演化的基础上构建起来的。另外架构设计思维的形成,会对你的系统架构设计能力产生重大影响。可以说对抽象、分层、分治和演化掌握的深度和灵活应用的水平,直接决定架构师所能解决问题域的复杂性和规模大小,是区分普通应用型架构师和平台型/系统型架构师的一个分水岭。

    七、参考

    1. MicroServices at eBay
    展开全文
  • 写在前面架构的本质是管理复杂性,抽象、分层、分治和...在本篇文章中,我会通过四个案例,讲解如何综合运用这些武器,分别对小型系统、中型系统、基础架构以及组织技术体系进行架构和设计。小型系统案例:分布式消...
    写在前面

    架构的本质是管理复杂性,抽象、分层、分治和演化思维 是我们工程师 / 架构师应对和管理复杂性的四种最基本武器。

    在我之前写的文章 《优秀架构师必须掌握的架构思维》(点击标题查看原文) 中,我先介绍了抽象、分层、分治和演化这四种应对复杂性的基本武器。在本篇文章中,我会通过四个案例,讲解如何综合运用这些武器,分别对小型系统、中型系统、基础架构以及组织技术体系进行架构和设计。

    小型系统案例:分布式消息系统

    这个是一个真实生产化的消息系统案例,由 1 个架构师 +2 个高级工程师设计开发,第一期研发测试到上生产约 3 个月,目前该系统日处理消息量过亿。

    假定公司因为业务需要,要构建一套分布式消息系统 MQ,类似 Kafka 这样的,这个问题看起来很大很复杂,但是如果你抽丝剥茧,透过现象看本质,Kafka 这样的消息系统本质上是下图这样的抽象概念:


    1. 队列其实就是类似数组一样的结构(用数组建模有个好处,有索引可以重复消费),里头存放消息 (Msg),数组一头进消息,一头出消息;

    2. 左边是若干生产者 (Producer),往队列里头发消息;

    3. 右边是若干消费者 (Consumer),从队列里头消费消息;

    4. 对于生产者和消费者来说,他们不关心队列实现细节,所以给队列一个更抽象的名字,叫主题 (Topic);

    5. 考虑到系统的扩容和分布式能力,一般一个主题由若干个队列组成,这些队列也叫分区 (Partition),而且这些队列可能还是分布在不同机器上的,例如下图中 Topic A 的两个队列分布在 DataNode1 节点上,另外两个队列分布在 DataNode2 节点上,这样以后 Topic 可以按需扩容,DataNode 也可以按需增加。当然这些细节由 MQ 系统屏蔽,用户只关心主题,不关心底层实现。


    单个数组队列的建模是整个 MQ 系统的关键,我们知道 Kafka 使用 append only file 建模队列,存取速度快。假设我们要存业务数据需要更高可靠性,也可以用数据库表来建模数组队列,如下图所示:


    一个队列 (或者一个分区) 对应一张数据库表,表中的一个记录就是一条消息,表采用自增 id,相当于数组索引。这张表是 insert only 的,且 MySQL 会自动对自增 id 建优化索引,没有其它索引,所以插入和按 id 查找速度都非常快。

    下面是总体元数据模型:


    1. 一个主题 Topic 对应若干个队列 Queue

    2. 一个数据节点 DataNode 上可以住若干个队列 Queue

    3. 消费者 Consumer 和队列 Queue 之间是多对多关系,通过消费者偏移 Consumer Offset 进行关联

    4. 一个消费者组 Consumer Group 里头有若干个消费者 Consumer,它们共同消费同一个主题 Topic

    至此,我们对 MQ 的抽象建模工作完成,下面的工作是将这个模型映射到具体实现,经过分解,整个系统由若干个子模块组成,每个子模块实现后拼装起来的 MQ 总体架构如下图所示:


    1. Admin 模块管理数据库节点,生产者,消费者 (组),主题,队列,消费偏移等元数据信息。

    2. Broker 模块定期从 Admin 数据库同步元数据,接受生产者消息,按路由规则将消息存入对应的数据库表 (队列) 中;同时接受消费者请求,根据元数据从对应数据库表读取消息并发回消费者端。Broker 模块也接受消费者定期提交消费偏移。

    3. Producer 接受应用发送消息请求,将消息发送到 Broker;

    4. Consumer 从 Broker 拉取消息,供上层应用进一步消费;

    5. 客户端和 Broker 之间走 Thrift over HTTP 协议,中间通过域名走 Nginx 代理转发;

    6. 这个设计 Broker 是无状态,易于扩展。

    架构思维总结:

    整个架构设计的思路体现了先总体抽象,再分解按模块抽象并实现,最后组合成完整的 MQ 系统,也就是 抽象 + 分治。这个 MQ 的实现工作量并不大,属于小型系统范畴,初期设计和开发由 1 个架构师 +2 个中高级工程师可以搞定。

    在初期研发和上生产之后,根据用户的不断反馈,系统设计经过多次优化和调整,符合三分架构、七分演化的 演化式架构 理念。目前该系统已经进入 V2 版本的架构和研发,其架构仍在持续演化当中,用户需求的多样性和对系统灵活性的更高要求,是系统架构演化的主要推动力。

    中型系统案例:容器云平台架构设计

    这个也是一个实际研发中的案例。

    目前不少技术组织在往 DevOps(研发运维一体化)研发模式转型,目标是支持业务持续创新和规模化发展。支持 DevOps 的关键是需要一套 DevOps 基础平台,这个平台可以基于容器云构建,我们把它称为容器云平台。这个问题很大很复杂,我基于近年在一线互联网的实战经验积累 + 广泛调研,设计了如下容器云平台的总体抽象架构:


    核心模块:


    1. 集群资源调度平台:屏蔽容器细节,将整个集群抽象成容器资源池,支持按需申请和释放容器资源,物理机发生故障时能够实现自动故障转移 (fail over)。目前基于 Mesos 实现,将来可考虑替换为 K8S。

    2. 镜像治理中心:基于 Docker Registry,封装一些轻量的治理功能,例如权限控制,审计,镜像升级流程(从测试到 UAT 到生产)治理和监控等。

    3. 租户资源治理中心:类似 CMDB 概念,在容器云环境中,企业仍然需要对应用 app,组织 org,容器配额 quota 等相关信息进行轻量级的治理。

    4. 发布控制台:面向用户的发布管理平台,支持发布流程编排。它和其它子系统对接交互,实现基本的应用发布能力,也实现如蓝绿,金丝雀和灰度等高级发布机制。

    5. 服务注册中心:类似 Netflix Eureka,支持服务的注册和发现,流量的拉入拉出操作。

    6. 网关:类似 Netflix Zuul 网关,接入外部流量并路由转发到内部的微服务,同时实现安全,限流熔断,监控等跨横切面功能。

    核心流程:


    1. 用户或者 CI 系统对应用进行集成后生成镜像,将镜像推到镜像治理中心;

    2. 用户在资产治理中心申请发布,填报应用、发布和配额等相关信息,然后等待审批通过;

    3. 发布审批通过,开发人员通过发布控制台发布应用;

    4. 发布控制台通过查询资产治理中心获取发布规格信息;

    5. 发布控制台向容器资源调度平台发出启动容器实例指令;

    6. 容器资源调度平台从镜像治理中心拉取镜像并启动容器;

    7. 容器内服务启动后自注册到服务注册中心,并保持定期心跳;

    8. 用户通过发布控制台调用服务注册中心接口进行流量调拨,实现蓝绿,金丝雀或灰度发布等机制;

    9. 网关和内部微服务客户端定期同步服务注册中心上的路由表,将流量按负载均衡策略分发到服务实例上。

    架构思维总结:

    经过抽象梳理,我们已经得到最终容器云平台的 6 大关键抽象模块和模块间交互流程,下一步就是围绕这 6 大核心模块组织 6 个小的研发团队,每个团队负责一个模块的设计和实现,待每个团队完成各自的模块,再将所有模块组合拼装起来,就能最终产出我们需要的容器云平台产品。整体架构设计思路还是 抽象 + 分治,只不过每个模块的抽象粒度更大,整个平台的规模也更大,需要投入的研发团队资源也更多,对架构师的抽象能力要求也更高。每个模块的技术负责人在研发各自的模块时,同样遵循 抽象 + 分治 的思维方式,先做抽象架构,划分子模块,安排组员实现子模块,最后拼装组合成完整模块。

    由于这个平台规模较大较复杂,目前已经投入了近两个季度的时间,做第一期架构设计和研发,目前还没有完全生产化。在第一期过程中,随着对问题域的理解不断深入,架构设计经过多次调整,目前架构趋于稳定,已经进入预上线期。在后续生产落地过程中,仍然需要根据用户的反馈,借助进化的力量不断地调整和优化架构。这个符合 演化式架构 的思路。

    大型系统案例:微服务基础架构

    微服务架构是近年很多企业技术架构转型的趋势,实际上,微服务架构可以抽象分解为一个 两层架构:上层是微服务业务架构,下层是微服务基础架构。上层业务架构由于每个企业的业务场景各不相同,所以一般很难通用化,大多企业都是定制自研。而下层基础架构由于近年业界实践的不断沉淀,已经比较通用化和模块化,其中的核心模块一般不需要自己重造轮子,重用那些在一线互联网公司已经落地并开源出来的产品就可以了。

    Netflix 是一家伟大的科技公司,它内部的基础架构团队很牛,或者说抽象能力非常强,把一些核心微服务基础组件都以模块化方式开源出来了,使得其它公司只需组合拼装这些组件就可以快速搭建微服务架构,可以说 Netflix 将整个行业的技术水平提升了一个层次。

    我近期和极客时间合作,开设了一门叫《微服务架构实战 160 讲》的视频课程,这门课程基于我近年在一线互联网公司(携程和拍拍贷)落地微服务基础架构的实战经验和总结。该课程为大家深度剖析微服务 8 大核心模块的架构和实践,以及如何使用这些模块,采用 抽象 + 分治 的架构思维,像搭积木一样轻松构建微服务基础架构,欢迎大家订阅学习。

    《微服务架构实战 160 讲》中涉及的 8 大模块包括


    • 服务认证授权中心 Spring Security OAuth2

    • 服务配置中心 Apollo

    • 服务调用链监控 CAT

    • 服务网关 Zuul

    • 服务限流熔断 Hystrix/Turbine

    • 服务注册发现和软路由 Eureka/Ribbon

    • 服务时间序列监控 KairosDB

    • 服务监控告警 ZMon

    整体拼装起来的微服务基础架构如下图所示,这个架构是经过实践落地的,可以作为一线企业搭建微服务基础架构的参考:


    技术体系架构案例

    在企业的整个技术体系架构层面,最基本的思考方式还是 抽象 + 分治,只不过问题域更大更复杂,还涉及到组织和业务架构,所以一般还要增加 分层 的维度来解决,下图是 2016 年的 eBay 技术体系架构(图片来自文末参考链接):


    我最早看到这个架构图是在 2008 年左右的一次 all hands meeting 上(当时我还在 eBay 中国研发中心做工程师),也就是说大致在 2008 年左右,eBay 就已经有比较清晰的,以分层方式组织的技术体系架构。eBay 当时把它的系统称为电子商务操作系统,因为据说整个系统的代码量超过 Windows 7 操作系统的代码量。

    eBay 架构分为清晰的四个抽象层次:


    • Infrastructure: 底层基础设施,包括云计算,数据中心,计算 / 网络 / 存储,各种工具和监控等,国内公司一般把这一层称为运维层。

    • Platform Services: 平台服务层,主要是一些框架中间件服务,包括应用和服务框架,数据访问层,表示层,消息系统,任务调度和开发者工具等等,国内公司一般把这一层称为基础框架或基础架构层。

    • Commerce Services: 电商服务层,eBay 作为电子商务平台多年沉淀下来的核心领域服务,相当于微服务业务层,包括登录认证,分类搜索,购物车,送货和客服等等。

    • Applications: 应用层,也称用户体验 + 渠道层,包括 eBay 主站,移动端 app,第三方接入渠道等。

    我本人在吸收了 eBay 技术体系架构的基础上,也吸收了一些阿里巴巴中台战略的思想,同时融合近年的一些业界趋势(比如大数据 /AI),抽象出一个更通用的分层技术体系架构,可以作为互联网公司技术体系架构的一般性参考,如下图所示:


    顺便提一下,近年阿里提出的所谓大中台,小前台战略,其实就要强化技术中台 + 业务中台,中台做大做强了,业务前台才可以更轻更灵活的响应业务需求的变化。

    写在最后


    1. 架构的本质是管理复杂性,抽象、分层、分治和演化思维是架构师征服复杂性的四种根本性武器。

    2. 掌握了抽象、分层、分治和演化这四种基本的武器,你可以设计小到一个类,一个模块,一个子系统,或者一个中型的系统,也可以大到一个公司的基础平台架构,微服务架构,技术体系架构,甚至是组织架构,业务架构等等。

    3. 架构设计不是静态的,而是动态演化的。只有能够不断应对环境变化的系统,才是有生命力的系统。所以即使你掌握了抽象、分层和分治这三种基本思维,仍然需要演化式思维,在完成系统的初步架构设计之后,后续借助反馈和进化的力量推动架构的持续演进。

    4. 架构师在关注技术,开发应用的同时,需要定期梳理自己的架构设计思维,积累时间长了,你看待世界事物的方式会发生根本性变化,你会发现我们生活其中的世界,其实也是在抽象、分层、分治和演化的基础上构建起来的。另外架构设计思维的形成,会对你的系统架构设计能力产生重大影响。可以说对抽象、分层、分治和演化掌握的深度和灵活应用的水平,直接决定架构师所能解决问题域的复杂性和规模大小,是区分普通应用型架构师和平台型 / 系统型架构师的一个分水岭。

    参考资料

    MicroServices at eBay

    https://www.slideshare.net/kasun04/microservices-at-eba

    展开全文
  • 思维的基本过程与解决问题

    千次阅读 2011-09-04 21:58:02
    思维的基本过程与解决问题    一、思维的基本过程  1、分析与综合 ...综合是在思维中把事物的各个部分、个别属性或个别方面结合为一有机整体。  分析可以使人了解事物的组成部分、属性和

     思维的基本过程与解决问题

     

        一、思维的基本过程

        1、分析与综合

        分析是在思维中把事物的整体分解为各个部分、个别属性或个别方面;综合是在思维中把事物的各个部分、个别属性或个别方面结合为一个有机整体。

        分析可以使人了解事物的组成部分、属性和方面;综合可以使人了解事物的整体和构成事物整体的各个部分,个别属性和个别方面之间的关系。

        分析与综合是彼此相反而又紧密联系的过程,是同一思维过程中不可分割的两个方面。分析为了综合,分析才有意义;分析基础上的综合,综合者更加完备。

        人与人之间存有分析与综合的能力的差异,同一个人存有不同年龄的分析与综合的差异。例如,有的人善于分析;有的人善于综合;小学生的分析综合能力偏于对具体事物的分析综合的感性水平,中学生则提高到对事物的本质因素和内在联系的分析综合的理性水平。教师在教学中应当根据不同学生的这些特点,加以积极地引导,以促进他们一般思维能力的提高。

        2、比较

        比较是指在思考中确定各种事物的相同点和差异点的过程。

        比较是在分析和综合的基础上进行的。为了比较某些事物,首先就要对这些事物进行分析,分解出它们的各个部分、个别属性和各个方面。其次,再把它们相应的部分相应的属性和相应的方面联系起来加以对比,这其实就是综合。最后,找出确定事物的共同点和差异点。所以比较离不开分析综合,分析综合又是比较的组成部分。

        教学工作中,经常使用的比较类型有两种。一种是同类事物间的比较,又我为纵向比较,或称顺序比较,通过这种比较可以将事物的本质特征和非本质特征区分开来。另一种是不同类事物间的比较,又称为横向比较,或称交错比较,通过这种比较可以将事物的本质特征更加清楚地呈现出来,还可以使事物间的区别与联系更加明确,这样就能有效地防止知识的混淆与分裂。

        比较的原则是比较对象的相应部分或特点,根据同一个标准进行比较。否则,凤马牛不相及的事物或根据不同的标准,是无法比较的。

        3、抽象与概括

        抽象,是指在思考中抽出各种事物的共同属性,并舍弃其它属性。概括是指地思考中把抽象出来的各种事物的共同属性联系起来。

        分析、比较是抽象的基础,抽象又是概括的基础。没有分析和比较就不能抽象,没有抽象就不能概括。抽象、概括使我们的认识从感性认识上升到理性认识,从特殊上升到一般,把思想引向深化,更正确、更全面、更本质地反映事物。

        4、具体化

        具体化是把概括出来的一般认识推广运用到同类其它事物中去的思维过程。    具体化是认识发展的重要环节,它可以使一般认识不断扩大、丰富、深入和发展。在教学工作中应注意引导学生善于运用典型事例,对在学习中获得的一般理论加以具体说明和阐释。同时也应培养学生有独立地运用一般理论来解决具体问题的能力。具体化是真正掌握科学知识,避免理论与实际脱节的重要保证。

        二、解决问题的基本阶段

        解决问题的思维过程,一般说来发为四个环节或四个阶段:发现和明确问题、分析问题、提出假设、检验假设。

        1、发现问题

        思维自问题开始,问题就是矛盾,矛盾时时处处都有,问题也就无时无在。但若真正引起人们的积极思维,大多是“为什么”和“怎么样”一类的问题。发现问题的过程,就是发现矛盾的过程。这一环节的主要任务就是抓住主要矛盾,找出问题的本质,抓住矛盾的主要方面,找出问题的核心。爱因斯坦说过:“提出问题比解决问题更重要,因为后者仅仅是方法和实验的过程,而提出问题则要找到问题的关键、要害。”在人类社会生活的各个领域中,存在着种种问题,但并不是每个人都能发现问题,尤其是发现和提出有重要价值的问题。要做到这一点依赖于下列条件:

        (1)社会的需要。社会的需要是发现问题和明确问题的催化剂的和催生婆。随着人类社会的发展,会出现各种各样亟待解决的问题,它是人们思维的压力和动力。原始社会中,人类狭小的生活空间尚无可靠保证的情况下,不会提出和明确发明宇宙飞船征服太空的问题;在人们钻木取火不知电为何物的时代,不会有人提出制造电灯、电视等电器的问题和设想。有一位各人说过,社会的需要会比一百所大学更能造就人才。

        (2)个体活动的积极性。社会的需要转化为个人的思维任务之后,一说来,个体活动的态度越积极,活动量越大,范围越广,越能发现问题和提出问题。只有具有强烈的社会责任心和高度的活动热情及主动的态度,才能发现常人不注意的问题。

        (3)个体的求知欲。求知欲是人追求某种现象或弄清某个问题的内部动因。求知欲望强烈的人总是能在别人不认为有问题的地方发现问题,总是能在被公认的解释中提出疑问,总是能要求有更深奥的和更亲异的说明。他们往往“异想天开”或产生一些常人看来荒诞不经的想法,寻根问底,究追不舍,把问题搞个水落石出。

        (4)个体的知识水平。知识贫乏可以使人对一切感到新鲜,并刺激提出一些不了解的问题,但往往缺乏深度,让人感到肤浅可笑。一般而言,知识越是丰富,钻研越是深刻,提出问题就会越多,越重要。我国著名桥梁力学专家茅以升考试研究生的一种重要方式就是让学生对读过的书籍提问题,根据所提问题的数量和质量给每个人评定成绩,对我们是一个启发。

        2、分析问题

        分析问题主要是指弄清问题的特点和条件,其依赖的基础是搜集与占有与问题有关的大量材料。问题总是在具体事实上表现出来的,因此,没有大量的与问题有关的有价值的信息,要顺利解决问题是不可能的。中国古代诗人李贺“诗袋”的故事,“韦编三绝”的故事有马克思创作《资本论》,研读了1500本以上的著作,均说明占有大量有关信息的重要性。

        3、提出假设

        解决问题的关键是提出解决问题的方案──解决问题的原则、途径、方法。但这经常不是简单地能够立刻找到和确定下来的,而是先以假设的方式出现。所为假设,是指关于引起一定结果的原因的推测。提出的假设越合理,问题解决的就越快合理假设的提出,取决于两因素,一是对问题的明确程度,二是主体已有的知识检验。对问题越明确,知识经验越丰富,提出假设就越有针对性和广阔性。

        4、检验假设

        检验假设,就是指通过一定的方法来确定所提出的假设是否符合客观规律。检验假设有两种方法,一种是实际行动,即按照假设去具体解决问题;二是智力活动,即进行推论。这种方法用在检验不能用实际行动检验的假设上。如军事行动的方案,重大工程的方案等。但检验假设最终仍是实践,实践是检验真理的唯一标准。    以上四个环节并非截然分分,有时交错进行。目前心理学界对解决问题的环节尚有不同的看法存在。

        三、人们在解决问题的因素分析

        人们在解决问题的过程中受到各种因素的影响:

        1、知觉情境的影响

        解决问题往往会受知觉情境的影响。一般情况,知觉情境越简洁明显,有关的条件越容易感知,问题就容易解决;复杂的隐匿的知觉情境,问题就不易解决。例如,在解决以已知圆半径为条件,求圆的外接正方形面积的问题中,图形画法不同,解题的难度就不一样,显然A图的解决要比B图的解决难度要大。又如,在解决如何连续画出四条线段一次通过所有九个点子的问题中,由于九个点子的整齐排列,极容易使人把它们知觉为一个正方形的整体,于是思维活动被局限在九个点子组成的图形之内,问题始终不能解决。然而,思维活动一旦突破了知觉的束缚,就会立刻转向从九点之外下笔,问题很快得到解决。

        2、动机与情绪的影响

        每个人在解决各种问题时,总会产生各式各样的动机与情绪。动机是促使人去解决问题的动力。没有解决问题的动机,没有动力,问题自然不会顺利解决;但动机过强,同样不利于问题的解决;动机强度只有保持在一个恰当适中的水平上,才有利于问题的解决。研究表明,动机强度与解决问题的关系,可以描绘成一条“倒转的U型曲线”。

        一般地,积极情绪会使问题顺利解决,消极情绪会阻碍问题的解决。但有特殊情况,过度兴奋和过度消极有时反而会阻碍或促进问题的解决。

        3、思维定势的影响

        定势指心理活动的一种特殊的准备状态。也就是说,以前多次运用某一思维程序(方法、思路)去解决同一类问题,逐步形成了习惯性反应,以后仍然用习惯了程序(方法、思路)去解决问题。思维定势对那些简单的只需靠记忆或熟练操作即可解决的问题。它能有积极作用;对解决那些复杂的、创新的问题则起干扰作用和阻碍作用。

       专栏2: 反思维定势

        著名动物病理学家贝费里奇谈到思路问题时曾举过一个例子:为了发现引起羊腐蹄病的微生物,他研究了数年但一无所得。原因是他每一次研究失败之后,又仍然采用同样的方法(他认为是最合理的方法)重新开头,但最后还是没有成功。后来,他采用另外一种根本说明,思维定势既有积极的一面,又有消极的一面。为了克服“思维定势”的消极作用,在科学研究和教育工作中,人们应当自觉采用“反思维定势”的措施─进持反向思维。

        “田熊锅炉”的发明就是反思维定势的产物。过去的锅炉均安装着许多水管,它是用加热水管的办法使热水上升产生蒸汽。但这种结构的锅炉热效率不高。日本的田熊常吉想改革锅炉,但由于他的思考只局限在如何加热锅炉来提高热效应这一点上,结果屡遭失败。后来,他从相反的角度─锅炉吸热的角度思考问题时,便茅塞顿开。他想,管子里加热的水只能上升,这对冷热水交替极为不利,严重影响锅炉的势效率。于是,他把其中一根的热水管加粗,在粗管子中加入一根细的降水管。这一改,外管里的热水上升,内管里的冷水下降,水流和蒸汽得以循环,锅炉的热效率一下子就提高了百分之十。田熊从“加热”的反面“吸热”来考虑问题,从而成功地发明了田熊锅炉。田熊常吉因此而成了日本的十大发明家之一。

        为了克服固定思路的消极面,应当时常问一问自己:“从逆向去思考怎么样?”比如,圆珠笔漏油问题,一般人是从分析圆珠笔生漏油的原因入手去寻找解决办法,得出的结论是要增强笔珠的耐磨性,但漏油问题并没有得到解决。而日本的中田则从逆向去思考,他采用减少笔芯容量的办法解决了原珠笔漏油的问题。    对有些问题还可以大胆地问一问自己:“颠倒一下不行吗?”日本一位叫滨里的人,经常被人邀去练习高尔夫球,可是,在家里练习时,由于没有草坪,就要用带毛的地毯,而地毯价钱十分昂贵。能不能想法使练习少花点钱呢?滨里想:“把地毯上的毛安在球上行不行呢?这样不照样可以产生磨擦力吗?”就这样,长满毛的高尔夫球诞生了,这种球的楼道里练习也就象在草坪上练习一样了。

        反面可以出真理。美国伯纳姆在现代科学管理制度─泰罗制基础上提出了著名的三问,就是反向思路的产物。他认为,对任何事情,都要向自己提出三个基本问题:一、能不能取消?二、能不能合并?三、能不能用更简单的东西来取代?这三个问题对人颇有启发,它不仅曾经一度使美国的工业生产剧到历史最高水平,而且对人们在各个领域的创造,起了开拓思路的作用。

        不利的思路将使你迷入岐途。“发明大王”爱迪生思路开阔,善于创造。他搞科学研究的擅长采用“系统研究法”。他认为电灯只不过是整个一系列发明中的一个,其他还有一系列的东西,如发电机、仪表、开关以及许多零件都应属于电灯这一系统之中。这种“系统思想”曾使爱迪生迸发了持久的创造激情,并获得举世瞩目的一系列发明。无疑,系统思想对于考虑同类性质问题确能取得一定的效果。然而在解决不同性质问题时,却又往往会造成凝固、僵化的局面,成为不利的思维空势。爱迪生在发明电灯以后,花了三年时间研究直流输电线路和输电系统问题。但他不能摆脱习惯了的从直流系统来考虑问题这一思维定势,尽管采取了种种措施,输电距离最远还是不超过三公里。正当爱迪生遇到难以克服的困难时,美国工程师乔治.威斯汀豪斯看出了直流系统的局限性。他看到在意大利展出的采用变压器来升高电压、减少电能消耗的输电系统后,立即买下了这一技术在美国使用的专利权,接着作了一点改进,把从发电机发出的直流电变成高压交流电,取得了远程在规模电大输送问题的圆满成功。

        可以这样说:“思路可贵又可畏。”有利的思路将使你走向成功,不利的思路将使你迷入岐途。当你意识到思维空势的消极作用时,发挥创造性思维,走向成功就大有希望了。

        4、功能固着与变通

        功能固着是指只看到熟悉的事物的通常用途,而看不到它的其它功能,从而干扰了问题的解决。心理学家亚当森的实验可以说明这个问题:要求被试把三去腊烛平行方向固定在木樯上。发给被试的材料有三去腊烛、三个纸盒、火柴和几个图钉。第一组领取的材料分别装在三个纸盒内,第二组领取的材料放在三个纸盒外。其结果,在规定时间29分钟内,第二组有86%解决了问题,而第一组只有41%解决了问题。原因是第一组受了功能固着的影响,具体的解决办法同学们自己变通一下就明白了。

        5、思维的一线性和自束性

        所谓“一线性”就是俗话所说的钻牛角尖,一旦人的思维钻入牛角尖,解决问题就困难了。所谓“自束性”,就是主观上的附加了条件,束缚了自己的思维。哥伦布竖鸡旦的故事,是打破维自束性和一线性的著名范例。

        四、解决问题的思维模式

        模式是由若干元素集合起合的结构。思维模式是指由问题的条件、性质、解题者的个性特点,在解题过程中长期形成的相以稳定的思维类型。

        1、直觉式

        指在解决问题过程中,不经过自觉的、有意识的逻辑推理,而是凭直觉作出判断的解决问题的思维模式。其特点是速度快,正确性较大。直觉式解决问题的思维模式并非神秘莫测。其过程中的许多中间环节都省略了,所以能对问题作出快速的反映和观测。其基础是个人丰富的经验和渊博的知识,以及由此而产生的果断的意志品质,瞬间完成。战争前线的军人,执行公务的公安刑警,抢救病人的医生等,善于运用自觉式思维模式。

        2、分析式

        指在解决问题过程中,对事实材料作充分分析,并进行严格的逻辑推理,最后使问题得到解决的思维模式。其特点是分析周细,推理严格,结论科学。但有时该思维模式的步骤显得繁杂,耗费时间太多,于是实际运用中,人们往往给予适当的简化,以提高时效。

        3、试误式

        尝试错误式的简称。指在解决问题中,不对解决问题的原则、方法等作周密的思考,而用尝试去解决问题的思维模式。其特点是耗时多各成效低,盲目性大,弯路长。不过在对解决问题的方式方法进行大致的分析之后的高层次的试误,会大克服以上缺点。

        4、顿悟式

        顿悟即指突然醒悟明白。顿悟式指在积累了大量材料之后,经过分析、比较、推理而无法解决问题时,偶然的刺激,突然明白解决问题的途径和方法的思维模式。其特点是河预测性、自发性、科学性。其赖以产生的前提一理大量材料的积累,二是艰苦卓绝的思考。

        在复杂的社会生产实践中,人们往往是对几种思维模式综合运用,随着问题的改变而分别有所侧重。教师在教学中应引导学生正确评价每种思维模式的优缺点,逐步分析自己的思维模式,灵活综合运用各种思维模式,从而培养自己解决问题的能力,提高学习效率。
    展开全文
  • 习惯之:双赢思维

    千次阅读 2019-05-05 02:49:47
    双赢者把生活看作一合作的舞台,而不是一角斗场。一般人看事情多用二分法:非强即弱,非胜即败。其实世界足够大,人人都有足够的立足空间,他们之得不必就视为自己之失。不论你是总裁还是门卫,只要已经从独立...

    人际交往的六种模式

    利人利己(双赢)

    这种模式会促使人不断地在所有的人际交往中寻找双边利益。双赢就是双方有福同享,皆大欢喜,这种结果会让所有人都愿意接受决定,完成计划。双赢者把生活看作一个合作的舞台,而不是一个角斗场。一般人看事情多用二分法:非强即弱,非胜即败。其实世界足够大,人人都有足够的立足空间,他们之得不必就视为自己之失。不论你是总裁还是门卫,只要已经从独立自主过渡到相互依赖的阶段,你就开始扮演领导角色,影响着其他人,而有助于实现有效的人际领导的习惯就是双赢思维。

    损人利己(赢/输)

    秉持这种信念的人习惯于利用地位、权势、财力、特权或个性来达到目的。他们认为一个人的价值是通过与他们比较才得以实现的,内在价值毫无意义,外在表现才最重要。

    诚然,在竞争激烈和信任薄弱的环境中,我们需要赢/输模式。但是竞争在生活中只居少数,我们不需要每天都和配偶、孩子、同事、邻居、朋友竞争。“你和爱人谁说了算(谁是赢家)?“这是一个很荒唐的问题,如果没有人赢,那就是两个都输。

    舍己为人(输/赢)

    这种人没有标准,没有要求,没有期望,也没有将来。他们通常喜欢取悦他人,喜欢满足他们的希望。别人的认同和接受能给他们力量,他们没有勇气表达自己的感受和信念,总是服从别人的意志。

    可是被压抑的情感不会消失,累计到一定程度后,反而以更加丑恶的方式爆发出来,有些精神疾病就是这样造成的。若是一味压抑,不能把愤怒情绪加以升华,自我评价将日趋低落。到最后依然会危机人际关系,使原先委曲求全的苦心付诸流水,得不偿失。

    两败俱伤(输/输)

    两个损人利己的人交往,由于双方都固执己见,以自我为中心,最后一定是两败俱伤,因为他们都不服输,都想报复,扳回局面,但其实谋杀等于自杀,报复是一把双刃剑。为了报复,不惜牺牲自身的利益,却不问是否值得;只有不够成熟,掌握不了人生方向的人,才会这样。

    极具依赖性的人也会倾向于两败俱伤模式,他们的人生没有方向,生活痛苦,于是认为所有人都该如此——”大家都不赢的话,做个失败者也没什么。“

    独善其身(赢)

    别人输不输都无所谓,重要的是自己一定要得偿所愿。当竞争和对抗意义不大的时候,独善其身的模式是多数人的处事方法,他们只在意自己的利益无损,别人的就留给他们自己保护去吧。

    好聚好散

    哪一种最好

    最好的选择必须依情况而定,关键是认清形势,不要教条地把某种模式应用于每一种情况。实际情况中,我们要对方多交流,听取意见,并有勇气表达自己的观点,直到结果让双方都满意。着”第三条道路“的解决方法所产生的协同效应可能会双方都大吃一惊。

    长远来看,不是双赢,就一定是两败俱伤,所以我们才说,使用双赢才是在相互依赖环境中唯一可行的交往方式。

    不能双赢就好聚好散

    如果实在无法达成共识,实现双赢,就不如好聚好散(放弃交易)。心中留有退路,顿觉轻松无比,更不必耍手段,迫使对方就范。坦诚相见,更有助于发掘及解决问题。即使买卖不成,仁义尚在,或许日后还有合作的机会,这一模式意味着宝贵的自由。

    双赢思维的五个要领

    双赢可使双方相互学习、相互影响以及共蒙其利。要达到互利的境界必须具备足够的勇气及与人为善的胸襟,尤其与损人利己者相处更得这样。培养这方面的修养,少不了过人的见地、积极主动的精神,并且以安全感、人生方向、智慧与力量作为基础。

    双赢的原则是所有人人际交往的基础,包括五个独立的方面:”双赢品德“是基础,接着建立起”双赢关系“,由此衍生出”双赢协议“,需要”双赢体系(结构)“作为培育环境,通过双赢的”双赢过程“来完成,因为不能用赢/输或输/赢的手段来达成双赢的目的。

    双赢品德

    双赢品德有三个基本特征。

    • 诚信

      我们将诚信定义为自己的价值观。习惯一、二、三教育我们养成并保持诚信的习惯。如果我们在日常生活中有明确的价值挂,能积极主动地以此为核心安排活动,信守承诺,就能够逐渐培养起自我意识和独立意志。

      如果我们不了解”赢“的真正含义及其与我们的内心价值观的一致性,那么就不可能做到”赢“。没有了诚信的基础,双赢只不过是一种无效的表面功夫。

    • 成熟

      这是敢作敢为与善解人意之间的一种平衡状态。”成熟就是在表达自己的情感和信念的同时又能体谅他人的想法和感受的能力。“这种能力是人际交往、管理和领导能力的精髓,是产出/产能平衡的深度表现。敢做敢当的目的是拿到金蛋,而善解人意可以保障其他股东的长远利益,领导的根本任务就是要提高所有股东的生活水平和生活质量。

      双赢模式要求你不仅要温和,还要勇敢,不但要善解人意,还要自信,不但要体贴敏感,还要勇敢无畏。这道这些,在敢做敢为与善解人意之间找到平衡点,才是真正的成熟,这是双赢的基础。如果我足够成熟,我就会乐于聆听,善于沟通并用于面对。

    • 知足

      相信资源充足,人人有份。富足的心态源自厚实的个人价值观与安全感。由于相信世间有足够的资源,人人得以分享,所以不怕与人共名声、共财势。从而开启无限的可能性,充分发挥创造力,并提供宽广的选择空间。一个诚信、成熟、知足的人在人际交往中很少或者根本不需要用到什么技巧。

    双赢关系

    充足的情感账户储蓄和对双赢模式的共识是产生统合综效(习惯六)的理想途径。这种关系不会让问题虚化或弱化,也不会让意见上的分歧消失,但能够除去那些分散精力的消极因素,如对性格和立场差异的过分关注,从而为双赢造成有利于理解和解决问题的积极合作氛围。

    同赢/输模式的人打交道,关系很重要。你要以影响圈为核心,通过以礼相待,尊重和欣赏对方及其不同观点来进行感情投资,同时用于表达自己。你对双赢的态度越坚持,越真诚、越投入,你对他人的影响越大。

    双赢协议

    关系确立之后,就需要有协议来说说明双赢的定义和方向,这种协议有时被称为”绩效协议“或者"合作协议",它让纵向交往转为水平交往,从属关系转为合作关系,上级监督转为自我监督。

    在双赢协议中,对以下五要素应该有明确的规定:

    • 预期结果:确认目标和时限,方法不计
    • 指导方针:确认实现目标的原则、方针和行为限度
    • 可用资源:包括人力、财力、技术或者组织资源
    • 任务考核:建立业绩评估标准和时间
    • 奖惩制度:根据任务考核确定奖惩的意义

    如果双方的信任存在,你会怎样做呢?对他们放手,只要事先制定双赢协议,让他们知道你的期望,接下来只要扮演好协助与考核的角色就好。在高度信任的文化氛围里,自我评估的结果更精确也更激人上进。

    双赢体系

    双赢必须有相应的体系支撑,包括培训、规划、交流、预算、信息、薪酬等,而且所有体系都要建立在双赢原则的基础上。双赢体系要为双赢协议创造有利环境。

    双赢过程

    对于如何找到双赢的解决方案,原则性谈判是关键。要将人和问题区分开来,要注重利益而不是立场,要创造出能够让双方都获利的方法,但不违背双方认同的一些原则或标准。双赢过程分为下面四个部分:

    1. 从对方的角度看问题。真正理解对方的想法、需要和顾虑,有时甚至比对方理解更加透彻。
    2. 认清主要问题和顾虑(而非立场)
    3. 确认大家都能接受的结果
    4. 实现这种结果的各种可能途径

    双赢并非性格魅力的技巧,而是人类交往的一种模式。双赢来自诚信、成熟和知足的人格,是高度互信的结果;它体现在能有效阐明并管理人们的期望和成就的协议中;在起支持作用的双赢体系中蓬勃生长;经由必要的双赢过程来实现。习惯五、六将对这种过程进行深入探究。

    展开全文
  • 思维导图详细安装过程

    千次阅读 2020-08-12 22:50:57
    一、软件简介 二、下载 百度网盘下载链接: 链接: https://pan.baidu.com/s/1c3rYhNS0k827bjN9WTbA2g...提取码: s6sw 三、安装 1.双击 navicat150_premium_cs_x64.exe 文件 ... ...、配置 详情见百度网盘里的word文档 ...
  • 种核心架构思维

    万次阅读 2019-02-11 11:56:35
    架构的本质是管理复杂性,抽象、分层、分治和演化思维是我们工程师/架构师应对和管理复杂性的种最基本武器。 最近团队来了一些新人,有些有一定工作经验,是以高级工程师/架构师身份进来的,但我发现他们大部分人...
  • 人工智能思维过程是什么?

    千次阅读 2019-01-28 13:18:53
    就目前而言,人工智能是一十分火热的事物,给我们的生活中很多东西赋予了智能化,极大地方便了我们的生活,人工智能机就是让物体像人的大脑一样去思考去解决一些问题,但是大家是否知道人工智能思维过程是什么呢...
  • 创造性思维阶段论

    千次阅读 2017-09-16 14:27:07
    关于数学智力题的理论:创造性思维阶段论美国心理学家G.华莱士研究了各种类型的思想活跃的人的经验谈,发表了如下的形成思想概念的阶段论:第一阶段——准备期掌握问题、搜集各种材料、动脑筋的过程,即自觉的...
  • 计算与推断思维 、数据类型

    万次阅读 2017-11-18 21:07:49
    、数据类型 原文:Data Types 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 每值都有一类型,内建的type函数返回任何表达式的结果的类型:type(3) int type(3/1) float表达式的type是其...
  • 用结构化思维策划一会议

    千次阅读 2017-04-14 14:23:41
    复杂问题进行拆分,最后会形成一数量巨大的细分问题群。如果没有严格的按照“逐层不漏不重”原则进行,...本文以策划一会议为例,来了解结构化思维的应用。 本文选自《数源思维:业务导向的数据思维秘籍》。
  • 章 政策过程及其理论模型

    千次阅读 2019-03-14 14:42:34
    节 公共决策的科学化与民主化第一节 政策过程与理论模型构建 公共政策是一动态的过程。 由于政策过程与政治过程具有同构性,所以各国政治体制的差异造成各国的公共政策过 程各有特点。 另外,各国的特殊经验、...
  • 不同的思维模式,不同的的信念价值观,造就了我们每人不同的想法。看事情的角度和高度都不一样。学习的目的就是要打开我们的思维模式,心智模式。让自己上升到更高的思考层面。结合自己的实际情况去做出调整,而...
  • 如何创造财富?硅谷创业之父 Paul Graham 《黑客与画家》思维导图
  • 复杂性思维第二版 、无标度网络

    万次阅读 2017-11-05 10:44:31
    、无标度网络 原文:Chapter 4 Scale-free networks 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 在本章中,我们将处理来自在线社交网络的数据,并使用 WS 图对其进行建模。WS 模型像数据一样...
  • 程序员必备的思维能力:抽象思维

    万次阅读 多人点赞 2021-02-12 18:03:28
    若想捉大鱼,就得潜入深渊。深渊里的鱼更有力,也更纯净。硕大而抽象,且非常美丽。——大卫·林奇抽象思维是我们工程师最重要的思维能力。因为软件技术 本质上就是一门抽象的艺术。我们的工作是存思维...
  • 16顶级思维模型

    万次阅读 多人点赞 2018-03-25 00:00:00
    思维模型会给你提供一种视角或思维框架,从而决定你观察事物和看待世界的视角。顶级的思维模型能提高你成功的可能性,并帮你避免失败。打造多元思维模型想法来自查理·芒格,而查理·芒格是沃伦·巴菲特的得力助手。...
  • 深度学习的四个步骤

    万次阅读 2016-09-09 15:46:01
    深度学习的四个步骤:每个阶段给出的学习资源
  • 因为业务需要,最近接触到了一些商务,顺便提一下,这里我是甲方,接触的商务多了,渐渐的发现,同样的业务,不一样的思维,给人的感受和最终的结果,可能会有天壤之别。 而这样的思维区别,在运营工作中也是存在的...
  • 思维导图

    千次阅读 2009-01-23 04:55:00
    目录 【思维导图概述】 【思维导图的由来】 【思维导图在中国的发展情况】 【对速读记忆的作用】 【思维导图的优势】 一、人的大脑运用带来的问题 二、思维导图的优势 三、思维导图的作用 思维导图适应于应用的...
  • 逻辑思维

    千次阅读 2017-09-25 16:05:07
    逻辑思维,又称抽象思维,是人的理性认识阶段,人运用概念、判断、推理等思维类型反映事物本质与规律的认识过程
  • 思维导图(一):高效的思维工具

    千次阅读 2019-06-15 12:37:36
    人类的思维可以分为线性思维和非线性思维两种。一般来讲,线性思维是一种直线的、单向的、单维的、缺乏变化的思维方式,如逻辑思维;非线性思维则是相互连接的,非平面、立体化、无中心、无边缘的网状结构,类似于人...
  • 习惯:双赢思维--人际领导的原则

    千次阅读 2015-04-19 15:14:27
    习惯:双赢思维--人际领导的原则
  • 数源思维完成目标设定

    千次阅读 2017-03-24 09:59:21
    数源思维是为非专业...在本文中,数源思维通过问、拆、解、谋步就能将数据及其方法很好的融合到业务问题的解决中,从而将业务解题能力从经验时代提升到数据时代。 本文选自《数源思维:业务导向的数据思维秘籍》。
  • 产品创新关系着企业的生死存亡,而企业在做产品创新时总会陷入想太多的环节中,好像每个功能都可以增加到产品中,所以我们在这里总结了产品创新的四个思维和八大创新方法来帮助企业。 一、求异思维 简单来说就是...
  • 金字塔思维(编程思维

    千次阅读 2020-10-05 14:42:10
    厉害的人之所以分析问题厉害,是因为他们具备这种思维!!! 你一定试过通过脑暴来分析问题,几部门的人围在一起讨论一问题,各自从自己的角度出发,想要说服彼此。 结果2小时的脑暴会,问题的的解决方案还是...
  • 12顶级思维模型,非常值得一看!

    万次阅读 多人点赞 2018-08-22 17:16:46
    思维模型是你大脑中做决策的工具箱。你的工具箱越多,你就越能做出最正确的决策。”不管你是领导团队,还是制定市场战略,思维模型都能够在其中发挥至关重要的作用。 打造多元思维模型的想法来自查理·芒格:...
  • 闭环思维

    千次阅读 2019-03-20 11:35:02
    闭环思维 摘要 经常在工作中听到其他人谈闭环思维,究竟啥是闭环呢?我们从互联网和工作生活中分别说下。 0x01 闭环 1.1 闭环思维 闭环思维即别人发起一件事,在一定时间内,不管我们完成的效果如何,都要认真的反馈...
  • 查理芒格推荐的100个思维模型

    千次阅读 2020-10-11 00:37:52
    又称为直观,通常被描述为,一种不用经过太多思考过程,很快就能出现的直接想法、感觉、信念或者偏好。当我们有某种信仰,但是不确知它的原因时,通常会将它归于是一种直觉。认知科学认为这是因为生存的演化压力而...
  • 当程序员具备了抽象思维

    万次阅读 2021-03-22 14:32:46
    抽象思维是我们工程师最重要的思维能力。因为软件技术 本质上就是一门抽象的艺术。我们的工作是存思维的“游戏”,虽然我们在使用键盘、显示器,打开电脑可以看到主板、硬盘等硬件。但我们即看不到程序如何被执行,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 144,334
精华内容 57,733
关键字:

思维的四个过程