Kubernetes微服务实战
上QQ阅读APP看书,第一时间看更新

前言

本书正是你一直期待的那本书。本书包罗万象,会介绍如何开发微服务并将其部署在Kubernetes平台上,基于微服务的架构与Kubernetes的结合将会带来巨大影响。书中首先解释了微服务和Kubernetes背后的基本概念,讨论了一些现实世界中的关注点和权衡取舍,引导你完成基于微服务的系统开发,向你展示最佳实践并给出了大量建议。

接着,本书深入地探索了其中的核心技术,并提供了可操作的代码进行说明。你将学习如何进行基于微服务的架构设计、构建微服务、测试已构建的微服务,以及将它们打包为Docker镜像。然后,你将学习如何将你的系统作为Docker镜像的集合部署到Kubernetes中并进行管理。

在此过程中,你将会看到当今流行的发展趋势,例如自动化的持续集成/持续交付(CI/CD)、基于gRPC的微服务、无服务器计算和服务网格等。

读完本书后,你将获得大量使用部署在Kubernetes上的基于微服务的架构来设计、开发和操作大型云原生系统的知识及实战经验。

本书的目标读者

本书面向希望了解大规模软件工程前沿知识的软件开发人员和DevOps工程师。如果你有使用大型容器化软件系统的经验,那么这些经验将对你有所帮助。

本书内容

第1章介绍了Kubernetes基础知识,你将会快速掌握Kubernetes的核心概念,并了解它是微服务的完美搭档。

第2章讨论了基于微服务的系统中常见问题的各个维度、模式和方法,以及与其他通用架构(如单体架构和大型服务)的比较。

第3章探讨了为什么我们应该选择Go作为示例应用程序Delinkcious的编程语言,并简要介绍了Go语言开发。

第4章指导你如何通过CI/CD流水线解决一些问题,包括Kubernetes中CI/CD流水线的多种选项,以及如何为示例应用程序Delinkcious构建CI/CD流水线。

第5章带你进入微服务配置的实战领域。此外,该章还讨论了Kubernetes的特定组件,如ConfigMap。

第6章深入探讨了如何在Kubernetes上保护微服务,以及Kubernetes上作为微服务安全基础的支柱。

第7章使我们可以开放示例应用程序Delinkcious的访问,并允许用户从集群外部与其进行交互。此外,我们还添加了基于gRPC的新闻服务,用户可以访问该服务以获取其关注的其他用户的新闻。最后,我们再添加一个消息队列,使服务以松耦合的方式进行通信。

第8章深入研究了Kubernetes存储模型。我们还将扩展示例应用程序Delinkcious的消息服务,将其数据存储在Redis中。

第9章深入探讨了云原生系统中最热门的趋势之一:无服务器计算(也称为函数即服务(Function as a Service,FaaS))。此外,还介绍了在Kubernetes中进行无服务器计算的各种方法。

第10章涵盖了多个测试相关的主题,包括单元测试、集成测试以及端到端测试等,该章还介绍了示例应用程序Delinkcious的测试结构。

第11章涉及两个相关但又独立的主题:生产环境的部署和开发环境的部署。

第12章着重介绍运行在Kubernetes上的大型分布式系统的维护,以及如何设计系统以确保系统稳定高效。

第13章回顾了服务网格(尤其是Istio)这一热门话题,服务网格是目前真正改变游戏规则的角色。

第14章涵盖了Kubernetes和微服务的主题,将帮助我们学习如何确定何时是采用和投资新技术的恰当时机。

如何充分利用本书

任何软件方面的要求都会在每章开头的“技术需求”部分列出,如果安装某个特定软件是某章内容的一部分,那么该章会尽可能涵盖所需的全部说明,大多数软件都是安装在Kubernetes集群中的组件。这些内容是本书实战性质的重要组成部分。

下载示例代码及彩色图像

本书的示例代码及所有截图和样图,可以从http://www.packtpub.com通过个人账号下载,也可以访问华章图书官网http://www.hzbook.com,通过注册并登录个人账号下载。

约定

本书中使用了许多排版约定。

代码体:表示正文中的代码、数据库表名称、文件夹名、文件名、文件扩展名、路径名、用户输入和Twitter的内容。例如:“请注意我们需要确保它可以通过chmod+x执行。”

代码块如下:

命令行输入或输出如下:

黑体:表示新术语、重要单词或你在屏幕截图中看到的单词。例如,菜单或对话框中的单词会出现在这样的文本中。示例:“我们可以通过从ACTIONS下拉菜单中选择Sync来对其进行同步。”

警告或重要提示。

提示或小技巧。