云计算的一些基本概念

目录

  • [1 概述](#1 概述)
    • [1.1 什么是云计算](#1.1 什么是云计算)
    • [1.2 云计算的特征](#1.2 云计算的特征)
      • [1.2.1 按需自助服务](#1.2.1 按需自助服务)
      • [1.2.2 广泛的网络接入](#1.2.2 广泛的网络接入)
      • [1.2.3 资源共享](#1.2.3 资源共享)
      • [1.2.4 快速弹性](#1.2.4 快速弹性)
      • [1.2.5 衡量的服务](#1.2.5 衡量的服务)
    • [1.3 云部署的类型](#1.3 云部署的类型)
      • [1.3.1 公有云](#1.3.1 公有云)
      • [1.3.2 私有云](#1.3.2 私有云)
      • [1.3.3 混合云](#1.3.3 混合云)
    • [1.4 云计算服务](#1.4 云计算服务)
      • [1.4.1 基础设施即服务](#1.4.1 基础设施即服务)
      • [1.4.2 平台即服务](#1.4.2 平台即服务)
      • [1.4.3 软件即服务](#1.4.3 软件即服务)
      • [1.4.4 函数即服务](#1.4.4 函数即服务)
    • [1.5 云计算的优势](#1.5 云计算的优势)
      • [1.5.1 降低成本](#1.5.1 降低成本)
      • [1.5.2 提高可扩展性](#1.5.2 提高可扩展性)
      • [1.5.3 性能更强](#1.5.3 性能更强)
      • [1.5.4 提高了执行速度](#1.5.4 提高了执行速度)
      • [1.5.5 提高了安全性](#1.5.5 提高了安全性)
      • [1.5.6 持续集成和交付](#1.5.6 持续集成和交付)
      • [1.5.7 全面的监控和事件管理](#1.5.7 全面的监控和事件管理)
  • [2 容器与虚拟机](#2 容器与虚拟机)
    • [2.1 什么是容器](#2.1 什么是容器)
      • [2.1.1 优点](#2.1.1 优点)
      • [2.1.2 缺点](#2.1.2 缺点)
      • [2.1.3 热门容器提供商](#2.1.3 热门容器提供商)
    • [2.2 什么是虚拟机?](#2.2 什么是虚拟机?)
      • [2.2.1 优点](#2.2.1 优点)
      • [2.2.2 缺点](#2.2.2 缺点)
      • [2.2.3 热门虚拟机提供商](#2.2.3 热门虚拟机提供商)
  • [3 基础架构即代码 (IaC)](#3 基础架构即代码 (IaC))
    • [3.1 什么是基础架构即代码?](#3.1 什么是基础架构即代码?)
    • [3.2 为什么基础架构即代码很重要?](#3.2 为什么基础架构即代码很重要?)
    • [3.3 基础架构即代码如何运作?](#3.3 基础架构即代码如何运作?)
      • [3.3.1 远程访问托管或 IaaS 云托管平台](#3.3.1 远程访问托管或 IaaS 云托管平台)
      • [3.3.2 配置管理平台](#3.3.2 配置管理平台)
      • [3.3.3 版本控制系统](#3.3.3 版本控制系统)
  • [4 基础设施即服务 (IaaS)](#4 基础设施即服务 (IaaS))
    • [4.1 什么是基础架构即服务?](#4.1 什么是基础架构即服务?)
    • [4.2 如何运作的?](#4.2 如何运作的?)
    • [4.3 IaaS 与容器有何关系?](#4.3 IaaS 与容器有何关系?)
  • [5 平台即服务 (PaaS)](#5 平台即服务 (PaaS))
    • [5.1 什么是平台即服务?](#5.1 什么是平台即服务?)
    • [5.2 平台即服务的优势](#5.2 平台即服务的优势)
  • [6 容器即服务(CaaS)](#6 容器即服务(CaaS))
    • [6.1 什么是 CaaS?](#6.1 什么是 CaaS?)
    • [6.2 CaaS 与 PaaS](#6.2 CaaS 与 PaaS)
    • [6.3 其他云服务](#6.3 其他云服务)
      • [6.3.1 IaaS](#6.3.1 IaaS)
      • [6.3.2 SaaS](#6.3.2 SaaS)
      • [6.3.3 FaaS](#6.3.3 FaaS)
  • [7 云爆发](#7 云爆发)
    • [7.1 什么是云爆发?](#7.1 什么是云爆发?)
    • [7.2 组织何时需要云爆发?](#7.2 组织何时需要云爆发?)
      • [7.2.1 软件开发](#7.2.1 软件开发)
      • [7.2.2 营销活动](#7.2.2 营销活动)
      • [7.2.3 大数据建模和查询](#7.2.3 大数据建模和查询)
      • [7.2.4 季节性业务](#7.2.4 季节性业务)

转至https://www.atlassian.com/zh/microservices/cloud-computing

1 概述

云计算是通过互联网交付计算资源。它提供了成本节约、可扩展性、高性能、规模经济等。对于许多公司而言,云迁移与数据和 IT 现代化直接相关。

1.1 什么是云计算

云计算是指通过互联网(云)交付计算资源,包括存储、处理能力、数据库、网络、分析、人工智能和软件应用。通过外包这些资源,公司可以在需要时访问所需的计算资产,而无需购买和维护物理的本地 IT 基础架构。这提供了灵活的资源、更快的创新和规模经济。对于许多公司而言,云迁移与数据和 IT 现代化直接相关。

1.2 云计算的特征

进行云计算之前,组织购买并维护了本地 IT 基础架构。尽管成本节约推动了最初向云的转变,但许多组织后来发现公有云、私有云或混合云基础架构提供了许多优势。

云计算具有如下特征:

1.2.1 按需自助服务

云计算提供商提供了 API,用户可以访问这些API,以便在需要时申请新资源或扩展现有资源。团队可以使用 Terraform 和 Ansible 等基础架构即代码工具,以简单的方式实现基础架构调配的自动化。

1.2.2 广泛的网络接入

提供最佳的最终用户体验时,物理硬件位置是一个重要关注点。云计算通过提供分布在全球的物理硬件提供了巨大的优势,这使组织能够战略性地调配针对位置的硬件。

1.2.3 资源共享

云基础架构平台中的计算资源是动态划分和按需分配的。由于云主机的物理机是在多个租户之间动态配置和共享的,因此云硬件经过彻底优化,以最大限度地提高使用率。

1.2.4 快速弹性

云基础架构可以动态增长和缩小,允许用户请求其计算资源根据流量需求自动扩展。弹性可以以每台计算机为基础,即资源分配的增长以最大限度地利用可用计算机资源;也可以在多计算机基础上实现弹性,在这种情况下,应用可以自动扩展到多联网的计算机。

1.2.5 衡量的服务

云基础架构提供商提供详细的使用量指标,用于传达使用成本。例如,Amazon Web Services (AWS) 按小时或每日行项目为每个服务类别提供使用量。云服务提供商通常采用公用事业式的即用即付计费模式,这种模式需要衡量和交付,因此客户需要根据使用的计算资源的确切数量付费。

1.3 云部署的类型

云部署主要有三种类型。每个都有独特的优势,组织通常会因使用多个部署而受益。

1.3.1 公有云

公有云通过互联网从 AWS 和 Microsoft Azure 等云服务提供商那里交付计算资源,包括服务器、存储、应用等。云提供商拥有并运营所有硬件、软件和其他支持基础架构。

1.3.2 私有云

私有云是专用于组织的计算资源。它可以物理地位于组织的现场数据中心,也可以由云提供商托管。私有云通过向公司提供专用资源,可提供比公有云更高的安全性和隐私性。

私有云客户不仅可以获得自助服务、可扩展性和弹性等公有云主要优势,还有额外的控制和自定义的优势。此外,私有云具有更高的安全性和隐私性,因为它们位于公共流量无法访问的专用网络上。

1.3.3 混合云

混合云是私有云和公有云的组合(例如,由 Red Hat 提供支持的 IBM Hybrid Cloud),通过支持数据和应用协同工作的技术连接在一起。敏感的服务和应用可以保存在安全的私有云中,而可公开访问的 Web 服务器和面向客户的端点可以位于公有云中。大多数流行的第三方云提供商都提供混合云模式,允许用户结合私有云和公有云来满足其需求。这使企业能够更灵活地部署其应用的特定基础架构要求。

1.4 云计算服务

云计算的动态特性为新颖的更高级别服务奠定了基础。这些服务不仅可以与敏捷团队和 DevOps 团队互补,而且通常可以为其提供必要的服务。

IaaS、PaaS 和 SaaS 是云服务堆栈的不同层。IaaS 是底层的基础层,它提供了启用和支持 PaaS 和 SaaS 的底层基础架构。

PaaS 是一种支持应用开发的基础架构。PaaS 为开发人员提供了访问托管编程语言和数据库生态系统的权限,他们可以在其中自动部署应用代码。这使开发人员能够专注于核心业务逻辑代码,而不必维护其首选的编程环境基础架构。一些流行的 PaaS 生态系统包括 Ruby on Rails、Node.js Express 和 Python Django。

SaaS 产品是从云端交付的功能齐全的专用软件应用,包括 CRM、日历应用、网络邮件、电子商务等。SaaS 可以在 PaaS 的基础上构建。PaaS 提供了语言和数据库生态系统,开发人员随后可以在其中编写代码来创建 SaaS。

1.4.1 基础设施即服务

基础架构即服务 (IaaS) 是一个基础云服务层,允许组织向云提供商租用 IT 基础架构(服务器、存储、网络、操作系统)。IaaS 允许用户从原始物理服务器仓库中预留和调配所需的资源。此外,IaaS 允许用户为负载均衡器、数据库、电子邮件服务器、分布式队列等特殊任务预留预配置的计算机。

DevOps 团队可以使用 IaaS 作为基础平台来构建 DevOps 工具链,其中可能包括使用各种第三方工具。

1.4.2 平台即服务

平台即服务 (PaaS) 是一个基于 IaaS 构建的云基础架构层,提供用于构建用户级工具和应用的资源。它提供底层基础架构,包括计算、网络和存储资源,以及开发工具、数据库管理系统和中间件。

PaaS 利用 IaaS 自动分配支持基于语言的技术堆栈所需的资源。流行的语言技术堆栈包括 Ruby On Rails、Java Spring MVC、MEAN 和 JAM 堆栈。然后,PaaS 客户只需上传自动部署到 PaaS 基础架构的应用代码构件即可。这是一个新颖而强大的工作流程,使团队可以完全专注于其特定的业务应用代码,而不必担心托管和基础架构问题。PaaS 会自动处理基础架构的扩展和监控,以根据观察到的流量负载增加或缩减资源。

1.4.3 软件即服务

软件即服务 (SaaS) 通过互联网按需提供软件应用,通常通过订阅提供。云提供商托管和管理应用,根据需要进行软件升级和安全修补。SaaS 的示例包括 CRM 系统、网络邮件应用、Jira 和 Confluence 等生产力工具、分析工具、监控工具、聊天应用等。

1.4.4 函数即服务

函数即服务 (FaaS) 是一种云计算服务,它为客户提供了一个可以开发、运行和管理应用的平台。这减轻了开发人员构建和维护开发和启动应用所需的基础架构的需求。云提供商提供云资源,执行代码块,返回结果,然后销毁已使用的资源。

1.5 云计算的优势

云基础架构的独特特性提供了多种新颖的技术和业务优势。以下是敏捷团队的主要云计算优势。

1.5.1 降低成本

使用云资源的团队无需购买自己的硬件资产。除了硬件成本外,云提供商还尽最大努力最大限度地提高和优化硬件使用率。这就将硬件和计算资源转变为商品,云提供商竞相提供最低价格。

1.5.2 提高可扩展性

由于云计算默认具有弹性,因此组织可以按需扩展资源。云计算为团队提供自动扩展功能。云应用可以自动缩减和增加其基础架构资源,以应对流量高峰。

1.5.3 性能更强

云计算提供最新、最出色的计算资源。用户可以使用专为繁重的并行处理任务而设计的极限多核 CPU 访问最新的计算机。此外,主要云提供商提供尖端的 GPU 和 TPU 硬件计算机,用于密集的图形、矩阵和人工智能处理任务。这些云提供商始终使用最新的处理器技术进行更新。

主要的云计算提供商拥有分布在全球的硬件位置,可根据物理连接位置确保高性能连接。此外,云提供商还提供全球内容交付网络,按位置缓存用户请求和内容。

1.5.4 提高了执行速度

使用云基础架构的团队可以更快地执行任务并为其客户提供价值。敏捷软件团队可以利用云基础架构快速启动新的虚拟机来试验和验证独特的想法,并自动执行管道的测试和部署阶段。

1.5.5 提高了安全性

私有云托管提供隔离的防火墙基础架构,可提高安全性。此外,云提供商还提供许多安全机制和技术,以帮助构建安全的应用。用户访问控制是一个重要的安全问题,大多数云提供商都提供了限制精细用户访问的工具。

1.5.6 持续集成和交付

持续集成和持续交付 (CI/CD) 是 DevOps 从业人员的一项关键实践,有助于提高团队速度并缩短上市时间。基于云的 CI/CD(例如 Bitbucket Pipelines)允许团队自动构建、测试和部署代码,而不必担心 CI 基础架构的管理或维护。Bitbucket Pipelines 依赖于 Docker 容器来提供发布管道的隔离和可重现性。团队可以像在本地计算机上一样运行类似的命令,但具有为每个构建提供全新且可重现的设置的所有优点。

1.5.7 全面的监控和事件管理

云部署允许团队端到端连接工具,从而更轻松地监控管道的所有部分。全面监控是实践 DevOps 的组织的另一项关键功能,因为它使他们能够更快地解决问题和事件。云提供商共享有关系统运行状况的指标,包括应用和服务器的 CPU、内存、请求率、错误率、平均响应时间等。例如,监控多个虚拟机 (VM) 的负载意味着团队可以在需求增加时增加更多容量,或者团队可以根据这些指标自动扩展(向上/向下),以减少人为干预和成本。

2 容器与虚拟机

容器和虚拟机是非常相似的资源虚拟化技术。虚拟化是一个过程,在这个过程中,RAM、CPU、磁盘或网络等系统单一资源可以"虚拟化"并表示为多个资源。容器和虚拟机之间的主要区别在于,虚拟机将整个计算机虚拟化到硬件层,而容器只虚拟化操作系统级别以上的软件层。

2.1 什么是容器

容器是轻量级软件包,包含执行包含的软件应用所需的所有依赖关系。这些依赖关系包括系统库、外部第三方代码包和其他操作系统级应用。容器中包含的依赖关系存在于高于操作系统的堆栈级别中。

2.1.1 优点

  • 迭代速度
    因为容器是轻量级的并且只包含高级软件,所以修改和迭代的速度非常快。
  • 稳健的生态系统
    大多数容器运行时系统都提供预制容器的托管公共存储库。这些容器存储库包含许多常用的软件应用,如数据库或消息传递系统,可以立即下载和执行,从而为开发团队节省时间

2.1.2 缺点

  • 共享主机漏洞
    容器都在操作系统层下共享同一个底层硬件系统,一个容器中的漏洞利用可能会突破容器并影响共享硬件。大多数流行的容器运行时都有预构建容器的公共存储库。使用某个公共镜像存在安全风险,因为它们可能包含漏洞利用或可能容易被邪恶行为者劫持。

2.1.3 热门容器提供商

    1. Docker
      Docker 是最受欢迎和使用最广泛的容器运行时。Docker Hub 是一个庞大的公共存储库,其中包含流行的容器化软件应用。Docker Hub 上的容器可以立即下载并部署到本地 Docker 运行时。
    1. RKT
      RKT发音为"Rocket",是一个以安全为先的容器系统。除非用户明确启用不安全的功能,否则 RKT 容器不允许使用不安全的功能。RKT 容器旨在解决其他容器运行时系统所面临的潜在交叉污染漏洞安全问题。
    1. Linux 容器 (LXC)
      Linux 容器项目是一个开源 Linux 容器运行时系统。LXC 用于隔离操作系统级进程。Docker 实际上会在幕后使用 LXC。Linux 容器旨在提供供应商中立的开源容器运行时。
    1. CRI-O
      CRI-O 是 Kubernetes 容器运行时接口 (CRI) 的实现,它允许使用与开放容器倡议 (OCI) 兼容的运行时。它是使用 Docker 作为 Kubernetes 运行时的轻量级替代方案。

2.2 什么是虚拟机?

虚拟机是大量的软件包,可以完全模拟 CPU、磁盘和网络设备等低级硬件设备。虚拟机还可能包含在模拟硬件上运行的补充软件堆栈。这些硬件和软件包结合在一起,可以生成功能齐全的计算系统快照。

2.2.1 优点

  • 完全隔离安全
    虚拟机作为完全独立的系统单独运行。这意味着虚拟机不受共享主机上其他虚拟机的任何漏洞利用或干扰。单个虚拟机仍可能被漏洞利用劫持,但被利用的虚拟机将被隔离,无法污染任何其他相邻的虚拟机。
  • 交互式开发
    容器通常是运行容器所需的预期依赖关系和配置的静态定义。虚拟机更具动态性,可以交互式开发。一旦为虚拟机指定了基本硬件定义,虚拟机就可以被视为裸机计算机。可以手动将软件安装到虚拟机上,还可以拍摄虚拟机快照以捕获当前的配置状态。虚拟机快照可用于将虚拟机还原到该时间点,或使用该配置启动其他虚拟机。

2.2.2 缺点

  • 迭代速度
    虚拟机的构建和重新生成非常耗时,因为它们包含一个完整的堆栈系统。对虚拟机快照的任何修改都可能需要很长时间才能重新生成和验证其行为是否符合预期。
  • 存储大小成本
    虚拟机可能会占用大量存储空间。它们的大小可以迅速增长到几千兆字节。这可能会导致虚拟机主机出现磁盘空间不足的问题。

2.2.3 热门虚拟机提供商

  • Virtualbox
    Virtualbox 是甲骨文旗下的免费开源 x86 架构仿真系统。Virtualbox 是最受欢迎、最成熟的虚拟机平台之一,其辅助工具生态系统可帮助开发和分发虚拟机镜像。
  • VMware
    VMware 是一家上市公司,其业务建立在最早的 x86 硬件虚拟化技术之上。VMware 附带了一个虚拟机管理程序,该管理程序是一种用于部署和管理多个虚拟机的实用程序。VMware 具有用于管理虚拟机的强大用户界面。VMware 是提供支持的绝佳企业虚拟机选项。
  • QEMU
    QEMU 是最强大的硬件仿真虚拟机选项。它支持任何通用硬件架构。QEMU 是一个仅限命令行的实用程序,不提供用于配置或执行的图形用户界面。这种权衡使得 QEMU 成为最快的虚拟机选项之一。

3 基础架构即代码 (IaC)

3.1 什么是基础架构即代码?

IaC 是一种配置管理形式,它将组织的基础架构资源编码为文本文件。然后,这些基础架构文件将提交到 Git 这样的版本控制系统。版本控制存储库支持功能分支和拉取请求工作流程,这是 CI/CD 的基础依赖关系。

云基础架构托管平台(特别是 IaaS 平台)的兴起使基础架构即代码成为可能。IaaS 允许通过远程 API 按需调配和申请云资源,远程 API 为提交到基础架构配置文件的属性设置模板。IaC 的自动化功能可以获取配置文件并针对远程 IaaS API 运行。

一旦团队将基础架构配置提交到版本控制中,他们就可以将 CI/CD 实践应用于基础架构更改。基础架构更新可以遵循 DevOps 工作流程。如果团队成员编辑了其中一个配置文本文件,则可以使用拉取请求和代码审查工作流程来审核和验证编辑的正确性。此外,支持 DevOps 的基础架构即代码系统将利用自动基础架构部署和回滚。

3.2 为什么基础架构即代码很重要?

IaC 的发展旨在帮助解决"环境漂移"问题。云应用在其发布生命周期的各个阶段通常具有单独的部署环境。拥有开发、暂存和生产环境很常见。这些环境由应用服务器、负载平衡器和数据库等网络资源组成。当这些不同环境之间的基础架构不同步时,就会发生环境漂移。

如果没有 IaC,基础架构管理可能是一个混乱而脆弱的过程。系统管理员手动连接到远程云提供商,并使用 API 或 Web 仪表板配置新的硬件和资源。此手动工作流程无法提供应用基础架构的整体视图。管理员可能会手动对一个环境进行更改,而忘记在另一个环境上进行操作。环境漂移就是这样发生的。

如果没有 IaC,手动基础架构管理将是一个缓慢的过程。如果由于环境漂移、流量高峰或其他问题而确定了所需的基础架构更改,则系统管理员可能需要一段未知的时间来做出反应和适应。这会导致停机和客户失望。有了 IaC,基础架构可以自动适应配置的变化,并通过自动缩放功能对流量峰值做出反应。

3.3 基础架构即代码如何运作?

要完全实现基础架构即代码,需要设置一些依赖关系。

3.3.1 远程访问托管或 IaaS 云托管平台

第一个也是最重要的依赖关系是远程访问托管。配置管理工具需要连接到远程主机并对其进行修改。如果远程基础架构是自行管理的,则您的团队需要确保配置管理工具具有访问权限。支持 IaaS 的云托管平台提供了 API,允许用户根据需要自动创建、删除和修改基础架构资源。配置管理工具也可以访问这些 API,以进一步自动执行这些任务。流行的 IaaS 平台的一些示例包括 Digital Ocean、Amazon AWS 和 Microsoft Azure。

3.3.2 配置管理平台

完成 IaC 的下一个要求是连接到 IaaS API 并自动执行常见任务的工具套件。团队可以创建一组脚本和工具。但是,这可能需要很大的工作量还有未来的维护,而且投资回报率可能很低。已经有许多开源配置管理平台可以解决这个问题,包括 Terraform、Ansible、Salt Stack 和 Chef。

3.3.3 版本控制系统

配置管理平台使用以 YAML 等标记语言编写的人和机器可读文本文件来声明要执行的任务和顺序。这些文本文件可以被视为应用代码文件,并存储在版本控制系统存储库中。存储库充当中心数据源,支持拉取请求和代码审查。最受欢迎的版本控制系统是 Git。

4 基础设施即服务 (IaaS)

基础架构即服务 (IaaS) 是一种云计算基础架构,它通过可扩展的订阅模式通过互联网提供计算、网络和存储资源。由于它是作为订阅服务提供的,因此可以根据需要向上或向下扩展,与本地基础架构相比,它提供了更大的灵活性。

在 2010 年代初期,互联网速度提高到了可以通过互联网提供数字服务的程度,引发了云革命。各公司开始将其应用迁移到软件即服务 (SaaS) 模式。这导致了 Web 流量激增,需要更多的硬件资源,并且需要新的工具来实现硬件管理的自动化。各公司开始提供基于云的基础架构资源和管理工具即服务,或基础架构即服务 (IaaS)。

4.1 什么是基础架构即服务?

IaaS 是一种云计算基础架构,它通过可扩展的订阅模式通过互联网提供计算、网络和存储资源。它是一项基础云服务,可以构建或补充平台即服务 (PaaS) 和 SaaS。许多敏捷团队和 DevOps 团队使用 IaaS 来构建自己的平台。由于它是作为订阅服务提供的,因此可以根据需要向上或向下扩展,与本地基础架构相比,它提供了更大的灵活性。

4.2 如何运作的?

IaaS 是物理和虚拟计算资源的集合,提供在云中运行应用和工作负载所需的资源。IaaS 提供商可以管理客户的数据中心、配置虚拟计算以及向客户提供网络和存储服务。

传统的"裸机"托管提供对硬件的直接访问并通过互联网控制硬件规格。但它不提供虚拟化的计算、网络和存储。使用裸机托管时,可以向托管客户授予远程访问权限,然后他们远程登录计算机并对其进行配置。在 GPU 计算、高性能计算、分析等方面,它可以提供比 IaaS 更高的性能。但是,它不具备 IaaS 的优势,包括快速调配和扩展资源的能力。

建立在裸机主机上的"共享主机"或"虚拟主机"。共享主机使用虚拟化将单个计算机分割为单独的虚拟机 (VM)。虚拟化是一个系统级的流程,在这个流程中,RAM、CPU、磁盘或网络等资源可以虚拟化并表示为多个单独的资源。这种资源虚拟化使一台物理计算机能够托管多个租户,就好像它们位于不同的计算机上一样。
将裸机和虚拟主机扩展到数据中心或集群基础架构时,您就创建了 IaaS。一个装满服务器的房间可以虚拟化为单独的计算单元,而不是使用一台计算机。

通过将远程配置和调配引入充满服务器的房间,IaaS 实现了云计算。除了提供操作系统资源外,IaaS 还提供全方位服务、预配置的基础架构资源,如负载均衡器、DNS 管理、电子邮件服务器、安全门等。作为第一方的工作,这些资源的开发和维护成本通常很高。

4.3 IaaS 与容器有何关系?

如今,许多 IaaS 解决方案都将容器托管或容器即服务 (CaaS) 作为可用基础架构的一部分提供。CaaS 是基于 IaaS 构建的容器,允许软件开发人员和 IT 部门使用基于容器的虚拟化来上传、组织、运行、扩展和管理容器。CaaS 使用容器作为主要资源,而不是虚拟机。

5 平台即服务 (PaaS)

平台即服务 (PaaS) 是一个云基础架构层,提供用于构建用户级工具和应用的资源。它包括底层基础架构,包括计算、网络和存储资源,以及开发工具、数据库管理系统和中间件。

如今,软件开发团队现在可以立即访问支持整个应用生命周期所需的所有资源,包括设计、开发、测试、部署和托管应用。这一切都可以通过平台即服务 (PaaS) 直接从云端完成。团队可以按需访问所需的资源,而无需购买和维护复杂的本地基础架构。

PaaS 是现代云基础架构的主要层。基础堆栈是基础架构即服务 (IaaS),它提供计算、网络和存储资源。PaaS 处于 IaaS 和软件即服务 (SaaS) 之间的中间位置。PaaS 依赖于 IaaS,但也支持 SaaS。

5.1 什么是平台即服务?

PaaS 是一个云基础架构层,提供用于构建用户级工具和应用的资源。与 IaaS 一样,这些资源包括服务器、存储和网络。PaaS 还包括开发工具、数据库管理系统、中间件、电子邮件或通知系统等。

由于 PaaS 是基于云的基础架构,它使组织可以避免购买和管理基础架构资源(包括软件许可证、应用基础架构和开发工具)的成本和复杂性。

PaaS 中的"平台"是指编程语言生态系统或"技术堆栈"。流行的基于语言的应用技术堆栈包括 Ruby on Rails、Django Python、Node.js MEAN 堆栈、Java SpringMVC 等。这些语言堆栈示例取决于附加的数据库系统。

5.2 平台即服务的优势

与其他云服务一样,PaaS 提供可根据需要扩展的按需资源。在此之前,团队需要购买自己的硬件,然后自己配置服务器、数据库、防火墙和所有其他组件。然后,团队必须维护、扩展和监控其自定义基础架构。PaaS 还有许多其他优势。

6 容器即服务(CaaS)

容器即服务 (CaaS) 是一项基于云的服务,允许软件开发人员和 IT 部门使用基于容器的虚拟化来上传、组织、运行、扩展和管理容器。

容器是一个包含所有依赖关系的软件包:代码、运行时、配置和系统库,因此它可以在任何主机系统上运行。CaaS 使软件团队能够快速部署容器化应用并将其扩展到高可用性云基础架构。CaaS 不同于平台即服务 (PaaS),因为它依赖于容器的使用。PaaS 关注的是显式的"语言堆栈"部署,例如 Ruby on Rails 或 Node.js,而 CaaS 可以在每个容器中部署多个堆栈。

6.1 什么是 CaaS?

CaaS 本质上是容器化软件包的自动托管和部署。如果没有 CaaS,软件开发团队需要部署、管理和监控容器运行的底层基础架构。该基础架构是云机和网络路由系统的集合,需要专门的 DevOps 资源来监督和管理。

CaaS 使开发团队能够从更高阶的容器层面进行思考,而不是在较低的基础架构管理层面上闲逛。这使开发团队更清楚地了解最终产品,并允许更敏捷的开发和为客户提供更高的价值。

6.2 CaaS 与 PaaS

PaaS 关注并仅限于代码堆栈层次基础架构。使用 PaaS 时,项目无法控制底层操作系统。容器运行时提供操作系统的配置和虚拟化,允许进行高级自定义和控制。容器对于开发高度自定义的专业化软件至关重要。然而,对于更通用和标准的软件,PaaS 通常是最佳选择。

PaaS 是一种专注于应用层次代码部署的云托管范例。PaaS 提供商提供自动化托管环境,重点关注更高级别的应用基础架构依赖关系,如语言运行时和数据库。PaaS 中的"平台"通常与代码语言生态系统或"堆栈"相关联。一些流行的 PaaS "堆栈"示例包括 Ruby on Rails、Node.js、.NET 和 Java Spring MVC。

PaaS 通常更适合整体式应用部署,因为它通常侧重于每个部署的单个堆栈。CaaS 可能更适合微服务,因为部署到 CaaS 的每个容器都可以有自己的封装操作系统和语言堆栈。PaaS 仍然遭受"我的计算机上的工作"问题的困扰。PaaS 系统的开发环境和生产环境之间可能存在细微的差异。容器系统的主要目标是避免并确保跨底层部署环境的行为一致。

6.3 其他云服务

6.3.1 IaaS

基础架构即服务 (IaaS) 是云计算的基础层,它使团队能够预留和调配远程计算资源。所有其他云"即服务"范式都依赖于 IaaS。使用 IaaS,开发人员可以从其托管提供商处调配云计算机实例并向其请求访问权限。然后可以远程访问此云计算机实例并将其配置为在其上安装自定义软件。

6.3.2 SaaS

软件即服务 (SaaS) 是一个术语,用于描述托管云产品的业务模型类。SaaS 公司通常为访问托管云软件提供基于订阅的计费模式。这与传统的单位定价可交付软件商业模式不同。SaaS 公司建立在 PaaS 和 IaaS 等其他即服务基础架构工具之上。

6.3.3 FaaS

功能即服务 (FaaS) 是云计算产品的最前沿,也被称为"无服务器"。FaaS 使开发人员能够直接上传代码函数并执行,而无需配置或管理任何底层系统基础架构或依赖关系。这使团队能够直接关注其相关的业务领域问题,而无需分散注意力去关注基础架构管理。

7 云爆发

云爆发是一种云计算配置,它使私有云能够在计算需求激增时"爆发"到公有云中来访问公有云资源。

7.1 什么是云爆发?

云爆发是一种应用配置,它允许私有云"爆发"进入公有云并访问其他计算资源,而不会中断服务。这些云爆发可以根据高需求量自动触发,也可以通过手动请求触发。

云爆发背后的技术包括基础架构即服务 (IaaS),这是一种云计算基础架构,使开发人员能够按需动态配置云资源。DevOps 工具用于指定容量阈值或触发将激活云爆发的事件,此类工具包括配置管理和基础架构即代码 (IaC) 等。

7.2 组织何时需要云爆发?

云爆发是由计算资源需求激增触发的。这些爆发可能是用户流量的涌入或昂贵的一次性计算任务。一些常见的云爆发情况包括:

7.2.1 软件开发

软件开发和分析是云爆发两个最常见的用例。DevOps 团队经常使用多个虚拟机进行测试,这些虚拟机只需要很短的时间。此外,CI/CD 任务是爆发到公有云的理想选择,因为 CI/CD 需要几个一次性任务,这些任务在开发人员推送新提交时会在短时间内运行。

7.2.2 营销活动

针对新产品发布的营销活动可能会产生大量流量涌入,这需要扩展的云资源。想象一下预期的好莱坞电影或视频游戏的营销推送。这些事件会产生暂时的流量热潮,在发布消息传递后,流量就会消退,因此现在是利用云爆发的好时机。

7.2.3 大数据建模和查询

大数据公司经常需要执行一次性查询或生成超出其私有云容量的模型。这些任务非常适合云爆发。该公司可以突然进入公有云以获取更多资源来加快任务的完成速度。大数据任务的一些精细示例包括:

  • 高保真 3D 渲染
  • AI 和 ML 模型训练
  • 自动驾驶汽车模拟

7.2.4 季节性业务

季节性业务在已知的高峰时段需要额外的计算资源。例如:

  • 电子商务或配送站点的假日高峰购物
  • 业务季度末财务处理
  • 政治选举季节(竞选筹款和候选人提案教育网站流量)
相关推荐
企业管理8MSaaS16 小时前
如何选择适合Scrum团队的项目管理系统?
云计算·scrum
企业管理8MSaaS17 小时前
如何在 Scrum 管理中化解团队冲突?
云计算·scrum
正在走向自律1 天前
阿里云ESC服务器一次性全部迁移到另一个ESC
服务器·阿里云·云计算
OkeyProxy1 天前
HTTP、HTTPS和SOCKS5代理協議
网络协议·https·云计算·代理服务器·海外ip代理
小峰编程1 天前
独一无二,万字详谈——Linux之文件管理
linux·运维·服务器·云原生·云计算·ai原生
終不似少年遊*1 天前
华为云计算HCIE笔记04
网络·华为云·云计算·学习笔记·hcie·认证·数据中心
神秘的土鸡1 天前
LGMRec:结合局部与全局图学习的多模态推荐系统
目标检测·计算机视觉·云计算
♡喜欢做梦2 天前
腾讯云云开发 Copilot 深度探索与实战分享
云计算·腾讯云·copilot·玩转云开发 copilot
HUIBUR科技2 天前
人工智能与云计算的结合:如何释放数据的无限潜力?
人工智能·ai·云计算
云计算DevOps-韩老师2 天前
【网络云计算】2024第52周-每日【2024/12/23】小测-理论&实操-解析
linux·运维·服务器·开发语言·网络·云计算·perl