我们有。net核心应用程序在AKS中运行,我们需要将自定义DLL插入运行pod。
关于自定义DLL:由每个客户根据特定合同实现的自定义。
我们已经探索过的几个解决方案
- 在azure blob中上传自定义dll,并在运行时从运行pod中加载该dll以执行自定义代码
- 将dotnet核心应用程序映像和自定义DLL映像打包成一个映像并部署到AKS。
有没有更好的方法来解决这个问题?有什么行业标准可以解决这个架构问题吗?
注意:主要是,我寻找部署架构标准等实现细节,而不是反射或MEF等。
thanks in advance.
映像应该是不可变的工件,用于打包和版本一组编译后的代码。
如果你的客户将一个自定义dll放到一个存储中,那么触发一个docker构建,将一个版本打包,并运行这个版本。
这样做将允许您运行不同版本的dll,恢复到特定版本,或在本地调试特定版本。从卷中动态加载会增加一些"魔力"。迟早会打破。
我的两分钱