OpenShift 3 : 基于docker的私有平臺即服務
【編者的話】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 容器。

? 源碼到鏡像模式(STI):允許通過提交應用的源碼到openshift來自動構建一個應用。(就像Heroku中的buildpacks)。

? 自定義構建模式:允許通過提供其自己的應用,其構建邏輯是通過提供openshift, docker 的鏡像。

Openshift 3也還允許定義一個自動的布署策略,比如有新的應用映像版本發布到注冊表或者是應用的配置有了更新。

為了完成這些構建和布署特性,openshift 3提供了把它自己的應用藍圖定義成用Json 或 Yaml格式的模板文件的功能。 這些藍圖描述了應用的架構拓撲和容器的布署策略。下面的圖表描述了openshit中的3層應用是如何將不同組件的模板進行組合的。

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的宿主和運行容器(應用和注冊表)

Diagram : Deployment Architecture of an Openshift v3 infrastructure
架構是分布式的, 可擴展的和具有彈性的。但是平臺自身暫時還不支持自動擴展能力:目前預備和服務器的容量計劃只能通過手動調整。

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 )