DevOps、SRE和渠道工程的概念在不同时期呈现,并由不同的个人和安排开发。
- DevOps作为一个概念是由Patrick Debois和Andrew Shafer在2009年的敏捷会议上提出的。他们企图经过促进协作文化和在整个软件开发生命周期中同享职责来弥合软件开发和操作之间的差距。
- SRE,即站点牢靠性工程,是谷歌在21世纪初首创的,用于处理办理大型杂乱体系的操作应战。谷歌开发了SRE实践和东西,如Borg集群办理体系和Monarch监控体系,以进步其服务的牢靠性和功率。
- 渠道工程是一个较新的概念,建立在SRE工程的根底上。渠道工程的切当来源不太清楚,但它通常被理解为DevOps和SRE实践的扩展,重点是为支持整个事务视角的产品开发交给一个全面的渠道。
值得注意的是,虽然这些概念呈现在不同的时期。它们都与软件开发和操作中改善协作、自动化和功率的更广泛趋势有关。
在曩昔的十年中,工程和技术安排已经将构建和布置云原生运用程序的最佳实践调集在一起。这些最佳实践包含持续交给、容器化和构建可观察体系。 与此同时,云原生安排已经从根本上改变了他们的安排办法,从大型部分(开发、QA、运营、发布)转移到较小的独立开发团队。这些运用程序开发团队得到两个新功用的支持:站点牢靠性工程和渠道工程。SRE和渠道工程是传统运维团队的精力继承者,将软件工程的学科带入运维的不同方面。
站点牢靠性工程和渠道工程
- 渠道工程团队运用软件工程准则来加速软件交给。渠道工程师确保运用程序开发团队在软件交给生命周期的一切方面都是高效的。
- 站点牢靠性工程团队运用软件工程准则来进步牢靠性。站点牢靠性工程师将影响云运用全体牢靠性的毛病频率和影响降到最低。
这两个团队常常混淆,这两个术语有时可以交换运用。事实上,一些安排将SRE和渠道工程合并到相同的功用中。之所以会呈现这种状况,是因为这两个角色都适用一套一起的准则。
- 渠道即产品。这些团队应该花时刻了解他们的内部客户,拟定路线图,拟定发布节奏方案,编写文档,以及完结软件产品中的一切作业。
- 自助服务渠道。这些团队构建自己的渠道供内部运用。在这些渠道中,对最佳实践进行了编码,因而这些渠道的用户无需担心——他们只需按下按钮即可。在Puppet Labs的《2020年DevOps现状报告》中,Puppet Labs发现,高功用DevOps安排比低功用DevOps安排具有更多的自助服务根底设施。
- 对消除辛劳的持续重视。正如谷歌SRE书中界说的那样,辛劳是手动的、重复的、自动化的、战术的作业。最好的SRE和渠道团队可以识别并消除辛劳。
渠道工程
渠道工程师不断地查看从源代码到生产的整个软件开发生命周期。经过这个内省的进程,他们构建了一个作业流,使运用程序开发人员可以快速编写和发布软件。根本的作业流通常包含与持续集成体系相连接的源代码控制体系,以及将工件布置到生产环境中的办法。
跟着运用作业流的运用程序开发人员数量的增长,渠道的需求也在改变。不同的运用程序开发团队需求相似但不同的作业流,因而自助服务根底设施变得很重要。自助服务的常见渠道工程方针包含CI/CD、警报和布置作业流。
**除了自助服务,教育和协作也成为应战。渠道工程师发现,他们花越来越多的时刻培训运用程序开发人员,让他们了解最佳实践和怎么最好地运用渠道。**运用程序开发人员还发现他们依赖于其他运用程序开发人员团队,并希望渠道工程团队为他们供给与不同团队高效协作的东西。
站点牢靠性工程
站点牢靠性工程师创建和改善体系,以自动牢靠地运行运用程序。站点牢靠性工程的概念来源于谷歌,具体记录在谷歌SRE手册中。谷歌公司负责技术运维的高级副总裁Ben Treynor Sloss将SRE描绘为“当你要求软件工程师规划运维团队时发生的作业”。
SRE界说服务水平方针,并构建体系来帮助服务完成这些方针。这些体系发展成为一个渠道和作业流程,包含监控、事件办理、消除单点毛病、毛病缓解等。
SRE文化的一个要害部分是将每一个毛病视为牢靠性体系中的一个毛病。严厉的事后分析关于识别毛病的根本原因至关重要,并将纠正办法引进自动化体系以继续进步牢靠性。
New Relic的SRE和渠道工程
咱们中的一个人(Bjorn Freeman-Benson)一直办理着New Relic的工程安排,直到2015年,它从少量客户发展到成千上万的客户,一切客户每秒都向云端发送数百万个请求。New Relic有独立的SRE和渠道工程团队,他们遵循上述一般准则。
这些团队被分隔建立的原因之一是,在这些角色中取得成功的人是不同的。虽然sre和渠道工程师除了需求经典的编程技能外,还需求强大的体系工程技能,但这些角色决定了十分不同的性格类型。sre倾向于享用危机办理,并在排除毛病时获得肾上腺素飙升。SRE司理能在巨大的压力下茁壮成长,拿手招募和办理想法相似的人。另一方面,**渠道工程师是更典型的软件工程师,他们更喜欢不间断地作业在大而杂乱的问题上。**渠道工程司理更喜欢按照共同的节奏进行操作。
DevOps和GitOps
在曩昔的十年中,DevOps已经成为描绘这些实践的一个盛行术语。最近,GitOps也成为了一个盛行术语。DevOps和GitOps与渠道和SRE团队有什么关系?
DevOps和GitOps都是一套关于怎么办理根底设施不同方面的松懈编码准则。这两种哲学的中心准则——自动化、根底设施作为代码、软件工程的运用——十分相似。
DevOps是一场广泛的运动,它专注于消除开发和运维之间的传统竖井。跟着时刻的推移,根底设施自动化和考虑运维的工程运用等策略已经被广泛接受,成为更好地构建高牢靠性运用程序的办法。
GitOps是一种运用程序交给办法。在GitOps中,声明性配置用于在任何时刻编码运用程序的所需状况。这个配置在版本化的源代码控制体系中作为唯一的实在数据源进行办理。这确保了可审计性、可再现性和配置的共同性。
简而言之:DevOps是SRE的一套指导准则,而GitOps是渠道工程的一套指导准则。
解锁运用程序开发功率
站点牢靠性工程和渠道工程是优化构建云原生运用的工程安排的两个要害功用。SRE团队致力于为高牢靠的运用程序交给根底架构,而渠道工程团队致力于为快速的运用程序开发交给根底架构。这两个团队一起进步了运用程序开发团队的生产力。
参阅:
- EP 52: DevOps vs. SRE vs. Platform Engineering
- Platform Engineering: what is it and why do you need it?