潮流派的价值观是:新技术肯定能带来很大收益;
稳定派的价值观是:稳定压倒一切;
跟风派的价值观是:别人用了我就用。
这些价值观本身都有一定的道理,但如果不考虑实际情况生搬硬套,就会出现“橘生淮南则为橘,生于淮北则为枳”的情况。
不同派别存在的问题:
站在技术本身的角度来考虑问题的,陷入“不识庐山真面,只缘身在此山中”。要想看到“庐山真面目”,只有跳出技术的范畴,从一个更广更高的角度来考虑这个问题,这个角度就是企业的业务发展。
影响企业业务的发展主要有 3 个因素:市场、技术、管理,这三者构成支撑业务发展的铁三角,任何一个因素的不足,都可能导致企业的业务停滞不前。
在这个铁三角中,业务处于三角形的中心,毫不夸张地说,市场、技术、管理都是为了支撑企业的业务发展。
企业的业务分为两类:一类是产品类,一类是服务类。
对于产品类业务,技术创新推动业务发展!因为,用户选择一个产品的根本驱动力在于产品的功能是否能够更好地帮助自己完成任务。
对于服务类业务,业务发展推动技术发展!原因,用户选择服务的根本驱动力不是功能,而是“规模”。
当“规模”成为业务的决定因素后,服务模式的创新成为业务发展的核心驱动力,而产品只是为了完成服务而提供给用户使用的一个载体。
服务类的业务发展路径是这样的:
综合这些分析,除非是开创新的技术能够推动或者创造一种新的业务,其他情况下,都是业务的发展推动了技术的发展。
业务模式千差万别:
但无论什么模式的业务,如果业务的发展需要技术同步发展进行支撑,无一例外是因为业务“复杂度”的上升,导致原有的技术无法支撑。
复杂度要么来源于功能不断叠加,要么来源于规模扩大,从而对性能和可用性有了更高的要求。判断到底是什么复杂度发生了变化至关重要。
在架构设计时,判断业务当前和接下来一段时间的主要复杂度是什么就非常关键。
判断的标准就是基于业务发展阶段。这也是为什么架构师必须具备业务理解能力的原因。不同的行业业务发展路径、轨迹、模式不一样,架构师必须能够基于行业发展和企业自身情况做出准确判断。
互联网业务千差万别,但由于它们具有“规模决定一切”的相同点,其发展路径也基本上是一致的。互联网业务发展一般分为几个时期:初创期、发展期、竞争期、成熟期。不同时期的差别主要体现在两个方面:复杂性、用户规模。
互联网业务发展第一个主要方向就是“业务越来越复杂”。
发展时期 | 业务发展特点 | 技术要求 |
---|---|---|
初创期 | 创新 | 快 |
发展期(堆功能期/优化期/架构期) | 逐渐完善 | 快速实现需求/系统优化/调整架构(拆分) |
竞争期(重复造轮子/系统交互混乱) | 形成规模 | 平台化/服务化 |
成熟期 | 行业成熟、市场地位牢固,业务求精 | 技术进入成熟期,继续优化 |
互联网业务的发展第二个主要方向就是“用户量越来越大”,随着业务阶段的发展,用户量也随着变大。
用户量增大对技术的影响主要体现在两个方面:性能要求越来越高、可用性要求越来越高。
互联网业务驱动技术发展的两大主要因素是复杂性和用户规模,而这两个因素的本质其实都是“量变带来质变”。
阶段 | 用户规模 | 业务阶段 | 技术影响 |
---|---|---|---|
婴儿期 | 0~1万 | 初创期 | 用户规模对性能和可用性没有压力 |
幼儿期 | 1万~10万 | 初创期 | 用户规模对性能和可用性略有压力,单台服务器可能撑不住,需要多台机器 |
少年期 | 10~100万 | 发展期 | 用户规模对性能和可用性有较大压力,系统优化同时将大业务拆分为多个子业务 |
青年期 | 100万~1000万 | 竞争期 | 用户规模对性能和可用性有很大压力,集群,多机房,平台化,服务化 |
壮年期 | 1000万~1亿 | 竞争&成熟期 | 用户规模对性能和可用性有巨大压力,架构方案可能要推倒重来,机会难得非常锻炼人 |
巨人期 | 1亿+ | 成熟期 | 行业垄断地位,稳妥 |
应对业务质变带来的技术压力,不同时期有不同的处理方式,但其核心目标都是为了满足业务“快”的要求,当发现业务快不起来的时候,其实就是技术的水平已经跟不上业务发展的需要了,技术变革和发展的时候就到了。
更好的做法是在问题还没有真正暴露出来就能够根据趋势预测下一个转折点,提前做好技术上的准备,这对技术人员的要求是非常高的。