前言:
最近ServiceFabric开源了,大家热情都比较高,官方文档大而全,但快速入手不容易找到头绪。发几篇极简的文档,跟大家分享一下,顺便为Ray的ServiceFabric部署做一下铺垫。因为这几篇主要是工作中用到的笔记,可能会非常简单。
正文:
Azure Service Fabric
是一款分布式系统平台,可方便用户轻松打包、部署和管理可缩放的可靠微服务和容器。 Service Fabric 还解决了开发和管理云本机应用程序面临的重大难题。 开发人员和管理员不仅可以避免复杂的基础结构问题,而且可以专注于实现可缩放、可靠且可管理的要求苛刻的任务关键型工作负荷。 Service Fabric 代表了下一代平台,用于生成和管理在容器中运行的企业级单层云规模应用程序。
由微服务组成的应用程序
利用 Service Fabric,可以生成和管理可缩放的可靠应用程序,其中包括在计算机的共享池(称为“群集”)中高密度运行的微服务。 它提供了复杂的轻型运行时,用于生成在容器中运行且可缩放的无状态和有状态分布式微服务。 它还提供了全面的应用程序管理功能,用于预配、部署、监视、升级/修补和删除已部署的应用程序(包括容器化服务)。
Service Fabric 为当今很多 Microsoft 服务提供技术支持,包括 Azure SQL 数据库、Azure Cosmos DB、Cortana、Microsoft Power BI、Microsoft Intune、Azure 事件中心、Azure IoT 中心、Dynamics 365、Skype for Business 以及其他许多核心 Azure 服务。
Service Fabric 专为创建云端本机服务而定制,这些服务可以根据需要从小规模开始,并成长为包含数百或数千台计算机的大规模服务。
当今的 Internet 规模的服务是使用微服务构建而成的。 微服务的例子包括协议网关、用户配置文件、购物车,清单处理、排队和缓存等。 Service Fabric 是微服务平台,为每个无状态或有状态微服务(或容器)命名独一无二的名称。
Service Fabric 为由这些微服务组成的应用程序提供全面的运行时和生命周期管理功能。 它在 Service Fabric 群集间部署和激活的容器内部托管微服务。 从虚拟机移动到容器可能使密度出现数量级增长。 同样,如果从容器迁移到这些容器中的微服务,也可能会出现另一个密度数量级。 例如,单个 Azure SQL 数据库群集包含数百台计算机,这些计算机运行数以万计的容器,而这些容器总共托管数十万个数据库。 每个数据库都是一个 Service Fabric 有状态微服务。
有关微服务方法的详细信息,请阅读微服务方法为什么可以生成应用程序?
容器部署和业务流程
Service Fabric 是 Azure 推出的跨计算机群集部署微服务的容器 Orchestrator。 微服务的开发方法有多种,包括使用 Service Fabric 编程模型、ASP.NET Core 或部署任意选定代码。 重要的是,可以在同一应用程序中混合使用进程中的服务和容器中的服务。 如果只需要部署和管理容器,Service Fabric 是容器 Orchestrator 理想之选。
不限 OS 和云
Service Fabric 可以在所有环境中运行。 可在许多环境(包括在 Azure 中或本地、在 Windows Server 或 Linux 上)中创建 Service Fabric 群集。 甚至可以在其他公有云上创建群集。 此外,SDK 中的开发环境与生产环境完全相同,都不涉及模拟器。 也就是说,在本地开发群集上运行的内容会部署到其他环境中的群集。
对于 Windows 开发,Service Fabric .NET SDK 与 Visual Studio 和 Powershell 集成。 请参阅在 Windows 上准备开发环境。 对于 Linux 开发,Service Fabric Java SDK 与 Eclipse 集成,Yeoman 用于为 Java、.NET Core 和容器应用程序生成模板。 请参阅在 Linux 上准备开发环境
有关在本地创建群集的详细信息,请阅读在 Windows Server 或 Linux 上创建群集。有关创建 Azure 群集的详细信息,请阅读通过 Azure 门户创建群集。
无状态和有状态 Service Fabric 微服务
使用 Service Fabric,可以生成包含微服务或容器的应用程序。 无状态微服务(例如网关、Web 代理)不维护除请求及其来自服务的响应之外任何可变状态。 Azure 云服务辅助角色是无状态服务的一个示例。 有状态微服务(例如,用户帐户、数据库、设备、购物车、队列)维护除请求及其响应之外的可变、授权状态。 当今的 Internet 规模应用程序包含无状态和有状态微服务的组合。
Service Fabric 的关键区别在于,大力注重使用内置编程模型或容器化有状态服务生成有状态服务。 应用程序方案介绍了可使用有状态服务的方案。
应用程序生命周期管理
Service Fabric 支持包含容器的云应用程序具有完整的应用程序生命周期和采用 CI/CD。 生命周期包括从开发到部署、到日常管理和维护,再到最终解除授权。
借助 Service Fabric 应用程序生命周期管理功能,应用程序管理员和 IT 操作人员能够使用低接触的简单工作流预配、部署、修补和监视应用程序。 这些内置的工作流极大地减少了 IT 操作人员保持应用程序持续可用的负担。
大多数应用程序都包含无状态和有状态微服务、容器以及同时部署的其他可执行文件。 通过在应用程序上采用强类型,可以使用 Service Fabric 部署多个应用程序实例。 每个实例将单独进行管理和升级。 重点是,Service Fabric 能够部署容器或任何可执行文件,并确保它们的可靠性。 例如,Service Fabric 可部署 .NET、ASP.NET Core、node.js、Windows 容器、Linux 容器、Java 虚拟机、脚本、Angular 或应用程序的其他任何组成部分。
Service Fabric 与 Visual Studio Team Services、Jenkins 和 Octopus Deploy等 CI/CD 工具集成,并可与其他任何常用 CI/CD 工具配合使用。
有关应用程序生命周期管理的详细信息,请阅读应用程序生命周期。 若要详细了解如何部署任意代码,请参阅部署来宾可执行文件。
关键功能
通过使用 Service Fabric,可以:
- 部署到 Azure 或部署到运行 Windows 或 Linux 的本地数据中心,而无需改变任何代码。 编写一次,即可随处部署到任何 Service Fabric 群集。
- 使用 Service Fabric编程模型、容器或任意代码,开发由微服务组成的可缩放应用程序。
- 开发高度可靠的无状态和有状态微服务。使用有状态微服务,简化应用程序设计。
- 使用新 Reliable Actors 编程模型,创建具有独立式代码和状态的云对象。
- 部署和安排容器,包括 Windows 容器和 Linux 容器。 Service Fabric 是可感知数据的有状态容器 Orchestrator。
- 几秒内就可以高密度部署应用程序,即每台计算机部署数百或数千个应用程序或容器。
- 同时部署同一应用程序的不同版本,并单独升级每个应用程序。
- 无需停机,即可管理应用程序生命周期,包括重大升级和非重大升级。
- 缩放群集中的节点数。 缩放节点数的同时,应用程序也会随之自动缩放。
- 监视并诊断应用程序的运行状况,并设置策略以执行自动修复。
- 观察资源均衡器如何跨群集安排重新分发应用程序。 Service Fabric 可从故障中恢复,并基于可用资源优化负载分布。
原文地址:https://docs.azure.cn/zh-cn/service-fabric/service-fabric-overview