发布于:2021-01-17 00:00:32
0
98
0
敏捷开发和DevOps之类的方法可以帮助数据专业人员构建理想的DataOps生态系统。本文回顾了五个基本的最佳实践,这些最佳实践可以帮助您开始创建自己的敏捷数据库开发过程。
随着技术行业转向敏捷开发,传统的数据库开发像在繁琐的生产机器中一样成为繁琐的瓶颈。尽管数据库管理确实很复杂,但它不是一成不变的。变革是进步不可或缺的一部分,可以在任何学科中进行。
数据库开发的过渡不必充满危险和复杂性。敏捷范式的目标是将开发周期变成一个协作的生态系统,从而在每个阶段都增强灵活性。在采用敏捷数据库开发流程时,数据库专业人员可以受益于DevOps基础架构的协作功能来改善其工作环境。
本文回顾了五个基本的最佳实践,这些最佳实践可以帮助您开始创建自己的敏捷数据库开发过程。
提示1:与跨职能团队加强协作
采用敏捷数据库开发流程的最大挑战是对变更的天生抵抗。每项技术的背后至少都有一个人,负责维护和管理技术的多项任务。为了确保凝聚力和平稳的过渡,重要的是将其转变为一个协作的工作,其中要考虑到所有被采纳者。
尽管传统的开发范例在职能团队中保留小组角色,但敏捷开发范例依赖于跨职能团队。职能团队将开发,测试,数据库和生产中的任何阶段分开。跨职能团队整合了开发的所有阶段。因此,在敏捷开发中,数据库管理不再可以充当单独的实体。相反,现在需要数据库管理才能加入DevOps团队。
当每个人都朝着同一目标努力时,生产将变得越来越容易和快捷。尽管敏捷范例依赖于协作,但它与团队的独立性没有冲突。可以创建一个敏捷的数据库开发生态系统,其中数据库团队有权管理自己。整个DevOps团队可以拥有分配的微服务的整个堆栈,而数据库角色则维护和管理数据库。
提示2:使用数据库版本控制提高可见性
可见性或监视是确保数据库的所有组件正常工作的一种做法。通常由负责可靠性工程的数据专业人员来承担此责任。可见性使团队可以全面了解数据库状态,从容量规划,突发警报到性能和行为分析。
可见性提供减轻当前风险和防止未来威胁所需的信息。因此,可见性通常被视为确保数据库生存能力的第一步,也是最关键的一步。数据库的任何点故障都可能导致发布延迟。在最坏的情况下,数据库可见性低可能会导致数据丢失或失窃。
数据版本控制可以为您提供一个真实的来源。尽管似乎无法实现数据版本控制,但如今有一些软件工具和解决方案可以帮助您获得尽可能多的可见性。请记住,与应用程序不同,数据库是有状态的。数据库模式版本控件应通过运行可以识别数据库状态的脚本并实施永远不会覆盖数据的控件来努力保留数据。
提示3:通过自动化提高吞吐量
根据2017年DevOps状况报告,自动化任务的组织可以在保持高质量的同时实现更快的软件交付速度。自动化可以帮助组织发布和维护几乎没有错误的软件,并实施快速恢复修复。随着云迁移的普及,自动化从未如此简单。尽管可以将自动化应用于所有类型的数据库,但是用于云数据库的自动化工具通常可以提供更快,更简单的解决方案。
敏捷数据库管理将数据库管理视为开发周期的基础部分,而不是单独的实体。因此,任何自动化都应与现有的DevOps自动化管道集成。与DevOps团队集成可创建一个统一的生态系统,以促进安全,高效地编排数据库部署。由于数据库专业人员负责实施自动化,因此他们可以从手动流程过渡,同时仍确保满足数据质量标准和公司政策。
提示4:通过自动集成和性能测试保护数据完整性
数据完整性是一个广义的概括性术语,涵盖了旨在确保整个生命周期中数据的可靠性和准确性的任务。无论数据存储在结构化数据库,数据仓库还是数据湖中,数据完整性都可以防止对信息的意外更改。
自动化测试通过提供安全的数据库反馈来帮助保留数据的完整性。借助自动化测试,数据专业人员可以创建一组回归测试来代替特定的手动测试。自动化的测试工具可以发送警报,为团队提供及时的报告,以进行快速修复以保护数据的完整性。因此,自动测试将数据专业人员从手动测试中解放了出来,并将重点转移到了创造价值上。
提示5:通过静态代码分析增强反馈过程
敏捷开发对快速开发和交付的关注可能会使DevOps团队承受巨大压力。尽管在任何情况下人为错误都是一个恒定的因素,但要加快生产速度会导致质量下降。与应用程序开发相反,数据库开发对错误和错误的容忍度要低得多。
为了确保满足某些数据库标准,数据专业人员可以使用静态代码分析。静态代码分析不单单依靠同行评审,而是引入了自动反馈流程,以补充团队的反馈回路。静态代码分析在开发的早期阶段即测试之前实施,以提供启动反馈循环的初始分析。使开发的这一阶段自动化可以帮助加快数据库开发,因此减轻了一些对团队造成的压力。
结论—敏捷数据库开发是DataOps的垫脚石
敏捷开发和DevOps之类的方法可以帮助数据专业人员构建理想的DataOps生态系统。在自动化工具的辅助下,DataOps基础架构可以变成一种快速,高效的机器,用于保存,保护和分析数据。在当今越来越依赖于从数字数据中提取有价值的信息的世界中,敏捷数据库开发提供了自动化的基础结构,可在更短的时间内获得更可靠的数据。
作者介绍