Azure Service Fabric是否与Docker做同样的事情?

时间:2016-09-02 07:21:08

标签: asp.net azure docker azure-service-fabric

我的想法是人们使用Docker来确保本地环境与生产相同,并且他们可以停止考虑他们的应用程序在物理上运行的位置,并且平衡机制应该只在那个时刻在最佳位置分配应用程序。 / p>

我100%基于网络,我将与我们的数据库一起迁移到云端,无法移动的内容将无缝桥接,因此企业内容和云将成为一个子网。 / p>

所以我想知道,也许Service Fabric已经做了与Docker相同的事情,加上它提供了地址转换服务(fabric://对于结构空间中的进程有点像DNS)加上(对某些人来说很重要)鼓励按需工作人员分配 - 巨大的可扩展性特权。

  1. Service Fabric能否成功取代Docker?
  2. 是否获得了观众和接受度?因为否则即使最伟大的发明也会失败。

3 个答案:

答案 0 :(得分:53)

由于Docker(该公司)试图在所有云计算中声明索赔,这令人困惑。

  • Docker Engine(大多数人称之为“Docker”)是一种集装箱化技术。它可以给你
    • 流程隔离
    • 网络隔离
    • 一致的应用环境
  • Docker Hub 是一个图片注册表。它存储Docker镜像,因此您可以将其作为部署的一部分下载。
  • Docker Cloud 是Docker的业务流程系统。它可以给你
    • 上下扩展您的应用
    • 将您的应用程序相互连接
    • CI测试,与Docker Hub集成(这不是编排的一部分,只是它做的另一件事)

Service Fabric是一个编排系统。它可以协调Docker容器,但如果您专门为Fabric构建,它也可以与您的服务更紧密地集成。 (Docker完全不知道容器内部运行的是什么。)

所以Service Fabric 大部分可与Docker Cloud相媲美,但它并不完全匹配。还有其他一些基于Docker的业务流程解决方案(Kubernetes可能是最大的),还有其他基于云的微服务解决方案(Heroku可能是最知名的)。

Service Fabric的主要缺点是它是一种Microsoft技术,因此与使用Docker时相比,您将更加依赖Azure。另一个是Docker有更广泛的选择来构建你的堆栈:我上面列出的所有三个Docker - 至少有一个开源替代品(这也是Docker的一个很大的缺点,因为没有人为你制定单一的最佳实践文件。)

如果您喜欢Microsoft,并且如果将cobbling系统放在一起对您来说并不重要,那么Service Fabric应该是Docker生态系统的一个很好的替代品。 (你仍然可以在其下运行Docker容器。)

答案 1 :(得分:2)

Service Fabric和Docker容器化之间的主要相似之处:

  1. Docker和SF都能够在Linux和Windows这两个平台上通过微服务实现创建不可变的映像。
  2. Docker和SF都能够在VM集群中协调您的容器化应用程序。这些VM可以在任何地方-公共云,私有云或您自己的数据中心。请注意,它们都与云平台无关,这意味着它们对任何云服务都没有很强的亲和力。因此,只要您在微服务中未使用任何特定于云的功能,就可以了。
  3. Docker和SF都能够展示协调平台的基本功能:服务发现,服务级别负载平衡,服务之间的网络级别隔离,故障转移处理和复制控制等。

Service Fabric和Docker容器化之间的主要区别:

  1. Docker容器本质上是一个部署/打包构造。话虽如此,Docker并没有决定服务实现过程中您在容器中包装的内容。它们都没有提供任何编程构造来实现您的服务种类。鉴于Service Fabric提供了基本类型/接口形式的编程结构,您的服务实现可以从这些类型/接口开始,声明某种服务类型-状态服务,无状态服务,虚拟角色。
  2. 在Docker世界中,一切都是容器,即您的最小部署/编排单位是容器。因此,它无法识别或支持单个过程。而在SF中,我们有一项规定,其中可以对无状态/有状态服务衍生的微服务进行编排和治理。但是,SF也像Docker一样支持容器编排。另外,最新版本的SF允许将您的有状态/无状态服务包装在容器中。

考虑到上述事实,请注意,SF对任何云提供商都没有很强的亲和力。只要您能够创建具有所需平台的虚拟机,它就可以在任何公共云(Azure,AWS或GCP)上平等运行。

答案 2 :(得分:1)

根本不具有可比性。使用服务结构,您可以进行运行状况监视,与该结构的代码集成,日志记录,监视,负载平衡和其他智能功能。您的应用程序甚至可以执行关闭代码。 Service Fabric不仅仅适用于Microsoft技术,甚至docker都可以位于SF内,而rkt或Unix OS也可以。安全性和网络功能(与Web应用程序一致)是另一个优点。可靠的收藏简直就是辉煌。并为采用它的公司保证了更好的应用程序构建和性能的路线图(历史证明是这样)。

这个问题在很大程度上支持“最大发明” Docker。这种比较对Docker营销有好处,但是没人会取代SF的SF。 Docker只是一个很小的OS副本(与服务,应用程序或智能无关)。 Docker甚至与应用程序开发无关,这不是故意的。只是人们已经开始发现隔离和共享的需求。这就是Docker的全部意义所在。