1. 程式人生 > >詳解主流PaaS軟體平臺和產品

詳解主流PaaS軟體平臺和產品

640?wx_fmt=jpeg

640?wx_fmt=gif

PaaS(平臺即服務)是NIST定義雲端計算三種服務模式之一,另外兩個分別是IaaS和SaaS。PaaS服務一般分為框架類服務和中介軟體服務。

  • 框架類服務:Tomcat、Websphere、Node.js、Rubyon Rails、Ruby on Rack

  • 中介軟體服務:資料庫(Mysql、mongoDB、Redis)、訊息佇列(RabbitMQ)、快取(Memcache)。

PaaS與SaaS的區別是,SaaS直接面向最終的企業使用者,而PaaS面向軟體開發商,將開發語言、開發平臺、開發環境自動化部署至雲設施。

640?wx_fmt=png

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得到了不同行業的廣泛應用。

640?wx_fmt=png

運營商基於IT軟體實現網路軟體來補齊其PaaS方面的能力。如AT&T通過PaaS引入網際網路應用開發者,聯通、移動往以服務為核心的IT服務轉型等等。

主流PaaS廠商和對應產品

640?wx_fmt=png

現在流行的大多數的PaaS平臺,底層的虛擬化技術主要分為虛擬機器和容器兩種。容器相對於虛擬機器,是一種更輕量級的虛擬化技術,嚴格意義上來說,是一種資源隔離技術,如Linux LXC。

640?wx_fmt=png

容器主要的技術原理,是利用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”“掃一掃”二維碼關注公眾號,點選原文連結獲取更多技術文章

640?wx_fmt=png

求知若渴, 虛心若愚

640?wx_fmt=gif