【新书推荐】《ASP.NET Core微服务实战:在云环境中开发、测试和部署跨平台服务》 带你走近微服务开发

《ASP.NET Core 微服务实战》译者序:https://blog.jijiechen.com/post/aspnetcore-microservices-preface-by-translator/html

“微服务”的概念在 2014 年正式提出以后,愈来愈多的团队开始用它来设计本身的业务系统,各类微服务框架和开发过程管理方法也同时兴起、不断成熟。微服务设计方法清晰地定义了各个开发团队的业务边界,微服务框架以不一样的方式实现了服务之间的协做与集成,根据康威定律咱们能够推导这样一种产品开发方法必然会映射到人员协做方式上去。还有同步兴起的 DevOps 运动,它及时恰当地补齐了微服务开发过程当中的技术方法,让微服务生态如虎添翼。git

通过几年的积累,人们开始意识到,微服务从概念到实现,最后推广到整个组织,这整个过程期间存在大量的挑战:服务之间的依赖管理、大量服务实例的运维、单个服务的独立部署,以及承担不一样角色的微服务在同一个生态系统中的身份认证等,都开始成为微服务团队须要直接面对的挑战。与此同时,各种微服务框架也层出不穷,让开始接触微服务的开发人员眼花缭乱,既难以区分它们的优劣、作出合适的选型,又难以找到高效的学习路径。github

在 .NET 技术领域,微服务的挑战比起不少其余技术栈有过之而无不及。.NET 技术在企业应用开发领域有着长久的运用,所以有大量的存量应用须要面向服务化改造。而 .NET Core 技术做为新一代 .NET 技术方向,不管是这一技术生态自身的完整性,仍是基于它的微服务框架体系,都处于持续的完善之中。最后,在传统的企业应用开发领域,并无广泛采用持续交付等实践,当时所开发的应用也难以知足云原生应用所要求的诸多特性,所以改造过程难度较大。docker

所幸 .NET Core 做为全新的 .NET 技术,它不只彻底开源、跨平台,更面向云原生开发进行了大量而细致的优化。它彻底模块化,不依赖特定操做系统,同时其文件系统、网络和配置等基础功能模块对跨平台、命令行等现代化轻量级开发所要求的特性提供了优秀的支持。正是因为 .NET Core 做为基础开发平台自然适合云原生开发,所以基于 ASP.NET Core 开发微服务也自然具备这些优点。数据库

本书“麻雀虽小,五脏俱全”,它从 .NET Core 开发环境安装开始,紧接着详细介绍了持续交付、API 优先和测试驱动等重要开发方法和思想。本书探讨了人们对微服务的各类理解,以实际项目从各方面体现出本书做者对微服务的全方面诠释,引导读者在直观的体验中创建本身的理解;同时,本书还主张把微服务和云原生实践结合运用,书中经过解析十二因子应用的各项特性,并分析它们在本书示例项目中的体现,让读者对微服务和云原生的结合更为体系化。在本书的讲解过程当中,每当遇到可能存在不一样作法的场景,做者老是详细论述各项考量、仔细比较各类可能的作法,引起读者思考;同时,本书还大量探讨了传统应用开发中的典型作法,以及在微服务和云原生开发时应该采纳的新方法,仔细解析其中原因,为存量应用的改造提供了直接指导。后端

在本书英文原版写做时,.NET Core 还处于早期的 1.1 版本,而如今中文版翻译期间,.NET Core 的最新版已是 2.2 版了。为了让读者在基于最新版 .NET Core 练习书中的示例项目时更为顺畅,译者对书中所涉及的示例代码进行了升级。在升级过程当中,部分代码须要通过改写才能与新版本的运行时或者依赖模块配合工做。读者在使用书中的代码时,请自行将书中所涉及的 GitHub 仓库地址由 https://github.com/microservices-aspnetcore 替换为 https://github.com/microservices-aspnetcore-zh ,在使用 Docker 镜像的方式运行示例项目时,将书中的 Docker 镜像由 dotnetcoreservices 前缀替换为 dotnetcoreserviceszh。若是使用翻译版的代码遇到问题,请在这些 GitHub 仓库中提交 issue,译者将乐意为读者解答各种常见问题。安全

限于译者水平等各方面缘由,本书在翻译时不免留下一些纰漏与错误,如承蒙读者指正,则译者将倍感荣幸,其余读者也将一块儿获益。请访问本书中文版代码仓库 https://github.com/microservices-aspnetcore-zh 或者使用电子邮件 jijie.chen@outlook.com 与译者取得联系。服务器

本书中文版的引进必将为 .NET 技术领域的微服务实践和云原生技术的普及作出重要贡献。在此,译者特此感谢清华大学出版社的大力支持,感谢张善友老师为本书译文提出的宝贵建议,感谢曾一块儿共事的翻译小组 WorkSharp 的同事们、特别是刘夏先生的指导,感谢社区中关注本书的各位热心人士的激励和帮助。最后,最须要致以真诚感谢的,是时常关心个人翻译工做、提醒我及时休息的父母;以及忍受我用几个月的业余时间来翻译、却仍然要在翻译时随时提供参谋的爱人张圣奇:是大家无限的耐心和持续的支持才让本书的翻译工做得以顺利完成。微信

如下是我写的推荐:网络

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

几乎全部的当代软件工程都专一于缩短产品的上市时间。微服务是一种以服务为导向的演进式体系结构模式, 它优雅地消除了组织摩擦, 让团队和工程师们拥有在不断地进行交付、迭代和改进时所需的自主权。能够预见,云原生时代的应用都是以微服务的形式出现。

关于微服务,有很多书籍堪称经典。但结合最新的Web框架ASP.NET Core来说解微服务的书籍却很少。本书完整的介绍了使用ASP.NET Core进行微服务开发时的思路、步骤和工具,是一本不可多的的必读手册,本书因为成书较早,其示例代码所基于的.NET Core版本略显陈旧,译者的努力必定程度上弥补了这一问题。最重要的是,书中用大量篇幅讲述的关于开发功能强大且具备高伸缩性和韧性的微服务的思想不会过期的。另外,本书还关注使用ASP.NET Core实现云原生模式,以及要让应用成为云原生生态中的好公民须要关注的方方面面。这些在具体技术框架以外的经验与思考,更是弥足珍贵。

微服务开发并不是只是将代码物理分离,开发过程当中还要面对与微服务开发模式一同到来的服务集成、团队协做等一系列新挑战。相对于单体应用,开发人员之因此选择微服务,一个很重要的缘由就是想经过一种能将服务独立地、快速地部署上线的能力。本书讲解了ASP.NET Core是如何经过与容器技术的无缝兼容轻松提供这一能力的。微服务的职责单一,这意味着服务之间须要相互调用才能完成多个任务,或者各方协力才能完成较大的任务。服务间的依赖与集成也是一项不可忽视的基本议题。基于事件集成,以及借助服务发现机制为相互依赖的服务提供灵活调度是两项常见的服务集成方法,本书对这两种方法都进行了完整介绍。因为各个后端服务未必直接面对用户,所以微服务系统中的安全认证也与直接面对用户的系统有所不一样,本书深刻讲解了几种常见的安全机制,供开发者根据实际状况选用。

与本书基于ASP.NET Core开发微服务的主题相呼应,ASP.NET Core自己就是一系列的模块化组件,可添加到现有应用中。同时,因为ASP.NET Core提供自宿主Web服务器对REST风格接口的支持很是友好,自身量级足够轻量而且性能强劲,所以ASP.NET Core天然适合做为微服务开发的基础框架。有了优秀的框架,接下来咱们要考虑的是,如何避免再次陷入用一项新技术继续开发“新版本的一溜单体应用”。本书经过实际项目的深刻演练,以及同步的理论讲解,让读者在面对微服务生态构建过程当中的各类场景时,能作好充分准备。

不过我我的认为,这本书仍是缺乏了一部分关于微服务生态系统的内部编排的内容, 容器是微服务部署的最佳方式,容器做为现代基础设施上一种更细粒度的抽象,能有效下降占用空间和缩短启动时间、同时因为它提供了一种新的组件重用性级别,因此能轻松地集成到整个开发生态系统中(例如持续集成和交付生命周期),微服务生态治理包括调度(包括部署、复制、扩展、复活、从新调度、升级、降级等)、资源管理(内存、CPU、存储空间、端口、IP、镜像等)和服务管理(即便用标签、分组、命名空间、负载均衡和准备就绪检查将多个容器编排在一块儿)。

一直以来,在我运营的“dotnet跨平台”公众号和各类线上线下场合,我与不少朋友探讨和分享过微服务开发相关的经验。曾有不少朋友关心,有没有微服务相关的入门材料。这本书借助实际项目,系统地梳理了微服务开发的脉络,给初学者提供了行之有效的学习素材。因此本书的引进是以见值得高兴的事情。

书籍目录以下:

第1章 ASP.NETCore基础
1.1 核心概念
1.1.1 CoreCLR
1.1.2 CoreFX
1.1.3.NETPlatformStandard
1.1.4 ASP.NETCore
1.2 安装.NETCore
1-3开发控制台应用
1.4 开发第一个ASP.NETCore应用
1.4.1 向项目添加ASP.NET包
1.4.2 添加Kestrel服务器
1.4.3 添加启动类和中间件
1.4.4 运行应用
1.5 本章小结
第2章 持续交付
2.1 Docker简介
2.1.1 安装Docker
2.1.2 运行Docker镜像
2.2 使用Wercker持续集成
2.3 用Wercker构建服务
2.3.1 安装Wercker命令行工具
2.3.2 添加wercker.yml配置文件
2.3.3 运行Wercker构建
2.4 使用CircleCI持续集成
2.5 部署到dockerhub
2.6 本章小结
第3章 使用ASP.NETCore开发微服务
3.1 微服务的定义
3.2 团队服务简介
3.3 API优先的开发方式
3.3.1 为何要用API优先
3.3.2 团队服务的API
3.4 以测试优先的方式开发控制器
3.4.1 注入一个模拟的仓储
3.4.2 完成单元测试套件
3.5 建立持续集成流水线
3.6 集成测试
3.7 运行团队服务的Docker镜像
3.8 本章小结
第4章 后端服务
4.1 微服务生态系统
4.1.1 资源绑定
4.1.2 服务间模型共用的策略
4.2 开发位置服务
4.3 优化团队服务
4.3.1 使用环境变量配置服务的URL
4.3.2 消费RESTful服务
4.3.3 运行服务
4.4 本章小结
第5章 建立数据服务
5.1 选择一种数据存储
5.2 构建Postgres仓储
5.2.1 建立数据库上下文
5.2.2 实现位置记录仓储接口
5.2.3 用EFCore内存提供程序进行测试
5.3 数据库是一种后端服务
5.4 对真实仓储进行集成测试
5.5 试运行数据服务
5.6 本章小结
……
第6章 事件溯源与CQRS
第7章 开发ASP.NETCoreWeb应用
第8章 服务发现
第9章 微服务系统的配置
第10章 应用和微服务安全
第11章 开发实时应用和服务
第12章 设计汇总

ASP.NET Core微服务实战:在云环境中开发、测试和部署跨平台服务 已经在京东上线,京东链接: https://item.jd.com/12611071.html,组织你们一块儿来团购这本书,看状况若是人多的话咱们是否能够一块儿组织一次团购活动。所以建立了一个团购微信群。

clip_image002

相关文章
相关标签/搜索