44

Netflix的全周期开发者:从思维转变到自助工具

 5 years ago
source link: http://www.infoq.com/cn/news/2018/06/netflix-full-cycle-developers?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Netflix技术博客分享了Netflix 边缘工程 团队尝试采用新方法 构建和运维服务 的历程,最终产生了一种新的角色,叫作“全周期开发人员”。开发人员在交付服务的过程中也负责部分运营工作,他们经过培训,并可使用一系列自助服务工具。整体团队一起创建和维护平台和工具,但每个团队都可以自由地偏离“平地”。

博客文章的作者Philip Fisher-Ogden、Greg Burrell和Dianne Marsh指出,软件交付生命周期的目的是优化“获得价值的时间”,以便有效地将想法转化为产品和服务。这与Dan North和Jessica Kerr的提议类似,即现代软件开发应侧重于“ 努力缩短交付周期以减少对业务的影响 ”。开发和运行软件服务涉及多方面的责任:设计、开发、测试、部署、运行和支持。传统上,这些责任被分隔开,并在组织内形成孤岛。这在《 凤凰项目 》中是一个典型的例子。

这些特定角色在每个细分领域中带来效率,但在整个生命周期中可能效率低下。Netflix边缘工程团队负责视频流所需的第一层AWS服务,他们从 DevOps原则 中汲取灵感,重新思考了传统软件交付方法。特别是Gene Kim所推广的“DevOps三方法”,强调了系统思维、扩大反馈循环、培养持续实验和学习文化的重要性。

边缘工程团队的新方法专注于“运营自己构建的东西”(就像亚马逊CTO Werner Vogel所说的:“ 你构建它,并运行它 ”),并将DevOps原则付诸行动,让开发系统的团队同时也负责系统的运维和支持工作。

将这一责任分配给每个开发团队,而不是将其外化,从而创建直接反馈循环并调整激励措施。团队因此可以感受到运维的痛点,就会想办法改进系统的设计或代码来缓解痛点。他们需要对这两项职能负责。

这种方法面临的挑战是,负责整个开发生命周期给开发人员带来额外的负担,并且往往需要学习新的技能。个人和团队在承担责任的同时也会感到倦怠。为了缓解这些问题,可以利用工具来简化和自动化相关的开发和运维工作。Netflix已经创建了集中式支持团队,比如“云平台”、“性能和可靠性工程”和“工程工具”,目标是开发出一个通用的平台和工具来解决每个开发团队的问题。这些工具中已经有很多作为 Netflix OSS 的一部分开源出来,如 Spinnaker 持续交付平台。

思维方式的变化和公共基础设施和工具的创建相结合,于是出现了“全周期开发人员”。全周期开发人员应该要掌握软件生命周期所有领域的知识。转向全周期开发人员模式需要思维方式方式转变。一个全周期开发者需要像软件工程师(SWE)、测试开发工程师(SDET)和 站点可靠性工程师 (SRE)那样思考和行动。并非所有的开发人员都具备了相关技能,为此Netflix提供了相应的培训。此外,博客文章还讨论了并非所有的开发人员都希望这样工作,Netflix中还有其他更多特定的工作角色。

 7901-1529568293497.png 

全周期开发人员(图片来自 Netflix技术博客

博客文章警告说,要在Netflix之外应用此模型,需要作出必要的调整。行业思想领袖Gareth Rushgrove强调要避免盲目崇拜和盲目复制“软件独角兽”公司的最佳实践,他在2016年的演讲“ Two Sides of Google Infrastructure for Everyone Else ”中提出了这一观点。正如Matthew Skelton和Manuel Pais(InfoQ编辑)在“ DevOps团队拓扑 ”网站上所讨论的那样,现在已经有很多方法和各种组织结构用于解决开发和运维问题。

对于希望采用全周期方法的组织,Netflix博客作者建议从分析潜在价值和相关成本开始,然后进行思维转换。 Netflix博客上提供了很多相关信息,网络上也有很多相关信息,还有很多基于开源和SaaS的平台和工具解决方案,它们可以满足很多公司的需求。归根结底,最重要的是保持简单:“搞清楚你的需求是什么,并把复杂性降到最低。”

查看英文原文: Full Cycle Developers at Netflix: From Mindsets to Self-Service Tooling


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK