zoukankan      html  css  js  c++  java
  • 09.结构化数据库如何持续交付笔记

    --------------------------------------------------------------------------------------------------

    应用程序VS数据库

     

    数据可以理解为一个应用代码。

    解决思路:

    架构解耦:在应用程序和数据库对象之间形成单一可控的依赖路径

    团队解耦:应用程序微服务化带来2 pizza team,团队/应用/数据库成为独立单元

    自动化:形成所有环境上的数据库自动化持续部署能力;形成应用于数据统一的版本控制能力

    ------------------------------------------------------------------------

    团队协作模式和架构演进

     

     团队解耦(微服务)

     

     DBA的职能和团队演化

     

    应用DBA :

    l  负责特定应用程序的数据结构,数据库应用代码,初始数据应用代码,初始数据,业务数据的维护

    l  协作开发,测试团队完成所需要的环境持续部署

    l  敏捷/微服务演进过程逐步加入应用开发团队,成为职能团队的一部分

    系统DBA:

    l  负责数据服务器级别的系统稳定运行

    l  需要具备各类数据库的高可用,宅被,备份恢复,打补丁,系统升级的能力

    l  维护生产坏境数据的持续部署

    l  云计算和PaaS平台演进过程中主键被平台能力替代

    ----------------------------------------------------------------------------------------------------------------

    数据库持续交付流水线设计

    *数据库制品分层

    *数据库即——数据库配置管理

    01.数据库的制品分层

     

    02.示例:

     

    示例:

     

    数据库持续交付流水线

     

    代码->持续集成->开发环境->测试环境->UAT/预生产->生产环境

    代码:

    l  数据库脚本入库

    l  与应用采用同样的版本管理机制

    l  通过分支策略,拉去请求控制数据库版本的统一和对其

    l  为开发人员提供本地数据库独立部署能力

    l  为开发人员提供Daily Build生成共享数据库

    持续集成

    l  持续集成(CI):

    n  数据库脚本与应用代码一同打包

    n  自动完成持续集成环境临时数据库的部署:数据结构、应用代码、初始数据,测试数据

    n  自动完成数据库集成测试,使用持续集成环境临时数据库(数据会被污染)

    n  理应Docher对数据库状态进行快照

    l  持续集成(Daily build)

    n  使用单日最终版代码

    n  数据库脚本与应用代码一同打包

    n  自动完成开发环境数据库部署:数据结构,应用代码,基础数据,测试数据

    开发环境:提供Daily Build所部署的数据库提供开发团队作为数据库基线版本

    测试环境:使用开发测试团队认可的制品版本进行部署

    UAT/预生产:

    l  在当前数据库版本基础上使用迁移脚本完成数据库升级

    l  利用工具自动完成差异脚本的生成

    l  必要时人工介入手工编写迁移脚本,比如:拆表,拆行

    l  数据验证脚本编写和入库

    l  回滚脚本并验证回滚过程

    l  数据迁移脚本入库

    生产环境:

    l  在当前数据库版本基础上使用经过验证的迁移脚本完成数据库升级

    l  数据验证

     

    外部资源--->开发级--->测试级--->生产级--->制品库

    PR触发的预构建->获取代码->编译->静态代码扫描->L1单元测试->发布包准备->Docker Build&Push

    -----------------------------------------------------------------------------------

    持续交付实施框架:

     

  • 相关阅读:
    git常用命令大全
    谷粒商城遇到的问题
    谷粒商城Seata(四十一)
    通过VMware Horizon Client访问虚拟机
    Qt 让窗口(或控件)居中
    QT 设置QDockWidget的初始大小
    Qt QDockWidget小结
    Qt QDockWidget停靠窗相关的信号
    Qt 基于Qt的词典开发系列--无边框窗口的缩放与拖动
    Qt 创建停靠悬浮窗口 QDockWidget
  • 原文地址:https://www.cnblogs.com/aixiaoxiaoyu/p/12590458.html
Copyright © 2011-2022 走看看