• 参考redHat的官方文章翻译而来:https://openshift.redhat.com/community/wiki/architecture-overview

    OpenShift Origin

    Openshift Origin是Openshift的开源版本,可以用来创建、部署以及管理云端的app。根据每个app使用到的服务的类型(数据库、语言环境),Oepnshift会为你提供一个文件系统为你创造运行环境(a template file system layout is provided)。同时也负责DNS服务

    Platform Overview

    主要有两个部分组成:Broker和Cartridges
    • Broker:处理所有外部进来的请求,然后deliver给正确的处理模块。同时处理用户登录、DNS、app状态、app的管理等功能。当然用户会使用CLI、web或者JBoss工具和Broker交互
    • Cartridges:为app运行提供环境。每个Cartridge只能提供一种运行环境,比如Python或者Mysql,不能同时提供好几种。Cartridge分为两种: Framework cartridge和Embedded cartridge,前者是提供web能力的服务,后者是DB、DB web接口这类的服务。一个app显然需要至少一个Framework cartridge

    System Resources and Application Containers

    这个标题的意思就是系统为App运行提供的容器。这里有两个概念:Gear和Node。
    • Gear:Gear提供了一个给Cartridges运行的容器,里面可以跑若干个Cartridge。为每个Cartridge提供有限的RAM和硬盘空间
    • Node:一个Node中有多个Gear,Node就是一台物理机或者一台虚拟机。因为有些Gear的app没有在run,所以一般Node会超载,就是存放了超过限额的Gear

    Applications

    这个就不多写了,就是app的命名方式以及一些参数的名称
    • Domian:每个用户只有一个Domain
    • App Name:每个app有一个unique的名字
    • Aliases:可以为一个app提供一个别名,也就是另外一个URL
    • App dependencies:就是app依赖于哪些Catridges
    • App Git Repository:就是用户把代码push上去的地方

    Primary user interactions

    Simple Application Creation

    就是一张创建一个PHP app的图例,还是比较通俗易懂的:

    Applciation deployment using Jenkins

    可以使用Jenkins这个工具来帮助部署app,也就是通过它和openshift交互,来实现部署。具体细节欠奉:

    Horizontal scaling(Beta)

    Beta版的。。。目前Openshift就是用HA proxy来实现负载均衡。GIT部署作为end point for the application(个人理解就是真正部署的工具是GIT)。HA proxy的运作方式也很简单:如果有请求,那么把请求转发到正确的Gear即可。然后部署方式是:用户向HA proxy 的gear push代码。那么HA proxy将代码在分别push到每个运行的Gear上面去

    Describing an application using descriptors

    Openshift使用一个descriptor文件来build app。文件是YAML文件类型,就是yml后缀文件。文件内容包括:name、version、dependencies以及app的架构等信息。Broker可以通过这个文件来创建和修改app,同时为用户提供管理这些文件参数的REST API。
     

    App Descriptor

    app的描述文件包括以下的属性:
    • Name
    • Version
    • Requires:依赖列表,也就是Cartridge的列表,然后每个Cartridge都会有一个对应的Cartridge Descriptor
    • Cartridge: 似乎和上面的差不多,不清楚了
    • Component:Smallest piece of a software package which provides some functionality. Users don’t see below this level.
    • Connections:哪两个component需要互相通讯
    • Group Override:就是将不相关的Cartridge放到一个Gear里面去。In essence, embedding them together. These components will scale together.
    • Gear:CPU、内存以及disk的配置

    一个sample,就不翻译了

    1. Name: myapp
    2. Version: 1.0
    3. Requires: php-1.0, mysql, mongodb
    4. Connections:
    5. - php-1.0, mysql
    6. - php-1.0, mongodb
    7. Group override:
    8. - php-1.0, mysql

    The descriptor above describes an application named “myapp” which depends on php-1.0, mysql and mongodb. Php,Mysql and Php, Mongodb need to communicate with each other. Php and mysql run embedded on the same set of gears while Mongodb runs on its own set of gears

    Cartridge Descriptor

    有待补充。。。

    Logical views

    StickShift

    StickShift是openshift的核心模块,他提供了运行整个Openshift的功能。每台VM或者物理机都必须安装一个stickshift包。它包括三个部分:
    1. Controller:is a Rails Engine (plugin) which includes a REST API, business logic and state management for the PaaS platform. It also includes a set of plugin APIs for DNS management, authentication, data/state storage, and broker-node communications.
    2. Node:管理Gear和app
    3. Common:顾名思义,上面两个模块的共同调用模块

    Proxy ports

    Gear将自己内部的某个Cartridge暴露给外部调用,一般为了负载均衡或者供其他Gear调用。由HA proxy提供路由功能,即使是其他node的Gear,也可以访问到。

Redhad的开源Paas平台:OpenShift的更多相关文章

  1. 新书《OpenShift云原生架构:原理与实践》第一章第三节:企业级PaaS平台OpenShift

    近十年来,信息技术领域在经历一场技术大变革,这场变革正将我们由传统IT架构及其所支撑的臃肿应用系统时代,迁移至云原生架构及其所支撑的敏捷应用系统时代.在这场变革中,新技术的出现.更新和淘汰之迅速,以及 ...

  2. flynn 开源paas 平台安装试用

    flynn 是一个不错的开源paas 平台,基于git 以及容器技术,开发模型与 heroku 基本一样,同时构建方式就是基于heroku 的buildpacks 安装 官方文档提示说明是ubuntu ...

  3. 开源PaaS平台:Cloudify

    Cloudify是gigaspaces公司推出的基于java的paas平台. refer to :http://timeson.iteye.com/blog/1699730

  4. 开源的PaaS平台

    原文地址:https://blog.csdn.net/mypods/article/details/9366465 1.Stackato Stackato 是一个应用平台,用来创建私有.安全和灵活的企 ...

  5. PAAS平台7×24小时可用性应用设计

    如今非常多企业都在搭建自己的私有PAAS平台,当然也有非常多大型互联网公司搭建共同拥有PAAS平台(比如SAE/BAE/JAE(jae.jd.com)).那么使用PAAS平台来部署SAAS应用有哪些优 ...

  6. 开源PaaS工具CloudFoundry落地阿里云

    原文:https://yq.aliyun.com/articles/292815?utm_content=m_37457 云计算技术的不断成熟和完善,尤其是IaaS平台的不断发展,使得越来越多的企业和 ...

  7. PaaS平台– Google App Engine的开源实现AppScale环境搭建

    搭建好开发环境介绍: 硬件平台:HP Z800 工作站  内存:24GB      硬盘:1TB 虚拟化环境:XenServer 6.2.0 VM1:Ubuntu 12.04 amd64 server ...

  8. 快速安装Rainbond——开源企业级Paas平台

    快速安装Rainbond--开源企业级Paas平台 参考:https://www.rainbond.com/docs/user-operations/install/online_install/ R ...

  9. java和.net 双语言开发框架,开源的PaaS平台

    当下,我国国内的PaaS平台正在蓬勃发展,各式各样的PaaS平台层出不穷,但万变不离其宗,一个优秀的PaaS平台总有自己独树一帜或与众不同的地方.那么,首先我们要了解下什么是PaaS平台?PaaS是( ...

随机推荐

  1. List -- 循环操作

    1,单元循环 for…in 2,索引循环 for…in range(len(List)) 3,同时循环单元和索引 使用enumerate: for index, item in enumerate(L ...

  2. 廖雪峰Java11多线程编程-1线程的概念-3线程的状态

    1线程的状态 线程终止的的原因: run()或call()方法执行完成,线程正常结束 线程抛出一个未捕获的Exception或Error 直接调用该线程的stop()方法来结束该线程--该方法容易导致 ...

  3. 第五章 Odoo 12开发之导入、导出以及模块数据

    大多数Odoo 模块的定义,如用户界面和安全规则,实际是存储在对应数据表中的数据记录.模块中的 XML 和 CSV 文件不是 Odoo 应用运行时使用,而是载入数据表的手段.正是因为这个原因,Odoo ...

  4. BZOJ 1874: [BeiJing2009 WinterCamp]取石子游戏

    Time Limit: 5 Sec Memory Limit: 162 MB Submit: 957 Solved: 394 [Submit][Status][Discuss] Description ...

  5. iframe加载完成事件

    var iframe = document.createElement("iframe"); iframe.src = "http://www.jb51.net" ...

  6. bootstrap字体图标在IE上不显示

    最简单的办法就是直接下载最新的bootstrap.css替换掉旧的. 但是由于我做的项目直接替换会出现样式冲突问题,因此只好慢慢找是什么属性导致图标不显示,最后找到了解决办法: 1.首先保字体文件的位 ...

  7. ArcGIS 10.2 for Server 集群部署

    ArcGIS 10.2 for Server 具有很灵活的体系结构,而 ArcGIS 10.2  forServer site 可以包含一台或多台安装 GIS Server 的机器,这些参与ArcGI ...

  8. 页面自动执行(加载)js的几种方法

    https://www.cnblogs.com/2huos/p/js-autorun.html 一.JS方法1.最简单的调用方式,直接写到html的body标签里面: <html> < ...

  9. megacli在线raid构建详解(转载自用)

    版权声明:本文为博主原创文章,未经博主允许不得转载,转载附上原文链接即可. https://blog.csdn.net/GX_1_11_real/article/details/83213959 ht ...

  10. Vue 提示框组件

    OK,首先看看效果: 一.子组件(alert.vue) <template> <transition name="alert"> <div class ...