主流云技術(shù)比較引發(fā)的心目中 Cloud 實現(xiàn)隨想
把這些技術(shù)(OpenStack, Neutron, Deis, flynn, coatine, Solum, Kolla, Kubernets, Rudder, CoreOS, OVs等)比較來比較去,***還是感覺OpenStack + OpenStack Solum是離我心目中的Cloud長得最像的項目。路漫漫其修遠(yuǎn)兮啊。
心目中的Cloud:
1, 提供IaaS功能,支持同時提供Container, VM, BareMetal, OSv
2, 提供PaaS功能,既支持對單個應(yīng)用全生命周期的管理,也支持對Bundle全生命周期的管理。
3, 良好的網(wǎng)絡(luò)支持, 目前開源NaaS里Neutron應(yīng)該算是對網(wǎng)絡(luò)支持***的。
4, 一個好的框架,如很容易的擴(kuò)展對應(yīng)用負(fù)載感知的調(diào)度實現(xiàn),如其他監(jiān)控等必要的組件。所以O(shè)penStack在這方面也還是蠻有優(yōu)勢的,不管它有些組件成不成熟,起碼它有,起碼提供了一個好的框架讓你去擴(kuò)展。
OpenStack相比其他云的優(yōu)勢:
1, 框架好,基本架子都搭好了。像ceilometer, keystone等很多完整云必備的因素先不管它實現(xiàn)的好不好,起碼它有,不必重新發(fā)明輪子,如果使用別的如什么Kubernets等,要開發(fā)的feature實在太多了。
2, 我個人認(rèn)為Neutron是開源產(chǎn)品里對網(wǎng)絡(luò)做得是***的,尤其是DVR,L2pop, VRRP三個特性進(jìn)社區(qū)之后Neutron的可用性是非常好的,其他的工程像Kubernets等在網(wǎng)絡(luò)方面和Neutron根本就不是一個數(shù)量級的。
3, 使用OpenStack除了框架和網(wǎng)絡(luò)的優(yōu)點,還具備同時支持IaaS, PaaS的潛力, 更具備同時支持容器,虛機(jī),裸機(jī),OSv的潛力(前三項已實現(xiàn),后一項可以擴(kuò)展)。
不使用OpenStack的Only PaaS方案:
1, Deis是一個PaaS, 可以從git庫中獲取版本化的單個應(yīng)用程序并做成docker鏡像部署在CoreOS中的容器里。
2, 可以考慮Deis做二次開發(fā),以支持部署B(yǎng)undle應(yīng)用集合。問題來了,如何不使用OpenStack,DBaaS, MQaaS如何提供? HAproxy+Tomcat Cluster + DB Cluster究竟如何Bundle ? 需不需要研究使用VxLAN+P2V工具將局域網(wǎng)整體系統(tǒng)移入云環(huán)境之中。
3, 如果覺得在CoreOS上使用容器不安全,可以考慮在CoreOS使用OSv操作系統(tǒng),性能和安全性同時兼顧。
4, 如果說Docker(使用容器)類似于KVM(運行虛機(jī))之上有了更好的應(yīng)用分發(fā)機(jī)制,但它畢竟沒有調(diào)度之類的工具,所以需要引入類似于OpenStack的Google kubernets容器集群管理工具。
5, 但Kubernets的網(wǎng)絡(luò)很爛,可以結(jié)合使用類似于Neutron DVR特性的Rudder工具來提供對網(wǎng)絡(luò)的支持.
6, 使用SoftLayer的API提供主機(jī),并加入Kubernets集群,并采用CoreOS鏡像部署之。
使用OpenStack同時提供IaaS+PaaS能力的方案:
1, 使用OpenStack可以通過擴(kuò)展提供對容器、虛機(jī)、裸機(jī)、OSv四種的支持
2, OpenStack目前的Docker-Driver + Neutron可以提供容器,但不具備Docker中的應(yīng)用分發(fā)機(jī)制
3, OpenStack Solum項目在做PaaS功能,可將git庫,eclipse工具,SDK, CLI四個來源的應(yīng)用通過Heat自動部署到OpenStack管理的容器中,并使用HEAT提供的LB功能為應(yīng)用提供LB功能,仍然使用Neutron 提供對網(wǎng)絡(luò)的支持(這是目前***的方式,比Kuddler, Kubernets這些提供的網(wǎng)絡(luò)都強(qiáng)的多),可以使用裸機(jī)Ironic服務(wù)部署CoreOS系統(tǒng)。見:https://wiki.openstack.org/wiki/Solum
4, OpenStack Kolla項目使用Kubernetes+Docker來管理OpenStack, 但這個工程還沒有影了, https://wiki.openstack.org/wiki/Meetings/Kolla
5, HEAT只能部署一組部署分布式web應(yīng)用的虛機(jī),但不能直接部署應(yīng)用,solum在其上繼續(xù)提供部署應(yīng)用的能力,但solum肯定不成熟,還有一個在 HEAT之上部署應(yīng)用的開源程序,那就是redhat的openshift, 見:http://www.ibm.com/developerworks/cn/cloud/library/cl-open- architecture/
6, juju確實是一個好工具,底層可以由容器,虛機(jī),或公有云提供IaaS層,也提供了在IaaS層上直接部署應(yīng)用的能力,這點等價于HEAT, juju的思想看來非常好,唯一可惜的是限定在ubuntu平臺上。
目前基于docker的PaaS(PaaS的本質(zhì)是構(gòu)建,發(fā)布,運行應(yīng)用)有:
1, Deis, 基于CoreOS, 支持直接從git服務(wù)獲取應(yīng)用程序并做成docker的鏡像部署在容器中。可支持不同的編程語言, 見:http://dockerone.com/article/124?utm_source=weibolife
2, flynn, 基于CoreOS
3, cocaine, 俄羅斯yadex的基于docker的paas,見:https://github.com/cocaine/cocaine-docs/blob/v0.11/doc/contents.md
CoreOS是什么?
1,精簡化的Linux, 沒有GUI。但不像OSv根本不使用Linux內(nèi)核不區(qū)分用戶態(tài)內(nèi)核態(tài)。可以考慮在CoreOS同時運行Container和OSv。
2, 提供了etcd作為key-value,顯然,它也能提供類似于zookeeper的分布式鎖的能力
3, 提供fleet進(jìn)行容器的生命周期的管理, 見:https://coreos.com/docs/launching-containers/launching/launching-containers-fleet/
4, 提供容器的自動遷移和LB功能
5, 提供了兩個根文件系統(tǒng),專門有一個根文件系統(tǒng)用于更新
6, 沒有提供python解釋器,但可以通過systemd-nspawn部署一個toolbox的fedora容器來使用
7, 通過ssh key認(rèn)證, 沒有LDAP之類的認(rèn)證
8, 沒有像Ubuntu Core一樣提供了SELinux/Apparmor之類限制進(jìn)程對資源的訪問控制提供更強(qiáng)的容器安全性
9, CoreOS有Rudder來提供對docker的網(wǎng)絡(luò)支持,Rudder類似于neutron中的dvr特性,它假設(shè)一個host的subnet是唯一的從而不會出現(xiàn)多個host具有相同網(wǎng)關(guān)的情況從而簡化了問題。