给Cassandra专家们:我被分配任务,需要提出有关Cassandra CQL脚本管理和部署的建议。团队应该如何管理大量的CQL脚本(模式定义脚本(DDL),数据操作脚本(INSERT / UPDATE / DELETE)),从Cassandra开发的起始到应用程序模式的后续更改。如果可以的话,我想指出的是,开发团队规模并不小(每个应用程序功能区域有10多名开发人员)。
一种方法(可能是错误的方法)是像典型的关系数据库工作室那样做:应用程序开发人员或开发DBA设计和创建ddl、dml等脚本,将它们存储和维护在版本控制系统(例如SVN)中,并使用一些自动化在环境(dev、qc等等)中部署这些脚本(可能简单到shell或perl脚本)。我认为这种方法在NoSQL解决方案(如Cassandra)中的缺陷在于参与这三个步骤的角色。 1-设计和创建CQL脚本——这应该由DevOps(Cassandra管理员)还是应用程序开发人员完成?
2-在SVN中存储和维护它们——这是否应该类似于上述问题1中的方式?
3-脚本部署——应用程序开发人员还是DevOps? 我还想从应用程序模式控制和审计的角度得到答案。例如,对于上述问题1和2,如果应用程序开发人员设计、创建并存储CQL脚本在SVN中,如何能够控制哪些内容进入CQL模式并防止昂贵的错误。如果有专门的、单一的团队拥有数据模型而不是所有cassandra开发人员(类似于DBA /管理员),那么更容易实现这种控制。
我希望那些以前做过这件事的人能够为大型环境中的CQL代码开发、部署和维护提供选择和最佳实践的见解。 一如既往,感谢您的帮助。
一种方法(可能是错误的方法)是像典型的关系数据库工作室那样做:应用程序开发人员或开发DBA设计和创建ddl、dml等脚本,将它们存储和维护在版本控制系统(例如SVN)中,并使用一些自动化在环境(dev、qc等等)中部署这些脚本(可能简单到shell或perl脚本)。我认为这种方法在NoSQL解决方案(如Cassandra)中的缺陷在于参与这三个步骤的角色。 1-设计和创建CQL脚本——这应该由DevOps(Cassandra管理员)还是应用程序开发人员完成?
2-在SVN中存储和维护它们——这是否应该类似于上述问题1中的方式?
3-脚本部署——应用程序开发人员还是DevOps? 我还想从应用程序模式控制和审计的角度得到答案。例如,对于上述问题1和2,如果应用程序开发人员设计、创建并存储CQL脚本在SVN中,如何能够控制哪些内容进入CQL模式并防止昂贵的错误。如果有专门的、单一的团队拥有数据模型而不是所有cassandra开发人员(类似于DBA /管理员),那么更容易实现这种控制。
我希望那些以前做过这件事的人能够为大型环境中的CQL代码开发、部署和维护提供选择和最佳实践的见解。 一如既往,感谢您的帮助。