兵法有云:兵马未动,粮草先行。现在企业对基础设施架构也越来越重视,并且随着新时代的变革,云服务,大数据,人工智能这几年快速发展和落地,没有任何企业不会不重视这部分新技术给自身业务带来的挑战,所以也没有必要质疑IT基础架构的重要性。2017-2018年上半年可以说是称得上是企业IT架构的黑暗时期。重大事故频发,很多知名企业先后中枪,INTEL、微软、思科等,一些一线大企业也频频出现由于基础架构及安全引发的事故,在业内引发了很大反响。其中大多数故障与IT基础架构有关,电力、系统、消防、系统安全防护等事件上折射出很多基础设施的问题---我们对基础架构的理解、重视程度和投入是多么的不足的,会直接影响到企业业务正常运转以及企业的生死。
本来 “平时不烧香,急来抱佛脚”倒也没什么大问题,只要企业能够事后平心静气的承受所有的损失,不要怨天由人,痛心疾首,开除几个运维支持的临时工就好。这个就跟个人买保险是一样的。你投入100万还是10万,完全由你自己决定,带来的风险级别及收益也是由你自己来承担。虽然基础设施的收益是阴性的是成本中心。但有一点我们必须承认,企业或者你认为你的IT基础架构值多少钱,你就会投入多少钱。
很多企业的业务方都在调侃IT基础设施团队通常如何无力的满足要求,今天出问题,明天掉链子,每年花了好多钱,没见到变化啊。事实上,每家企业组织都不一样,业务需求和压力不大一样,但是唯一样的是对自己IT基础架构的理解和现状复杂度及投入不清楚。造成一定的隐患,根据墨菲定律,只是早晚的事情而已。
做基础架构,我认为有三点非常重要--稳定、简单、高效
1.稳定
稳定是毫无疑问的,如果底层不扎实,上面做的越好,风险就越大。不少企业在创业建设初期为了快速占领市场,开展业务,相对于研发设计,基础设施的建设往往是临时快速先上,滞后非常厉害。等到有时间了,也觉得能用,先这样吧。当后期企业变大了,船大了就不好掉头了,基础设施调整,IT运维自动化,由于历史及业务复杂度的影响,由easy 变成了 噩梦难度了。重点也强调一下基础设施的3大基石-CMDB、工作流、监控体系。如果没有CMDB,你的基础设施的信息从哪里来?除了问题如何处理,估计寻找信息都需要很长时间。没有工作流,又如何能够保证CMDB中数据信息的准确性?把重要的经历放到基础架构的建设上,要不盲目求先进,求块要稳妥的多。
稳定性不仅仅体现在开发业务系统架构上,基础设施的可靠性更加的重要。基础设施在稳定性上出问题主要原因就是投入说白了就是钱。高层、财务、内审、采购经常和技术部门在成本价格上博弈,发生冲突。一边要节约成本,一边要稳定性要服务。毫无疑问各个部门都在追求自己的价值体现。技术部门的话语权就就决定了是否调入低价陷阱之中。免费,开源,廉价是世界上最昂贵的商品。看似免费,便宜的东西,一开始还好,长时间就会发现各种问题,不是品质打折扣,就是后期产生各种异常的问题,增加无穷尽的成本,渐渐变成鸡肋。这种因为各种原因的妥协不是不能做而是扣小钱、舍大钱的做法是非常不值的。
2.简单
简单就是支持企业的成长,消除扩容瓶颈的基础要求。架构的复杂度和今后发生事故和业务扩张影响严重度是成正比的。底层的基础架构越复杂,出问题以后的牵扯东西越多。真是因果循环,报应不爽啊。
不同规模、不同架构的业务模式不同,因而随着企业业务的发展增长,为了满足业务的需求,你企业的基础架构会不自觉,不受控制的增加复杂度。这是无法避免的,所以企业的IT架构负责人要不断的为现有架构做减法和简单化,也就是我们所说的业务解耦。在给基础架构做减法的同时,优化基础架构的三个难点。
多套多品牌的网络设备,多套的语音平台,不同的认证体系,不同型号的服务器,不同的监控接口。
第一尽量统一标准:
不论是通讯协议,监控接口或者是实现方法。最忌讳的就是各玩各的,厂家A提供一个接口,厂家B有个接口,每接入一个新的厂家,就需要解决兼容性的问题,如果改变不了新的厂家接入,那就自己规范一个标准中间件,做一个统一的对内接口,并提供统一对外的接口。最后业务变动就不用花大力气去融合。
第二消灭重复组件:
底层功能的实现在业内都是有很多成熟的解决方案的,应当可能的去复用或者在此基础上升级改进,而不是拿出更多精力去造轮子。研发和优化的精力要放到业务场景的实用性上,或者统一标准建设上。也就是我们上面提到的做减法。
第三要消灭紧耦合:
实现系统之间的解耦要让架构扁平化,自动化,消灭冗余的层级。横向层面上的内容越多,就越容易出问题。如果执行一个操作流程要经过多个横向的业务系统,一旦任务失败或者出错,这多个系统都需要去查,都脱不了关系。另外在需求变更迭代过程中,每增加一个功能或者需求项,不论你负责的业务系统有没有风险,能不能修改,都需要把这些涉及的系统都参与进来讨论和实施。不断的开会,修复联调问题,不停的修复BUG,这些成本大的无法想象?
实现各个模块功能键的解耦需要明确各模块的职权红线。网络只负责网络,语音负责语音,认证负责认证。那个模块负责那个模块的问题,不重复做想关联的动作,不要网络准入系统里有认证系统用户的逻辑。这样之间的界限就模糊了,从而出现很多管理问题。
解耦的核心就是拆除不必要的依赖关系,让暴露在外部的功能最小化,形成内部高耦合的最优状态。
3.高效
基础设施肯定是团队工作,而团队工作的特点是,人多生理,人少省心。当一件工作从一个人变成多个人干时,会发现信息的来源、信息同步、沟通成本、实时性,操作规范有多么重要。当运维团队的规模变大后,会发现效率下降很多。因为工作被进一步拆分,相互环接的部分增多。沟通成本及利益冲突的负面效果也在这个时期被快速放大。
影响效率的主要因素在与上面稳定性中所提到CMDB+工作流+监控体系的成熟度。基础架构做的不好,整个基础设施运维团队管理是一片混乱的。执行效率低,业务反感,领导背锅,成员怨声载道。俗话说得好,磨刀不误砍柴工。把更多的资源和反省放到基础设施架构的建设上绝对不会吃亏的。