如何成为运维专家

    对很多朋友来讲,要想成为一名优秀的DevOps工程师,在成长道路上,您有哪些心得经验分享?
    Miller(A8):在运维道路上,我的切身体会比较多,简单总结一下主要有以下几点:
    1、坚定的目标
    目标是职业生涯远处的灯塔,它能冲破迷雾,让你在迷惘中坚定信念和方向。要想成为一名优秀的技术专家就要牢牢树立你的目标,持之以恒,每天一点一滴地前进。
    2、运维服务能力
    餐饮业的海底捞以服务口碑得到顾客的认可。同样,运维人员做为支撑服务部门,也要通过服务来获得用户和业务的认同。我们要以超出用户预期的目标来为用户和业务提供服务。
    可能有人要问,我们是技术人员,为什么要特别强调服务能力?我觉得技术运维的团队目标不是提供功能的业务,而应该是提供持续化的服务能力,如资源交付能力,变更能力,可用性能力,调度能力等等,让业务如同水和电一样使用我们的服务。在这些服务能力的背后需要长时间的建设和积累。
    例如传统的DBA团队重在技术支持,而我们数据运维团队除了技术支持之外,提供专业的服务已经成为团队的核心目标。
在服务能力上要致力于做到超出用户预期。什么是超出用户预期?就是用户期望得到五星的服务,而你能给他们提供到六星的服务。
    要获得超出预期的服务,我认为要做好以下二方面:
    1)主动服务
    在我们运营中心,有句口话为“服务用户、服务业务、服务自己”,也就是说在做事时要考虑,我们的服务目标是谁。我们在制定目标和方向的时候不能只考虑到自己,要把眼光放得更长,看到业务,看到用户。
    这里有一个例子,业务在申请设备资源时,按部就班走硬件成本资源采购是B级服务;通过虚拟化技术把设备申请从周提升到小时是A级服务;在虚拟化技术之上通过调度能力保证业务上线后,能根据实际流量实现人工或自动化的资源伸缩,即节省了成本,提高业务部署速度,还提升了运维能力,这就是S级超出预期的服务。
    2)提供超出预期的服务,还要主动站在用户角度替用户思考,给用户带来价值,实现多方共赢。
譬如我们在设计代码发布系统时应该要思考,发布系统的初步目标是减少了运维团队的工作量,同时也提升了应用团队的发布效率。但通过更深入的思考我们还会发现,如果具备灰度发布能力,我们可以做到对用户无损。发布过程中引入自动化测试,我们可以保证了应用的可用性。通过多队列服务和生产者/消费者模式,我们可以瞬间完成数千台服务器的发布,等等。做这些事情时,站在多方面来思考会让运维工作变得有价值,而不是背黑锅的角色。
    3一万小时的专业技术积累和丰富的实战
    丹尼尔在《一万小时天才理论》提出一万小时定律,即要成为某个领域的专家,需要积累一万小时,如果每天工作中花在学习和实践上的时间达到4小时,那么成为一个领域的专家至少需要十年。
    因此我们在工作中要善于利用时间,尽量保证20%的工作时间用在提升专业能力和运维效率方面。即使是加班时间也要把时间用在提升效率的工作上,避免加班仍是做重复性而无技术含量的事情。

   “纸上得来终觉浅,绝知此事要躬行”。要把技术运用得弓马娴熟,武艺精通,就得把知识落地,应用到实践中,在工作中不断提出新想法,勇于尝试新事物,不断给自己新的挑战。

   4、不断打破心理舒适期寻求突破
   工作到一定程度后就会进入心理舒适期,这是让人感到熟悉、驾轻就熟时的心理状态。这个时候就要勇于打破心理舒适期,从这个方面去突破自己的天花板。打破心理舒适期就要保持自我动因,譬如对技术的热爱,保持强烈的好奇心,给自己设立中长期目标,对工作和事业的自我驱动力等。
在突破的领域上,运维人员不仅只是局限于运维技术层面,在沟通表达、项目管理、业务、产品、开发等方面都要获得成长。
打破舒适期甚至要勇于跳离舒适的岗位、稳定的公司,寻求更好的职业发展平台,这样才把保证自己的价值不断获得增值,打破“IT只是吃青春饭”的悲观宿论。
   5、开发能力
    运维自动化有三个阶段,脚本化是第一阶段,工具化是第二个阶段,产品化是第三个阶段。运维人员要掌握开发能力,来提升运维效率,解放运维生产力。
    运维的开发语言可选Python、PHP甚至C/C++等。有些优秀的运维人员可能是全栈工程师,从前端到后端,从WEB开发到后台开发都可以自己解决。
    除了开发能力,运维人员还要深入了解运维需求和业务需求,规划设计具有前瞻性的运维产品,用产品的理念来做运维系统。优秀的运维系统需要具备出色的用户体验,并通过模块化、松耦合的设计,方便其他工程师在平台上的二次开发,以提升运维开发效率和运维效率。好的运维产品可以开源出来,回馈业界,为外界弱小的运维团队提供更大的帮助以及贡献度。精通开发还便于理解业务,和开发一起共同推动业务架构的优化,成为开发的紧密合作伙伴。
    具备开发能力还可以让运维工程师掌握进入系统内部的钥匙。运维工程师通过阅读Linux内核源码、MySQL源码或者Redis源码等,能更深入掌握操作系统、数据库和网络框架等服务的运行机制,根据业务特点改写功能特性,使之更能符合业务需求。好的特性还能回馈提交社区,以结合到下一个版本中。

你可能感兴趣的:(如何成为运维专家)