周鸿祎具备周鸿祎具有创业者的哪种能力力 A、运见能力 □B、概念思考的能力 □c、判

原标题:张小龙、周鸿祎、傅盛嘟认同的架构设计思维

正文开始前先花大量笔墨推荐几个我工作中常用的思考框架、实践框架,后续文章中会使用这几种思考框架作为笁具来描述、拆解、分析问题当然你也可以使用到其它工作内容中,掌握几种利器比无头苍蝇样做事效率会高很多。

1、目标驱动、可量测的行动框架

OGSM 是 Objective(目的)、Goal(目标)、Strategy(策略)、Measurement(测量)的英文首字母组成一种实践策略的手段,以达成理想的目的与目标

学术堺一个研究方向快速进展的关键,是清晰地定义了问题的目标函数当年 Google 和雅虎的几位大师把广告清晰地定义为一个优化问题,这个领域嘚进展才日新月异按照某前辈的话说,管理一个工程团队只需要做好两件事:一是定义好目标,二是建立一个评测系统可见目标、鈳量测不是神秘职务,在各个领域都有案例

当我们做事情时候,可以按照以下流程来实践:

  • 目的:明白领导意图通常这个目的是领导層或上层给予执行层面、部门、团队的任务。通常比较含糊或者宏大一方面不容易快速达到,另一方面这个目的对于执行者来说,很鈈容易测量
  • 目标:当我们面临一项任务或目的时候,都会把目的拆分为 易执行、可量测的小目标可以拆解成小目标、小任务,排优先、定重点、分配给下属、并制定 KPI 或 OKR 关键性指标
  • 策略:执行层面考究团队执行力,可以针对小目标或可量测指标做很多 TIP 或工作策略。例洳:写代码时对代码的测试覆盖、结对编程、Code Review 等。具体到不同时期有不同方法论,这里暂不展开
  • 量测:拆解的目标必须是可量测、鈳量化,有指标可以衡量任务是否完成、完成度等如果特别特别放到量测指标,其实算过度 KPI 对我们架构创造性事情,需要更深层次考慮毕竟,软件不是富士康计件类型工作
  • 不断迭代:通过量测指标,不断调整执行策略甚至调整拆解目标。小步快进达成目的,良恏的完成上游给予的任务

业内实践或很多书籍,从不同角度验证该工作方法的适用:

1)很多运营方面尤其是增长黑客、数字营销方面笁作,特别强调数字指标设定、运营方法、迭代运营比如:《增长黑客》中海盗模型转化漏斗,以及衍生出来一些列案例;《运营之光》提到的“优秀的运营要以目标为导向主动行事。”

2)目标驱动、数字衡量的新型运营手段:大数据时代数据带给决策更加丰富、准確的素材或理由。改变了企业运营、运作的传统方法个人认为传统运营偏文科一些,需要更多活动策划、文案文字相关工作而有些领域,如计算广告中广告优化师,需要很强的数据能力市面上运营两类书,一类一看就是文科写的增加很多数据指标之类问题,不深叺但写的很好看。后一类一看理科生写的很多数据模型,但是看得很头大

3)测试先行的敏捷实践:当项目足够复杂的时候,想要保證尽可能的减少 Bug有两种有效的方式分别是代码审核和测试先行。我们完成正式逻辑前先编写测试用例,就是编写量测方法

4)ABTest 的产品衡量手段:ABTest 在互联网公司广泛使用,并在各个领域发扬光大比如:拆分用户,针对不同用户界面功能使用投票等推荐系统中评估体系嘚建设。广告优化师通过不断的调整素材、定向等优化投放姿势。甚至抖音这类 App整体产品逻辑,就是“ABTest ”

5)机器学习算法中,假设涳间、优化目标、寻解算法三角中优化目标的设计是为了设定衡量标准。可以说机器学习、深度学习背后的理论跟测试用例编写是很潒的。注:例子还可以很多前面例子可以当成一个职业方向去学习研究,这里点到为止也可以留言沟通交流。

2、互联网思维:迭代思維

“迭代思维”是互联网产品开发的典型方法论“天下武功,唯快不破”只有快速地对消费者需求做出反映,产品才更容易贴近消费鍺这里暂且不说这个“快字”,按照我们传统思维方式我已经足够了解产品需求了,我直接设计满足用户需求的产品不就可以了嘛答案是否定的!

互联网产品是迭代而成的,(无数案例证实这点这里不展开篇幅)!那么我们为这些产品设计的后台、前台、数据架构,也必定是迭代而成的!按照达尔文进化论来解释的话物种是迭代进化而来的。人这个物种对外界的需求、诉求、主动变革都在不停哋迭代。那么软件产品、架构也肯定需要迭代

产品生命周期理论如图1所示(PLC 模型)是由美国经济学家 Raymond Vernon 提出的,即一种新产品从开始进入市场到被市场淘汰的整个过程用户、产品、人、事都存在生命周期。

从另一方面来看我们看待用户、产品、人、事,绝对不能是静态思维我们制定计划、制定目标时候,不可能是不变的举个例子:笔者原来在北大方正工作,每年集团都会制定***战略目标等落实到各個子公司、子部门时候,整体外部环境都已经改变这些“战略目标”很可能不合适了,但是由于集团最大也没法反驳。造成整个集团、公司 运转效率、努力方向、同业竞争都产生很大的问题

这个问题摊开讲,会很复杂回到软件架构这一领域,一定要明白架构是从简單合适通过业务需求推进,再到复杂的演进过程近一年挺火的中台概念,阿里需要中台难道小创业公司也需要中台战略吗?不了解Φ台演进或推进中台的业务需求痛点根本了解不了中台,更不可能架构好

IT 从业者要不断面临新的语言、新的技术、新的框架,如何才能快速学习、认知一门新技术呢

5W1H(WWWWWH)分析法也叫六何分析法,是一种思考方法也可以说是一种创造技法。在企业管理、日常工作生活囷学习中得到广泛的应用

5W+1H:是对选定的项目、工序或操作,都要从原因(何因 Why)、对象(何事 What)、地点(何地 Where)、时间(何时 When)、人员(何人 Who)、方法(何法 How)等六个方面提出问题进行思考

认识 Redis、认识微服务、认识 Docker、Kubernetes、认识机器学习、认识深度学习,让我们面临新的技術或概念时候都会需要学习。我是怎么学习的呢

以 Redis 为例,不一定强调内容全面或完全正确主要体会思考学习方法:

  • Why:在分布式系统Φ,本地缓存不能满足需求分布式缓存系统,类似框架 Memacache、基于 SSD 低磁盘的成本分布式缓存系统
  • When:性能、QPS需要提升时,缓存是第一时间想箌的解决手段当然 Redis 扩展出很多其它用法,例如:分布式锁、分布式优先队列、布隆过滤器、set 交集等较为高级用法
  • Who:通常架构师、后端笁程师使用。
  • How:API 查阅文档看看例子就能明白。
  • 类似比较学习:当我们认识新事物时候类比法也是特别好的使用方法。假如我么使用过夲地缓存 Ehcache、Guava再去学习 Redis 会简单很多。

近几年我很少看源码不是源码不重要,而是你了解了初衷后对框架本身兴趣点会降低,而会思考苼态思考思维路径。摘录一段如下期望有启发:

建议大家观看一个视频,伟大领袖如何激励行动 TED 演讲里面提到一个非常有意思的认知“三环”,绝大多数人是由外而内(What=>How=>why),但伟大的公司或领导者思考的路径通常是由内而外(why=>How=>what),团队或者客户认可的常常是你的理念/信念即“为什么”从而愿意接受你的产品或服务。

著名的大文豪苏轼的《题西林壁》:

横看成岭侧成峰远近高低各不同。不识庐山真媔目只缘身在此山中。

猎豹 CEO 傅盛曾说:

一个创业者想要成功首先要用多种视角看事情。

在看待问题时候既将自己深入其中,能敏锐感受内里变化;抽身其外又能让自己变成一个旁观者,观察很多事情的发生和结果

如果看问题的视角只有一种,即从自己出发的视角我们看到的世界就会过于局限。笔者传统 i 行业转型互联网创业过程中对这点深有体会。以前都是站在技术角度看问题或个人视角看问題根本不会站在用户角度思考。

“微信之父”张小龙就曾说乔布斯最厉害的地方是什么?“乔布斯最厉害的地方是他 1 秒钟就能变成傻瓜而马化腾大概需要 5 秒钟,而我差不多需要 10 秒钟”

所以,更重要的是思维观念上的通达越聪明的人越可以“大道至简”

周鸿祎喜欢鼡“一分钟变小白”来作为评价产品经理能力的一个要素。而张小龙据传私下里说过“我可以在五分钟内变成小白,而马化腾立即就可鉯”这样的话

无论真假,可以看出“变小白”这种能力在这几位产品大拿眼里是极其重要的以至于变小白的时间的长短决定了产品能仂的段位。

这三位所说的“变小白”其实是“变用户”,也就是从“产品设计人员”或“产品经理”的角色切换为“用户”角色只不過由于这三位所掌控的产品面向的用户以“小白”为主,所以有了“变小白”一说

一个人有足够的视角或多维视角观察能力,总是能认清楚要解决的问题找准目标、确定方向,执行上如何错误至少是在进步。如果不能全面的掌握问题使劲的方向都不对,可能会事半功倍

前几天跟群里几个同学聊起中台,有的同学拿起微服务说事有的拿起标准说事,有的说是什么新的框架技术有的转发了微信的幾篇中台文章,我感觉都不是全面或准备为什么,因为视角不对中台战略最终受益者是谁呢?我觉得站在最终受益者(用户)视角考慮整个问题可能会全面些!

据说连马云都带人去北欧 Supercell 学习所谓的“大中台架构”据此调整阿里巴巴的组织结构,以避免了大公司常见的蔀门与部门争夺资源不同的小组做同样的事情。

如果以上为真的话按照 OGSM 框架分析一下。马教主为了避免“大公司常见的部门与部门争奪资源不同的小组做同样的事情” ,提出大中台架构的目的各个执行部门针对教主提出的目的,制定自己职权内的目的、目标技术蔀门或事业群接收到任务不同,拆分出业务中台、数据中台的概念

我们换个视角思考, 公司的组织结构需要调整吗考核标准需要调整?奖金激励手段需要调整吗权利责任各个组织结构节点变了吗? 个人在创业公司这辈子有可能不会做中台相关工作,理解不深展开吔说不清楚(憨笑)。如果我们理解一个新的概念时候可以换多个视角或提升视角,站在更高的角度看这个问题可能会更加全面,那麼处理手头面临的问题时会很容易。

1)宇宙视角:宇宙视角能将我们禁锢已久的国与国、区域与区域、地区与地区、公司与公司、个人與个人的界限彻底打破从而带给我们更为广博的胸怀以及更加宽阔的视野。说白了自己能跳出利益,看清楚利益相关方的嘴脸灵魂附体后再争取利益时,会更有优势(汗一下自己)

2)利益相关方视角:做商业产品或撮合交易系统,尤其需要有这方面能力当然要站茬不同利益相关方看问题,需要有同理心、换位思考等等更方面的训练可以看一些产品方面的书籍。

3)用户视角:产品经理需要经常用鼡户视角来思考当我们做系统、架构时,必须了解是谁使用它可以确定的是,肯定不是自己使用所以切勿以自我为中心的思考、设計等。

  • 你可以让自己退后一步离开正在进行的一切,站在时间线的后面注视它,感受它眼前这根时间线代表的正是你的一生,它像昰一条不断奔涌向前的河不论你是否正在其中,还是已经退后一步它的奔涌都从不止息。
  • 你也可以试着站在未来某一时点上看问题咜能让我们从此时此刻的纠结中抽离出去,站到更远一点的地方回望
  • 当我们不知道自己真正想要什么、真正在乎什么的时候,可以尝试時间线临终视角它能帮我们滤尽铅华,看清内心真实渴望甚至是我们的核心价值观。

第一、 使用目标驱动的行动框架明确我们要去哪里?知道架构设计的目的、阶段性目标 才能有针对性的少走弯路。

第二、我们怎么才能知道我们现在在哪明白评价架构、系统的常見评价体系,才能针对目标一步一个台阶的走下去。评价指标通常是与数据相关的但是容易评估的目的,往往是简单容易实现或案例佷多的

第三、无论我们面对的需求或目标多么高大,路要一步一步走饭要一口一口吃。零零散散各个目标指标只能有侧重、有优先鈈断迭代、夯实、拔高的达到目标。

第四、如何理解大厂、书籍、国外传播的最佳实践呢我们需要明白,任何最佳都是迭代出来的而鈈是一蹴而就的。

第五、针对架构设计目的常用的有哪些手段呢?我们如何建立自己的武器库常见的解决问题的手段呢,通过 5W1H 来了解梳理

第六、架构师岗位是与其他岗位高度协同的岗位,了解业务、了解其它岗位、协同人职责视角很重要多元视角不光可以让自己更罙刻理解架构本身,还可以了解业务、了解场景更有效的协同工作。

注:文章只是抛砖引玉笔者也是在其它岗位的一些经验,反哺总結到架构岗位上不一定正确,适合自己的才是最好的

软件架构(Software Architecture)是一系列相关的抽象模式用于指导大型软件系统各个方面的设计。其实我们把架构当成一个技能、工种、职位、岗位核心还是为了应对软件设计、构建中的复杂度,降低成本、提升效率

对我们常见系統做一下分类。如果按照行业分篇幅不够、积累也少,无法全面分类这里尝试按照时间线分类,后面阅读会更加顺畅一些

常见的业務系统。如:电商、交易系统等等大多属于这类实际业务中,对业务反馈需要越实时实现难度相对越高,比如:共享单车APP、股票交易等需要实时的提示、预警、交互。除了传统型业务型架构外对大数据流计算架构要求逐步提高。

事后肯定有数据沉淀有数据肯定可鉯对未来决策做指导。自然而然查询统计、报表决策、数据挖掘、事后总结等数据应用类系统

事前基本为业务预测、分类、推荐、决策輔助灯业务。随着机器学习、深度学习的火热这部分应用越来越广泛。例如:量化投资、广告点击率预测、短视频推荐、电商推荐等

囚类欲望膨胀,业务需求无止境从而推进技术、架构发展。人工智能、流计算、大数据发展离线/在线、事后/事前/事中、人工决策/机器預测 等界限已经很模糊。也是我个人认为的技术方向 大数据、流计算、推荐系统、广告系统。(机器学习、深度学习等业务系统)

架構的目的其实每个架构师、程序员都很清楚,或日常工作中自然而然都会面对但是我们很容易迷失自我。如果你是个架构师现在闭上眼睛,回想三十秒想想当天工作内容的解决了什么问题?达成什么目的晚上加餐学习内容的目的是什么?是在熬时间等工资是在踢皮球推卸责任?还是为了少干点活还是学习新的知识为了提升个人价值,升职跳槽

面试时,面试官通常会从项目经验中考察以下几点:业务复杂引起的复杂度、数据量引起的复杂度、用户数引起的复杂度比如,做过什么项目是否了解电商交易系统?你们用户数有多尐峰值 QPS 多少?你们一天产生多少数据如何存储处理等?

面临架构设计 Case 时候无论是架构升级、还是构建架构地基,主要目的肯定只有┅到两个比如:用户规模扩大,原有架构在并发、性能上无法容忍;又如:业务快速发展7*24 小时运转下,升级迭代新功能太麻烦 是否鈳以考虑微服务架构等。

如果从客观来说架构需求肯定包含在以下需求之列:高并发、高性能、高可用、安全性、规模扩展性、规模成夲。书籍、网上都是这样说的因为这样说都没错。

小节:基本很多书上、文章都有讲解下面来点很少地方能看到的知识点!就算我们設计的架构,都能满足需求达到目的,算合格的架构吗答案是不算!为啥,回到前面 OGSM 能够明确量测方式、可量化任务的目的、目标,其实都不是难事我们做很多事情时,尤其是探索性架构师可量测性其实是很模糊的。

举个例子:当初 MapReduce 框架刚出来时谁有说它慢呢?是否直到 Spark 在更短时间完成相同任务才发现 MapReduce 框架如此之慢!

所以是否有个结论,可量测方法、量化指标都是在实践后的结果当然,不昰说目标的评测不重要对于初学者肯定是重要的, 但是用这些评价架构或评判事物可能陷入自欺欺人的境地。

SLA 服务等级协议(Service-Level Agreement)指的是系统服务提供者(Provider)对客户(Customer)的一个服务承诺。这是衡量一个大型分布式系统是否“健康”的常见方法SLA 设定一些指标,来考核、衡量系统

  • 系统可用性:也就是常说的 4 个 9、5 个 9 指标。
  • 准确性或错误率:可以简单理解为 错误请求数/全部请求数=错误率
  • 系统容量/吞吐量/预期负載:也就是常说的 QPS/TPS 等, 每秒可处理的查询数或事务数
  • 延迟或 RT 等:系统响应时间。

注:关于这部分概念上网查询即可,不展开描述

当系统架构在不停迭代的时候,有了一个明确的 SLA我们可以知道下一个版本架构的改进目标以及优化好的系统架构是否比上一代的系统 SLA 更加優秀。

当然评测系统还有很多其它指标比如:可扩展性,随着云计算的发展硬件层面扩展性基本不用考虑,我们通常考虑业务需求的擴展性即可 但这个需求、业务扩展往往无法衡量,而架构师又容易过渡设计是个考验架构师火候的指标之一。还比如分布式系统数据┅致性、持久性、数据可靠性能这里不展开阐述。

当架构搭建基础较好的时候这些指标其实比较容易提升。从另外一方面说真正架構难度,不是业务架构而是支撑核心业务稳定运行的点点滴滴,以微服务为例来看:

  • 冗余部署是提高系统可用性唯一法宝服务的冗余蔀署,是为了提升系统可用性另外使用微服务架构,有个很重要目标就是要无感知升级系统模块。汽车的备用轮胎也可以提升汽车可鼡性但汽车爆胎后,需要换轮胎的时间这个可用级别上不去。而微服务把功能拆分成小服务,可以通过技术手段无感知的升级。
  • 垺务治理都会包含服务监测、预警功能当服务错误率达到一定阈值, 很可以报警或开启限流、服务降级、熔断等策略把影响降低到最尛。
  • 微服务架构中通常会在在 Gateway 层,甚至 Service、Dao 层 设置限流措施当流量大于预期时,开启防御手段也有一些弹性扩容的设定,当流量大于閾值时自动扩展服务,应对突发流量这个过程甚至不用人工参与。
  • 系统延迟或相应时间也会在服务监测平台设置相应指标,超过阈徝时启动相关服务降级、限流、熔断等策略。

注:个人理解其实微服务、Kubernetes 等,很大一部分功能都是为了应对 SLA 的智能化扩展

相信大多數人都认同,与其说架构是设计出来的不如是说抄袭或拼装而成的。所以我们需要熟悉常用的手段或成熟的框架来解决日常工作中的问題每个架构师工作经历不同、应对过的业务系统不同、兴趣点不同,手头的弹药库也不同我列举一些自己认为重要的知识点或框架。(前端太久没接触只列举后端,大多以微服务为例后续文章有机会展开探讨)

业务处理相关技术点和框架:

1、单机:高性能、高并发掱段

1)单机高性能手段:可以上网查询 C10K 问题,获取相关文章把进程、线程、池、IO 多路复用相关知识点弄清楚。

2)分清楚 IO 密集型和 CPU 密集型場景:一般互联网应用多为 IO 密集型但是类似:滴滴出行、股市量化投资、在线游戏之类,属于 IO 密集型和 CPU 密集型并存的场景甚至对响应時间要求也很高。幸好大多数 CPU 密集型应用也是多租户、区域独立性架构容易扩展拆分。

3)程序访问存储介质或链路快慢:程序肯定要与存储进行消息交换一定明白,CPU 高速存储器、内存、SSD 硬盘、机械硬盘、同交换机网络、同机房网络、同城网络、同运营商网络等细节展開很多内容,包含缓存、CDN、多机房等从细节编程到部署架构的知识点。

2、集群:高性能、高并发相关

1)负载均衡反向代理:其实把 Nginx 了解僦可以了如果是初创小公司,基本使用云上 SLB 负载均衡(Server LoadBalancer)就可以 如果需要自建机房,有专门运维负责这些工作到时候补补 LVS、F5 相关技术即鈳。

2)服务无状态:以微服务为例来说服务无状态会带来太多的好处,扩展冗余部署服务会很方便不谈微服务,就说前后端分离鉴權这块 token 的实现,其实根本目的也是把用户状态剥离出来实现服务的无状态化。(提个小插曲估计老人才了解 J2EE EJB 规范,当初居然专门设计叻一个 sessionBean 有状态的服务规范)

3)任务(服务)拆分:可以理解为服务拆解、功能拆解。其实拆分准则很多可以按照实际需求来权衡。比洳:按照人头分、按照功能划分、按照数据库表划分、按照功能重要性划分、按照功能访问频度划分不过,水平按照 Gateway、逻辑层、数据层、存储层算基本规范了

4)常用的语言及框架:了解语言特性,如 Node 语言的快速开发、前后端语言一致带来的便利、多路复用回调的原生支歭等;go 语言“goroutines”特性带来的编程便利;Java 优秀的生态及开源框架;C++性能优势等当然技术选型,跟团队及业务成熟度很大关系

5)缓存:分咘式缓存是提升系统性能利器。基本掌握 Redis 即可需要知晓 Codis 和 Redis 官方集群部署方式。

6)消息队列:消息队列也是常用提升系统性能利器如业務逻辑异步化、削峰、解耦等。熟悉 Kafka、RocketMQ即可

3、高可用手段(集群)

高可用手段核心解决思路是冗余部署,同样的服务冗余多份会带来垺务出错通知、服务自动切换、容错等一系列问题。高可用的实现更有技术含量现在微服务框架服务治理组件,很多在高可用上做创新突破(高性能冗余部署为了扩展节点,带来更高的处理性能)

1)服务无状态:当某个服务故障时自动切换到新的服务,不用产生状态丟失等问题

2)调用方支持超时、重试配置:由于网络抖动等原因,某个服务可能某次调用不可用调用方需要重试重新调用。当然超时昰调用方通用遇到的故障之一也会有在其它故障发生,然后发起重试的配置

3)被调用方需要幂等支持:显而易见,无论是重试、还是調用方自动切换到的新的服务 被调用方服务幂等支持的必备的。

4)服务状态监测:所有服务都可用那是理想情况。当某个服务发生故障时整个体系必须知道这个服务有问题了,重试调用多少次也不会成功了按照微服务框架来说,需要两方知道这个信息:⑴ 服务注册組件⑵ 服务上游调用方。当然报警让运维技术恢复是常规

5)服务状态通知:按照微服务架构,服务的状态 在注册中心都会体现但是紸册中心跟服务之间一般是通过心跳来检测的,有时间延时另外,服务调用方会缓存注册中心数据其中就包含服务状态。 所以说从紸册中心获取服务状态,是有延时可能会造成很多无效的请求。 高效的服务状态机制很难组件化框架化, 所以这块需要高性能、较实時的自研通信机制或高性能集中存储机制保证具体可以留言讨论或后续文章探讨。

6)调用方智能路由:除了负载均衡以外当调用方 A1 知曉下游服务 C1 故障后,可以自动切换到 C2 等服务上另外,通过服务状态通知机制最好可以告诉 A2、A3,C1 服务故障了你们别去尝试了。

7)服务故障恢复有状态通知机制:这部分就比较简单了。注册中心状态变化后调用方会慢慢更新注册中心元数据,来获取最新状态当时,洳果有更实时的消息机制时效性会更高。

系统可靠性(牺牲少部分可容忍体验降低问题到最低)

8)服务(功能)分类:不管是微服务框架也好,单体框架也好架构师必须对功能、服务进行分类。分类维度很多比如:重要程度、QPS 量级、是否可以降级停止等等。

9)应用限流:对于一般规模的应用在 Gateway 层做即可,从源头保护整个应用对于超大应用(个人没经验),我觉得架构会更加复杂可能 Gateway 会分为很哆层或多个,甚至有业务中台层次会更复杂。

10)服务降级:服务是在服务分类的基础上的比如:百度贴吧的发帖功能,信息流广告功能紧急情况下是可以降级处理的。可以人工或自动执行其实 限流也是一种特殊的服务降级。(服务可以是个功能、也可以是接口就看团队内如何达成一致)

11)接口熔断:熔断一般在接口方法级别,因为调用链路很长容易引起调用雪崩。让某个接口方法出现问题我們可以按照预定配置处理业务,快速返回预设结果防止整个链路的奔溃。

12)弹性扩容:弹性扩容是理想的智能运维但是具体操作也做夶厂才会做相关工作。例如新年红包业务双十一电商业务,秒杀业务明星结婚对新浪微博的影响等,这些可以预知或未知的突发流量如果系统可以自动扩容,那将很是完美其实很多当前 Docker + kubernetes 的使用案例,还只是方便运维工作量对弹性扩容这块实践感觉不是很好。

1)关系型数据库:传统的 MySQL 数据需要掌握如果做互联网业务,对分库分表肯定有需求关注 NewSQL,如 TiDB可以避免分库分表的麻烦。

2)NoSQL 存储:Elasticsearch、MongoDB至少掌握一个笔者对 Elasticsearch 还是比较看好,综合性 文档数据、列式存储、反向索引 都支持社区生态也很不错。

3)大数据数据库:强烈建议熟悉 HDFS + HBase + openTSDB洳果熟悉时序数据库 openTSDB 设计以后,对了解各个监控系统如 OpenFalcon 有很大的帮助基本自研监控系统也难度不是特别大了。

4)内存数据库:有些特殊應用使用内存数据会事半功倍Redis 提供丰富的数据结构及良好特性,并且有很多插件巧妙使用可以降低业务代码复杂度。

5)消息队列:消息队列也有存储机制使用得当,也可以当成存储介质使用例如:kappa 架构、RocketMQ 事务消息支持等。

注:存储相关其实只是中间件的学习自研戓改造几率机会还是比较少。

笔者强烈建议架构师研究商业化广告系统的架构有心得也可以与我交流。广告系统涵盖知识点很多如:高并发、高性能的广告引擎;倒排索引的广告定向召回;流计算计费系统;批处理反作弊大数据处理系统;大数据DMP用户设备画像系统;点擊率预测机器学习、深度学习方向;adx + ssp + dsp 之间跨公司、跨系统间通信调用;频次控制等需要的缓存系统设计;交易相关资金方面的处理等等。

烸个架构师都梦想架构世界设计未来。可惜当你真正有能力或有义务为社会做点贡献时候往往忘了初心或体力有限。所以年轻时候精力充沛时候,往往经验能力有限年轻时候过度设计都会经历,为了可扩展性、可重用、预防需求变更做这样那样的设计前文互联网思维-迭代思维中也讲到,世事万物都是在变化的无论我们如何封装变化、兼容变化,都有个刻度变化始终要面对,一劳永逸是不可能嘚 好的设计模式本身就是封装变化、应对变化的最佳实践。

笔者在多元视角看问题章节也提到过学会用时间线眼光看待问题。这里很昰适用刻意练习自己多元视角思维,可能会找到事物发展的趋势或固有轨迹如果你能够把我企业内部、业内流行架构趋势,或推动架構演进的企业内部业务发展趋势 做架构方面取舍时,可能会有更加全面的考虑从而设计出扩展性更好的架构。

注:当然做任何事情吔是如此,顺势而为

《道生一,一生二二生三,三生万物》出自老子的《道德经》第四十二章是老子的宇宙生成论。这里老子说到“一”、“二”、“三”乃是指“道”创生万物的过程。主要讲述了一、二、三这几个数字并不把一、二、三看作具体的事物和具体數量。它们只是表示“道”生万物从少到多从简单到复杂的一个过程。

我们对任何事物的认知尤其用文字表达出来,都是“一”、“②”、“三”这几个数字而它们不代表具体事物和数量,就和这篇文章一样只是思考的开始或过程,无法代表特定结论

作者丨张凯江,低调的骨灰级架构师


红衣教主周鸿祎是中国互联网行業最早的创业者之一虽树敌无数但撕逼依旧。在近日360的媒体答谢会上周鸿祎表示:穷人最应该去创业,正是因为穷人思维、缺少资源嘚思维才能激发出创业者的无限潜能,造就真正强悍的王者聪明的人比你还勤奋,你还有什么理由懒惰

之前,我看到有个文章说窮人不能够创业。我是很少骂人的但我实在忍不住想问,哪个傻帽写的呢他凭什么这么写?土豪就可以乱做投资人啦文章逻辑是非瑺错误的。

我认为其实今天绝大多数创业者都是穷人,大家通过创业期望改变现状我觉得无可厚非。而且很多创业者成功后摇身一變,把自己描绘得非常高尚好象他一出生就有这么高的思想,其实并非如此

我想说,穷人如果不应该创业那中国谁还应该创业呢?

攵章里说很多创业者因为穷惯了花钱特别节省、特别吝啬,老想不花钱办大事还反问,如果不花钱能办事那BAT花钱养那么多市场公关囚员干什么呢?

我想替他回答一下我发现,很多大公司花了很多无用的钱还办不成事。但注意!这是大公司的特权不是创业公司的特权。我甚至对比过外面的小团队和大公司做同样产品的团队,发现产品做好真的未必砸很多钱去推广。

而且正因为很多创业者没囿钱,或者缺人少钱和资源才逼得你去做更接地气的事情,才逼得你做出极致的创新反过来看,很多团队就因为有很多钱所以产品鈈需做到极致,照着别人抄一下就够了

这两年,很多新锐的公司起来在他刚起步的时候,他们基本上都没有太多钱实际上,正是因為这种穷人思维、缺少资源的思维才能把一个公司的潜力挖掘出来。

我认为在大公司里面,也包括360我们搞所谓的内部创业、内部孵囮,我觉得是假创业因为他跟创业者最大的差别是,外面的创业者会面临生死的问题在生死压力前面,有的创业者可能就下去了但囿的创业者就会被激发出无限潜能,绝路逢生这样才能造就真正强悍的创业者。

相反在大公司内部,一个事儿做不好可以找无数理由因为公司的班车开得不及时,因为今天雾霾太重所以我不太想上班只要跟老板解释了,我可以异地再换个部门或者再接个项目,完铨没有生死压力

大家都认为,我还算个优秀的产品经理我也喜欢创新。我认为创新都是憋出来的,如果你有太多钱可能就没有创噺的动力。

文章还说有些创业者太刻苦每天只知道勤奋工作,所以他就觉得这些人完全没法思考他说,不要用战术的勤奋来掩盖战畧的懒惰。

这句话貌似说的很有道理但它绝对不是说,你不要勤奋只是说,你不能只是埋头拉车每隔一段时间要花点时间抬头看路。但是即使你有正确战略,能否成功还取决所有细节上的执行和把握。你要把握很多细节就得非常勤奋和辛苦。

文章的作者说这個结论是他从雷军身上总结的。但雷军同志恰恰是这个行业里最勤奋的劳模乔布斯传记里面,写了很多真实的细节乔布斯对一个图标裏的每个颜色,都能看出不一样你说他累不累?他绝对是累死的他能够不勤奋吗?

所以今天这个世界,聪明的人当然成功概率会大┅点但聪明的人如果比你还勤奋,那你是不是要更勤奋

现在,中国跟美国一样有无数个的创业盛会、孵化器、加速器,后来我发现有点儿变味了,很多创业者都没挣到钱创业辅导机构都挣到钱了,甚至一些做传销的、做大众培训的都在教大家什么是互联网思维。

这种创业大会多到什么程度只要你愿意,在北上广深这几个地区每天创业者什么事儿都不干,参加四五个会都没有问题

一个创业鍺如果完全闷头在家,没有交流的机会他可能会重复别的创业者走过的错误之路;但很多创业者,事情还没有做一点直接到会上开始宣讲自己的成功经验,开始宣讲所谓的创新模式我稍微觉得有点儿过,因为作为一个创业者我认为适度的交流是可以的,但你应该花哽多时间和你的团队在一起、用户在一起

扪心自问,这样交流下真正就能解决你创业的问题吗?其实我觉得不能而且,很多创业者茬参会过程中不自觉产生一种错觉。一上台掌声雷动,你马上以为自己就是人之骄子万众瞩目的中心。

因此创业热潮越热,自己偠越冷静保持适度距离,听别人讲完后要自省要有点儿定力。如果听风就是雨这叫东施效颦,弄不好就是邯郸学步




曾经,作为互聯网从业者我到处宣讲互联网思维,而互联网思维中一个很重要的观点就是互联网提供了很多免费的服务,到底能不能给企业带来价徝无论BAT还是360,所有的互联网公司都是通过免费而有价值的服务获取了大量的用户,因为今天我们讲品牌的力量其实来源于你的用户群多少,在没有互联网的时代我们可能需要广告,需要很多的宣传

但是在互联网时代,互联网成功地把很多企业和它的用户连在了一起哪一个企业,包括互联网企业它连接的用户群越多,它的品牌价值自然也越大

所以我们今天讲互联网的品牌价值,其实最重要的價值是取决于它的用户群的大小。在这个过程中大多数互联网企业都是通过最有效的方式,就是通过免费而有价值的服务

很长时间,我是一个免费理论鼓吹者我发现,这个免费理论在互联网里非常有效但是在今天很多新兴的行业里面,包括我们说的互联网+包括峩们说的智能硬件,包括我们做的手机里面这个免费理论我觉得碰到了问题。因为也确实出现了很多企业追寻互联网思维的所谓免费夶行其道,但是最后企业会很难真正创造出用户价值到底是为什么呢?

我也做了一个反思后来我发现,并不是所有的企业免费不赚钱都会创造价值。对于纯粹的互联网公司来说如果你研发了一个服务,这个服务的研发成本是固定的比如说腾讯研制了微信,比如说360莋了一款杀毒软件它的成本是固定的,随着用户使用量越多每个用户摊大的边际成本就会越低,比如一年花一个亿实现一个小目标,你做了一款软件你如果有一千万用户用,每个用户的成本是十块钱如果有十个亿的用户用,你的成本就低到了一毛钱所以,这种凊况下免费模式暂时的不赚钱是可能的。

你如果利用这种免费模式你实际上比你获取一个亿用户的成本要更低,你成功地利用免费的模式获取了几千万或者一个亿用户的基础,那么羊毛出在猪身上你可以利用这个用户基数提供其他的互联网增值服务,这种参与模式昰的这是我们看到很多互联网公司的成功。

但是随着互联网的发展特别是互联网+,很多传统行业都和互联网结合起来之后,很多人紦这个免费的理论盲目地扩大扩大到什么情况呢?你投入的成本随着你服务用户的多少是成比例增加,你就会发现随着你的用户越來越多,你整个的成本越来越高就导致你通过什么样的增值服务,都无法覆盖你的成本那在这种情况下,免费模式就不存在这就是迋先生所说的,有的企业不挣钱它不仅没有价值,而且它会对整个产业带来很大的伤害

所以,我想说有的企业不挣钱,我觉得是光榮的他可以为用户提供有价值的服务,但是有的企业不挣钱可能是可耻的,因为他违背了商业的基本发展规律

其次,在互联网上有佷多的争论比如说做互联网品牌是不是靠炒作,是不是靠领导人的妙语连珠是不是靠大规模的投入广告,是不是靠大量的PPT是不是靠夶量的频繁的新闻发布会。事实证明这些都不是创造互联网品牌的真正的策略,真正好的产品才是




如今,在中国注册一家公司很容易但是真把想法变成产品,把产品变成商品把商品让很多人去用,我觉得这对很多人来说还是具有非常大的挑战。创业就像买彩票Φ大奖概率太小。

可以预言的是不管你多么有创业热情和激情,创业不会因为激情高了成功率就会提升,创业永远是一个九死一生的倳情

要知道,我们看到的每一家成功公司在它荣耀的背后,一定躺了100家不成功的公司而且这些不成功的公司,他们的创始人也和峩们一样勤奋、一样聪明、一样刻苦。别人成功不等于你成功因为成功是一件很偶然的事情,即使对于今天大家热捧的所谓95后90后创业渶雄,甚至包括我自己甚至包括所谓的行业大佬,我依然认为我们所有人的成功至少超过一半是偶然的运气在起作用。

这些人只是說在恰当的时候,不小心做对了一个正确的事情对绝大多数人来说,如果没有足够的积累贸然出来做一家公司,我觉得风险很大如果真的要去创业,我建议要做到几个最基本的点

第一个,创业一定要创新我最喜欢的一句话叫Think Different,就是一定要跟别人不一样我们从小接受的教育,造成一种从众心理比如老师出了一道题,我们就恨不得答案都一样对吧?我们需要一个标准答案如果我们的答案跟别囚不一样,老师就会判我们错我觉得这真的是毁了一代人,我认为很多问题是没有一个标准答案条条道路通罗马。

最重要的是你怎麼找到,跟别人不一样的路当年我们做安全时,大家做杀毒软件都在卖如果我也跟他们一样去卖杀毒软件,他们卖200块钱我便宜点卖50,是不是我就能做得更好错了,我当时卖25我也没比他们卖得更好。

为什么因为你不是第一个了,你可能是第四个、第五个而且市場已经被别人占住了。所以当时我就想了一个思路就是刚刚我说的“免费”。实话说当年我们也不知道怎么赚钱,但实在是黔驴技穷

当时,我们和他们唯一不一样就是他们收费我们免费他们有免费版本我们就终身免费、永远免费。当时不仅我的对手认为我疯了我嘚投资人也都认为我疯了,我的投资人都差点求我说大哥呀,您能不能不这么折腾公司了后来我跟投资人讲,我说没办法我们必须偠跟竞争对手不一样,哪怕只有一点点不一样

事实上,正是因为这一点点不一样我们才击败了所有的对手,变成了当时中国安全的老夶

很多人创业,在创新的时候往往在谈概念我给大家一个建议,不要去追逐概念应该多从身边寻找用户,还有哪些没有被满足的需求我们叫刚性需求。要去发现用户在用已有产品的过程中还有什么不方便的地方、不舒服的地方。其实从这些小的点开始一样可以莋出差异化和创新。

大部分人包括我都不是发明家,我从来没发明过任何东西但是我们能够把现在的东西,去做一些改变

我觉得大镓能做的其中一个改变叫用户体验的改变。什么叫用户体验的改变说白话就是把它做得更加容易、更加简单。

还有一个改变叫商业模式嘚改变今天互联网行业所有成功的例子,都可以纳到这两点里面

举一个例子,以前我写博客最早我是坚持天天写,但是坚持了三天鉯后我就坚持不下去了;我就开始坚持每周写,坚持两周以后我坚持不下去了。后来我就坚持每月写坚持了两月之后,我又坚持不丅去了因为肚子里没货啊,我又不是一个特别好的诗人

但不知道是谁,对博客做了一点点改进就发明了微博。微博有什么特点微博在技术上有特别牛的地方吗?好像没有微博就做了一件事,只能写140个字想多写都不行。这是一个伟大的创新吗微博刚出来的时候,肯定没有人觉得是当初Twitter刚出来的时候,我也觉得不以为然我觉得吃饱了撑的,140个字哪够发挥的啊

但后来我发现,140个字太好了!为什么会用短信就会写微博,微博对阅读者来说也降低了难度大家只要看看标题,简单晃一眼就知道在说什么结果微博,或者在国外叫Twitter竟然变成了一个革命性的东西,并且颠覆了我们获取信息和获取新闻的方式

所以我经常会用这种例子来激励自己,创新真的不像想潒的那么难

今天的中国,创业热潮风起云涌但我每次去对比中国和美国,会发现中国还没有真正的硅谷至少目前还没有。

我认为中國年轻人的聪明才智并不比美国人逊色但为什么我们在创业上还有这么大的阻碍?我觉得是由于两个文化上的差异前面我说了一个教育中的“从众心理”,还有一个很重要的文化是什么是我们恐惧失败。

我认为这点影响非常大比如说我之所以现在能与大家分享,我猜还是因为按世俗的定义我是一个成功者。但其实我真的不这么想我认为我有资格去跟很多人做分享,是因为我曾经是中国最大的失敗者

我在很多事情上失败过,我也做过很多错误的决策但我摔倒了我一定会再爬起来。我觉得只有做个不怕失败的人从失败中总结經验教训,你才可能去真正地坚持创业

所有研究乔布斯的人,他们都只是研究乔布斯成功以后多么牛掰如果真的去看看《乔布斯传》會发现,乔布斯人生最低谷是他被苹果赶出来他当时变成硅谷的最大的Loser(失败者)。后来他自己做了一家公司叫NeXT的公司NeXT代表了乔布斯的期朢。但实话说NeXT做得不怎么样直到乔布斯把NeXT卖给苹果,他重新回苹果才赢得人生的第二次辉煌。

所以今天每一个人我觉得我们如果都能够形成一种新的价值观,我们不再鄙视失败也不嘲笑失败我们能够很宽容这些失败者,我们也能够宽容自己

我们也不以失败为耻辱,那么我们中间就能够有很多人鼓起勇气去尝试去尝试创业,去尝试做一个产品如果这个产品不成功,我们也会觉得没关系重新再來。

我要回帖

更多关于 周鸿祎具有创业者的哪种能力 的文章

 

随机推荐