OpenShift 3 : 基于docker的私有平台即服务

jopen 9年前
 

【编者的话】Openshift是一个非常有前途的私用PAAS解决方案,它可以减少从项目开始时到自动构建应用和布署的时间, 它支持绝大多数的WEB架构,将成为基于容器的私有平台即服务的一个参照。

Openshift 是一个私有的平台即服务解决方案, 主要用来在容器中搭建, 布署以及运行应用程序。它是开源的软件, 是基于apache 2.0的许可, 并且发行了两个版本, 一个是社区版, 一个是企业版。

第三版的起源

从2014年7月开始,Openshift就己经着力于研究富有远见的项目, 是关于技术架构将其与docker 和 Kubernetes的集成。一年前启动这个项目对于openshift 来说是一个大胆而且充满风险的的决策,真的,当时云平台的竟争处于白热化的巅峰时期,openshift 决定启动一个非常重要的的重建项目, 对于停止新的特性的开发和与旧版本之间的兼容性的妥协来说, 这是具有一些不好的影响的,但是现在, 我们相信他们作了一个正确的决定。

到目前为止, 社区版本联合了86名在GITHub(10个最活跃的红帽开发工作)开发志愿者。这是一个非常活跃的社区,在12个月中己经进行了16次的迭代, 并且刚刚发行了非常有希望的第一版。

尽管这个方案主要是由红帽在推动,另外严重依赖于kubernetes(来源于google),由此引发了到底由谁来支配和主导的问题--两个公 司之间的协作和版本基准,以后google 开发的一些新的特性会怎么办?他们会主要关注在Kubernets 还是 Openshift, 很显然, 这个问题还没有答案。

但是, google的支持部门己经确认, 由两家公司来主导openshift只会带来更多益处, 它将成为比docker 企业版更具竟争力的产品(机器,组建和群)。

Openshift 第三版提供了3个方法来自动构建应用。

• Docker 文件模式:通过向Openshift 提供指向Docker-File和它们的依附关系的源码管理器的URI 来自动构建一个docker 容器。

OpenShift 3 : 基于docker的私有平台即服务

• 源码到镜像模式(STI):允许通过提交应用的源码到openshift来自动构建一个应用。(就像Heroku中的buildpacks)。

OpenShift 3 : 基于docker的私有平台即服务

• 自定义构建模式:允许通过提供其自己的应用,其构建逻辑是通过提供openshift, docker 的镜像。

OpenShift 3 : 基于docker的私有平台即服务

Openshift 3也还允许定义一个自动的布署策略,比如有新的应用映像版本发布到注册表或者是应用的配置有了更新。

OpenShift 3 : 基于docker的私有平台即服务

为了完成这些构建和布署特性,openshift 3提供了把它自己的应用蓝图定义成用Json 或 Yaml格式的模板文件的功能。 这些蓝图描述了应用的架构拓扑和容器的布署策略。下面的图表描述了openshit中的3层应用是如何将不同组件的模板进行组合的。

OpenShift 3 : 基于docker的私有平台即服务

Diagram : example of a 3 tier application architecture hosted in OpenShift v3

在模板中组合组件, 这个是部份来源于Kubernetes的概念, 需要记住以下主要的对象。

• 一个POD是一个Docker 容器的运行环境(如果需要共享本地的资源, 我们将在单独的POD中布署两种类别的容器)

• 一个服务是一个入口,抽象出一个均衡访问负载到一组相同的容器,理论上, 最少是一个服务对应一个架构层。

• 一个服务布署者或布署配置是一个对象, 用来描述基于触发器的容器的布署策略。(比如,当docker注册表中有新版本的映象时, 重新布署)。

• 一个复制控制器是一个技术组件, 主要负责POD 的弹性。

• 一个路由是用来显露一个应用的入口(域名解析, 主机名或VIP)

通过其多重布署机制和设置其自身蓝图的能力, Openshift 第三版适用于大多数的复杂应用架构。

引擎盖下的优雅架构:

Openshift 3的架构可以作为单机模式布署, 也可以作为分布式模式布署。在随后的案例当中, 用了两种服务器角色, 主服务器和节点。

主服务器节点的功能是:

  • 处理来自于命令行或WEB界面的API 请求。
  • 构建映象和布署容器。
  • 确保POD复制的弹性。

主服务器依赖于基于etcd的分布式目录, 主要用来提供配置共享和服务发现。

节点主要用来作为PODS的宿主和运行容器(应用和注册表)

OpenShift 3 : 基于docker的私有平台即服务

Diagram : Deployment Architecture of an Openshift v3 infrastructure

架构是分布式的, 可扩展的和具有弹性的。但是平台自身暂时还不支持自动扩展能力:目前预备和服务器的容量计划只能通过手动调整。

OpenShift 3 : 基于docker的私有平台即服务

OpenShift v3 administration web Portal

OCTO的观点:

Openshift 3介于“平台即服务”的世界和“容器即服务”的世界架起了一个有趣的桥,红帽提出了健壮的解决方案和状态艺术的架构, 我们非常感谢“蓝图”,用来定义架构的需求格式和布署的编排。

在Beta3版本中, Openshift平台并没有强烈关注平台的可操作性, 它暂时并不建议应用在生产环境中, 但是用户的各种问题是可以在路线图中找到的。

• 集中的日志( ElasticSearch–Logstash–Kibana or Fluentd)

• 用Heapster进行监控。

• 易用的集群布署。

我们相信在openshit3中建模一个应用将会是一份新的工作,它需要新的技能,以便可以提出适当的问题,比如:如何组织容器?是否应该使用路由或服务?如何处理数据(一致性,复制, 备份)? 如何管理多重租用?如何集成开发和软件工厂布署?

总而言之,Openshift是一个非常有前途的私用PAAS解决方案,它可以减少从项目开始时到自动构建应用和布署的时间, 它支持绝大多数的WEB架构, 即使数据的管理和外部服务的集成还没有完全应用。

我们相信Openshift3 己在完全掌握之中,它将成为基于容器的私有平台即服务的一个参照。

原文链接: http://blog.octo.com/en/opensh ... cker/ (翻译:Jackson LEE )