近日,Yelp 的 SRE 工程师 Dmitriy Samovskiy 发表了一篇标题为《新时代的运维》的文章,文章中他简要介绍了在云计算大环境下,运维工作重心和角色的变化。
其实在6 年前,Dmitriy 就写过一篇关于 DevOps 趋势的文章,在那篇文章中,他认为系统管理人员需要具有简单脚本之外的开发能力,并且多关注服务器稳定性和上线时间等。但这六年中,随着云计算等技术的发展,运维相关的工作也早已被革新,所以 Dmitriy 又重新反思了当下运维相关的技术工作。下面是文章的核心观点。
- 为什么运维会发生变化?这种变化会继续下去吗?主要有以下两点原因:
- IaaS 云服务的兴起深刻改变了运维。基础设施即代码,运维面对的不再是传统的服务器。云厂商可以将所有事情标准化,然后以服务的形式打包提供给客户。
- 运维人员自身也掌握了更多的软件开发技能。运维人员不再局限于脚本,转而变成更好的开发者,承担起更多的职责。
研发生产和运维会变得越来越难以分割。不会再有专门的运维团队,每个项目研发团队都可以自行进行产品的运维。这种角色的变化,并不意味着运维工作的消失;相反,依然需要运维技能、知识和经验。
2. 可扩展性已经成为了运维工作的重心在以前的服务器时代,运维团队的主要工作是创建环境并维护生产的稳定性。而现如今,运维团队的工作重心已经转向了如何提高产品的可扩展性。如果扩展性做得不好,流量负载过多就带来各种相关问题(会话冲突、用户拥堵和数据集合大小不符)。如果扩展性做得好,产品就会运行得既安全又高效。这对于一些金融类的高风险业务尤为重要。
随着服务规模的不断扩展,人工进行系统管理已经成为不可能完成的任务,自动化运维将是不可回避的选择。业界的一种观点是,DevOps 是自动化运维的唯一方法;Dmitriy 认为 DevOps 是一种文化,会在企业发展成长中自然而然地形成。
3. 运维能力已经成为企业的技术基础在以前,研发工程师团队只负责开发产品,而不负责提高开发效率的相关工作,如:代码重用性、实现模式、用户库、核心 API 等。现在,一些 DevOps 文化的公司已经将这些工作融合在一起。
一些大型网站如 Facebook、Google 等都有专职的 SRE(Site Reliability Engineer)网站可靠性工程师,国内又称应用运维师。其对应的工作职责包含:容量规划与实施、集群部署、数据中心容错、负载均衡和监控等。
4. 公司在不同的发展阶段对运维的需求不同
- 初创阶段 公司在初创时期最需要关心的就是如何研发出满足市场需求的功能,而不是舍本逐末地去抓运维。因为这个时期企业一方面还没有大量用户,而另一方面运维会耗费过多的技术资源;所以应该将更多的精力放在快速迭代、新功能研发上。这个时期,推荐企业采用 NoOps。
- 快速扩张时期 在互联网时代,传统企业开始直接向客户提供服务,但是旧式运维并不能胜任大量的流量负载。这个时候,运维工作需互联网规模化(WebScale)。 WebScale IT 是相对于传统 IT 构架的新概念,意味着系统可处理大量计算、承受高负载、具有强容错性和持续部署及交付能力、可高效运维等。
感谢郭蕾对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ , @丁晓昀),微信(微信号: InfoQChina )关注我们。
评论