微服务,云计算和DevOps等云原生技术的出现,使创新型组织能够比竞争对手更快地响应和适应市场变化,例如最初的互联网独角兽Spotify,Netflix和Google的成功。显然,并非每个公司都可以成为独角兽,但是我们可以从这些云原生的早期采用者们学习到很多的东西。
成为云原生的好处
Spotify现在著名的“squad, chapters, and guilds” 的组织模型最终导致了他们创建应用程序作为独立的微服务,进而支持需求的快速变化。通过结合引人入胜的愿景和全面采用云服务,Netflix能够在视频流媒体领域,对现有市场进行创新。Google利用其来自软件开发的技术来进行协作,自动化和解决ops问题的方法使它们能够在过去的二十年中向全球扩张。
显然,领导层以及不断变化和适应组织内部文化的意愿对结果产生了很大影响。最重要的焦点之一就是持续地缩短交付的前置时间。可以从驱动器看到这一点,以最大程度地减少从构思,编码,发布功能到获得反馈的摩擦。
成功采用我们现在称为“云原生”方法的组织已在两个核心领域进行了大量投资:创建自助服务应用程序平台,采用新工具和开发人员工作流。
从组织的角度来看,这些投资打破了通过投票系统进行传统调解的运营团队和开发团队之间的现有障碍。这促成了两个高级角色组的创建,这些组通过使用定义明确的API,自动化和有针对性的面对面交互来进行协作:
- 平台团队和SRE拥有平台,不断发展平台功能,并帮助制定运营最佳实践;
- “全周期”开发团队拥有该组织的产品和服务,并利用该平台和新的工作流程为客户创造价值。
尽管有益,但引入这些技术和组织上的改变并非那么轻松。但是不管怎样,传统的软件开发生命周期(SDLC)已经因为云的出现而中断。
全周期开发:破坏SDLC
在SDLC的传统方法中,工程师非常专注,并经常在孤岛上工作;运营建立和管理数据中心;架构师设计系统,画方框和箭头,并提供架构管理;开发人员通常针对其整体应用程序的本地运行实例对大量更改进行编码和测试。
敏捷实现了快速创新,但并未完全打破开发/运营壁垒
拥抱云技术,例如Kubernetes,已使运营团队能够自动化平台配置,并且开发人员可以在应用程序部署方面进行自助服务。微服务的使用使专注于产品的开发团队能够独立工作。因此,云原生SDLC截然不同。开发人员正在执行足够的前期架构设计。开发人员正在针对多个服务编写小的迭代更改,其中一些服务可能在本地运行,而其他服务则在远程运行。开发人员现在寻求在编码过程中自动执行QA风格的验证。开发人员还希望将快速,受控的实验发布到生产环境中。这种方法称为完整周期开发,并已在Netflix中普及。
全周期发展。在平台工具的支持下,“你构建,也由你运行”
在这里我们暂停一下,以了解迈向“全周期”开发团队的两个核心前提。这并不会消除对专业的运维,系统管理员或平台团队的需求。但是,开发和运营团队确实需要提高他们的技能。
全周期开发团队将必须培养更专业的业务领域专业技能,并扩展其对应用程序基本运行时配置的理解。运营团队将必须学习新的云技术,并了解它们如何与现有解决方案集成为有效的平台。
总结
正如此处概述所说的那样,采用云原生技术和开发风格可以通过可持续地,最小化想法之间的摩擦,相应的交付时间以及为客户提供价值,为您的组织带来重大收益。为了充分利用云原生技术的优势,其中最为关键的就是应对组织、文化和技术上的转变。