凤凰项目:一个IT运维的传奇故事(修订版)
上QQ阅读APP看书,第一时间看更新

第2章 9月2日,星期二

“你们谈得怎么样?”史黛茜在打字的间歇抬起头来,友善地问。

我摇了摇头:“难以置信。他刚说服我接受了一个新职位,可我本来不想要这个职位的。怎么会发生这样的事?”

“他可是很会说服人的,”她说,“不管怎样,他是独一无二的。我已经为他工作近十年了,我愿意追随他去任何地方。工作上的事有什么我能帮上忙的吗?”

我想了一下,问道:“有一个紧急的工资核算事件需要处理。迪克·兰德里在三楼,对吧?”

“给你。”我话音未落,她就递上一张即时贴,上面写着迪克的办公室地址、电话号码等各种联系信息。

我感激地朝她微笑:“非常感谢,你真了不起!”

我一边走向电梯,一边拨通迪克的手机。“我是迪克。”他没好气地说,电话里传来他不停敲打键盘的声音。

“我是比尔·帕尔默。史蒂夫刚刚任命我为主管IT运维的副总裁,他让我来……”

“可喜可贺,”他打断我,“瞧,我的手下发现了一个非常严重的工资核算问题。你什么时候能来我的办公室?”

“马上就去。”我听到他“咔”地一声挂断了手机。这是我收到过的最冷冰冰的见面礼。

到了三楼,穿过财会部办公区,触目所及都是细条纹衬衫和上过浆的衣领。我看到迪克正在工位上和别人通电话。他看到了我,于是用手掩住话筒,没好气地问:“你是IT部的?”

我点点头,他冲着电话说:“你看,我得挂了。终于来了个大概能帮上忙的。我稍后打给你。”不等对方回答,他就挂断了电话。

我从未见过这么习惯于直接挂断别人电话的家伙。我鼓起勇气,准备迎接一场可能连“让我们互相认识一下”这样礼节性的开场白都没有的谈话。

我像人质似的缓缓举起双手,向迪克展示那封打印出来的电子邮件:“刚才史蒂夫告诉我工资核算服务中断的事了。我可以帮上什么忙吗?”

“我们有大麻烦了,”迪克回答,“昨天进行工资核算的时候,所有计时工的记录都不见了。这肯定是IT的问题。这个故障让我们没法给员工发工资,这样就触犯了无数条州立劳动法,而且毫无疑问,工会马上就要大吵大闹了。”

他低声咕哝了一会。“我们去找安吧,她是我的运营经理。她从昨天下午开始一直抓狂到现在。”

我快步跟上,差点在他突然停步的时候撞上他。他透过一间会议室的玻璃窗朝里张望了一下,打开门:“现在情况怎么样,安?”

会议室里有两位穿着考究的女士:一位45岁上下,正在研究一块画满流程图和各种表格数据的白板;另一位30出头,正在笔记本电脑上敲打键盘。大型会议桌上到处散落着报表。较年长的女士用一支打开的记号笔指着一列清单,看上去像是潜在的故障原因。

她们的打扮以及那种焦躁不安的神态,让我觉得她们像是从本地的某家会计师事务所聘请来的审计人员。我想有她们在是好事。

安精疲力尽,沮丧地摇摇头:“恐怕没什么进展。几乎可以肯定,是某个上游计时系统发生了IT系统故障,所有计时工的记录都在最近一次上传中被搞乱了……”

迪克打断了她:“这是IT部的比尔。他说他是被派来收拾这个烂摊子的,或者准备在收拾的过程中壮烈牺牲,我是这么理解的。”

我说:“你们好。我刚成为IT运维部的新领导。关于这个问题你们知道些什么?可以从头说一遍吗?”

安走向白板上的流程图,说道:“就从信息流开始吧。财务系统通过不同的渠道获取各部门的工资数据。我们汇总全体薪水工和计时工的数据,包括工资和税费。这听上去简单,但其实非常复杂,因为各州的税率、劳动法等各不相同。”

“为了确保不出差错,”她继续说,“我们要保证每个部门的具体数字与最后的总数相吻合。”

我匆忙做着笔记,她继续说:“这是个又繁杂又机械的过程。之前它运行得很正常,但昨天我们发现计时工的总账数据没有传过来。所有计时工的工作时间和应付工资都是零。”

“这个上传数据已经出过好多次问题了,”她显然很沮丧,“所以IT部给了我们一个可以手动修正的程序,那样我们就不用再麻烦他们了。”

我皱起眉头。我不喜欢财务部的人在工资核算应用程序之外手动更改工资数据。那样做既容易出错又很危险。有人可以把那些数据复制到U盘上,或者通过电子邮件发到公司外面去,那样的话,公司就会丢失敏感数据。

“你是说薪水工的数据都正常吗?”我问道。

“是的。”她回答。

“但计时工的数据都是零。”我确认道。

“对啊。”她再次答复。

有意思。我问:“既然之前都运作得好好的,那你们为什么认为是工资核算出了故障?以前你们有没有遇到过类似的问题?”

她耸了耸肩:“以前从来没有发生过这样的事。我不知道问题出在哪里——本次支付周期内没有安排重大调整。我也一直在问同样的问题,但是在得到IT部门的答复之前,我们只能被困在这儿了。”

“假如事情一发不可收拾,我们不能及时获得计时工数据的话,”我问道,“备用方案是什么?”

“哭爹喊娘呗,”迪克说,“你手上的电子邮件里写着呢。电子支付的最后时限是今天下午5点。如果我们赶不上那个时间节点,恐怕就得把一捆一捆的支票快递给各个分部,让他们发给员工了!”

想到这番情形,我不禁皱起眉头,财务部的其他人也都忧心忡忡。

“那没有用。”安说,用一支记号笔轻叩着牙齿,“我们已经把工资核算流程外包了。每个支付周期,我们都向他们上传工资数据,由他们进行处理。最坏的情况下,也许我们可以下载之前的工资数据,在电子表格里进行修改,然后重新上传?”

“但是,我们不知道每个工人分别工作了多少小时,所以我们不知道该付给他们多少钱!”她继续说,“我们不想多发工资,但是多发工资总比‘意外地’少发要强。”

显然B方案有很多问题。我们基本上只能靠估算来确定员工的工资,而且还会给那些已经辞职的人继续发薪,或者漏发新员工的薪水。

为了向财务部提供他们需要的数据,我们恐怕必须弄出一些定制的报表,那就意味着把应用程序开发人员或数据库维护人员也拖进来。

但那就等于火上浇油。程序开发人员比网络维护人员更可怕。你要是能找出一个不给生产体系添乱的开发人员,我就能给你找出一个往镜子上哈气却不会起雾的人。或者更有可能的是,他们也许今天又放假了。

迪克说:“这两个选择都很糟。即便我们可以推迟一些,等拿到正确数据后再发工资,但也不能那么做——哪怕只推迟一天,工会就会介入。所以我们别无选择,只能按照安的提议,即使金额是错的,也要给员工发工资。我们得在下一个支付周期里再把每个人的薪金调回来。但现在我们遇到了一个财务报表错误,得回去修正一下。”

他捏了捏鼻梁,继续滔滔不绝:“我们的总账里会出现一堆反常的日志项,等审计SOX-404的时候就会看见,那时审计麻烦就大了。”

“哦,天啊!财务报表错误?”迪克喃喃自语,“我们需要史蒂夫批准。审计师们要一直在这里安营扎寨了。大家都别想干正事了。”

SOX-404是“2002年萨班斯-奥克斯利法案”(即《2002年公众公司会计改革和投资者保护法案》)的简称,国会针对安然、世通和泰科电子等公司的财务欺诈事件,通过了这项法案。根据这一法案,公司CEO和CFO必须亲笔签名,证实公司财报的准确性。

没人愿意每天花上半天工夫跟审计师谈话,并遵守一个又一个“新鲜出炉”的规定。

我看了看笔记,又看了看表。时间已经不多了。

“迪克,根据你们所说的情况,我建议你们继续做最坏的打算,为B方案准备好一切文件资料,以免出现更加复杂的局面。此外,我希望等到下午3点再做决定。我们还是有可能把所有系统和数据找回来的。”

安点头同意。迪克说:“好吧,你还有四个小时。”

我说:“放心,我们知道情况紧急。我这里有任何进展都会立即告诉你。”

“谢谢你,比尔。”安说。迪克保持沉默,我转身走出了会议室。

既然已经了解到业务部门如何看待这个问题,我感觉好了一些。现在是时候掘地三尺,查出这个复杂的工资核算机制受损的原因了。

我一边走下楼梯,一边拿出手机查看电子邮件。我发现史蒂夫还没有发出我的晋升公告,之前的冷静专注一下子荡然无存。直到今天上午,韦斯·戴维斯和帕蒂·麦基还和我平起平坐,他们还不知道我现在已经是他们的新上司了。

谢谢你,史蒂夫。

我走进7号楼的时候深受打击。我们这栋楼是整个公司园区的贫民窟。

这栋楼建于20世纪50年代,最近一次翻修是在20世纪70年代,显而易见是一项实用工程,而非面子工程。7号楼过去是大型刹车片生产车间,后来改建成了数据中心和办公楼,看上去陈旧、荒凉。

门卫愉快地说:“你好,帕尔默先生。今天上午过得怎么样?”

一时间,我很想请他祝我走运,这样他才能拿到本周准确的薪水。当然,实际上我只是简单地回应了他的问候。

我走向网络运营中心,我们叫它NOC,韦斯和帕蒂最有可能在那里。现在,他们是我的左膀右臂了。

韦斯是分布式技术运维部总监,他负责1000多台Windows服务器以及数据库和网络团队的技术问题。帕蒂是IT服务支持部总监,她管理所有的1级和2级客服技术人员,这些技术人员日以继夜地接听电话,处理故障维修事件,并为业务部门提出的需求提供支持。她还掌管一些维系整个IT运维部的关键流程和工具,比如报修系统、监控系统,以及组织变更管理会议。

我走过一排又一排小隔间,它们与其他办公楼的没什么两样。但是,与2号楼和5号楼不同的是,我看到墙面上剥落的涂料,还有地毯上渗出的暗渍。

大楼的这个部分是在以前的主装配车间上方加盖的。改建的时候,人们无法把机油完全清除干净。不论我们用多少密封剂来覆盖地板,机油还是会渗透到地毯上。

我记了下来,要提出一条关于更换地毯及粉刷墙面的预算申请。在海军陆战队,保持军营干净整洁不只是为了美观,更是为了安全。

本性难移啊。

我还没走到NOC就听到了里面的喧哗声。那是一个巨大的开放式办公区域,靠一面墙放着一排长桌,巨大的显示器上显示着所有IT服务的各种状态。1级和2级客服人员占据了工作站的三排位置。

这并不是阿波罗13号的太空飞行指挥中心,但我就是这样向亲戚们解释我的工作环境的。

如果突然有了麻烦,就要让各类相关人员和技术经理沟通协调,直到问题解决。现在就是这种情况,15个人坐在会议桌前,围着一部类似UFO的经典灰色扬声电话,大声激烈地讨论着。

韦斯和帕蒂并排坐在会议桌前,于是我走到他们身后悄悄地听着。韦斯向后靠着椅背,胳膊叠放在肚子上,但并未完全交叉。韦斯身高约1.9米,体重超过110公斤,在他身边的人都会被他的身影盖住。他看起来总是动个不停,而且一想到什么就马上脱口而出。

帕蒂是完全相反的类型。韦斯说话响亮、直率、信口开河,而帕蒂则深思熟虑、善于分析,对流程和步骤一丝不苟。韦斯身材高大、好斗,有时甚至乐于和人争吵,而帕蒂则娇小玲珑、条理分明、客观冷静。大家都觉得她更喜欢流程,而不喜欢人,她经常试图扮演在混乱的IT部门推行秩序的角色。

她是整个IT部门的代言人。只要发生了IT故障,大家就会找帕蒂。无论是出现服务器崩溃、网页加载过慢,还是类似今天这种数据丢失或损坏的情况,她都是我们的专业辩护人。

人们需要完成自己的工作时也会找帕蒂,比如升级电脑、更换电话号码、部署新的应用程序。她安排所有工作的时间进度,所以大家总是游说她优先处理自己的工作。然后她会把任务转给负责此项工作的人——这些人基本上不是我的旧部下,就是在韦斯的团队里。

韦斯拍着桌子说:“马上给供应商打电话,告诉他们,要么立刻给我们一个技术解决方案,要么我们就去找他们的竞争对手。我们可是大客户!恐怕我们早就该放弃那堆垃圾了,认真考虑一下吧。”

他环顾四周,开玩笑地说:“你们都知道这个说法吧?要想知道供应商有没有在撒谎,只要看他们的嘴唇有没有在动。”

坐在韦斯对面的一个工程师说:“我们刚才已经和供应商通过电话了。他们说,SAN现场工程师至少还要4个小时才能过来。”

我皱起眉头。他们为什么要讨论SAN的事?存储区域网络为许多最关键的系统提供集中存储,所以故障通常是全局性的:不可能只有一台服务器宕机,应该是几百台服务器同时宕机。

韦斯和那个工程师争论起来,我在一边努力思考。这个工资核算故障一点也不像是个SAN问题。安的言下之意,可能是支持各工厂的计时应用程序出了问题。

“但我们尝试恢复SAN之后,数据服务就完全停止了。”另一个工程师说,“然后显示器上显示的就全都是日文了!呃,我们觉得那是日文。不管那究竟是什么,反正我们搞不懂。那时候我们就觉得该把供应商找来了。”

虽然介入得比较晚,但我确信我们完全走错了路。

我俯身对韦斯和帕蒂低声说:“我能和你们单独谈谈吗?”

韦斯转过身,心不在焉地大声说:“就不能等等吗?可能你还不知道,我们遇上大麻烦了。”

我紧紧按住他的肩膀:“韦斯,这真的非常重要。是关于工资核算故障的事,还有我刚才与史蒂夫·马斯特斯以及迪克·兰德里的谈话。”

他看起来很惊讶。帕蒂已经从椅子上站了起来。“去我的办公室谈吧。”她一边引路一边说。

我跟着帕蒂走进她的办公室,看到墙上挂着一张她女儿的照片,看上去11岁左右。我大吃一惊,这女孩看起来和帕蒂非常相像——毫不畏惧、极其聪明、令人生畏——对一个可爱的小姑娘来说这有点儿恐怖。

韦斯用生硬的语气说:“好吧,比尔,有什么事这么重要,值得打断一个1级严重程度的服务中断的处理?”

这个问题不赖。1级严重程度的服务中断是对业务造成巨大影响的严重事件。这样的中断极具破坏性,所以我们通常会扔下手头的一切事情去解决这些中断。我深吸一口气:“不知你有没有听说,卢克和达蒙离开公司了。官方说法是他们决定休息一段时间。我所知道的就这些。”

他们脸上惊讶的表情证实了我的猜测:他们还不知道。我简单介绍了一下今天上午发生的事。帕蒂摇了摇头,发出啧啧声表示反对。

韦斯看起来很生气。他与达蒙共事多年。他的脸涨红了,说:“所以现在我们该听命于你了?听着,我无意冒犯,哥们儿,不过你是不是跨界跨得有点儿远了?这么多年来你一直管理中型机系统,那基本上就是个老古董。你在那儿小日子过得挺好。知道吗?你根本不清楚如何运行现代化的分布式系统——对你来说,20世纪90年代还算是将来时呢!”

“说实在的,”他说,“要是你每天像我这样快节奏地处理那么多麻烦事,我想你的脑袋早就爆了。”

我吁了口气,在心里数到三。“你想和史蒂夫谈谈你有多希望坐我的位子吗?悉听尊便。让我们先做该做的事吧,让每个人都能按时拿到工资。”

帕蒂迅速回应:“就算你没问我,我也同意工资核算故障应该是我们关注的焦点。”她顿了一下说:“我想史蒂夫做出了正确的选择。恭喜你,比尔。我们什么时候能讨论一个大点儿的预算?”

我朝她微微一笑,并点头致谢,再次把目光转向韦斯。

几秒钟过去了,他脸上浮现出一种我无法捉摸的表情。最后他终于变得温和了:“是啊,好吧。我会接受你的提议,去和史蒂夫谈的。他该向我解释的事儿多着呢。”

我点了点头。想到我和史蒂夫打交道的亲身经历,我由衷地希望韦斯走运,如果他当真决定和史蒂夫摊牌的话。

“谢谢你们的支持,伙计们。我很感激。现在,我们对这个故障——或者这些故障——知道多少?是因为昨天的某个SAN升级吗?它们之间有关联吗?”

“我们不知道。”韦斯摇摇头,“你进来的时候,我们正试图弄清这一点。昨天工资核算发生故障的时候,我们正在对一个SAN固件进行升级。布伦特认为SAN正在损坏数据,于是建议把调整的部分再改回去,我觉得这样做是符合逻辑的,但结果如你所知,他们只是在添堵。”

到目前为止,我只在一些小东西被弄坏时听说过“添堵”的说法,诸如手机升级失败的时候。把这个词用在一台价值百万美元的设备上,而且这台设备上存储着我们所有无可取代的企业数据,这让我感到很不舒服。

布伦特是韦斯的下属。他一直参与IT部门开展的各大重要项目。我同他合作过很多次。他绝对是个聪明的家伙,但他知道得太多了,所以有时候也让人害怕。更糟糕的是,大多数时候他都是对的。

“你已经听到他们说的了。”韦斯朝会议桌指了指,关于服务中断的会议还在继续。他说:“SAN无法开机,无法提供数据,我们的人甚至无法从显示器上读取报错信息,因为信息显示为一种怪异的文字。现在我们有一堆数据库宕机了,当然,其中也包括工资数据库。”

“为了处理SAN的问题,我们只得把布伦特从凤凰项目中抽出来,我们答应过莎拉会完成这项工作的。”帕蒂沮丧地说,“要有大麻烦了。”

“啊哦。我们到底向她承诺过什么?”我担心地问。

莎拉是负责零售运营的高级副总裁,也是史蒂夫的下属。她有着不可思议的能力,总是能让别人替她背黑锅,特别是让IT部门的人背黑锅。多年来,她一直能逃脱各种应负的责任。

虽然风闻史蒂夫正着手培养她作为自己的接班人,但我并不当回事,我觉得那完全是不可能的。我相信史蒂夫不会对她的阴谋诡计视而不见。

“有人告诉莎拉,我们没有按时把一些虚拟机交给克里斯。”她回答,“我们一直在全力以赴地准备那些虚拟机。也就是说,在拼尽全力去维修SAN之前一直都在准备虚拟机。”

克里斯·阿勒斯是负责应用开发的副总裁,他们开发业务所需的应用程序和代码,随后移交给我们来运行及维护。现在,克里斯的生活完全以凤凰项目为主导。

我挠着头。作为一家企业,我们已经对虚拟技术投入巨资。尽管看起来活像是20世纪60年代的主机运行环境,但虚拟技术改变了韦斯的游戏规则。突然之间,再也不用管理数以千计的实体服务器了。它们现在是一台大型服务器中的逻辑实体,甚至可能是在云存储的某个地方。

现在,构建一台新的服务器,只需在一个应用里点击右键。布线?现在只要设置参数就行了。可是,尽管许诺说虚拟技术将解决我们遇到的所有问题,但现实是,我们还是没能按时给克里斯送去一台虚拟机。

“如果我们需要布伦特处理SAN的事,那就让他留在那儿吧。我来应付莎拉。”我说,“但是,如果工资核算故障是由SAN引起的,为什么没有出现更大范围的故障中断?”

“莎拉肯定会大发牢骚的。你知道吗,我突然再也不想要你的职位了。”韦斯大笑着说,“你可别在新官上任的第一天就被炒了。也许他们接下来会找上我哦!”

韦斯顿了一下,若有所思:“知道吗,关于SAN的问题,你的想法有点道理。布伦特正在处理这件事。我们去找他,听听他是怎么想的。”

帕蒂和我都点头同意。这是个好主意。我们需要确立各相关事件的准确时间节点。到目前为止,我们所有的判断都建立在道听途说的基础上。

靠道听途说可没法破案,当然也没法解决服务中断故障。