OpenShift - 概述
OpenShift 是由 Red Hat 托管的云开发平台即服务 (PaaS)。它是一个基于云的开源用户友好平台,用于创建、测试和运行应用程序,并最终将它们部署到云上。
OpenShift 能够管理用不同语言编写的应用程序,例如 Node.js、Ruby、Python、Perl 和 Java。OpenShift 的主要功能之一是可扩展,这有助于用户支持用其他语言编写的应用程序。
OpenShift 带有各种虚拟化概念作为其抽象层。OpenShift 背后的底层概念基于虚拟化。
虚拟化
一般来说,虚拟化可以定义为从系统、存储或操作系统开始创建虚拟系统,而不是任何物理或实际版本。虚拟化的主要目标是使 IT 基础架构更具可扩展性和可靠性。虚拟化的概念已经存在了几十年,随着当今 IT 行业的发展,它可以应用于从系统级、硬件级到服务器级虚拟化的各个层面。
工作原理
它可以被描述为一种将任何应用程序或操作系统从其实际物理层中抽象出来的技术。虚拟化技术的一个关键用途是服务器虚拟化,它使用一种称为虚拟机管理程序的软件将该层从底层硬件中抽象出来。在虚拟化上运行的操作系统的性能与在物理硬件上运行时一样好。然而,虚拟化的概念很流行,因为大多数系统和应用程序的运行不需要使用底层硬件。
物理与虚拟架构
虚拟化的类型
应用程序虚拟化 − 在此方法中,应用程序从底层操作系统中抽象出来。此方法非常有用,其中应用程序可以独立运行,而不依赖于底层操作系统。
桌面虚拟化 − 此方法用于减少工作站负载,其中可以使用桌面上的瘦客户端远程访问桌面。在此方法中,桌面大多在数据中心运行。一个典型的例子是大多数组织中使用的虚拟桌面映像 (VDI)。
数据虚拟化 − 这是一种抽象和摆脱传统数据和数据管理方法的方法。
服务器虚拟化 − 在此方法中,与服务器相关的资源被虚拟化,包括物理服务器、进程和操作系统。实现此抽象的软件通常称为虚拟机管理程序。
存储虚拟化 − 它是将多个存储设备集中到从单个中央控制台管理的单个存储设备的过程。
网络虚拟化 −这是一种将所有可用网络资源通过分割可用带宽和通道组合在一起的方法,每个带宽和通道彼此独立。
OpenShift
OpenShift 是一个支持云的应用程序平台即服务 (PaaS)。它是一种开源技术,可帮助组织将其传统应用程序基础架构和平台从物理、虚拟介质迁移到云。
OpenShift 支持各种各样的应用程序,这些应用程序可以在 OpenShift 云平台上轻松开发和部署。OpenShift 基本上为开发人员和用户支持三种平台。
基础设施即服务 (IaaS)
在这种形式下,服务提供商提供具有一些预定义虚拟硬件配置的硬件级虚拟机。该领域有多个竞争对手,从 AWS Google Cloud 开始,Rackspace 等等。
经过漫长的设置和投资过程后,拥有 IaaS 的主要缺点是,用户仍然需要负责安装和维护操作系统和服务器包、管理基础设施网络以及负责基本的系统管理。
软件即服务 (SaaS)
使用 SaaS,用户无需担心底层基础设施。它就像即插即用一样简单,用户只需注册服务并开始使用即可。这种设置的主要缺点是,用户只能执行服务提供商允许的最低限度的自定义。SaaS 最常见的示例之一是 Gmail,用户只需登录即可开始使用。用户还可以对其帐户进行一些小的修改。但是,从开发人员的角度来看,它并不是很有用。
平台即服务 (PaaS)
它可以被视为 SaaS 和 IaaS 之间的中间层。PaaS 评估的主要目标是开发人员,其中开发环境可以通过几个命令启动。这些环境的设计方式是,它们可以满足所有开发需求,从拥有带有数据库的 Web 应用程序服务器开始。为此,您只需要一个命令,服务提供商就会为您完成所有工作。
为什么使用 OpenShift?
OpenShift 为企业单位提供了一个通用平台,可以在云上托管他们的应用程序,而无需担心底层操作系统。这使得在云上使用、开发和部署应用程序变得非常容易。其中一个关键功能是,它为各种开发和测试提供托管硬件和网络资源。借助 OpenShift,PaaS 开发人员可以自由地根据规范设计所需的环境。
OpenShift 在服务计划方面提供不同类型的服务级别协议。
免费 − 此计划限制为三年,每个计划 1GB 空间。
青铜级 − 此计划包括 3 年,每年可延长至 16 年,1GB 空间。
Sliver − 这是 16 年的青铜级计划,但存储容量为 6GB,无需额外费用。
除了上述功能外,OpenShift 还提供称为 OpenShift Enterprise 的本地版本。在 OpenShift 中,开发人员可以利用设计可扩展和不可扩展的应用程序,这些设计是使用 HAproxy 服务器实现的。
功能
OpenShift 支持多种功能。其中很少有 −
- 多语言支持
- 多数据库支持
- 可扩展的盒式系统
- 源代码版本管理
- 一键部署
- 多环境支持
- 标准化开发人员工作流程
- 依赖项和构建管理
- 自动应用程序扩展
- 响应式 Web 控制台
- 丰富的命令行工具集
- 远程 SSH 登录应用程序
- Rest API 支持
- 自助式按需应用程序堆栈
- 内置数据库服务
- 持续集成和发布管理
- IDE 集成
- 应用程序的远程调试

