译者序
微服务设计方法清晰定义了各个开发团队的业务边界,微服务框架以不同方式实现了服务之间的协作与集成。
.NET Core 作为全新的 .NET 技术,它不仅完全开源、跨平台,更面向云原生开发进行了大量细致的优化。它完全模块化,不依赖特定操作系统,其文件系统、网络和配置等基础功能模块对跨平台,命令行等现代化轻量级开发所要求的特性提供了卓越的支持。
本书首先介绍 .NET Core 开发环境的安装,接着详细介绍持续交付、API 优先和测试驱动等重要开发方法和思想。
推荐序
本书较完整地介绍使用 ASP.NET Core 进行微服务开发时的思路、步骤和工具,书中用大量篇幅讲述关于开发功能强大且具有高可伸缩性和韧性的微服务思想,关注使用 ASP .NET Core 实现云原生模式。
本书 GitHub 库(https://github.com/microservices-aspnetcore)
第 1 章 ASP .NET Core 基础
核心概念
CoreCLR: 一个轻量级、跨平台运行时,提供与 CLR 相同功能,包括垃圾回收、JIT 编译、异常处理等等。
CoreFX: 一系列模块化程序集,以 NuGet 包方式提供,并且完全开源,可通过 GitHub 获取。
.NET Platform Standard: 以一种可控的架构支持 .NET Core 二进制可移植性的跨平台目标。
ASP .NET Core: 一系列小的模块化组件,可添加到现有应用中,用于开发 Web 应用和微服务;提供了路由、JSON 序列化、MVC 控制器与视图 API 。
开发控制台应用
代码语言:javascript复制$ dotnet new console
$ dotnet restore
$ dotnet run
项目创建完成后,运行 dotnet restore 可分析项目的依赖,并下载所有需要的包。每次修改项目文件 .csproj 后,都要执行这一步骤。
开发第一个 ASP.NET Core 应用
往控制台应用添加 ASP.NET Core 功能步骤:
- 添加 ASP.NET 包
- 添加 Kestrel 服务器
- 添加启动类和中间件
第 2 章 持续交付
相对于传统的单体应用,开发人员之所以要选择开发微服务系统,其驱动力之一就是需要一种能把新功能和修复补丁快速部署到小型、可独立缩放的子系统的功能。
只有在部署前就能确信这些服务在生产环境中不会出问题,才有可能做到这一点。
Docker 运用 Linux 内核提供的 cgroup 和 namespace 等功能对网络、文件和内存等资源进行隔离,避免了完整的重量级虚拟机的负担。
Docker 提供的能力让我们可以创建一种无视目标环境差异,随处运行的发布物,意味着在测试环境中测试 Docker 镜像之后,我们相信它在生产环境中也会以完全一致的方式工作。这是拥抱持续交付的前提。
运行 Docker 镜像
代码语言:javascript复制$ docker run -p 8080:8080 dotnetcoreservices/hello-world
$ docker ps
$ curl http://localhost:8080/will/it/blend?
$ docker kill 61a68ffc3851
使用 Wercker 持续集成
免费社区版(https://app.wercker.com/)
用 Wercker 构建服务
- 安装 Wercker 命令行工具
- 添加 wercker.yml 配置文件
- 运行 Wercker 构建
使用 CircleCI 持续集成
CircleCI 与 Wercker 构建过程的关键区别在于,构建过程不是在已安装好 .NET Core 的专用 Docker 镜像中运行,我们需要使用诸如 apt-get 的工具来安装 .NET 工具链。