Microsoft Orleans 框架提供了一种无需太多复杂性即可构建分布式、大规模系统的方法。
缩放对于奥尔良来说是自然的;如果主机出现故障,则该主机上的事件颗粒会在其他地方重新激活,因为它们的状态会持久保存在存储中。
考虑到这一点,像 Docker 这样的容器服务如何应用于生产中的 Orleans 应用程序?如果 Orleans 已经默认缩放,为什么我们需要编排容器服务来进行缩放?
在主机出现故障时重新激活 grains 不是缩放 - 它是应用程序可靠性(自动修复)。
扩展适用于添加更多服务器和应用程序自动调整自身以使用此额外硬件的能力。Orleans 提供应用程序自动缩放:如果您添加更多服务器,Orleans 将通过在新服务器上放置新 Cereal 来自动开始使用这些服务器。但是仍然需要有人决定添加更多服务器。 Orleans 不会自动执行此操作。必须有一些(在 Orleans 外部)控制循环来测量 CPU 或吞吐量或其他一些指标,并决定添加更多服务器。容器集群编排可以做到这一点。
容器的另一个好处是更易于管理 - 与直接使用软件相比,将包含所有软件的整个容器“提升并转移”到另一个云提供商或本地更容易,因为容器可以捕获所有软件依赖项。这与 Orleans 完全无关,只是容器的一般优势。
我是一名优秀的程序员,十分优秀!