![]()
内容推荐 在当今的几乎每个垂直领域,企业都需要将软件迁移到云以获取利润;而微服务能提供敏捷性,大幅缩短产品上市时间。 《ASP.NET Core微服务实战:在云环境中开发、测试和部署跨平台服务》这本实战指南将指导你使用开源ASP.NET Core框架,来创建、测试、编译和部署微服务。 跟随《ASP.NET Core微服务实战:在云环境中开发、测试和部署跨平台服务》,你将养成良好、实用的习惯,能快速开发稳定可靠、功能强大的服务。 要开发微服务,并非只是学习一个特定框架或一门编程语言,而要开发能适应弹性伸缩环境、独立于托管容器、能随时启停的应用。这本紧贴实用的指南将带你体验这一过程。 领会测试驱动、API优先的开发理念 通过创建和消费后端服务(如数据库和队列)与其他服务交互 构建依赖于外部数据源的微服务 学习事件溯源(以事件为中心的持久化方法) 使用ASP.NET Core开发适合部署在云环境的Web应用 开发一个消费其他服务或被其他服务消费的微服务 创建可接受外部配置的服务和应用 探索用于保护ASP.NET Core微服务和应用的方法 Kevin Hoffman讲授如何使用新的云模式、实践和技术,对企业级应用进行迁移和现代化改造,以使它们适应云环境。Kevin时常参与各种用户组和技术会议,迄今已撰写了十几本计算机编程书籍。 目录 章ASP.NET Core基础1 1.1核心概念1 1.1.1CoreCLR1 1.1.2CoreFX2 1.1.3.NET Platform Standard3 1.1.4ASP.NET Core3 1.2安装.NET Core4 1.3开发控制台应用5 1.4开发个ASP.NET Core应用8 1.4.1向项目添加ASP.NET包8 1.4.2添加Kestrel服务器9 1.4.3添加启动类和中间件10 1.4.4运行应用12 1.5本章小结12 第2章持续交付15 2.1Docker简介15 2.1.1安装Docker16 2.1.2运行Docker镜像16 2.2使用Wercker持续集成18 2.3用Wercker构建服务18 2.3.1安装Wercker命令行工具19 2.3.2添加wercker.yml配置文件20 2.3.3运行Wercker构建22 2.4使用CircleCI持续集成22 2.5部署到docker hub24 2.6本章小结25 第3章使用ASP.NET Core开发微服务27 3.1微服务的定义27 3.2团队服务简介28 3.3API优先的开发方式29 3.3.1为什么要用API优先29 3.3.2团队服务的API30 3.4以测试优先的方式开发控制器31 3.4.1注入一个模拟的仓储38 3.4.2完成单元测试套件40 3.5创建持续集成流水线42 3.6集成测试43 3.7运行团队服务的Docker镜像46 3.8本章小结47 第4章后端服务49 4.1微服务生态系统49 4.1.1资源绑定51 4.1.2服务间模型共用的策略51 4.2开发位置服务53 4.3优化团队服务56 4.3.1使用环境变量配置服务的URL56 4.3.2消费RESTful服务57 4.3.3运行服务59 4.4本章小结62 第5章创建数据服务63 5.1选择一种数据存储63 5.2构建Postgres仓储64 5.2.1创建数据库上下文65 5.2.2实现位置记录仓储接口66 5.2.3用EF Core内存提供程序进行测试68 5.3数据库是一种后端服务68 5.4对真实仓储进行集成测试71 5.5试运行数据服务73 5.6本章小结76 第6章事件溯源与CQRS77 6.1事件溯源简介77 6.1.1事实由事件溯源而来78 6.1.2事件溯源的定义78 6.1.3拥抱最终一致性79 6.2CQRS模式80 6.3事件溯源与CQRS实战——附近的团队成员82 6.3.1位置报送服务83 6.3.2事件处理器92 6.3.3事实服务98 6.3.4位置接近监控器99 6.4运行示例项目99 6.4.1启动服务100 6.4.2提交示例数据101 6.5本章小结103 第7章开发ASP.NET Core Web应用105 7.1ASP.NET Core基础105 7.1.1添加ASP.NET MVC中间件108 7.1.2添加控制器109 7.1.3添加模型110 7.1.4添加视图110 7.1.5从JavaScript中调用REST API112 7.2开发云原生Web应用115 7.2.1API优先116 7.2.2配置116 7.2.3日志116 7.2.4会话状态117 7.2.5数据保护117 7.2.6后端服务118 7.2.7环境均等118 7.2.8端口绑定119 7.2.9遥测119 7.2.10身份验证和授权119 7.3本章小结120 第8章服务发现121 8.1回顾云原生特性121 8.1.1配置外置121 8.1.2后端服务122 8.2Netflix Eureka简介123 8.3发现和广播ASP.NET Core服务125 8.3.1服务注册126 8.3.2发现并消费服务127 8.4DNS以及由平台支持的服务发现130 8.5本章小结131 第9章微服务系统的配置133 9.1在Docker中使用环境变量134 9.2使用Spring Cloud配置服务器135 9.3使用etcd配置微服务138 9.4本章小结144 0章应用和微服务安全145 10.1云环境中的安全145 10.1.1内网应用145 10.1.2Cookie和Forms身份验证146 10.1.3云环境中的应用内加密146 10.1.4Bearer令牌147 10.2ASP.NET Core Web应用安全148 10.2.1OpenID Connect基础148 10.2.2使用OIDC保障ASP.NET Core应用的安全150 10.2.3OIDC中间件和云原生157 10.3保障ASP.NET Core微服务的安全158 10.3.1使用完整OIDC安全流程保障服务的安全159 10.3.2使用客户端凭据保障服务的安全160 10.3.3使用Bearer令牌保障服务的安全160 10.4本章小结164 1章开发实时应用和服务165 11.1实时应用的定义165 11.2云环境中的WebSocket166 11.2.1WebSocket协议167 11.2.2部署模式167 11.3使用云消息服务168 11.4开发位置接近监控服务169 11.4.1创建接近监控服务169 11.4.2为实时接近监控服务创建界面178 11.5本章小结179 2章设计汇总181 12.1识别并解决反模式181 12.2继续辩论组合式微服务184 12.2.1使用断路器缓解风险185 12.2.2消除同步的组合模式187 12.3接下来,还要做什么?188 |