• 参考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. Python实例2-逗号代码

    假定有下面这样的列表: spam = ['apples', 'bananas', 'tofu', 'cats'] 编写一个函数,它以一个列表值作为参数,返回一个字符串.该字符串包含所有表项,表项之间以 ...

  2. jquery旋转插件rotate参数说明

    具体可见:http://www.jianshu.com/p/b632a1ed6a57

  3. css3之文本text-overflow 与 word-wrap, word-break

    CSS3 Text Overflow属性 CSS3文本溢出属性指定应向用户如何显示溢出内容 语法: text-overflow:clip | ellipsis 但是text-overflow只是用来说 ...

  4. pandas一些基本操作(DataFram和Series)_1

    ##生成一个一维数组import numpy as np;nb7 = np.arange(0,100,2);print(nb7)print("======================== ...

  5. sql 2000 or sql2005 数据库日志删除

    数据库日志清理(sql 2000 or sql2005)DUMP TRANSACTION crm WITH NO_LOGBACKUP LOG crm WITH NO_LOGDBCC SHRINKDAT ...

  6. scope标签笔记

      scope的几个属性详解: 1.compile:默认值 他表示被依赖项目需要参与当前项目的编译,还有后续的测试,运行周期也参与其中,是一个比较强的依赖.打包的时候通常需要包含进去. 2.test: ...

  7. HZOI20190822模拟29题解

    题面:https://www.cnblogs.com/Juve/articles/11396238.html 下面开始一句话题解: A:爬山: 二分答案,check即可 #include<ios ...

  8. Spring MVC(二)--Spring MVC登陆实例

    本文通过一个简单的登陆实例实现Spring MVC的流程,同时整合 MyBatis使用,流程是这样的: 1.访问一个URL进入登陆界面 2.输入正确的用户名和密码,成功则进入index页面,否则留在登 ...

  9. 左神算法书籍《程序员代码面试指南》——2_03删除链表的中间节点和a/b处的节点

    [题目]给定链表的头节点head,实现删除链表的中间节点的函数.例如:不删除任何节点:1->2,删除节点1:1->2->3,删除节点2:1->2->3->4,删除节 ...

  10. Ubuntu添加桌面图标

    下面以添加eclipse图标为例: sudo gedit /usr/share/applications/eclipse.desktop 然后在弹出的文件中输入: [Desktop Entry] Na ...