OpenShift - 概述

OpenShift是由Red Hat托管的云开发平台即服务(PaaS).它是一个基于云的开源用户友好平台,用于创建,测试和运行应用程序,最后在云上部署它们.

OpenShift能够管理用不同语言编写的应用程序,例如Node.js,Ruby,Python,Perl和Java. OpenShift的一个关键特性是它是可扩展的,它可以帮助用户支持用其他语言编写的应用程序.

OpenShift带有各种虚拟化概念作为其抽象层. OpenShift背后的基本概念是基于虚拟化.

虚拟化

通常,虚拟化可以定义为创建虚拟系统而不是物理或者从系统,存储或操作系统开始的任何实际版本.虚拟化的主要目标是使IT基础架构更具可扩展性和可靠性.虚拟化的概念已经存在了几十年,随着IT行业的发展,它可以应用于从系统级,硬件级到服务器级虚拟化的各种层.

工作原理

它可以被描述为一种技术,其中任何应用程序或操作系统都从其实际物理层中抽象出来.虚拟化技术的一个关键用途是服务器虚拟化,它使用称为管理程序的软件从底层硬件中抽象出层.在虚拟化上运行的操作系统的性能与在物理硬件上运行时的性能一样好.但是,虚拟化的概念很受欢迎,因为大多数运行的系统和应用程序都不需要使用底层硬件.

物理与虚拟架构

物理与虚拟架构

虚拟化类型

  • Application Virtualization : 在此方法中,应用程序从底层操作系统中抽象出来.此方法非常有用,可以在不依赖于下面的操作系统的情况下单独运行应用程序.

  • 桌面虚拟化  : 去;此方法用于减少可以使用桌面上的瘦客户端远程访问桌面的工作站负载.在此方法中,桌面主要在数据中心中运行.一个典型的例子可以是大多数组织中使用的虚拟桌面映像(VDI).

  • 数据虚拟化 : 这是一种抽象和远离传统数据和数据管理方法的方法.

  • 服务器虚拟化 : 在此方法中,虚拟化与服务器相关的资源,其中包括物理服务器,进程和操作系统.启用此抽象的软件通常称为虚拟机管理程序.

  • 存储虚拟化 : 这是将多个存储设备汇集到一个存储设备中的过程,该设备通过单个中央控制台进行管理.

  • 网络虚拟化 : 这是通过分割可用带宽和信道来组合所有可用网络资源的方法,每个信道彼此独立.

OpenShift

OpenShift是一个支持云的应用程序平台即服务(PaaS).它是一种开源技术,可帮助组织将其传统应用程序基础架构和平台从物理,虚拟媒体迁移到云.

OpenShift支持各种各样的应用程序,可以轻松开发和部署在OpenShift云平台上. OpenShift基本上为开发人员和用户提供三种平台支持.

基础架构即服务(IaaS)

在此格式中,服务提供商提供具有一些预定义虚拟硬件配置的硬件级虚拟机.这个领域有多个竞争对手,从AWS Google云,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集成

  • 应用程序的远程调试