热部署选项

Options for hot deployment

本文关键字:选项 部署      更新时间:2023-10-16

我的要求是在不丢失当前状态(包括收集数据)的情况下,将代码更新无缝热部署到正在运行的服务。有没有什么c++框架可以用来开发这样的解决方案?

您可能应该阅读一些关于动态软件更新的研究论文,例如关于Kitsune(您可能会使用)

更新调用堆栈(以及本地变量中的实例)存在一个主要问题;另请阅读continuations;并且您可能有一些特殊情况(如果您的应用程序像大多数GUI应用程序一样是事件循环驱动的,那么您可能希望在事件处理程序的外部更新代码)。

您当然应该在设计的早期就考虑动态软件更新。也许是垃圾收集&持久性&序列化技术是相关的。

您的需求(在不丢失当前状态的情况下将代码更新无缝热部署到正在运行的服务)非常困难,需要大量工作;有趣的研究主题(这绝对是一门很好的博士课程)。

您可能想要使用自己的元编程技术,即通过自己的代码生成器生成大多数相关的C++支持代码。

如果你已经有了重要的代码库,你可以考虑用MELT定制最近的GCC编译器(例如,查询编译器的内部表示并从中生成一些代码),但即使这样也意味着要做很多工作-

PS。用比C++更好的东西编码,比如Erlang或Common Lisp,会降低你的目标难度。