基本信息
- 原书名:The Art of Scalability:Scalable Web Architecture, Processes,and Organizations for the Modern Enterprise
- 原出版社: Addison-Wesley Professional
- 作者: (美)Martin L. Abbott Michael T. Fisher
- 译者: 张欣
- 丛书名: 图灵程序设计丛书
- 出版社:人民邮电出版社
- ISBN:9787115301727
- 上架时间:2013-1-10
- 出版日期:2013 年1月
- 开本:16开
- 页码:387
- 版次:1-1
- 所属分类:计算机 > 计算机网络 > Web Server > 综合
内容简介
作译者
Michael T. Fisher 扩展咨询公司AKF Partners的创始合伙人之一。他曾在Quigo担任了两年的CTO,在Quigo被AOL收购后的过渡期,还担任过这家公司的总裁。在Quigo之前,他是PayPal公司(eBay旗下公司之一)的开发和架构副总裁,负责建立一个有两百多位工程师的组织。更早之前,他在通用电气工作过七年,致力于开发公司的技术战略和流程。在西点军校取得了计算机科学的学士学位后,他在夏威夷太平洋大学取得了硕士学位,后在肯尼迪西部大学取得了信息管理系统的博士学位,在美国凯斯西储大学获得了MBA。此外,他还是六西格玛黑带大师,现正在美国凯斯西储大学攻读管理学的博士学位。
目录
导言 1
第一部分 可扩展组织的人员配备
第1章 人员和领导力对可扩展性的影响 6
1.1 AllScale简介 6
1.2 为什么要考虑人员 7
1.3 为什么要考虑组织 8
1.4 为什么要考虑管理和领导力 12
1.5 结论 14
本章要点 14
第2章 可扩展技术组织中的角色 15
2.1 失败的后果 15
2.2 角色的定义 16
2.3 执行主管的职责 17
2.3.1 CEO 18
2.3.2 CFO 19
2.3.3 业务单元责任人和P&L责任人 19
2.3.4 CTO/CIO 19
2.4 组织的职责 20
2.4.1 架构团队的职责 21
前言
我们关于扩展的经验是从学术研究中无法获得的。虽然我们都是经过正规培训的工程师,但我们都认为,学术课程并没有很好地教给我们关于可扩展性的课题。而且我们所学到的可扩展性的知识,都是从三十多年扩展系统的惨痛经历中获得的。我们做过创业公司的工程师、经理、执行主管和顾问,也在世界五百强的企业中担任过这些职务。这些公司包括大家耳熟能详的通用电气、摩托罗拉、Gateway、eBay和PayPal。此外还有几百家不太知名的创业公司,随着它们的发展壮大,它们也需要扩展。通过几千小时的问题诊断,以及更长时间对预防这些问题的设计,我们获得了很多关于扩展的经验教训,因此我们想和大家分享这些综合性的知识。这就是2007年我们成立AKF Partners开始提供咨询服务的动机,也是后来我们撰写这本书的动机。
可扩展性:不仅仅是技术问题
飞行员都知道,统计数字表明许多飞机事故都是许多小故障像滚雪球一样累积起来而导致的系统故障或灾难。在航空界,这一连串的小故障被称为错误链,它们的起因通常是人为失误,而不是机械故障。事实上,波音公司证实,在1995年到2005年间,在波音公司制造的飞机发生的事故中,有55%是人为因素造成的。
根据我们的经验,与扩展相关的问题具有相似的趋势。负责技术平台扩展的CTO或执行主管可能会把可扩展性单纯看作是个技术问题。这就是错误链中的第一个失误,也是人为的失误。由此导致缺乏一个流程来识别,是否需要把一个数据库拆分成多个数据库,这就是失误二。当用户量或交易量超过一定数量时,整个产品就会出故障,这是失误三。为了解决问题,会成立一个团队,但由于从来没有排查这种故障的流程,所以该团队可能会把该故障的原因误判为数据库需要调优,这是失误四。这种恶性循环会持续几天,人们茫无头绪,折腾于技术的各个层面,把责任归咎于防火墙、应用、数据库,诸如此类,甚至还互相指责。最终的结果是,客户拂袖而去,团队成员士气一落千丈,而股东要独自承担责任。
这里要说的重点在于,不能根据最终用户的需求进行扩展而造成的危机绝非只是一个技术问题。根据我们作为业务和技术主管以及顾问的经验,可扩展性问题都是源于组织和人员,而后才会蔓延到流程和技术方面。人难免会犯错,但在技术实施上作出了错误选择可能最终会导致整个技术平台无法进行扩展。人们会忽略一些流程的制定,虽然这些流程其实可以帮助他们从过去的错误中吸取经验教训,而又有时人们会采用一些过于繁琐的流程,这也可能导致组织做出一些错误的决策,或者决定得太晚而没什么作用。在做出技术决策的过程中,人是决策者,流程则提供支持。如果没有注意到这两方面,无疑会导致错误决策的恶性循环,如图0.1左边所示。本书在同类书中第一个提出要创造一个良性循环,其中人员和流程的可扩展性可以支持更快地做出更好的、具有更大可扩展性的技术决策,如图0.1右边所示。
图0.1恶性技术循环和良性技术循环
艺术,还是科学
在书名中选用“艺术”一词,我们是经过深思熟虑的。这样除了很好地切合主题外,还可以让我们在书中融入一些《孙子兵法》(The Art of War)的教诲。韦氏词典中给“艺术”的定义是“一个学术分支”。 该词典还给出了这个词的其他定义,即“通过经验、学习和观察得到的技能”以及“一种需要知识和技能的职业”。而这些恰好描述了扩展平台、流程和组织时的本质。但促使我们选择“艺术”一词更重要的原因是,这个词带给我们的意象比“科学”一词所带来的更具有流动性,而后者带来的意象更加结构化,更趋于静态。这正是我们的书名所仰赖的意象,因为经验告诉我们,没有任何一种方式或方法可以确保把平台、组织或流程扩展到一个完全合适的水平。而且任何特定的或高度结构化的方法的选取,都会深刻地受平台、组织以及流程之间互动的影响。选取的扩展方法必须适应这个由当前的技术平台、组织的特性以及现有流程的成熟度和适合程度构成的生态系统。为了与选用的“艺术”一词保持一致,本书主要是提供技巧和教训,而不是教给读者一个能够解决任何需求的普适的方法。
当然,这并非表示对于任何方法,我们都反对应用科学的方法。在这里,选用“艺术”一词只是表明我们赞同一种认识,即不要奢望以千篇一律的方法去解决问题而能取得成功。
谁需要可扩展性
任何持续发展的公司,最终都需要考虑如何扩展它的系统、组织和流程。虽然本书的重点是以Web为核心的系统,但我们这样做,只是因为许多史无前例的快速增长的实例都来自于像Google、Yahoo!、eBay、Amazon、Facebook这样的Internet公司。但其实在Internet出现之前,已经有许多其他的公司遭遇过这种自身无法扩展而无法满足新需求的问题(即缺乏可扩展性)。从航空公司、国防承包商到银行和配置设备(数据中心)供应商,扩展问题都制约着它们的发展。我们敢断言,自从银行业崩溃后,在任何一个银行并购过程中,它们都会为可扩展性煞费苦心。
本书中介绍的模型和方法并不局限于某个行业,它们经过我们那个时代发展最快的公司发展、测试并证实是有效的。它们不仅适用于面向客户的前端交易系统,还适用于后端的商业智能、企业资源规划和客户关系管理系统。它们并不评判某个具体活动,而是提供一种思路,指导如何划分系统、组织和流程,使之具备高可扩展性并达到适当的扩展水平,使之在业务运营时无需担心客户量或最终用户量。
本书的组织结构
我们把本书分成四个部分。第一部分,可扩展组织的人员配备,重点在于组织、管理和领导力。经理和主管的升迁往往是基于其在专业领域中的才能。例如,提拔工程主管和经理时,看重的是他们的技术敏锐度,往往并不会给他们时间和资源去提升其业务、管理和领导力敏锐度。虽然他们可能擅长扩展的架构设计或技术,但他们在组织的扩展需求方面则可能知之甚少,或者一无所知。我们的目的,是给这些经理和主管提供一些基础知识,帮助他们成长为成功的经理人。
第二部分,制定扩展流程,重点介绍超高速发展的企业扩展技术平台所需的流程。这一主题的范围涵盖了技术问题的处理以及危机处理。此外,我们还讨论了做出架构决策所需的流程以及一些帮助公司扩展其平台的原则。
第三部分,构建可扩展的方案,重点介绍扩展的技术和架构。我们通过AKF Partners的顾问和咨询实践,开发出了一套专有的模型,在这一部分中,我们引入了这些模型。它们可以帮助组织考虑清楚自身的扩展需求和替代方案。
第四部分,解决其他的问题和挑战,讨论了新兴的技术,如网格计算和云计算。此外,还讨论了一些超高速发展的公司会面对的特有问题,如数据量及其维护成本的剧增,又如在规划数据中心的时候,应该考虑哪些问题,以及如何提高监控策略,以便更接近客户。
本书提供的经验教训既不是在实验室中设计出来的,也不是基于未经过实践检验的理论。相反地,它们都是那些为了追求理想、事业而艰苦奋斗了多年的工程师、技术主管和组织设计并实践过的。本书的两位作者有幸成为这些团队中的一员,参与过多种角色,有时是积极的参与者,有时则是观察者。我们见证了把这些经验教训付诸实践能够产生多么大的成功,也见证了不能实现它们或者不愿意实现它们时所导致的失败。本书教给你这些经验教训,希望能够引导你的团队走上成功的道路。我们相信,这些经验教训对于不同层级和不同职能的人员,无论是个人贡献者还是CEO,无论是技术人员还是产品人员,都是非常有参考价值的。
序言
这正是为什么你需要读《可扩展的艺术》这本书的原因。
两位作者无疑是我们这个信息时代最聪明的人之一,他们一起同我们分享了如何提供最大性能的知识和经验,其精确和详细程度是以他们在西点军校所接受的教育为标准的。Martin Abbott和Michael Fisher与一些最具挑战性的企业架构作过斗争,而且百战百胜。他们的成功创造了我们这个时代最伟大的一些商业案例。从强大的eBay到较小型的Quigo,还有其他数不清的公司,这对合作伙伴打造的持续不断的可靠性为创造数以亿计的股东价值作出了巨大的贡献。在数字时代,一个公司如果没有完备的技术运营支持,是无法运作的。事实上,即使Web架构是好的,但如果不能扩展,对于一家公司的成败,也会带来天壤之别。然而,在以纳秒计时的世界中,问题就在于通往这种成功的道路并不明晰。我们的作者们在这本书中为我们拨开了扩展的迷雾,帮助我们看清了哪些是有效的做法,如何才能实现成功。
在这本书中,我们能够学到技术运营的方方面面。这是非常有价值的,因为没有坚实的基础就难以打造上层建筑。在我评估一个公司是否值得投资时,我要考虑的不仅是它的产品,更重要的是要深入评估它的人员和流程,这才是它的基础。这也正是本书的杰出之处。在这一类书中,这是第一本研究管理和领导技能在实现扩展方面的影响力的书。当系统发生故障了,公司运营正在逐渐崩溃时,许多人会迅速地把硬件和软件问题看作根本原因,但更加客观的评估却总是表明,人们所做的决策才是隐藏的罪魁祸首。本书的作者们了解这一点,也帮助我们认识到了这一点。他们的见地会帮助你打造出能在困难面前屹立不倒的公司。在大多数领域中,长期的成功都是靠仔细地规划和认真地执行规划带来的,对于当今这种超级复杂的网络和数据库来说,这一点当然适用。本书将带你领略在最具挑战性的环境中正确地思考和成功所必需的步骤。
在许多顶级的公司中,Martin和Michael都参与过后台指挥和前线战斗。这两位都是精英中的精英。他们在本书中,为打造一个能够经得起时间检验的一流架构,提供了逐步的说明。本书的编写方式,不仅能提供任何技术团队所需的技术粒度细节,还能做为那些渴望成功的执行主管们提供一站式的入门读物或者桌面参考手册。对于一个要致胜的公司来说,本书绝对是必读的。
Bob Davis
Highland Capital Partners执行合伙人,Lycos创始人和前CEO
媒体评论
——Marty Cagan,Silicon Valley Product Group创始人
书摘
斗众如斗寡,形名是也。
——《孙子兵法·势篇》
人员、组织架构、管理和领导力都对组织和流程的可扩展性有影响,进而对产品、平台以及系统的可扩展性也有影响。它们是你所从事的工作的中心,是扩展公司和平台需要做的所有事情的核心。然而在尝试扩展大型系统时,我们常常会忽略它们。我们的人员常常被忽视,得不到充分的重视;组织架构只不过是HR编写ppt中的一项常规练习,每年修改一次;我们的经理或领导者在执行自己的职责时,不是没有经过培训,就是培训不足。在这一章中,我们要解释为什么组织的人员、组织架构和组织中的管理及领导力会对产品、平台或服务的扩展产生巨大的影响。
1.1AllScale简介
在本书中,我们都会引用一个虚构的公司AllScale。最初,AllScale是一个定制软件开发公司,根据项目的工时外包开发人员。久而久之,这家公司开始对一些特殊定制开发的项目进行投标,这些项目主要开发的是后台办公信息系统和基于Web的SaaS平台。随着公司日益成熟,它开始开发一些内部使用的工具,然后采用SaaS模式,把这些工具作为服务销售给其他公司。
AllScale最有吸引力的工具是人力资源管理(HRM)系统。这个工具可以对一个员工的生命周期进行管理,记录了从招聘到终止聘用的所有信息。招聘流程是自动化的,具有在线简历系统,还有描述每个应聘者状态的工作流以及面试流程中的评价。当一名员工被聘用后,所有的公司培训资料都是通过该系统在线提供的。员工的评审也是通过该系统执行的,且保留有记录。相关的绩效奖励、一对一会议的记录、以前从事的工作以及业绩信息都会保存在该系统中。当员工辞职、被辞退或者退休时,离职谈话的记录也会被保留在该系统中。
AllScale是家私营企业,一家风险投资(VC)公司在经过第二轮投资后持有它51%的股份。当初在AllScale开始打造SaaS产品后,这家风险投资公司看到了AllScale的HRM软件开始迅速地占领市场,于是决定进行最初的投资,并参与了两轮投资。
AllScale是我们把咨询工作的经验以及在世界500强公司和创业公司中运行IT组织的经验凝聚在一起的产物。我们决定以这个假想的公司为背景,把人员、流程和技术的问题串联在一起形成一个剧本。AllScale从一个外包商发展为提供多种SaaS的开发者,也可以让我们看到一些特有的难题以及管理团队的成员是如何克服它们的。
1.2为什么要考虑人员
在导言中,我们说过,无论要扩展什么,人员都非常重要。当用户需求量大且公司在超高速发展,需要扩展负责交易处理的技术平台时,人员显得尤为重要。
这里我们可以断言,人员是扩展最重要的方面。首先,没有人员,就根本不可能开发出需要扩展的系统(至少在《太空漫游》中的HAL 9000变成现实之前,是如此的)。没有人员,谁来设计和实现你的系统?谁运行它?可以说,只有人才能造成成败之别,而系统已经扩展到了什么程度以及还需要扩展到什么程度,都是由这些成功或失败引发的。是人员设计了系统的架构,编写或选择了软件,部署了软件的有效负载,配置了服务器、数据库、防火墙、路由器以及其他设备。是人员进行了权衡,决定哪些技术能够轻松地进行水平扩展,而哪些不能。是人员设计了(或者没有设计)各种流程,用以识别早期的扩展需求,探究与扩展相关的可用性故障的根本原因,解决与扩展相关的问题,报告与扩展相关的需求、方案以及商业回报。没有人员,就不会启动任何方案。没有人员,就不会犯错。是人,是人,还是人……
所有成功构建的可扩展系统,都有一个核心,即一组优秀的员工,他们进行着各种正确的决策,当然偶尔也会作出一些错误的选择。不把人员看作核心,不把人员看作扩展任何事物的关键因素,这种想法是极大的错误,会让你误入歧途,至少会让你实现自己的目标变得非常困难。
由于人员是所有具有高可扩展性的组织、流程和系统的核心,那么当然要尽可能地吸引和留住最好的人才了。我们在第5章中会提到,这并不只是用你愿意支付的薪酬找到技能最好的、正确的人,而且是要确保在正确的时间以正确的行为把正确的人放在了正确的位置上。
在投资AllScale的风险投资公司的合伙人中有这样一个说法,“鱼是从头开始腐烂的”。虽然这家风险投资公司在AllScale董事会的代表以及董事会中的其他成员都认为,当前的CEO兼创始人在扩展公司和发现HRM的市场机会方面做得很好,但他们也都知道,要成功经营一家SaaS公司所需的能力与成功经营和扩展一家咨询公司所需的并不完全相同。当AllScale在HRM市场中经过几个季度的迅猛增长后,董事会开始担心增长滞缓、达不到目标以及偏离HRM产品这个关注点等问题。于是董事会引入了一位具有丰富SaaS经验的新CEO克里斯蒂娜·奥伯曼,而前CEO兼创始人则转任首席战略官。克里斯蒂娜承诺会引入和留住最好的人才,重组公司架构以便公司在当前和将来能成功地提供产品,并同时提升公司的管理和领导力以增加和最大化股东的财富。
所谓正确的人,指的是这个人是不是有正确的知识、技能和能力。在正确的时间把这个人放在正确的岗位上,可以确保他或她能够在那个岗位上取得成功,创造尽可能多的股东利益,同时也能照顾到他或她的职业生涯,让他们在工作中感到满足和舒适。所谓正确的行为,指的是要确保这个人和其他人能够融洽地相处,并且遵守企业文化和价值观。就像所需技能不足一样,行为不当,也是把一个人开除出团队的正当理由,因为任何团队成员的行为不当,都会造成一个恶性循环,使团队的士气和生产力直线下降。
1.3为什么要考虑组织
人员对系统的可扩展性非常重要,同理,他们的组织架构也很重要。如果你认为这不是显而易见,那么我们可以指出几点,说明组织架构和责任是如何对扩展系统的能力产生正面或负面影响的。
在考虑与扩展或其他情境相联系的组织架构设计时,有一个重要的概念需要牢记,即没有一个组织架构是完全正确的,也没有一个组织架构是完全错误的。重申一次,这是艺术,而不是科学。任何组织架构,相对于你想达到的目标来说,都有它的优点和缺点,或者说优势和劣势。在面对构建组织的诸多选择时,梳理出各自相对于你的特定需求来说有哪些隐藏的或明确的优势和劣势,这点非常重要。
在设计组织架构时,你需要问自己一些问题。