詳解主流PaaS軟體平臺和產品
PaaS(平臺即服務)是NIST定義雲端計算三種服務模式之一,另外兩個分別是IaaS和SaaS。PaaS服務一般分為框架類服務和中介軟體服務。
框架類服務:Tomcat、Websphere、Node.js、Rubyon Rails、Ruby on Rack
中介軟體服務:資料庫(Mysql、mongoDB、Redis)、訊息佇列(RabbitMQ)、快取(Memcache)。
PaaS與SaaS的區別是,SaaS直接面向最終的企業使用者,而PaaS面向軟體開發商,將開發語言、開發平臺、開發環境自動化部署至雲設施。
PaaS是資料中心部署模式由傳統的煙囪式模式向SaaS模式發展的必然結果,加速了軟體產品的研發和交付,使用SaaS更加完善和規範。
PaaS發展歷程和大事件
2005起源於客戶需求:在共享主機託管上實現一鍵式可擴充套件應用部署。Rackspace兩名離職工程師開發Mosso為客戶提供分散式、冗餘可靠、可擴充套件的PHP、.NET應用開發平臺,客戶無需關心伺服器的運維管理。
Rackspace收購Mosso、Slicehost,提供Cloudsites/Files/Servers服務。
EMC/Vmware收購開源CloudFoundry。
RedHat收購Makara獲得Openshift。
Amazon藉助Beanstalk進入PaaS。
EMC/Vmware開源Cloud Foundry,並同步釋出cloudfoundry.com PaaS服務。
RedHat開源Openshift。
PaaS爆發期:IaaS廠商紛紛通過收購進入,確立PaaS在雲端計算中位置; 多語言、多框架的可移植PaaS平臺適應網際網路多樣化需求; 避免IaaS層的Vendor Lock-in,Garter預測(IDC、埃森哲類似):
2013年末:所有的主要軟體供應商都將提供PaaS服務。
到2016年:PaaS行業將實現真正的繁榮,PaaS市場將出現白熱化的競爭,推動市場出現新的程式設計模型、新的標準和新的領軍企業
2016年生態整合、傳統軟體巨頭加入、運營商加快探索:
NFV:阿朗釋出基於開源Citrix Cloudstack、Gigaspace Cloudify的CloudBand生態系統計劃,並建立NFV Lab
運營商合作:NTT、 CenturyLink基於Cloud Foundry;DT基於Cloudify和GAE;AT&T基於LongJump:中華電信基於IBM
Vmware釋出Cloud Foundry V2版本,並將其剝離給與GE合資子公司Pivotal,IBM加入CloudFoundry陣營
IBM宣佈新開源雲端計算戰略,與Pivotal合作開發PaaS
Oracle宣佈PaaS新戰略,收購Engine Yard股份,釋出新PaaS產品,SAP宣佈將SAPHANA打造成開放PaaS平臺的戰略。
PaaS技術和產品主要特點
更快的上市時間:隨時可起動開發;更多的語言、框架可選擇
更少的Bugs:統一的應用開發、測試及最終的部署環境,減少因環境差異引入的Bugs。
應用可視性:從應用的依賴關係(開發階段)、應用運維(部署後)到應用商業價值(應用如何賺錢)的端到端視覺化。
更好的安全:基於PaaS可以建立更安全衛生的程式設計習慣
廣泛的交付選擇:PaaS幫助SaaS無需程式碼修改或少量修改即可在不同的OS平臺和裝置(含移動平臺)上執行。
更豐富的服務支援:開發者可基於PaaS提供的預整合服務集(如大資料分析、報表、DBaaS等)增強其App的功能。
更快的上線釋出:PaaS平臺通常支援計費和客戶管理工具,相對單獨釋出方式app可更快、更低成本的釋出。
預算友好:PaaS提供按需、Pay-as-You-Go付費策略。開發者可對齊APP的託管費用和收入,開發者無需為硬體等基礎設施投資。
協作使能:相對“獨狼”的開發模式,雲開發平臺包含開發協作能力。PaaS使得多個開發者在開發和review過程中更易於協作,PaaS使用者發現更容易、更快的發現並解決問題。
提供廣泛的客戶群:部分PaaS可為ISV提供MarketPlace來向終端使用者銷售其SaaS軟體。
PaaS發展階段分析
PaaS的發展經歷了技術匯入期、產品爆棚期和成長成熟時三個主要階段。
匯入期特點:PaaS獨立供應商主導,面向特定領域、特定問題。代表廠商:Rackspace/Mosso、LongJump、Salesforce。
PaaS爆發期特點:IaaS TOP廠商、雲基礎設施廠商進入,通用可移植型PaaS為主,代表廠商:Amazon、EMC/Vmware、Redhat。
PaaS成長期特點:傳統軟體巨頭紛紛進入、開源或成主流。代表廠商:微軟、IBM、Cloudify、Oracle、SAP、領先運營商。
隨著大廠商的介入,PaaS流派逐漸形成。運營商在IaaS、PaaS和SaaS的三級雲架構體系中,PaaS一直處於短板,網際網路技術廠商和軟體廠商在PaaS領域得到了長足的發展。下圖展現的是主流的閉源PaaS產品和開源PaaS產品CloudFoundry,OpenShift和Cloudify,其中CloudFoundry和Cloudify得到了不同行業的廣泛應用。
運營商基於IT軟體實現網路軟體來補齊其PaaS方面的能力。如AT&T通過PaaS引入網際網路應用開發者,聯通、移動往以服務為核心的IT服務轉型等等。
主流PaaS廠商和對應產品
現在流行的大多數的PaaS平臺,底層的虛擬化技術主要分為虛擬機器和容器兩種。容器相對於虛擬機器,是一種更輕量級的虛擬化技術,嚴格意義上來說,是一種資源隔離技術,如Linux LXC。
容器主要的技術原理,是利用Linux的Cgroups和NameSpace,對程序進行資源限制和資源隔離,需要共享同一套作業系統軟體棧。所以容器比虛擬機器有更好的效能,但是在安全隔離性上,要差一些。
Cgroups:可以對資源進行配額和度量。在/cgroup目錄下新建一個資料夾,即可以建立一個group,新建一個檔案task,並把PID寫入到檔案中,就可以管理這個程序的CPU、Memory等資源。
Namespace:有6種不同的namespace,分別是PID、NET、IPC、MNT、UTS和USER,從程序、網路、IPC、檔案系統、主機域名、使用者角度進行隔離,從而可以對外展現出一個獨立的計算機的能力。
主流的開源PaaS平臺
開源PaaS產品和平臺比較有名的是CloudFoundry,OpenShift和Cloudify,關於CloudFoundry,技術細節可參看“聊聊CloudFoundry開源PaaS雲平臺”文章。
OpenShift是紅帽公司推出的一個雲端計算服務平臺,開發人員可以用它來構建和釋出web應用。 Openshift廣泛支援多種程式語言和框架,如Java,Ruby和PHP等。
OpenShift服務構建在Red Hat Enterprise Linux上。Red Hat Enterprise Linux提供整合應用程式,執行庫和一個配置可伸縮的多使用者單例項的作業系統,以滿足企業級應用的各種需求。
Cloudify是由Gigaspaces釋出的開源PaaS平臺,可用於將應用程式自動部署到物理環境、公有云、私有云。目前最新的版本是Cloudify3.0。
Cloudify以工作流的方式自動化應用的部署及監控,並對監控事件自動響應處理。Cloudify整合眾多工具,以提供企業級的部署服務:
配置管理工具,如Chef、Puppet
基礎設施自動化工具,如Openstack heat
日誌及監控工具,如logstash、Elasticsearch
實時分析工具,Reimann.IO
Cloudify 3.0有一個重要更新,是提供了類似外掛的機制,允許更大範圍的配置、監控、雲部署工具集成進Cloudify的整體架構中。
更多關於PaaS平臺產品,技術和架構,請點選閱讀原文連結,獲取整理成文的“雲端計算PaaS主流軟體、產品和廠商分析”,具體目前和內容如下所示。
第一章 PaaS背景和發展歷程3
1.1 PaaS是什麼3
1.2 PaaS發展歷程及重大事件4
1.3 PaaS主要特點5
1.4 PaaS提供商分析6
1.5 PaaS發展階段分析7
1.5.1 PaaS匯入期特點7
1.5.1.1 Mosso介紹7
1.5.1.2 LongJump介紹8
1.5.1.3 Salesforce介紹9
1.5.2 PaaS爆發期特點10
1.5.2.1 Amazon介紹10
1.5.2.2 EMC/VMware介紹11
1.5.2.3 Redhat介紹13
1.5.3 PaaS成長期特點13
1.5.3.1 微軟介紹14
1.5.3.2 IBM雲端計算介紹15
1.5.3.3 AL-Cloudband介紹16
1.5.3.4 Oracle、SAP介紹17
第二章 PaaS容器關鍵技術解析20
2.1容器LXC/LXD是否一樣20
2.2 容器Docker/Moby的淵源23
2.3 Docker映象格式26
2.4 容器之Rkt/AppC、OCI27
2.5 CRI-O和CRI-Containerd容器執行時32
2.6 HyperContainer、runV技術分析34
2.7 Openstack Hypernetes是什麼36
第三章 PaaS容器叢集管理技術37
3.1 叢集管理Mesos分析37
3.2 叢集管理Mesosphere分析38
3.3 叢集管理Marathon分析39
3.4 叢集管理Kubernetes分析41
3.5 叢集管理之Docker Swarm、Compose、Machine三劍客44
3.5.1 Swarm分析和資源44
3.5.2 SwarmKit分析和資源46
3.5.3 Compose分析和資源47
3.5.4 Machine分析和資源47
3.5.5 叢集管理Nomad和Serf分析48
第四章 PaaS虛擬機器管理技術50
4.1虛擬機器管理Kubevirt分析50
4.2 虛擬機器管理Virtlet分析53
4.3 虛擬機器管理Frakti分析56
4.4 Kubevirt、Virtlet和Frakti比較57
第五章 PaaS平臺監控能力57
5.1 PaaS監控CAdvisor分析和資源57
5.2 PaaS監控Heapster分析和資源58
5.3 PaaS監控Prometheus分析和資源59
5.4 PaaS監控Hawkular分析和資源60
5.5 PaaS監控Kapacitor分析和資源63
5.6 各種PaaS監控工具比較64
第六章 PaaS主流產品介紹64
6.1 PaaS底層虛擬化技術介紹65
6.2 PaaS閉源產品介紹66
6.2.1 Google App Engine產品66
6.2.2 Amazon AWS Beanstalk產品68
6.2.3 Windows Azure產品69
6.3開源產品介紹70
6.3.1 Cloud Foundry產品70
6.3.2 Docker產品70
6.3.3 OpenShift產品71
6.3.4 Cloudify產品73
6.3.5 Cloud Foundry和Docker對比 76
6.3.6 CloudFoundry和OpenShift對比 78
推薦閱讀:
溫馨提示:
請搜尋“ICT_Architect”或“掃一掃”二維碼關注公眾號,點選原文連結獲取更多技術文章。
求知若渴, 虛心若愚