博客

DBaaS时代的自助服务

  • 2019年5月22日
  • 0回答
  • 1578的浏览量
DBaaS时代的自助服务
Userlevel 7
徽章 + 34
本文作者是技术营销工程师Michael Haigh Nutanix

(aka利用Nutanix Calm为Nutanix时代提供综合自助服务)

Nutanix Era是一个自动化和简化数据库管理的软件套件——为数据库供应和生命周期管理(LCM)带来了一键式的简单性和不可见的操作。通过一键式数据库发放和复制数据管理(CDM)作为其第一项服务,Nutanix Era允许dba在任何时间点发放、克隆、刷新和备份数据库。

以api为基础的Nutanix Era架构可以轻松地与您首选的自助服务工具(如Nutanix Calm)集成。dba和基础设施管理员可以构建专注于Era的Calm蓝图,开发人员可以使用该蓝图通过自助服务提供或克隆Era管理的数据库。这允许dba和基础设施管理员仅访问Era的管理员帐户,同时仍然允许开发人员根据需要提供或克隆数据库。

这篇博客文章将关注导入和启动一个Calm蓝图,该蓝图将克隆现有的Era管理数据库。关于数据库提供的蓝图,请参阅Nutanix GitHub蓝图库PostgreSQLMariaDB提供蓝图。在即将发布的博客中,我们将介绍这些蓝图,以及如何利用它们为应用程序提供生产级数据库。

蓝图进口

首先,我们需要下载存储在GitHub上的原始JSON蓝图文件。要么导航到该链接,并保存页面,或从您的终端运行以下命令:

代码:
wget https://raw.githubusercontent.com/MichaelHaigh/calm-blueprints/master/EraDatabaseClone/EraDatabaseClone.json美元

接下来,用管理员、项目管理员或开发人员帐户登录到Nutanix Calm。选择蓝图按钮,然后选择上传的蓝图按钮


在弹出窗口中,首先选择最近下载的蓝图,然后给蓝图一个描述性的名称,然后选择希望与该蓝图关联的项目。请注意,蓝图仅限于单个项目。如果您有多个希望关联的项目,您可以稍后将蓝图发布到Marketplace,这允许无限数量的项目。


后单击上传按钮,您将看到蓝图画布。在启动蓝图之前,我们需要完成两个方面。首先,选择凭证沿着顶部,并提供以下两个凭据:
  • era_creds:您的时代服务器的管理帐户凭据。DBA或Infra Admin应该提供这些凭证,这些凭证将被加密并安全地存储,开发人员将无法使用这些凭证。
  • db_server_creds:允许SSH访问Era供应的数据库的私钥。建议提供默认的私钥,但保留在运行时,以便开发人员可以指定自己的密钥(如果需要的话)。


如果你手边没有SSH密钥,可以用以下命令生成并打印一个:

代码:
$ ssh-keygen -t rsa -f ~/erakey -C era@example.com
$ cat ~/erakey #在凭据部分输入这个值
猫~ / erakey美元。稍后在变量部分输入这个值

完成后,选择回来按钮在右上角。接下来,我们需要配置几个变量:
  • source_db_name:这个应该是空的,但保留在运行时,这样开发人员可以在应用程序启动时指定源数据库的名称。如果为空,或者给出了一个错误的名称,应用程序将故意在早期失败,并为开发人员提供一个有效的数据库名称列表。
  • source_snapshot_id:这应该是空的,但留在运行时,这样开发人员可以指定他们希望用于数据库克隆的快照的UUID。如果留空,系统将自动选择最近的快照。如果提供了不正确的UUID,应用程序将故意在早期失败,并为开发人员提供有效的快照UUID列表。
  • cloned_db_name:这应该是空白的,但留在运行时,以便开发人员可以命名的克隆数据库。如果为空,克隆的数据库将默认为_Clone_。
  • cloned_db_public_key:与“db_server_creds”一起,允许SSH访问克隆的数据库服务器。建议添加一个默认的匹配公钥,但将该字段保留为运行时,这样开发人员可以根据需要指定自己的密钥。
  • era_ip:您的Era服务器的IP地址。这应该在蓝图导入时配置,然后不用管它。


填写完下面两个变量后,单击保存在右上角,并验证没有出现警告或错误。现在,我们已经准备好启动我们的蓝图了。

蓝图发射

单击右上角的发射按钮,你会看到应用程序启动页面。至少,你需要提供一个应用程序名称,并填入source_db_namecloned_db_password变量。


如果您不知道在Era中注册的数据库的名称,可以询问您的DBA,或者使用source_db_name字段空白。应用程序启动将失败,但是1 getdbhostinfo“包安装”任务将包含有效数据库名称的列表。

虽然不期望也不需要访问Nutanix Era,如果您这样做,您可以从监控克隆操作操作时代的页面:


应用程序管理

在“平静应用程序”上更改为运行状态下,纪元源数据库已成功克隆,并可从数据库中收集访问信息服务选项卡。要验证是否拥有一个功能性数据库,可以从服务选项卡,并将启动时提供的数据库名称和密码提供给一个工具,如PSequel:


另外,除了默认的配置文件操作(启动、停止、删除等)之外,定制的两天操作还可以在管理标签:
  • 获取父快照列表:当运行此操作时,将提供快照时间列表和克隆父节点的uuid。这在运行刷新克隆操作时非常有用。
  • 刷新克隆:执行此操作时,克隆数据库将被刷新到不同的快照。可选地提供快照UUID(可以从获取父快照列表操作),如果为空,克隆将被刷新到最近的快照。
让我们想象一下,昨晚大约10:45,我们收到了生产应用程序出现问题的报告。我们可以先运行获取父快照列表,它将返回所有可用快照的列表(输出被截断):

代码:
快照ID(副本):1192b09d-3259-4f3e-91de-a7af9aea5179
快照时间戳:2019-05-12 22:35:57
------------------------
快照ID(复制此快照):8a27dd58-64ef-4972-add4-edad4558fdc8
快照时间戳:2019-05-12 23:23:58
------------------------
快照ID(复制此快照):5a4168e3-93ac-48e6-bdb5-1d1794a4ac42
快照时间戳:2019-05-13 00:11:57

为了确保捕获报告的错误,我们将把数据库刷新到以8a27dd58开头的快照:


总结

由于Nutanix Era及其api的开放性和灵活性,使用现有的自助服务工具(如service Now或Nutanix Calm)来扩展Era功能非常简单。这允许Era管理数据库的自助服务提供和克隆,而不需要管理员向开发人员提供Era管理凭据。

©2019 Nutanix, Inc.保留所有权利。本协议中提到的Nutanix、Nutanix标识和其他Nutanix产品和特征均为Nutanix, Inc.在美国和其他国家的注册商标或商标。本文中提到的所有其他品牌名称仅用于识别目的,且可能是其各自持有人的商标,而Nutanix不得与这些持有人关联、赞助或认可。本文档仅供参考之用,并以“现状”呈现,不提供任何类型的保证,无论是默示的、法定的或其他形式的保证
Baidu