2020年3月24日第18卷第1期许多工程项目既大又复杂。他们需要融入现有的环境,与新的、巨大的、复杂的事物之前的东西捆绑在一起。人们经常哀叹处理既有的东西所面临的挑战。很多时候,工程师没有意识到他们的项目(和他们的薪水)之所以存在,仅仅是因为预先存在的复杂系统对新工作施加了限制。
本专栏着眼于一些复杂的城市重建项目,这些项目是旧金山日常生活的一部分,并将它们与构建软件所固有的挑战进行了比较。
它非常平坦。你可以以一致的方式按规则间隔布置地铁站。没有令人讨厌的历史纪念碑挡住了去路。没有大教堂,也没有市政中心。
不幸的是,玉米地里没有乘客,也没有经济理由在那里建地铁。这导致了一个先有鸡还是先有蛋的问题。你不能轻易在拥挤的地方建设基础设施,在不拥挤的地方建设基础设施也负担不起。
我喜欢说有两种软件公司:一种是从构建可扩展的基础设施起步的,另一种是已经投入运营的。
这意味着成功的公司将投资发展其基础设施,以增强可扩展性。这很难。
城市规划很吸引人。城市的变化以及土地使用和基础设施的变动都存在资金问题。一般说来,决定老住户必须离开,并以应该是公平的市场价格买断他们的股份。该地区规划了重要的便利设施,如公园、转运中心等。有了现在空置的土地和承诺的高档设施,开发商可以购买地块,为写字楼、酒店和住房开发摩天大楼。摩天大楼下面的房产价格支付了最初购买土地和设施的费用。
最近,我在旧金山金融区的渡口大楼旁边的金门(Golden Gateway)住了五年。该地区在20世纪70年代进行了重新开发。它包括拆除一个破旧的农产品市场,这个市场被向南移动了大约5英里。写字楼的五座摩天大楼,一个零售商场,数百套公寓,多个公园和一家凯悦酒店现在占据了这个空间。
我的工作就是在Transbay重建中心,也是在金融区。市场以南这个地区一到两层的破旧灯具制造遭到谴责,土地转让给了城市所有权。Transbay从2000年左右开始就是一个正在进行的项目,似乎已经完成了一半以上。当我进进出出工作的时候,我看到了崭新的塔楼,令人惊叹的交通中心和公园,还有起重机和建筑。
其他重建项目包括耶尔巴·布埃纳区(现在包括莫斯科内会议中心)和任务湾区(现在包括新的篮球场,蔡斯中心)。
许多这样的大型项目都招致了各种成本和挑战。在20世纪50年代和60年代,菲尔莫尔重建项目的目标是城镇中以黑人为主的部分。36个街区的区域被拆除,其中包括住房、独特的生活方式和一个世界著名的爵士乐社区。以前的大多数居住者都负担不起返回的费用。
在许多情况下,这些耗时数十年的大型重建项目为城市的部分地区带来了新的活力,但有时我们无法预见我们将失去什么。
1847年,旧金山是一个约有600人的小镇,前身为耶尔巴·布埃纳(Yerba Buena),就在前一年刚刚与美国合并。加州直到明年才发现黄金,这将使旧金山成为一个主要城市。
几年前,也就是1835年,威廉·理查森(William Richardson)在耶尔巴·布埃纳(Yerba Buena)定居,并在街道上铺设了南北电网上的扩建定居点。这个区域叫做朴次茅斯广场,现在是唐人街的一部分。到1847年,许多建筑排列在这个南北网格上。
在小镇的南部是多洛雷斯使命。使命街从使团到旧金山湾,向东北方向延伸了4.5英里。我在观澜街的一栋大楼里工作。
1847年,旧金山新任美军市长委托贾斯珀·法雷尔对旧金山进行土地调查。他更正了城市北部的一些物业边界和街道路线。他决定将这座城市分成两个网格:北部网格运行南北和东西,南部网格运行东北-西南和东南-西北。现存的城市北部有几百座木结构建筑。街道宽度从45英尺到69英尺不等,有些稍大。在城市的南部,那里几乎没有定居点,O';Farrell决定拓宽街道。观澜街的布局是82.5英尺宽。
为了将网格的这两个部分分开,O';Farrell在南部创建了一个120英尺宽的巨大市场街,与使命街平行。对于一条街道来说,这是对土地的极大浪费,特别是在一个600人的小镇上。记住,当时的交通工具是由马和马车组成的。这条街这么宽的原因是什么?
镇上的当地人怒不可遏。那块土地很值钱,正被一文不值地从他们手中夺走。很快,一群暴徒聚集起来,决定贾斯珀·法雷尔应该因浪费他们的土地而被绞死。镇民们出发去接他。幸运的是,一位朋友向O';Farrell通风报信,他骑马去了北滩,乘船去了北湾,在索诺马县定居下来,1875年他在那里去世。1个。
在20世纪50年代,制定了BART(旧金山湾区快速交通)的计划。这列通勤列车将高速运行,通过旧金山湾地下的地铁将旧金山连接到包括奥克兰、伯克利等在内的东湾。令所有人惊讶的是,1962年对增税的投票勉强通过,BART获得了资金。
跨海湾地铁在市场街连接旧金山,计划包括在市场街下修建一条长约两英里的隧道。市场街地铁与轻轨穆尼地铁线共享,这些线路在旧金山各地运行火车。市政只在旧金山市内运行。
市场街的建设始于1967年,持续了近10年。采用“明挖掩护”的方式大大降低了建设成本。明挖掩护包括挖一条巨大的沟渠,并在露天建造车站和轨道。完成后,地下工程就会被泥土覆盖。市场街地铁不太可能以一种侵入性较小的方式获得资金。不幸的是,10年来,市场街一片狼藉,许多企业破产。
尽管如此,市场街120英尺的宽度为人们尝试明挖掩护施工提供了可能性。如果没有如此宽广的宽度,我们很可能就不会有今天的BART。
当我在飞机上有机会坐在靠窗的座位上时,在起飞和降落时,我总是看着高速公路上的立交桥。我经常看到道路在穿过高速公路时有一个温和的转弯。这让我笑了,因为我认出了高速公路正在加宽的残余物。
很多次,我住在高速公路拓宽建设项目附近,或者通过高速公路拓宽建设项目进行通勤。每一次,这个过程似乎都是无稽之谈。交叉道路一侧的建筑物被拆除。然后,新的地基和一座桥与旧桥并排建造。一般来说,天桥上的交通不会中断,更重要的是,高速公路上不会中断。有时,伴随着极度的痛苦,一条高速公路将不得不在一个漫长的假期周末关闭。
当建筑完成时,美丽的新立交桥就已经建在旧立交桥旁边了。新的立交桥正好与旧立交桥所在的小街相连。当它穿过高速公路时,它只是转向一边,以便在拆掉旧的之前有两个立交桥。
进化一个复杂系统的一个特别具有挑战性的部分是在它被改变的同时保持它的运转。几年前,任何新版本的软件都必须装在盒子里发送,安装后,它会在存储在磁盘上的数据上运行得更好。到20世纪80年代初,我担心广域网分布式事务以及如何兼容地发展该协议。计划中的消息传递更改需要三个版本,每个版本相隔六个月,这并不少见。
现在,每个人都支持基于云的解决方案。一切都是全天候运行的。这对客户来说是一个巨大的价值,并给支持系统和应用程序的工程师带来了额外的约束。就像拓宽高速公路的人们需要保持它全天候运转一样,我们需要计划系统的演变以及从这里到那里所需的详细步骤。
在我40多年的职业生涯中,我在拥有数千名工程师的公司工作了近35年。拥有如此多的工程师意味着完成项目既容易又难。有了大量的资源,你就有能力组建一个强大的团队。虽然你有很多资源的好处,但是,有很多相互依赖和工程上的细微差别需要考虑。更重要的是,还有大量代码库的遗产。遗产通常带来的好处比坏处多得多。
城市通常是围绕着主流的交通而设计的。我有幸参观了老耶路撒冷,它是以驴子为交通工具而建造的。这座城市老城区的大多数街道大概有20-25英尺宽。汽车不能在这些街道上行驶。当然,如果不摧毁它们旁边的建筑,扩建它们是不可能的。
应用程序从通信和数据或数据库预期开始,以及应用程序结构预期。就像城市和交通在发展一样,计算机基础设施也在发展。
从头开始似乎更可取。有更少的约束。你的软件项目不会扎根,对任何人都无关紧要的可能性也会增加。最大的希望是在经济的基础上建立一个在基础设施上有适当投资的东西。在这样做的同时,试着有洞察力地离开特别宽的道路,可能有120英尺宽,即使它们现在已经不太重要了。只要确保镇民不会成为一群寻求复仇的暴徒就行了!
今天的最终一致性:限制、扩展和超越在没有安全保证的情况下,如何在最终一致的基础设施上构建应用程序?Peter Bailis和Ali Ghodsi https://queue.acm.org/detail.cfm?id=2462076
自1978年以来,Pat Helland一直在实现事务系统、数据库、应用平台、分布式系统、容错系统和消息传递系统。为了消遣,他偶尔会写一些技术论文。他目前在Salesforce工作。
最初发表在队列VOL中。18,编号1-在ACM数字图书馆中查看此项目。
相关:Brendan Burns,Brian Grant,David Oppenheimer,Eric Brewer,John Wilkes-Borg,Omega和Kubernetes十年来从三个集装箱管理系统中吸取的经验教训。
Rishiyur S.Nikhil-硬件系统设计中的抽象-使用Bluespec SystemVerilog将软件语言的经验应用于硬件语言。
约翰·R·马希--通向64位的漫漫长路;加倍、加倍、辛劳和麻烦……。莎士比亚的话(麦克白,第四幕,第一场)常常讲述了他做梦也想不到的情况。辛劳和麻烦伴随着主要的计算过渡,即使当人们提前计划的时候也是如此。为了校准“明天”的遗产“今天”,我们应该研究“明天”的“昨天”遗产。明天的大部分软件仍将由数十年前的决策驱动。过去的决定有意想不到的副作用,持续了几十年,可能很难撤销。