微服务、云计算和DevOps等“云原生”技术和实践的出现,使创新型组织能够比竞争对手更快地响应和适应市场变化。例如Spotify、Netflix和谷歌这些市场早期的“独角兽”都获得了成功。并非每个公司都能够成为独角兽,但从云计算的早期使用者那里可以学到很多东西。
云原生的好处
Spotify公司如今广为人知的“团队、分会和行会”组织模型最终导致了将其应用程序创建成为独立微服务,从而支持了快速变化。通过将引人入胜的愿景与云计算服务的全面采用相结合,Netflix公司能够在视频流媒体领域超越现有市场份额。谷歌公司利用受软件开发启发的新技术来进行协作、自动化和解决操作问题的方法,使它们能够在过去的二十年中扩展到全球各地。
强有力的高层领导和不断改变和适应组织内部文化的意愿对结果产生了很大的影响。其重点之一就是不断努力以可持续地最小化交付价值的前置时间。可以从驱动因素看到这一点,以最大程度地减少从构思到编码、释放功能和获取反馈的摩擦。
成功采用“云原生”方法的组织已在两个核心领域进行了大量投资:创建自助服务应用程序平台,以及采用新工具和开发人员工作流。
从组织的角度来看,这些投资打破了传统上通过票务系统进行调解的运营团队与开发团队之间的现有壁垒。这导致创建了两个高级角色组,这两个组通过使用定义明确的API、自动化和有针对性的面对面交互来进行协作:
- 平台团队和现场可靠性工程师(SRE)拥有平台,不断改进平台功能,帮助策划运营最佳实践;
- “全周期”开发团队拥有组织的产品和服务,并利用平台和新的工作流程为客户创造价值。
尽管有益,但引入这些技术和组织上的更改并非总是轻松自如。无论其影响好坏,传统的软件开发生命周期(SDLC)都会因云计算的出现而改变。
全周期开发:破坏软件生命开发周期(SDLC)
在软件生命开发周期(SDLC)的传统方法中,工程师很专业,经常独立操作。而运营商建立和管理数据中心,架构师设计绘制方框和箭头并提供架构治理的系统。开发人员通常针对其单片应用程序的内部部署运行实例的大量更改进行编码和测试。
质量保证(QA)工程师使用一系列封闭的登台环境对系统进行验证和升级。通过质量保证(QA)的应用程序移交给要部署和运行的操作。在此之后,任何问题或异常行为都由运营团队识别并交还给开发人员。
采用Kubernetes等云计算技术,使运营团队的平台配置能够实现自动化,开发人员能够在应用程序部署方面自助服务。微服务的使用使得以产品为中心的开发团队能够独立工作。
因此,原生云的软件生命开发周期(SDLC)非常不同。开发人员正在执行前期架构设计,并针对多个服务编写一些小的迭代更改,其中一些服务可能在内部部署数据中心运行,而其他服务则在远程运行。开发人员现在寻求在编码过程中自动执行质量保证(QA)风格的验证。开发人员还希望将快速受控的实验发布到生产环境中。这种方法称为全周期开发,并已被Netflix公司普及。
人们需要了解迈向“全周期”开发团队的两个核心前提。这不会消除对专业操作、系统管理员或平台团队的需求。但是,这确实需要开发团队和运营团队成员提高技能。
全周期开发团队成员必须学习更多的业务领域专业知识,并扩展其对应用程序基本运行时配置的理解。运营团队成员必须学习新的云计算技术,并了解如何将云计算技术与现有解决方案集成到一个有效的平台。
总结
如前所述,采用云原生技术和开发风格可以持续地将想法与向客户交付价值之间的摩擦和相应的交付周期降至最低,从而为组织提供更多好处。为了充分利用云原生技术的好处,必须进行一些关键的组织、文化和技术转变。