首页 > 图书中心 >图书详情

Azure、DevOps和微服务软件架构实战(第2版)

以一个项目案例贯穿全书,将云服务、DevOps、 微服务等,用项目案例这条“线”串起来,助你构建并交付可满足组织业务需求的高度可扩展的企业应用程序。

作者:[葡] 加布里埃尔·巴普蒂斯特(Gabriel Baptista) [意]弗朗西斯科·阿布鲁泽塞(Francesco Abbruzzese)著 叶伟民 张陶栋 王伟 肖
丛书名:开源.NET生态软件开发
定价:128
印次:1-1
ISBN:9787302618508
出版日期:2023.01.01
印刷日期:2022.11.15

软件架构是指可以简化软件开发过程并提高应用程序质量的实现架构和系统。本书在第1版的基础上进行了全面修订和扩展,面向.NET 5和C# 9,介绍了一些能够助你成为一名卓越的软件架构师所需的关键技能、知识和**实践。   第2版增加了对软件架构原则的额外讲述、Azure服务结构、Kubernetes和Blazor等新章节。另外,还增加了关于安全性、微服务和DevOps的讨论,以及软件开发周期的GitHub部署。   首先,介绍如何将用户需求转换为软件架构需求,并探讨功能性需求和非功能性需求之间的差异。然后,探讨如何为基础设施选择云解决方案,以及如何在基于云的环境中管理应用程序。最后,讲解软件设计模式和各种软件方法,从而帮助你解决开发过程中遇到的常见问题。   学习完本书,你将能够构建并交付可满足组织业务需求的高度可扩展的企业应用程序。 主要内容 ● 使用多种技术克服现实工作中的架构挑战,并从设计层面解决问题 ● 应用分层架构、面向服务架构和微服务架构 ● 利用容器、Docker、Kubernetes和Blazor等工具高效管理微服务 ● 快速使用Azure工具和功能提供全局解决方案 ● 使用C# 9及其新功能编程和维护Azure功能 ● 了解什么情况下最适合使用测试驱动开发方法 ● 编写自动化功能测试用例 ● 充分利用DevOps原则实现CI/CD环境

more >

前 言 本书涵盖了业界最新的基于云的分布式软件架构中较常见的设计模式和框架。本书基于实际工作中的真实场景来讨论应该何时以及如何使用每种模式。本书还介绍了DevOps、微服务、Kubernetes、持续集成和云计算等技术与软件开发流程,从而帮助你为客户开发并交付优质的软件解决方案。 本书将帮助你了解客户的需求,指导你解决在开发过程中可能面临的一些大难题,还列出了基于云环境管理应用程序需要了解的注意事项。通过学习本书,你可以了解不同的架构方法,例如分层架构、面向服务架构、微服务、单页应用程序和云架构,并了解如何将这些架构方法应用于具体的业务需求。 本书所有概念都将借助和基于现实工作中的实际用例进行解释。在这些用例中,软件设计原则能够帮助你创建安全和健壮的应用程序。通过学习本书,你可以使用 Azure 在远程环境或云上部署代码,还能够开发和交付高度可扩展且安全的企业级应用程序,以满足最终客户的业务需求。 值得一提的是,本书不仅介绍了软件架构师在开发C#和.NET Core解决方案时的最佳实践,还讨论了在最新趋势下开发软件产品需要管理和维护的各种环境。 与第1版相比,本书(即第2版)在代码及其说明方面进行了改进,并根据C# 9和.NET 5提供的新功能做出了调整。本书添加了最新的框架和技术(如gRPC和Blazor),并专门新增章节详细介绍了Kubernetes。 本书读者对象 本书适用于任何希望提高C#与Azure解决方案相关知识水平的软件架构师,也适用于想要成为架构师或希望使用.NET技术栈构建企业应用程序的工程师和高级开发者。学习本书之前,读者需要拥有C#和.NET的使用经验。 本书内容 第1章“软件架构的重要性”解释了软件架构的基础知识。该章帮助你以正确的心态来面对客户需求,从而选择正确的工具、模式和框架。 第2章“非功能性需求”带你进入应用程序开发的一个重要阶段,帮助你了解收集和说明应用程序必须满足的所有约束和目标,如可扩展性、可用性、可恢复性、性能、多线程、互操作性和安全性。 第3章“使用 Azure DevOps记录需求”介绍一些用于记录应用程序相关需求、bug和其他信息的技术。该章重点介绍Azure DevOps和GitHub的使用,其中的大多数概念也通用于其他平台和工具。 第4章“确定基于云的最佳解决方案” 对云和Microsoft Azure中可用的工具与资源进行了概述。在该章,你将学习如何正确地搜索工具和资源,以及如何配置它们以满足你的需求。 第5章“在企业应用中应用微服务架构”介绍微服务和Docker容器。在该章,你将了解如何基于微服务的架构利用云的各种优势,如何在云中使用微服务实现灵活性、高吞吐量和可靠性,以及如何使用容器和Docker在架构中混合不同的技术,从而让软件不依赖于特定平台。 第6章“Azure Service Fabric”介绍Microsoft特有的微服务编排器Azure Service Fabric。在该章,将实现一个简单的基于微服务的应用程序。 第7章“Azure Kubernetes服务”描述Kubernetes 在Azure上的实现。Kubernetes是微服务编排器的事实标准。在该章,你将学习如何在Kubernetes上打包和部署微服务应用程序。 第8章“在C#中与数据进行交互——Entity Framework Core”详细解释应用程序如何在对象关系映射(ORM)框架,尤其是在Entity Framework Core 5.0的帮助下与各种存储引擎进行交互。 第9章“在云上选择数据存储”介绍云和Microsoft Azure中可用的主要存储引擎。在该章,你将学习如何选择最佳存储引擎来实现所需的读取/写入的并行性,以及如何配置它们。 第10章“Azure函数应用”描述了无服务器计算模型以及如何在Azure云中使用它们。在该章,你将学习如何在需要运行某些计算时分配云资源,从而只为实际计算时间付费。 第11章“设计模式与.NET 5实现”通过.NET 5示例描述了常见的软件模式。在该章,你将了解设计模式的重要性以及使用它们的最佳实践。 第12章“不同领域的软件解决方案”描述现代领域驱动设计的软件生产方法,如何使用它来应对需要多领域知识的复杂应用程序,以及如何使用它来为基于云和基于微服务的架构提供帮助。 第13章“在C# 9中实现代码复用”描述在使用C# 9的.NET 5应用程序中最大化代码可重用性的模式和最佳实践,还讨论代码重构的重要性。 第14章“使用.NET Core实现面向服务的架构”描述面向服务的架构,它使你能够将应用程序的功能公开为Web或专用网络上的服务终节点,以便用户通过各种类型的客户端与它们进行交互。在该章,你将学习如何使用ASP.NET Core和gRPC实现面向服务的架构的服务节点,以及如何使用现有的OpenAPI程序包对它们进行文档化。 第15章“ASP.NET Core MVC”详细描述ASP.NET Core框架。在该章,你将学习如何基于模型-视图-控制器(MVC)模式实现Web应用程序,以及如何根据第12 章所描述的领域驱动设计的方法来组织它们。 第16章“Blazor WebAssembly”描述Blazor框架,该框架利用WebAssembly的强大功能在用户浏览器中运行. NET。在这一章,你将学习如何使用C#实现单页应用程序。 第17章“C# 9编码最佳实践”描述了使用C# 9开发.NET 5应用程序时的最佳实践。 第18章“单元测试用例和TDD”描述了如何测试应用程序。在该章,你将学习如何使用xUnit测试.NET Core应用程序,并了解如何在测试驱动设计的帮助下轻松开发和维护满足规范的代码。 第19章“使用工具编写更好的代码”描述了评估软件质量的指标,以及如何借助Visual Studio的所有工具来衡量它们。 第20章“DevOps”描述了DevOps软件开发和维护方法的基础知识。在该章,你将学习如何组织应用程序的持续集成/持续交付周期。该章还描述了整个部署过程是如何自动化的:首先在源代码存储库中创建新版本,然后通过各种测试和批准步骤,最后在实际生产环境中最终部署应用程序。你还将了解如何使用Azure Pipelines和GitHub Actions来自动化整个部署过程。 第21章“持续集成所带来的挑战”用持续集成场景补充了对DevOps的描述。 第22章“功能测试自动化”专门介绍功能测试的自动化,即自动验证整个应用程序的版本是否符合约定的功能规范的测试。在该章,你将学习如何使用自动化工具模拟用户操作,以及如何将这些工具与 xUnit 结合使用来编写功能测试。 如何阅读本书 ● 本书涉及很多主题,可以将其作为一本解决实际工作问题的指导书。 ● 本书需要使用Visual Studio 2019社区版或更高版本。 ● 读者需要具备C#和.NET基础知识。 在线资源 本书的代码存储库托管在GitHub上(见参考网站0.1)。本书免费提供代码、参考网站、各章练习题的答案和各章的扩展阅读等资源,可以通过扫本书封底的二维码下载。

more >
扫描二维码
下载APP了解更多

同系列产品more >

C# 11和.NET 7入门与跨平台开发(第...

[美] 马克·J. 普莱斯(Ma
定 价:158元

查看详情
C#高级编程(第12版)

[奥]克里斯琴·内格尔(C
定 价:198元

查看详情
C# 10 和 .NET 6入门与跨平台开发...

[美] 马克·J.普莱斯(Mar
定 价:168元

查看详情
C#入门经典(第9版)

[德] 本杰明·帕金斯(Ben
定 价:118元

查看详情
C#入门经典:更新至C# 9和.NET 5

[英]马克·J.普赖斯(Mark
定 价:139元

查看详情
图书分类全部图书
more >
  • Gabriel Baptista是一名软件架构师,他领导技术团队跨项目使用Microsoft平台完成了多个与零售和工业相关的项目。他是Azure解决方案方面的专家,也是一位讲授软件工程、开发和架构等课程的教授,并出版了一些与计算机相关的书籍。他在知名.NET技术社区网站Microsoft Channel 9上演讲,还与他人一起创办了SMIT公司,主要开展开发解决方案方面的业务,他将DevOps理念视为满足用户需求的关键。
    “致我亲爱的家人Murilo、Heitor和Denise,他们经常鼓励我。感谢我的父母Elisabeth和Virgílio,以及我的祖母、外祖母Maria和Lygia,他们一直鼓励我。特别感谢Packt团队,全体成员的辛勤劳动保证了这本书的优秀质量。”
    Francesco Abbruzzese是MVC Controls Toolkit和Blazor Controls Toolkit程序库的作者。他从 ASP.NET MVC第一个版本就开始为Microsoft Web技术栈的传播和推广做贡献。他的公司Mvcct Team提供一些与Web技术相关的Web应用程序、工具和服务。他曾从事人工智能系统相关的工作(例如为金融机构实施了首批决策支持系统),后来转型去做电视游戏(如当时排名前10位的Puma Street Soccer)。
    “感谢亲爱的父母,我的一切都来自他们。特别感谢Packt全体员工以及为改进本书整体代码质量做出贡献的审稿人员。”
  • 本书的编写方式与很多技术书籍不同,作者站在架构师的视角,以一个项目的整个生命周期
    为主线,向读者展示了如何在云时代设计和实现一款软件,其内容涵盖了从软件架构设计的基本
    原则、需求收集、解决方案设计,可选技术架构的选择与分析,应用软件的数据层、逻辑层和展
    现层的**实践与框架选择一直到构建团队协作平台、持续交付流水线,以及自动化测试。如
    果你是一名拥有3-5年软件开发经验的软件开发人员,希望能够成为一名架构师,这本书会对你
    非常有帮助。
more >
  • 目    录

     

    第1章  软件架构的重要性 1

    1.1  什么是软件架构 1

    1.2  软件开发过程模型 4

    1.2.1  传统的软件开发过程模型 4

    1.2.2  敏捷软件开发过程模型 6

    1.3  收集正确信息以设计高质量软件 10

    1.3.1  了解需求收集过程 10

    1.3.2  收集准确的用户需求 10

    1.3.3  分析需求 11

    1.3.4  将需求整理成规范的文档 11

    1.3.5  复核用户需求文档 13

    1.4  设计技术 13

    1.4.1  设计思维 13

    1.4.2  设计冲刺 14

    1.5  收集需求阶段就要考虑的常见问题 14

    1.5.1  问题1:网站太慢,无法打开网页 14

    1.5.2  问题2:用户的需求未得到正确实现 16

    1.5.3  问题3:系统会在什么环境使用 17

    1.6  World Wild Travel Club案例简介 17

    1.7  本章小结 19

    1.8   练习题 19

    第2章  非功能性需求 21

    2.1  技术性要求 21

    2.2  使用Azure和.NET 5实现可扩展性、可用性和可恢复性 21

    2.2.1  在Azure中创建可扩展的Web应用程序 22

    2.2.2  使用.NET 5创建可扩展的Web应用程序 26

    2.3  C#编程时需要考虑的性能问题 29

    2.3.1  字符串串联 29

    2.3.2  异常 30

    2.3.3  多线程 31

    2.4  易用性——插入数据为什么会耗费太长时间 32

    2.4.1  如何设计快速选择 33

    2....

精彩书评more >

标题

评论

版权所有(C)2023 清华大学出版社有限公司 京ICP备10035462号 京公网安备11010802042911号

联系我们 | 网站地图 | 法律声明 | 友情链接 | 盗版举报 | 人才招聘