作者: | Edith Harbaugh, Cody De Arkland and Brian Rinaldi |
语言: | 英文 |
出版年份: | 2023 |
下载链接: |
书籍均收集自互联网,仅供学习和研究使用,请莫用于商业用途。谢谢合作。 |
《Operating Continuously》是由Edith Harbaugh、Cody De Arkland和Brian Rinaldi共同撰写的软件开发领域的重要著作,于2023年4月由O’Reilly Media出版。本书深入探讨了软件交付领域的持续运营模式,旨在帮助技术领导者和从业者更好地理解和实践现代软件开发中的持续交付、持续部署和持续运营理念。
随着软件开发行业的快速发展,传统的瀑布式开发模型已逐渐被敏捷开发、DevOps和持续交付等现代实践所取代。本书的写作背景正是基于这一行业变革。作者指出,软件交付的目标始终是为客户提供高质量的软件,但实现这一目标的方式正在不断演变。近年来,工具的成熟化、远程工作的兴起以及云计算的广泛采用等因素,都促使软件团队的工作方式发生了根本性的变化。传统的软件开发中,产品管理、设计、开发、运维和分析等角色之间的分工明确,但这种模式已经无法满足现代软件开发的需求。现代软件开发强调团队之间的紧密协作和整合,以实现更高质量、更低风险的软件交付。本书正是为了指导团队如何适应这种新的持续运营模式而编写的。
本书主要面向技术领导者,包括开发、运维和产品管理等领域的负责人,以及CTO和架构师等角色。这些读者通常在处理与敏捷开发模型相关的常见问题,并寻求超越传统模型的指导。此外,同一团队中的技术从业者也可以从本书中受益,尤其是那些希望了解团队之外的角色和流程的人。例如,产品经理可以通过阅读本书更好地理解运维团队的挑战,从而更好地协作。
本书共分为四个章节,分别围绕部署(Deploy)、发布(Release)、运营(Operate)和测量与实验(Measure and Experiment)四个阶段展开,涵盖了软件交付生命周期的各个方面。
本章详细介绍了健康部署实践的特征,强调了快速从本地开发过渡到生产环境的重要性。作者提倡采用小而频繁的部署方式,通过使用功能标志等开发实践来降低风险。此外,还探讨了部署编排的不同策略及其优缺点。例如,蓝绿部署(Blue/Green Deployments)和金丝雀部署(Canary Deployments)是两种常见的部署策略。蓝绿部署通过创建两个完全相同的环境(一个当前的“蓝色”环境和一个新的“绿色”环境)来实现安全的部署。一旦新功能在绿色环境中经过小规模用户测试并证明可行,就可以逐步将更多用户流量切换到绿色环境。如果出现问题,可以轻松地将流量切换回蓝色环境。金丝雀部署则通过将一部分流量导向新版本的服务,同时保留旧版本的服务,从而实现对新版本的逐步推广。这种策略允许团队在不影响所有用户的情况下,观察新版本的性能和稳定性。
本章探讨了如何利用功能管理(Feature Management)将发布与部署分离,从而实现更灵活的发布策略。功能标志(Feature Flags)是实现这一目标的关键工具,它允许团队在不重新部署代码的情况下,控制新功能对用户的可见性。功能标志不仅可以用于功能验证、金丝雀发布和风险缓解,还可以实现A/B测试、个性化和权限管理等功能。例如,通过功能标志,团队可以针对特定用户群体或地区逐步推出新功能,从而更好地控制发布节奏和风险。此外,功能标志还可以用于实现自定义的用户体验,根据用户的地理位置、设备类型、购买历史等信息,为用户提供个性化的功能和服务。
本章介绍了在持续运营模式下,团队如何理解和应对生产中的系统。作者讨论了事件管理实践,强调了在系统运行过程中,如何快速发现和解决潜在问题的重要性。在持续运营模式下,软件的部署和发布不再是线性的、阶段性的过程,而是同时发生的。这意味着团队需要具备快速响应和处理问题的能力,以确保系统的稳定性和可靠性。事件管理是运营阶段的关键环节,它要求团队能够及时识别、诊断和解决系统中的问题。通过建立有效的事件管理流程,团队可以减少问题对用户的影响,提高系统的可用性和稳定性。此外,团队还需要关注人员组织和团队协作,确保在面对问题时能够迅速采取行动。
本章强调了在持续运营模式下,测量和实验的重要性。通过A/B测试和产品分析,团队可以更好地了解用户行为和产品性能,从而做出更明智的决策。作者特别关注了治理和数据清洁的重要性,因为只有准确的数据才能支持有效的测量和实验。在持续运营模式下,团队需要不断地测量和实验,以验证新功能的效果和优化产品的性能。通过收集和分析用户数据,团队可以了解用户对新功能的接受程度和使用情况,从而及时调整产品策略。此外,团队还可以通过实验来探索不同的功能设计和用户体验,以找到最适合用户需求的解决方案。
本书的核心理念是,软件开发应该是一个持续的过程,而不是一系列离散的项目。作者认为,通过持续的部署、发布、运营和测量,团队可以更快地交付价值,减少风险,并更好地适应市场变化。为了实现这一目标,团队需要采用一系列现代实践,如持续集成(CI)、持续交付(CD)、功能标志和蓝绿部署等。这些实践可以帮助团队更好地控制发布过程,降低风险,并提高开发效率。此外,团队还需要建立一种文化,鼓励快速迭代和持续改进。这种文化要求团队成员之间紧密协作,共同解决问题,并不断寻求更好的解决方案。
《Operating Continuously》是一本为现代软件开发团队量身定制的指南。它不仅提供了关于持续运营模式的深入见解,还给出了具体的实践建议和工具选择。通过阅读本书,读者可以获得宝贵的指导,帮助他们的团队更好地适应快速变化的市场环境,提高软件交付的质量和效率。本书强调,持续运营是软件开发的新常态,团队需要不断学习和适应,以保持竞争力。通过采用本书中介绍的实践和工具,团队可以实现更高效、更可靠的软件交付,从而为用户提供更好的产品和服务。