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

阅读: 评论:0

【新书推荐】《ASP.NETCore微服务实战:在云环境中开发、测试和部署跨
平台服务》带你。。。
《ASP.NET Core 微服务实战》译者序:
“微服务”的概念在 2014 年正式提出之后,越来越多的团队开始⽤它来设计⾃⼰的业务系统,各种微服务框架和开发过程管理⽅法也同时兴起、不断成熟。微服务设计⽅法清晰地定义了各个开发团队的业务边界,微服务框架以不同的⽅式实现了服务之间的协作与集成,根据康威定律我们可以推导这样⼀种产品开发⽅法必然会映射到⼈员协作⽅式上去。还有同步兴起的 DevOps 运动,它及时恰当地补齐了微服务开发过程中的技术⽅法,让微服务⽣态如虎添翼。
经过⼏年的积累,⼈们开始意识到,微服务从概念到实现,最后推⼴到整个组织,这整个过程期间存在⼤量的挑战:服务之间的依赖管理、⼤量服务实例的运维、单个服务的独⽴部署,以及承担不同⾓⾊的微服务在同⼀个⽣态系统中的⾝份认证等,都开始成为微服务团队需要直接⾯对的挑战。与此同时,各类微服务框架也层出不穷,让开始接触微服务的开发⼈员眼花缭乱,既难以区分它们的优劣、做出合适的选型,⼜难以到⾼效的学习路径。
在 .NET 技术领域,微服务的挑战⽐起很多其他技术栈有过之⽽⽆不及。.NET 技术在企业应⽤开发领域
有着长久的运⽤,因此有⼤量的存量应⽤需要⾯向服务化改造。⽽.NET Core 技术作为新⼀代 .NET 技术⽅向,⽆论是这⼀技术⽣态⾃⾝的完整性,还是基于它的微服务框架体系,都处于持续的完善之中。最后,在传统的企业应⽤开发领域,并没有普遍采⽤持续交付等实践,当时所开发的应⽤也难以满⾜云原⽣应⽤所要求的诸多特性,因此改造过程难度较⼤。
所幸 .NET Core 作为全新的 .NET 技术,它不仅完全开源、跨平台,更⾯向云原⽣开发进⾏了⼤量⽽细致的优化。它完全模块化,不依赖特定操作系统,同时其⽂件系统、⽹络和配置等基础功能模块对跨平台、命令⾏等现代化轻量级开发所要求的特性提供了优秀的⽀持。正是由于 .NET Core 作为基础开发平台天然适合云原⽣开发,因此基于ASP.NET Core 开发微服务也天然具有这些优势。
本书“⿇雀虽⼩,五脏俱全”,它从 .NET Core 开发环境安装开始,紧接着详细介绍了持续交付、API 优先和测试驱动等重要开发⽅法和思想。本书探讨了⼈们对微服务的各种理解,以实际项⽬从各⽅⾯体现出本书作者对微服务的全⽅⾯诠释,引导读者在直观的体验中建⽴⾃⼰的理解;同时,本书还主张把微服务和云原⽣实践结合运⽤,书中通过解析⼗⼆因⼦应⽤的各项特性,并分析它们在本书⽰例项⽬中的体现,让读者对微服务和云原⽣的结合更为体系化。在本书的讲解过程中,每当遇到可能存在不同做法的场景,作者总是详细论述各项考量、仔细⽐较各种可能的做法,引发读者思考;同时,本书还⼤量探讨了传统应⽤开发中的典型做法,以及在微服务和云原⽣开发时应该采纳的新⽅法,仔细解析其中缘由,为存量应⽤的改造提供了直接指导。
在本书英⽂原版写作时,.NET Core 还处于早期的 1.1 版本,⽽现在中⽂版翻译期间,.NET Core 的最新版已经是 2.2 版了。为了让读者在基于最新版 .NET Core 练习书中的⽰例项⽬时更为顺畅,译者对书中所涉及的⽰例代码进⾏了升级。在升级过程中,部分代码需要经过改写才能与新版本的运⾏时或者依赖模块配合⼯作。读者在使⽤书中的代码时,请⾃⾏将书中所涉及的 GitHub 仓库地址由 github/microservices-aspnetcore 替换为 github/microservices-aspnetcore-zh ,在使⽤Docker 镜像的⽅式运⾏⽰例项⽬时,将书中的 Docker 镜像由 dotnetcoreservices 前缀替换为 dotnetcoreserviceszh。如果使⽤翻译版的代码遇到问题,请在这些 GitHub 仓库中提交 issue,译者将乐意为读者解答各类常见问题。
限于译者⽔平等各⽅⾯原因,本书在翻译时难免留下⼀些纰漏与错误,如承蒙读者指正,则译者将倍感荣幸,其他读者也将⼀起获益。请访问本书中⽂版代码仓库
github/microservices-aspnetcore-zh 或者使⽤电⼦邮件 jijie.chen@outlook 与译者取得联系。
本书中⽂版的引进必将为 .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章设计汇总
已经在京东上线,京东连接:,组织⼤家⼀起来团购这本书,看情况如果⼈多的话我们是否可以⼀起组织⼀次团购活动。因此创建了⼀个团购。

本文发布于:2023-06-28 08:14:08,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/2/155457.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:服务   开发   读者   过程
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图