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