Azure Service Fabric 快速入门






3.86/5 (4投票s)
从单体应用到微服务的演变
Azure Service Fabric
Azure Service Fabric 是 Microsoft 的平台即服务 (PaaS),用于构建和部署基于微服务的云应用程序。 但是,在我们理解 Azure Service Fabric 之前,重要的是要理解从单体应用到基于微服务的应用的演变。
背景 - 单体应用与微服务
在微服务出现之前,大多数应用程序的功能都紧密耦合到一个服务中。 这种单体方法有许多缺点,包括部署新功能时停机时间长,扩展速度慢且成本高昂,以及通过硬件冗余实现可用性和可靠性,这既复杂又昂贵。 当今的云时代,上市时间和扩展能力比以往任何时候都重要,这些缺点变得越来越重要。
- 单体应用通常分为功能层,例如 Web、业务和数据。
- 单体应用通过例如在多个虚拟机 (VM) 上克隆它来进行扩展。
- 使用微服务应用程序,您可以将功能分离为更小、模块化的服务。
- 微服务应用程序通过在虚拟机或容器中创建这些服务的实例来进行横向扩展。
与单体应用方法相比,基于微服务的应用程序被分成一组小的、松散耦合的服务。 每个服务都是独立版本控制和可扩展的,并且这些服务通过标准协议和定义明确的接口相互通信。 使用微服务方法构建应用程序意味着每个服务都可以独立于其他服务进行更新和扩展。 反过来,这提高了敏捷性和效率。 大多数 Internet 规模的服务都由微服务组成,包括协议网关、用户配置文件、购物车、库存处理、队列和缓存。 但是,这些微服务需要用于服务间通信的代码; 例如,处理错误和故障以及报告指标。 这就是 Azure Service Fabric 的用武之地。
那么它到底是什么?
Azure Service Fabric 是一个开源项目,用于 Azure 基础设施以及其他 Microsoft 服务,包括 Azure 事件中心、Azure Cosmos DB、Azure SQL 数据库、Dynamic 365 和 Cortana。 Service Fabric 的主要子部分如下所示
Service Fabric 是一个平台,可以更轻松地构建和部署基于微服务的应用程序,处理有状态和无状态操作。 它将在任何 Windows 系统上运行,并且还有一个 Linux 版本,这意味着它可以在多个云环境(包括 Amazon Web Services、OpenStack 和 VMware)中移植。
在 Azure Service Fabric 环境中创建的应用程序由粒度微服务组成,这些微服务是单独上传和运行的小代码块。 这些微服务使用服务应用程序编程接口 (API) 相互通信。 因为微服务是模块化的,所以可以单独扩展应用程序的每个组件,这简化了推出更改的过程,与传统的单体架构相反。
Service Fabric 为基于微服务的应用程序提供生命周期管理功能。 微服务托管在部署在 Service Fabric 集群中的容器内。 使用容器代替虚拟机意味着密度的大幅增加,并且通过从容器移动到这些容器中的微服务可以实现更大的密度。 例如,Azure SQL 数据库的单个集群由数百台机器组成,这些机器运行数万个容器,而这些容器又托管着数十万个数据库。 每个数据库都是一个 Service Fabric 有状态微服务。
您可以在本地、在 Azure 上、在公共云上、在 Windows Server 或 Linux 上为 Service Fabric 创建集群。 软件开发工具包 (SDK) 中的开发环境与生产环境完全相同。 不涉及任何模拟器,因此在本地开发集群上运行的内容可以部署到其他环境中的集群。
对于在 Windows 上进行的开发,Service Fabric .NET SDK 与 Visual Studio 和 Powershell 集成。 对于 Linux,Service Fabric Java SDK 与 Eclipse 集成。
主要功能
Service Fabric 的主要功能包括能够
- 开发由微服务组成的可扩展应用程序,这些微服务可以是无状态或有状态的。
- 编写一次代码,然后将其部署到任何 Service Fabric 集群。
- 快速且高密度地部署应用程序。
- 独立升级应用程序。
- 监视应用程序的运行状况并设置自动修复策略。
- 在没有任何停机时间的情况下管理应用程序的生命周期。
历史
- 2018 年 11 月 24 日:版本 1