【转载】Docker助你攻克数据库难题,原来数据库还可以这么操作!(附实操教程)...

写在前面

Microsoft SQL Server 2017首次应用于Windows、Linux 和Docker 容器中。如今在容器中,您的数据库只需要花费很短的时间就可以完成安装并且不再需要其它的安装环境,使用Docker 企业版(EE)会让你的数据库交付变得更具现代化。多年来IT人员和开发人员一直享受Docker 和容器化APP所带来的这种速度和效率的优势,现在,DBAs也可以体验到这种快感了。

开启挑战

尝试登录Docker SQL Server lab(实操教程链接:https://github.com/docker/labs/tree/master/windows/sql-server),见证如何在几秒钟内打开数据库容器并且学习如何把您的数据库对象制作成Docker 镜像吧!

如果您曾安装过一次SQL Server,那么你就一定明白为什么要说这是一件不可小觑的事了:SQL Server 需要一段时间进行设置,而且在同一主机上想要运行多个独立的SQL Server实例并不简单,这会使开发人员、测试人员和CI / CD系统的维护变得非常复杂,其中进行测试和试验都有可能破坏SQL Server实例。

现在,只要在Docker容器中使用SQL Server,那么上述的难题就能迎刃而解了。获取SQL Server就像运行“ docker image pull ”命令一样简单,您可以根据需要在同一主机上启动多个SQL Server实例,并且保证每一个都是独立、纯净的实例,当您使用完一个实例后可以对它随意处置,因为它不会影响到其他的SQL Server实例。

数据库引擎同其他服务器端应用程序一样:它们也在使用CPU和内存的进程中运行,将状态存储到硬盘,并通过网络为客户端提供服务。在容器中所有运作原理都是一样的,但是您也可以通过限制资源、用Volume插件管理状态和限制网络访问的手段来获取符合您需要的理想环境。

许多Docker客户已经在使用像Postgres这样的技术了,在容器中运行高可用性的生产数据库。现在,您可以通过Docker 企业版(EE)来使数据库变的更具有可移植性,安全性和高效性。

用Docker让你的数据库交付变得更具现代化

传统的数据库交付很难适应现代的CI / CD流水线,但Docker却让它变得非常容易。您可以使用Microsoft’s SQL Server 的 Docker镜像,并通过自动化程序把您自己的数据库对象打包在镜像的顶层。这样,所有人都能通过启动一个容器来运行任何版本的数据库对象了——他们甚至不需要在其机器上安装SQL Server。

下图是用Docker来实现数据库交付的工作流程图

【转载】Docker助你攻克数据库难题,原来数据库还可以这么操作!(附实操教程)...

  1. DBA将数据库对象更改后推送到源代码控制中;
  2. CI流程根据Microsoft发布的SQL Server基础镜像将数据库对象打包到一个Docker镜像中;
  3. CI流程使用从新镜像中创建的一个一次性的数据库容器运行测试套件;
  4. CD流程将测试环境中持续运行的数据库容器升级到新的镜像中;
  5. CD流程运行一个用于升级生产数据库的数据库容器,应用Diff脚本将Schema与新的镜像进行对齐;

打包、测试、分发和升级的整套流程都可以通过Docker来实现自动化部署。您可以在开发和测试环境中运行数据库容器,这些环境是高速的、独立的,并且具有完全相同的数据库对象版本。您可以继续使用您现有的生产数据库,但要使用测试的Docker镜像将更新部署到生产环境中。

支持与下载

Docker 企业版(EE)是一个支持 Linux 在生产环节中运行 SQL Server 的平台。SQL Server for Linux是一个经过认证的容器镜像,这意味着您可以从Microsoft和Docker处获取解决问题的支持。

在Windows Server和Windows 10上,您可以使用Docker在容器中运行SQL Server Express,从而让现有SQL Server部署的数据库交付过程变得更具现代化,并不需要您更改生产环境中的基础设施。

全新的SQL容器将于10月份在Docker Store*您下载。目前,来自Docker Hub的SQL Server Preview版本已经有超过100万次的下载量。