这两天网易云音乐的可用性问题成为了业界讨论的一个热点,虽然各路"专家"给出了各种"文章",但是官方尚未给出明确的原因,我们不好揣测,不过足以看出,IT各个环节的可靠,对应用稳定性,都是非常重要的。

IT各个环节,还是非常复杂的,不仅包括了人的因素,还会包括机器、程序、网络等各种因素,一个应用的建设,属于系统工程,就像实际盖房子,每个步骤都需要很扎实,才能构建出稳定性满足要求的成品。

碰巧看到技术社群的这篇文章《是否所有的基础设施操作都需要进行自动化?》给出一些专家对基础设施自动化操作方面的讨论,还是值得了解的,数字化时代,"自动"好像很多人认为应该是最基础的,这个真合理么?

观点1

不是所有基础设施操作都应该自动化,自动化应聚焦于操作频次高,操作风险低,结果与预期无差别的一些场景。故反观之,操作次数低,风险大,不可预估结果的操作不建议使用自动化实现。

观点2

自动化是把双刃剑。

观点3

1.按SRE的消费“琐事”的思路,其指导方向是自动化的则自动化。其逻辑是“琐事”会从效率、成本、情绪等多个方面对运维人员有负面影响。

2.自动化需要一些条件,基擅长重复性、有规律、可标准化,且环境比较稳定,只有那些达到条件的操作也能自动化。

3.自动化手段代替了人工低价值的工作,但自动化也有失效的可能性,以及运维人员对生产运行的敬畏心。所以,从管理角度可适当保留人工操作、检查、复核的工作要求,比如例行强态化的巡检与自动化的监控并存。

观点4

在我看来,并不是所有的基础设施操作都需要进行自动化,应该遵循如下原则,

一是操作发生频率和操作影响范围,对于发生频率较高且影响范围有限的基础设施操作,建议使用自动化的方式,例如:云主机的创建、中间件的创建与升级、网络策略的开通、存储资源的分配、HW常见操作等;但是对于发生频率较低的场景,不太建议自动化;

二是操作的影响范围,对于影响范围较大的基础设施操作,不建议使用自动化方式,例如网络设备配置变化,云平台配置变化等;

三是删除类操作。对于删除类操作,建议通过人工方式进行确认后,手工删除,或者人工确认后再自动化批量删除。

观点5

显然不是所有的基础设施操作都需要进行自动化,该提问可进一步转化为:哪些基础设施操作实现自动化是最佳实践?以下是我的一些建议,

1、首先,需要明确一下自动化的定义,什么叫自动化?

根据科学百科的定义,自动化(Automation)是指机器设备、系统或过程(生产、管理过程)在没有人或较少人的直接参与下,按照人的要求,经过自动检测、信息处理、分析判断、操纵控制,实现预期的目标的过程。

2、其次,从定义中明确自动化的含义。

(1)自动化并不是不需要人工参与,是允许有较少人参与的。

(2)自动化是一个过程,而不是结果。

3、再次,基于以上分析,基础设施操作中可实现自动化的最佳实践建议如下。

(1)资源申请操作:如VMware资源、青云资源、容器资源、物理机资源等。

(2)软件安装类:如OS、Oracle 、MySQL、JDK、Weblogic等软件安装操作。 

4、最后,个性化的操作建议做成自助化+自动化。

如:网络续期、用户新建等,这类操作在技术上可以做成自动化,但是考虑到管理诉求,建议做成自助化+自动化。由用户自助申请,运维人员自动执行。

如果您认为这篇文章有些帮助,还请不吝点下文章末尾的"点赞"