微服务是一种构建现代应用程序的流行的体系结构,云原生系统拥抱微服务。
微服务是由一组(使用共享结构交互的、独立的小块服务)搭建的分布式集,具有以下特征:
下图对比单体与微服务应用:
注意,单体应用由分层架构组成,在单个进程中执行,通常使用关系型数据库。 但是,微服务方法依据功能划分为(逻辑+数据)的独立服务,每个微服务都托管自己的数据存储。
微服务依然遵守"十二要素应用"中的One Codebase, One Application”原则。
每个微服务存储在独立代码仓库,通过版本管理进行跟踪,可以部署到多个环境。
微服务提供了敏捷能力
上一段落,我们已经对比了单体和微服务,我们看到了一些明显的好处:
学习微服务的最佳指南是《.NET Microservices: Architecture for Containerized .NET Applications》,这本书深入探讨了微服务设计和架构,它是微服务实践https://github.com/dotnet-architecture/eShopOnContainers的阅读搭档。
可以使用任何现代开发平台来创建微服务。
微软.NET平台是一个绝佳的选择,免费、开源,内置许多功能以简化微服务开发。.NET是跨平台的,可以在Windows、macOS和大多数Linux上构建和运行应用程序。
.NET的性能很高,在TechEmpower组织的性能基准测试中,.NET相当优秀。
.NET由Microsoft和.NET社区在GitHub上维护。