【发布时间】:2015-10-27 11:00:54
【问题描述】:
我将如何实际部署使用基于图像的持久性的应用程序?这是我的场景:我在 Smalltalk 中编写了一个 CMS。在这种情况下,数据主要是读取,很少写入。现在,每当有人写数据时,我都可以拍摄图像的快照。但是我将如何引入我的应用程序的新版本并继承正在运行的应用程序的状态?除了图像,我不需要某种形式的序列化/数据持久性吗? 谢谢
【问题讨论】:
我将如何实际部署使用基于图像的持久性的应用程序?这是我的场景:我在 Smalltalk 中编写了一个 CMS。在这种情况下,数据主要是读取,很少写入。现在,每当有人写数据时,我都可以拍摄图像的快照。但是我将如何引入我的应用程序的新版本并继承正在运行的应用程序的状态?除了图像,我不需要某种形式的序列化/数据持久性吗? 谢谢
【问题讨论】:
最简单的方法是使用 Monticello 引入新版本。
这不会影响您现有的数据,除非您更改了类的形状(例如,删除或重命名 instvar) - 在这些情况下,无论您的持久性机制如何,您都需要适当的迁移策略。
当然,如果您在更新之前对映像进行快照,那么回滚很简单。
【讨论】:
在 Pier3 中,我们可以将 CMS 数据转换为代码,然后将其写为 Monticello 包。我们可以在本地 Pier 镜像中写入内容,提交并 git push 新版本到云中的服务器。在那里我们运行一个简单的循环来轮询 git 目录以找到一个新版本并加载它。
【讨论】: