Skip to content

Latest commit

 

History

History
136 lines (77 loc) · 10.8 KB

File metadata and controls

136 lines (77 loc) · 10.8 KB

零、前言

云计算和微服务是现代软件架构中两个非常重要的概念。它们代表了雄心勃勃的软件工程师需要掌握的关键技能,以便设计和构建能够执行和扩展的软件应用。Go 是一种功能强大但简单的现代跨平台编程语言;它是微服务和云应用的最佳选择。围棋越来越受欢迎,成为一种非常有吸引力的技能。

这本书将带你在 Go 的帮助下进入微服务和云计算的世界。它将首先介绍云应用的软件架构模式,以及有关如何扩展、分发和部署这些应用的实用概念。在此基础上,本书将深入探讨编写生产级微服务及其在典型云环境中的部署所需的技术和设计方法。

完成本书之后,您将学习如何编写可部署到云中的有效生产级微服务,实际了解 Amazon Web 服务的世界,并了解如何构建非平凡的 Go 应用。

这本书涵盖的内容

第一章现代微服务架构以描述基于云的应用和微服务架构的典型特征为开篇。我们还将为一个虚构的应用建立需求和高级架构,该应用将作为本书以下章节的连续示例。

第 2 章使用 REST API 构建微服务讨论了如何使用 Go 语言构建现代微服务。我们将讨论重要和非琐碎的话题。到本章结束时,您将有足够的知识来构建能够公开 RESTFul API、支持持久性并能够与其他服务有效通信的微服务。

第 3 章保护微服务向您展示了如何保护您的微服务。您将了解如何使用 Go 语言处理证书和 HTTPS。

第 4 章异步微服务架构介绍了如何使用消息队列实现异步微服务架构。为此,我们将概述已建立的消息队列软件,如 RabbitMQ 和 ApacheKafka,并介绍将这些组件集成到软件中的 Go 库。我们还将讨论与异步架构配合良好的架构模式,如事件协作和事件源。

第 5 章使用 React构建前端,从围棋世界到 JavaScript 世界走了一小段路,向您展示了如何使用 React 框架为基于微服务的项目构建 web 前端。为此,我们将简要概述 React 的基本架构原则,以及如何为现有 RESTAPI 构建基于 React 的前端。

第 6 章在容器中部署应用展示了如何使用应用容器以可移植且可复制的方式部署 Go 应用。您将学习如何安装和使用 Docker,以及如何为自己的 Go 应用构建自定义 Docker 映像。此外,我们将描述如何使用 Kubernetes 编排引擎在大规模云环境中部署容器化应用。

第 7 章AWS–基础知识、AWS Go SDK 和 AWS EC2是涵盖 AWS 生态系统的两章中的第一章。在本章中,我们将详细介绍 AWS。您将了解一些重要的概念,如如何设置 AWS 服务器实例、如何利用 AWS API 功能以及如何编写能够与 AWS 交互的 Go 应用。

第 8 章AWS–S3、SQS、API 网关和 DynamoDB继续更详细地介绍 AWS 生态系统。您将深入了解 AWS 世界中流行的服务。到本章结束时,您将有足够的知识使用 AmazonWeb 服务的强大功能构建非平凡的 Go 云应用。

第 9 章持续交付描述了如何为您的 Go 应用实现基本的持续交付管道。为此,我们将介绍 CD 的基本原理,以及如何使用 Travis CI 和 Gitlab 等工具实现简单的管道。我们将使用 Docker 映像作为部署工件,并将这些映像部署到 Kubernetes 集群中,从而以第 4 章异步微服务架构中涵盖的主题和技能为基础。

第 10 章监控您的应用向您展示了如何使用普罗米修斯和格拉法纳监控您的微服务架构。我们将介绍 Prometheus 的基本架构,并描述如何使用 Docker 设置 Prometheus 实例。此外,您还将学习如何调整 Go 应用,以公开普罗米修斯可以利用的指标。我们还将描述如何使用 Grafana 为普罗米修斯建立图形用户界面。

第 11 章 ALE T1,To.T2。迁移 T3,涵盖从传统的单片应用迁移到现代微服务云准备应用的实际因素和考虑的方法。

第 12 章接下来该怎么办?,向您展示从这里继续学习之旅的地点。它将涵盖其他值得探索的现代云相关技术,如替代通信协议、其他云提供商,以及可能成为下一件大事的新架构范例。

这本书你需要什么

对于这本书,您应该具备一些 Go 编程语言的基本知识(如果您还想开始学习 Go,我们可以推荐 Vladimir Vivien 的《学习 Go 编程》一书,该书也是由 Packt 出版的)。要运行本书中提供的代码示例,您还需要在本地计算机(Go 1.7 或更新版本)上安装一个正常工作的 Go SDK。前往https://golang.org/dl/ 下载和安装说明。

对于本书中的许多实际示例,您将需要一个可工作的 Docker 安装(尽管不需要以前使用 Docker 的经验)。请看https://www.docker.com/community-edition 下载和安装说明。

为了在第 5 章中使用 React构建前端,您还需要一些 JavaScript 编程的基础知识,以及在本地机器上安装 working Node.JS。您可以从下载 Node.JS 的最新版本 https://nodejs.org/en/#download

这本书是给谁的

本书面向希望构建安全、有弹性、健壮且可扩展的云本地应用的 Go 开发人员。有关 web 服务和 web 编程的一些知识应该足以让您读完这本书。

习俗

在本书中,您将发现许多文本样式可以区分不同类型的信息。下面是这些风格的一些例子,并解释了它们的含义。

文本中的代码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟 URL、用户输入和 Twitter 句柄如下所示:“react-router-dom包为我们的应用添加了一些新组件。”

代码块设置如下:

import * as React from "react"; 
import {Link} from "react-router-dom"; 

export interface NavigationProps { 
  brandName: string; 
} 

export class Navigation extends React.Component<NavigationProps, {}> { 
} 

任何命令行输入或输出的编写方式如下:

$ npm install --save react-router-dom
$ npm install --save-dev @types/react-router-dom

新术语重要词语以粗体显示。您在屏幕上(例如,在菜单或对话框中)看到的文字将显示如下:“为此,请在登录后单击“创建存储库”,并为图像选择一个新名称。”

警告或重要注释显示在这样的框中。

提示和技巧如下所示。

读者反馈

我们欢迎读者的反馈。让我们知道你对这本书的看法你喜欢还是不喜欢。读者反馈对我们来说很重要,因为它可以帮助我们开发出您将真正从中获得最大收益的标题。

要向我们发送总体反馈,只需发送电子邮件feedback@packtpub.com,并在邮件主题中提及该书的标题。

如果您对某个主题有专业知识,并且您有兴趣撰写或贡献一本书,请参阅我们的作者指南www.packtpub.com/authors

客户支持

既然您是一本 Packt 图书的骄傲拥有者,我们有很多东西可以帮助您从购买中获得最大收益。

下载示例代码

您可以从您的帐户下载本书的示例代码文件 http://www.packtpub.com 。如果您在其他地方购买了本书,您可以访问http://www.packtpub.com/support 并注册,将文件直接通过电子邮件发送给您。

您可以通过以下步骤下载代码文件:

  1. 使用您的电子邮件地址和密码登录或注册我们的网站。
  2. 将鼠标指针悬停在顶部的“支持”选项卡上。
  3. 点击代码下载和勘误表。
  4. 在搜索框中输入图书的名称。
  5. 选择要下载代码文件的书籍。
  6. 从您购买本书的下拉菜单中选择。
  7. 点击代码下载。

您也可以通过点击 Packt Publishing 网站上书籍网页上的“代码文件”按钮下载代码文件。可以通过在搜索框中输入图书名称来访问此页面。请注意,您需要登录到您的 Packt 帐户。

下载文件后,请确保使用以下最新版本解压或解压缩文件夹:

  • WinRAR/7-Zip for Windows
  • 适用于 Mac 的 Zipeg/iZip/UnRarX
  • 适用于 Linux 的 7-Zip/PeaZip

该书的代码包也托管在 GitHub 上的https://github.com/PacktPublishing/Cloud-Native-Programming-with-Golang 。我们的丰富书籍和视频目录中还有其他代码包,请访问**https://github.com/PacktPublishing/** 。看看他们!

下载本书的彩色图像

我们还为您提供了一个 PDF 文件,其中包含本书中使用的屏幕截图/图表的彩色图像。彩色图像将帮助您更好地了解输出中的更改。您可以从下载此文件 https://www.packtpub.com/sites/default/files/downloads/CloudNativeprogrammingwithGolang_ColorImages.pdf

勘误表

虽然我们已尽一切努力确保内容的准确性,但错误确实会发生。如果您在我们的一本书中发现错误,可能是文本或代码中的错误,如果您能向我们报告,我们将不胜感激。通过这样做,您可以使其他读者免于沮丧,并帮助我们改进本书的后续版本。如果您发现任何错误,请访问进行报告 http://www.packtpub.com/submit-errata ,选择您的书籍,点击勘误表提交表单链接,然后输入勘误表的详细信息。一旦您的勘误表得到验证,您的提交将被接受,勘误表将上载到我们的网站或添加到该标题勘误表部分下的任何现有勘误表列表中。

要查看之前提交的勘误表,请转至https://www.packtpub.com/books/content/support 并在搜索字段中输入图书名称。所需信息将出现在勘误表部分下。

盗版行为

在互联网上盗版版权材料是所有媒体都面临的一个持续问题。在 Packt,我们非常重视版权和许可证的保护。如果您在互联网上发现任何形式的非法复制品,请立即向我们提供地址或网站名称,以便我们采取补救措施。

请致电copyright@packtpub.com与我们联系,并提供可疑盗版材料的链接。

我们感谢您在保护我们的作者方面提供的帮助以及我们为您带来有价值内容的能力。

问题

如果您对本书的任何方面有任何问题,可以通过questions@packtpub.com与我们联系,我们将尽力解决该问题。