- 写给架构师的Linux实践:设计并实现基于Linux的IT解决方案
- (哥斯)丹尼斯·萨拉曼卡 埃斯特班·弗洛雷斯
- 813字
- 2023-05-17 17:12:19
1.1 定义解决方案设计的多个阶段及其意义
设计解决方案与其他工作一样,都要按步骤进行,而且其中涉及的不仅是技术问题或技术人员。一般来说,会有客户经理或项目经理与你沟通,更好一些的情况是,CTO会跟你谈客户所提的需求中与技术有关的部分。他们需要寻找一位专家来帮助他们向客户交付一套解决方案,然而他们所说的那些需求,通常无法把交付该方案的全部信息呈现出来。尽管如此,你还是要从这些需求出发,来摸清该方案的目标。
例如,你收到了项目经理发来的邮件,其中写道:
我们要做一个至少支持10000次网站点击的解决方案,在更新或停机的时候,这个方案依然要能够使用。预算相当少,因此要尽量压低开销,而且最好是能免去预付成本(upfront cost)。我们还希望,这个方案能够让项目在其生命期内得以持续壮大。
这封邮件只能让你对所要做的方案有个大概的印象,并没有给出具体的细节。因此,你只能了解基本的信息,也就是该方案必须支持至少10000次网站点击。这条信息对设计工作来说,是不够明确的,你还必须了解相当多的信息,才能知道怎样解决客户提出的要求。这正是你需要继续追问细节的地方,只有把细节问清楚,才能知道客户的需求到底有哪几条,而客户也可以由此形成对该项目的第一印象。这部分工作很关键,因为它可以帮助你意识到,自己究竟有没有理解客户的想法。
同样重要的是,你还必须意识到应该提出几套不同的方案给客户选择,客户会从中选出最符合需求的一个。每个备选方案都有优点与缺点,不过客户一旦选好,你就得把实现该方案所需的必要工作给处理好,此时通常会遇到许多难题。而且到了方案即将完成的时候,你可能还得做出某些调整或变更,这些情况在早前的POC(Proof of Concept,概念验证)阶段是无法预料到的。
从前面的分析可知,为了交付最终产品,需要经历4个阶段,如图1-1所示。
图1-1
除了这4个阶段,还可以定义其他一些阶段,或是按照其他方法来设计解决方案,但那些都不在本书的讲解范围内。本书主要根据上述4个阶段来帮助你了解如何给解决方案做架构。