GCP:谷歌云平台计算堆栈的细分

文章的翻译是专门为课程的学生准备的 「云服务」.

您有兴趣往这个方向发展吗? 观看专业大师课的录音 “AWS EC2 服务”,由 InBit 团队负责人 Egor Zuev 和 OTUS 教育项目的作者进行。

GCP:谷歌云平台计算堆栈的细分

Google Cloud Platform (GCP) 提供许多服务,特别是包含 Google Compute Engine (GCE)、Google Kubernetes Engine(以前称为 Container Engine)(GKE)、Google App Engine (GAE) 和 Google Cloud Functions (GCF) 的计算堆栈。 所有这些服务都有很酷的名字,但它们的功能以及它们的独特之处可能并不完全明显。 本文面向那些刚接触云概念(尤其是云服务和 GCP)的人。

GCP:谷歌云平台计算堆栈的细分

1. 计算栈

计算堆栈可以被认为是计算机系统可以提供的功能的分层抽象。 该堆栈上升(向上移动)来自“裸铁”(裸机),指的是计算机的实际硬件组件,具体到功能(功能),代表最小的计算单位。 关于堆栈需要注意的重要一点是,当您在堆栈中向上移动时,服务会聚合,例如“应用程序”部分(应用),如下图 1 所示,应包含所有基本容器组件(集装箱)、虚拟机(虚拟机)和铁。 同样,虚拟机组件必须包含内部硬件才能工作。

GCP:谷歌云平台计算堆栈的细分

图 1:计算堆栈 | 图片来源于 谷歌云

该模型(如图 1 所示)是描述云提供商产品的基础。 因此,一些提供商只能提供堆栈中质量较低的容器和服务,而其他提供商则可以提供图 1 中所示的所有内容。

— 如果您熟悉云服务,请访问 第3节查看 GCP 等效项
— 如果您只想了解云服务的摘要,请访问 第2.4节

2. 云服务

云计算的世界非常多样化。 云提供商提供针对不同客户需求的各种服务。 您可能听说过 IaaS、PaaS、SaaS、FaaS、KaaS 等术语。 字母表中的所有字母后跟“aaS”。 尽管命名约定很奇怪,但它们形成了一组云提供商服务。 我指出云提供商几乎总是提供 3 种主要的“即服务”产品。

它们是IaaS、PaaS和SaaS,分别代表基础设施即服务、平台即服务和软件即服务。 将云服务可视化为所提供的服务层非常重要。 这意味着,当您从一个级别向上或向下移动时,作为客户,您会遇到不同的服务选项,这些选项要么添加到核心产品中,要么从核心产品中删除。 最好将其视为金字塔,如图 2 所示。
GCP:谷歌云平台计算堆栈的细分

图 2:aaS 金字塔 | 图片来源于 红宝石车库

2.1 基础设施即服务(IaaS)

这是云提供商可以提供的最低层,涉及云提供商提供裸机基础设施,包括中间件、网络布线、CPU、GPU、RAM、外部存储、服务器和底层操作系统映像,例如 Debian Linux、CentOS、Windows , ETC。

如果您从云 IaaS 提供商处订购报价,那么您应该会收到这样的报价。 作为客户,您需要组装这些部件来运营您的业务。 您需要使用的内容范围可能因供应商而异,但通常您只需获得硬件和操作系统,其余部分取决于您。 IaaS 的示例包括 AWS 弹性计算、Microsoft Azure 和 GCE。

有些人可能不喜欢这样的事实:他们必须安装操作系统映像并处理网络、负载平衡或担心哪种类型的处理器最适合他们的工作负载。 这就是我们向 PaaS 迈进金字塔的地方。

2.2 平台即服务(PaaS)

PaaS仅涉及云服务提供商提供用户可以在其上构建应用程序的特定平台。 这是对 IaaS 的抽象,意味着云提供商负责 CPU 类型、内存、RAM、存储、网络等的所有细节。如图 2 所示,作为客户,您对实际平台几乎没有控制权,因为云提供商会为您处理所有基础设施细节。 您请求所选的平台并在其上构建项目。 PaaS 的例子有 Heroku。

对于某些人来说,这可能太高了,因为他们不一定想在指定的平台上构建项目,而是需要直接来自云提供商的一组服务。 这就是 SaaS 发挥作用的地方。

2.3 软件即服务(SaaS)

SaaS 代表云服务提供商提供的最常见的服务。 它们面向最终用户,主要通过 Gmail、Google Docs、Dropbox 等网站进行访问。至于 Google Cloud,在其计算堆栈之外还有多种 SaaS 产品。 其中包括 Data Studio、Big Query 等。

2.4 云服务总结

的成分
IaaS
PaaS的
SaaS的

你得到了什么?
您获得基础设施并支付相应费用。 自由使用或安装任何软件、操作系统或其组合。
在这里你得到你所要求的。 软件、硬件、操作系统、网络环境。 您将获得一个随时可用的平台并支付相应费用。
在这里你不需要担心任何事情。 我们为您提供了根据您的要求定制的预安装包,您只需支付相应费用即可。


基础计算
顶级 IaaS
这本质上是一个完整的服务包

技术难点
所需技术知识
您已获得基本配置,但您仍然需要领域知识。
无需担心技术细节。 SaaS 提供商提供一切。

它与什么一起工作?
虚拟机、存储、服务器、网络、负载均衡器等。
运行时环境(如java运行时)、数据库(如mySQL、Oracle)、Web服务器(如tomcat等)
电子邮件服务(Gmail、雅虎邮件等)、社交互动网站(Facebook 等)等应用程序

人气图
深受需要根据自己的要求或研究领域进行定制的高技能开发人员和研究人员的欢迎
在开发人员中最受欢迎,因为他们可以专注于开发应用程序或脚本。 他们不必担心流量负载或服务器管理等。
最受普通消费者或使用电子邮件、文件共享、社交网络等软件的公司欢迎,因为他们不需要担心技术细节

图 3:主要云产品摘要 | 提供图片 阿米尔在博客 Specia

3.谷歌云平台计算套件

在查看第 2 部分中的典型云提供商产品后,我们可以将它们与 Google Cloud 的产品进行比较。

3.1 谷歌计算引擎(GCE)——IaaS

GCP:谷歌云平台计算堆栈的细分

图 4:Google 计算引擎 (GCE) 图标

GCE 是 Google 的一项 IaaS 产品。 使用GCE,您可以自由创建虚拟机,分配CPU和内存资源,选择SSD或HDD等存储类型以及内存量。 这几乎就像您构建了自己的计算机/工作站并处理了其工作原理的所有细节。

在 GCE 中,您可以选择具有 0,3 核处理器和 1 GB RAM 的微型实例,也可以选择具有超过 96 GB RAM 的 300 核怪物。 您还可以为您的工作负载创建自定义大小的虚拟机。 对于那些感兴趣的人,您可以构建这些虚拟机。

机器类型 | 计算引擎文档 | 谷歌云

3.2. 谷歌 Kubernetes 引擎 (GKE) - (Caas / Kaas)

GCP:谷歌云平台计算堆栈的细分

图 5:Google Kubernetes Engine (GKE) 图标

GKE 是 GCP 的独特计算产品,是计算引擎之上的抽象。 更一般地说,GKE 可以归类为容器即服务 (CaaS),有时也称为 Kubernetes 即服务 (KaaS),它允许客户在完全托管的 Kubernetes 环境中轻松运行其 Docker 容器。 对于那些不熟悉容器的人来说,容器有助于模块化服务/应用程序,因此不同的容器可以包含不同的服务,例如,一个容器可以托管 Web 应用程序的前端,另一个容器可以包含它的后端。 Kubernetes 自动化、编排、管理和部署您的容器。 更多信息请点击这里。

谷歌 Kubernetes 引擎 | 谷歌云

3.3 谷歌应用引擎(GAE)-(PaaS)

GCP:谷歌云平台计算堆栈的细分

图 6:Google App Engine (GAE) 图标

如第 2.2 节所述,PaaS 位于 IaaS 之上,对于 GCP,它也可以被视为高于 GKE 的产品。 GAE 是 Google 的定制 PaaS,他们最好的描述自己的方式是“带上您的代码,我们会处理剩下的事情”。

这确保使用 GAE 的客户无需处理底层硬件/中间件,并且已经可以拥有一个随时可用的预配置平台; 他们所要做的就是提供运行它所需的代码。

GAE 自动处理扩展以满足用户的负载和需求,这意味着如果您的卖花网站因为情人节临近而突然达到峰值,GAE 将处理扩展底层基础设施以满足需求,并确保您的网站不会因需求增加而崩溃。 这意味着您只需为应用程序当时所需的资源付费。

GAE 使用 Kubernetes 或其本机版本来处理所有这些,因此您不必担心。 GAE 最适合那些对底层基础设施不感兴趣、只关心确保其应用程序能够以最佳方式访问的公司。

在我看来,如果您是一名拥有好主意的开发人员,但不想处理设置服务器、负载平衡以及所有其他耗时的 devops/SRE 工作等苦差事,那么 GAE 是最好的起点。 随着时间的推移,您可以尝试 GKE 和 GCE,但这只是我的意见。

免责声明:AppEngine 用于 Web 应用程序,而不是移动应用程序。

供审查: App Engine - 以任何语言构建可扩展的 Web 和移动后端 | 谷歌云

3.4 谷歌云函数-(FaaS)

GCP:谷歌云平台计算堆栈的细分

图 7:Google Cloud Functions (GCF) 图标

希望您通过查看之前的产品已经注意到了这一趋势。 您在 GCP 计算解决方案阶梯上爬得越高,您就越不需要担心底层技术。 该金字塔以尽可能小的计算单位(函数)结束,如第 1 节所示。

GCF 是一个相对较新的 GCP 产品,仍处于测试阶段(在撰写本文时)。 云函数允许开发人员编写的某些函数由事件触发。

它们是事件驱动的,是流行词“无服务器”的核心,这意味着它们不了解服务器。 云函数非常简单,并且有许多不同的用途,需要事件思维。 例如,每次有新用户注册时,都可以触发云功能来提醒开发者。

在工厂里,当某个传感器达到某个值时,可以触发云功能做一些信息处理,或者通知一些维护人员等。

云函数-事件驱动的服务器计算| 谷歌云

结论

在本文中,我们讨论了不同的云产品,如 IaaS、PaaS 等,以及 Google 的计算堆栈如何实现这些不同的层。 我们已经看到,当从一种服务类别转移到另一种服务类别(例如 Paas 中的 IaaS)时,抽象层需要的底层知识较少。

对于企业来说,这提供了至关重要的灵活性,不仅可以满足其运营目标,还可以满足安全性和成本等其他关键领域的要求。 总结一下:

计算引擎 - 允许您通过分配某些硬件资源(例如 RAM、处理器、内存)来创建自己的虚拟机。 它也相当实用且低级。

Kubernetes引擎 是 Compute Engine 的一个进步,允许您使用 Kubernetes 和容器来管理您的应用程序,从而允许您根据需要扩展它。

应用引擎 是 Kubernetes Engine 的一个进步,让您可以只关注代码,而 Google 则负责所有底层平台要求。

云功能 是计算金字塔的顶部,允许您编写一个简单的函数,该函数在运行时使用整个底层基础设施来计算并返回结果。

谢谢你!

Twitter: @martinomburajr

来源: habr.com

添加评论