当我们想到公共云时,通常首先想到的是财务:将工作负载从数据中心转移到云会减少资本支出 (CapEx),但会增加运营支出 (OpEx)。这对 CFO 可能来说可能会有吸引力,但对于开发人员、运营人员或者是对DevOps的人来说,这并没有与众不同。
云计算对一些企业提供了许多传统的方法无法实现的能力。在本地部署需要六个月的时间,在云中10 分钟就可以完成;本地部署需要来自三个管理级别的签名才能支出执行费用,而云只需要一步。
这不仅仅是时间和方便的问题。云还可以提高软件开发的速度,大大缩短企业上市的时间。云还可以同时做实验,保证更高的软件质量。
此外,云技术中还有一些真正的创新,可以提供即时的好处,并解决本地计算的问题。本文详细的讲解了16种使用且大众感兴趣的云功能。
按需计算实例
还需要在自己的本地服务器上安装新数据库吗?长时间的排队,几个月或者是几年。如果可以容忍使用本地虚拟机 (VM) 而不是物理服务器,公司使用 VMware 或类似技术,那么等待的时间将会大大缩短。但是,如果想在公共云上创建一个服务器实例,只需15 分钟内配置并根据需要调整,就可以运行,并且可以随时使用随时关闭。
预建的虚拟机镜像
使用操作系统启动 VM 很方便,但仍然需要安装和许可应用程序。能够启动一个将选择的操作系统和应用程序的虚拟机运行起来是难能可贵的。
无服务器服务
“无服务器”意味着一项服务或一段代码将在短时间内按需运行,通常是是响应一个事件,而不需要一个专用的VM来运行。如果服务是无服务器的,那么就不需要担心底层服务器;资源是从云提供商维护的池中分配的。
无服务器服务,目前在每个主要的公共云上都可用,通常具有自动扩展、内置高可用性和按价值付费的计费模式。如果想要一个无服务器应用程序,而不被锁定在任何特定的公共云中,可以使用与供应商无关的无服务器框架,例如Kubeless,它只需要一个Kubernetes集群(可作为云服务提供;见下文)。
按需容器
容器是软件的轻量级可执行单元,比虚拟机轻得多。容器将应用程序代码及其依赖项(例如库)进行打包,容器共享主机的操作系统内核。容器可以在Docker 引擎或 Kubernetes 服务上运行。按需运行容器具有按需运行虚拟机的所有优点,另外还有低消耗和低成本的优势。
预建容器镜像
Docker 容器是 Docker 镜像的可执行实例,由 Dockerfile 指定。Dockerfile 包含构建映像的说明,并且通常基于另一个映像。例如,包含 Apache HTTP Server 的映像可能基于 Ubuntu 映像。您可以在 Docker 注册表中找到预定义的 Dockerfile,也可以构建自己的。也可以在本地安装的Docker中运行Docker映像,也可以在任何支持容器的云中运行Docker映像。与预先构建的虚拟机映像一样,Dockerfile 可以快速启动完整的应用程序,但与虚拟机映像不同,Dockerfile 与供应商无关。
Kubernetes容器编排
Kubernetes (K8s) 是一个开源系统,用于自动部署、扩展和管理容器化应用程序。K8s 基于谷歌内部的“Borg”技术。K8s 集群由一组称为节点的工作机器组成,这些机器运行容器化的应用程序。Worker 节点托管 Pod,其中包含应用程序;控制平面管理工作节点和 Pod。K8s 可以在任何地方运行,并且可以无限扩展。所有主要公共云都有K8s服务;也可以在自己的开发机器上运行 K8s。
自动扩展服务器
大多数公共云允许通过添加(或减少)实例或增加(或减少)实例大小来根据使用情况自动向上(或向下)扩展虚拟机和服务。
行星数据库
主要的公共云和几家数据库供应商已经实施了星云级分布式数据库,其基础是数据结构、冗余互连和分布式一致性算法,使它们能够高效地工作,可靠性高达59(99.999% 的正常运行时间)。特定于云的示例包括Google Cloud Spanner(关系)、Azure Cosmos DB(多模型)、Amazon DynamoDB(键值和文档)和Amazon Aurora(关系)。供应商示例包括CockroachDB(关系)、PlanetScale(关系)、Fauna(关系/无服务器)、Neo4j(图)、MongoDB Atlas(文档)、DataStax Astra(宽列)和Couchbase Cloud(文档)。
混合服务
对数据中心进行大量投资的公司,通常希望将其现有的应用程序和服务扩展到云中,而不是用云服务取代它们。所有主要的云供应商现在都提供了实现这一点的方法,包括使用特定的混合服务(例如,可以跨越数据中心和云的数据库)以及连接到公共云(通常称为混合云)的本地服务器和边缘云资源。
可扩展的机器学习训练和预测
机器学习训练,尤其是深度学习,通常需要数小时到数周的大量计算资源。另一方面,机器学习预测需要数秒的计算资源,除非正在进行批量预测。使用云资源是完成模型训练和预测的最便捷方式。
云 GPU、TPU 和 FPGA
在 CPU 集群上,使用大型模型和非常大的数据集进行准确训练所需的深度学习通常需要超过一周的时间。GPU、TPU 和 FPGA 都可以显着缩短训练时间,并且将它们放在云端可以在需要时轻松使用。
预训练的 AI 服务
许多 AI 服务可以通过预训练模型很好地执行,例如语言翻译、文本到语音和图像识别。所有主要的云服务都提供基于稳健模型的预训练 AI 服务。
可定制的人工智能服务
有时,预训练的 AI 服务并不能完全满足您的需求。迁移学习仅在现有模型的基础上训练几个神经网络层,与从头开始训练模型相比,它可以相对快速地为您提供定制服务。同样,所有主要的云服务提供商都提供迁移学习。
监测服务
所有云都支持至少一种监控服务,可以轻松配置云服务进行监控。监控服务通常会向您显示一个图形仪表板,并且可以配置为通知异常和异常的性能指标。
分布式服务
数据库并不是唯一可以从以分布式方式运行中受益的服务。问题是延迟。如果计算资源远离数据或管理的进程,则发送和接收指令和信息需要很长时间。如果反馈回路中的延迟太高,则回路很容易失控。如果机器学习和数据之间的延迟太高,则执行训练所需的时间可能会增加。为了解决这个问题,云服务提供商提供连接设备,可以将他们的服务扩展到客户的数据中心(混合云)或客户的工厂车间附近(边缘计算)。
边缘计算
将分析和机器学习在地理上靠近机器和其他现实世界对象(物联网或物联网)的需求导致了专门的设备,例如带有 GPU 和传感器的微型计算设备,以及支持它们的架构,例如作为边缘服务器、自动化平台和内容交付网络。最终,这些都连接回云端,但在边缘执行分析的能力可以大大减少发送到云端的数据量并减少延迟。
我们讨论过的任何一项云创新都可以证明其使用是合理的。综合起来,好处真的是不可抗拒的。