与传统的运维人员相比,云环境下的运维人员的最核心区别是,对技术细节和知识的全面学习及掌握的程度。当只有10台或50台机器时,运维人员可能还能手动处理一些问题,但当拥有1000台、2000台或更多机器时,就必须采用自动化方式。由于集群规模的扩大,很多边界效应及以前没遇到的各类问题都会出现。这时就需要运维人员对知识有充分的掌握,对细节有更深入的了解,从而解决这些异常。大致来讲,云环境下的运维人员需要具备以下几项能力。
1.产品研发能力
由于云计算产品所面对的数据量、计算量极其庞大,需要能快速迭代、收敛问题。这就要求运维人员能通过自身对底层和开发的了解,以及对生产状况的掌控,配合开发团队进行快速迭代部署、发布和Debug 等,从而提升开发人员对工程素质的重视,更好地保证云集群的稳定。更理想的情况是,运维人员不仅对开发流程有深刻的了解,并且在需要的时候,自己也能上阵改进代码。尤其对于快速迭代的互联网企业,部署应用的人必须能够与产品技术团队紧密配合。
2.知识面广泛
我的业务是否需要用NoSQL?
Cassandra 和MongoDB 哪个更适合我?
HDFS、S3对象存储、数据库云,各有什么特点?
CDN 服务选哪家?
是否需要使用固态硬盘(SSD)?
缓存需要多少?
文件系统选哪种?
操作系统选哪种?
Web 服务器选哪种?
各种存储方式的特点是什么?
各种虚拟化系统的特点是什么?
开展新业务的时候,我如何为未来的横向扩展做好准备?
现在用OpenStack 可能会遇到哪些问题?
Hadoop 这个东西究竟适不适合我?
MySQL 引擎选哪种?
搜索引擎选哪种?
等等。
身为运维人员,需要有比较广泛的知识面。尤其在可以选择的选项越来越多的时候,只有能够进行分辨并给出高质量建议的人,才有更高的价值。企业的CTO、项目经理本身可能专精于某个领域,容易忽略以上这些问题。因而一个思虑周全的运维人员将减少很多潜在的技术成本。
3.业务和数据分析能力
运维人员要学习统计学,读懂数据,了解业务需求,考虑成本控制,甚至考虑商业变现方面的问题。企业雇用每个员工都是为了创造价值。只有贴近企业的核心价值,才能够成为企业中被重视的人。例如,淘宝网“双十一”活动,其核心运维、应用运维团队一定是整个活动团队当中的核心决策者之一。运维人员作为最先接触到用户数据的人群,如果能利用这一优势为企业带来更直接的价值,运维就不会总被当作“浪费钱的替罪羊”了。多跟产品、业务人员、商务经理聊聊,运维人员就会更清楚自己的价值在哪里。