PaaS千百種,不要傻傻分不清

PaaS(Platform as a Service)是指云計算領域的平臺即服務。

PaaS千百種,不要傻傻分不清

根據Gartner,截至2019年整個PaaS市場蓬勃發展,已經有360多家廠商,在21個品類下提供550多種云平臺服務。Gartner將PaaS平臺分為兩類:一類是應用部署和運行平臺APaaS(applicationplatform as a service),另一類是集成平臺IPaaS(integrationas a service)。

海比研究則將PaaS分為六大類,一是應用開發、部署和運行平臺APaaS;二是集成平臺IPaaS;三是IaaS延伸性PaaS基礎服務平臺IaaS ;四是物聯網服務平臺IoTPaaS;五是人工智能服務平臺AIPaaS;六是其它類PaaS。

按筆者的理解,既然PaaS是為SaaS服務的底層平臺,PaaS的類別應該以為SaaS提供不同的服務來劃分。筆者把PaaS分為三大類:第一類,為SaaS提供全套云端的開發、部署、運行工具,這一類叫APaaS(application platform as a service)。第二類,為SaaS提供運行、維護和營運環境,這一類叫IPaaS(integration platform as a service)。第三類,為SaaS提供一些特殊功能接口服務,這一類叫FPaaS(function platform as a service)。

1、APaaS

早期的SaaS開發都使用很傳統方式,一般分為以下幾步:

第一步:選擇系統架構及技術框架。根據項目的規模以及團隊的能力選用一種系統架構,例如:單體架構、分層架構、總線架構、微服務架構等。再根據系統架構選用一些流行框架,比較流行的如:JAVA語言框架spring boot、spring cloud;PHP語言框架ThinkPHP、YII、CodeIgniter;NODEJS語言框架express等。也有幾種框架同時混合使用的案例。

第二步:選擇編程語言及開發工具。開發一款SaaS,一般根據模塊的功能和層級可能選用不同的語言開發,底層模塊更重視運行效率,一般選用例如:C、C 、RUST、GOLANG等,業務層模塊更重視開發效率,一般選用例如:JAVA、PHP、NODEJS、PYTHON等。具體選哪種語言還與選擇的框架,以及團隊以往的偏好有關系。

使用的也是傳統流行的開發工具,根據使用的編程語言不同稍有差異,最流行的開發工具有:Eclipse IDE、MyEclipse、Intellij IDEA、NetBeans等。

第三步:選擇中間件以及開源模塊。不同的系統架構,選擇中間件也大不一樣。中間件是整個技術架構中最復雜的部分,包含以下幾種類型:關系型數據庫、持久層框架、緩存數據庫、非關系型數據庫、搜索、反向代理、消息中間件、監控、日志收集、分布式、配置中心、容器化、容器編排、鏈路跟蹤。

中間件使用最多的是微服務架構,最多可超過30到40個中間件。組織、使用、部署、維護這些中間件是個非常大的工作量,特別是業務升級后如何保證中間件的同步升級存在很大不確定性。

SaaS應用傳統開發模式的復雜性,促使互聯網公司推出第一代APaaS,這一類APaaS是仍然采用傳統計算機編程語言進行開發、部署和運行,并提供更集成化的在線開發工具,以及大量中間件的調用接口,開發效率得到了一定的提升。典型代表有:微軟的Azure App Service、亞馬遜的Amazon Web Service、阿里的云效、騰訊應用開放平臺、華為軟件開發平臺(DevCloud)等。

近兩年,第二代APaaS(低代碼開發平臺)開始出現,這類開發平臺通常采用表單、流程或模型加少量代碼就可以應用開發,替代了原先代碼式編程語言的模式,開發效率比第一代有明顯提升。這類平臺由于采用技術方式差異很大,面向的使用人群,以及使用范圍也有很大差異。根據采用技術的差異筆者把低代碼開發平臺再細分為三大類。

第一類是純表格和流程驅動,無需編寫任何代碼的無代碼模式。這類APaaS通過建立多張表單,使用流程串聯,定義報表輸出方式,構建表單類輕應用。該類模式的技術壁壘不高,主要支持開發表單類應用,場景有一定局限性。更適合簡單短期項目,不適合長期的循環迭代產品的開發,尤其產品要面對多樣性需求,必須具備高配置屬性的時候。比如表格展示,同一個流程不同職位看到的表格都是一樣,涉及到敏感信息不能區別展示,無法實現千人千面。這類平臺有:輕流、云表、簡道云、搭搭云、阿里的宜搭、宜創科技等。

第二類是貧血模型驅動的低代碼模式。底層技術涉及云原生、元數據、多租戶等。該類模式的技術壁壘較高,顆粒度更細,復雜度、靈活度更高,能夠支持廣泛場景的復雜應用開發,具備服務大客戶和中小客戶的能力。這類模式在面對復雜場景時,仍然需要編寫邏輯代碼。特別是在面向高并發應用場景,需要投入大量的后端軟件開發。這類平臺有:OutSystems、Mendix、奧哲網絡(氚云)、ClickPaaS、炎黃盈動、數式科技、黑帕云等。

第三類是領域驅動的圖形碼模式。這類平臺完全由模型驅動,可不用編寫任何代碼實現各種復雜場景的應用開發。無論前端組件還是后端業務邏輯都能細粒度搭建,實現高度復雜、高度靈活的應用場景。這類平臺的后端部分屬于領域驅動的設計模式,其核心概念:域、子域、領域實體、值對象、領域服務、領域事件等是天然的圖形化解決復雜問題的表達模式,面對任何復雜應用場景都能支撐APaaS的可視化搭建,并能可視化集成各種業務應用,適用任何高并發的應用場景。這類平臺有:瓴碼APaaS。

2、IPaaS

IPaaS是SaaS運行的底座,就像Android是APP的底座一樣,在云計算領域扮演非常重要的角色。

IPaaS可運行在一個跨區域的服務器大集群上,調度千百萬臺電腦就像一臺巨型電腦,提供給不同企業的千百萬個SaaS在其上運行。各企業只需要在IPaaS上注冊一個賬號,即可通過APaaS在IPaaS上安裝各種SaaS應用,例如:B端應用ERP、CRM、OA、MES等等,以及C端應用電子商城、會員管理、新聞論壇等等。

IPaaS是云計算中技術含量最高的部分,負責解決以下技術的基礎架構:

1、 資源編排和調度。

主要負責給各企業以及SaaS應用分配云計算資源,包括計算資源、內存資源、存儲資源、網絡資源等。

首先,在SaaS部署時,通過APaaS的部署工具為SaaS指定的配置,IPaaS負責提供對應資源,并激活該SaaS應用。

其次,在SaaS運行過程中,根據訪問情況動態調整資源的分配。避免資源溢出,及時釋放已閑置資源。

再有,SaaS可以根據需要實現資源遷移、擴充或者縮小等操作。

最后,當SaaS卸載時,把云計算資源及時回收。

傳統資源調度組件有:K8S、Docker、mesos、yarn、swarm

2、 分布式實時流計算。

云端計算被觸發時,可能涉及多個微服務之間串行或并行的互相調用,形成實時的流計算。流計算的最大特點是必須快速響應;必須有序執行;數據必須保持原子性,該次計算如果失敗則關聯微服務的數據必須全部還原;

傳統流計算組件有:MapReduce、Spark、Storm、Flink、

3、 分布式業務流管理(BPM)。

業務流管理是企業應用軟件不可缺少的重要組成部分。業務流程是通過多個職位或角色的有序操作,以完成某項獨立的業務為目標。BPM負責啟動業務流,向每個角色展示相關信息并記錄和處理該角色輸入的的數據,并根據業務順序推動流程的執行,流程結束后及時歸檔流程數據。

完整的BPM一般具備以下特點:1、不同角色可設定不同的界面;2、根據業務需求可設定變量、訪問數據庫并嵌入任意邏輯計算,從而實現業務流的分叉;3、業務流可并行執行,且可匯合;4、業務流可支持循環執行的需要;5、業務流可回滾或撤回到指定節點,且被回滾的節點數據必須自動恢復到之前狀態;6、業務流可撤銷和歸檔。

傳統開源BPM組件有:Activiti

4、 分布式數據存儲、檢索和傳輸。

云計算中,數據類型有結構化數據、非結構化數據等。負責存儲結構化數據的叫關系型數據庫,例如:mySQL、Oracle、SQL server等。存儲非結構化數據的叫NOSQL數據庫,例如:Redis、Mongodb等。非結構化數據搜索一般使用elesticsearch。

為了簡化數據庫的訪問,會使用一下持久化框架,例如:mybatis、Hibernate等。

不同微服務之間需要數據交換,涉及到數據庫之間的數據傳輸操作。大部分貧血型IPaaS平臺未能提供相應組件,一般是由工程師自行編碼完成。基于領域驅動的IPaaS平臺,在實現域、子域、兄弟域之間的數據交換時,都會定義相關接口函數,保證域與域之間的數據有序傳輸和數據版本更新操作,例如:瓴碼PaaS系統。

5、 異地多活的備災機制。

對于高可用的IPaaS系統,必須解決部分服務器故障的場景下,保證系統能夠繼續提供服務。在一些極端場景下,有可能所有服務器都出現故障。即使有其他地區的備份,把備份業務系統全部恢復到能夠正常提供業務,花費的時間也比較長,可能是半小時,也可能是12小時。如果業務期望達到即使在此類災難性故障的情況下,業務也不受影響,或者在幾分鐘內就能夠很快恢復,那么就需要設計異地多活架構。

異地多活架構的關鍵點就是異地、多活,就是指不同地理位置上的系統都能夠同時提供業務服務,當一個地區出現災難性故障,系統運行不會受到任何影響。

部分IPaaS系統提供了存儲架構的異地多活服務,這種IPaaS在一個地區出現災難故障時,只能保證數據不會丟失。正在運行的業務計算會立即報錯,出現一定時間的服務中斷,直到運算系統切換到其它地區恢復正常。最完善的IPaaS應該提供計算和存儲都能實現異地多活。基于領域驅動的IPaaS架構,由于計算和存儲集成在一個領域內作為一個整體,是領域層的異地多活架構,當一個地區的領域實體故障,其備份領域實體仍然無縫運行,使用者無任何感知。瓴碼PaaS是這類IPaaS的典型代表。

6、 認證和鑒權。

微服務架構下,一個應用會被拆分成若干個微應用,每個微應用都需要對訪問進行鑒權,每個微應用都需要明確當前訪問用戶以及其權限。尤其當訪問來源不只是瀏覽器,還包括其他服務的調用時,要考慮外部應用接入的場景、用戶 – 服務的鑒權、服務 – 服務的鑒權等多種鑒權場景。

認證和鑒權組件有:JWT、OAuth2.0等

7、 監控和日志記錄。

對于IPaaS系統,各SaaS應用和系統運維是重中之重。而運維過程中,監控工作更是占據重要位置。運維的目的之一是為了保證系統的平穩運行,進而保障公司業務能持續對外服務,為了達到這一目的,我們需要對系統的狀態進行持續地觀測,以期望一有風吹草動就能發現并作出應對,監控作為一種手段,就是以此為生。

硬件、網絡以及系統層面的監控,現有的一些監控系統和方案已經可以很好地提供支持,比如開源的 Zabbix 系統或者以報警為強項的 Nagios 系統。

微服務監控組件比較常用的有:sentry、prometheus等。

微服務在多個主機上運行。 為了滿足單個業務需求,我們可能需要與在不同計算機上運行的多個服務進行對話。 因此,微服務生成的日志消息分布在多個主機上。如果對任何問題進行故障排除,沒有統一的日志的支持,將一無所知。因此如果將跨主機生成的所有日志發送到外部集中位置。 從那里可以輕松地從一個地方獲取日志信息。

常用的日志管理組件有:elk、logback等

8、 遠程調用管理。

IPaaS系統中,微服務之間有大量的互相調用操作,這種調用可能是跨線程,也可能跨服務器。需要一種可靠、高效的通訊機制,保證這種調用的成功執行。微服務之間的調用分為兩種類型:一種是需要返回結果參數的同步調用;另一種是不需要返回結果參數的異步調用。

同步調用一般使用RPC框架實現,常用組件有:Dubbo、Motan、Tars、Spring Cloud、gRPC、Thrift等。

異步調用一般使用消息中間件,常用組件有:ActiveMQ、RabbitMQ、Kafka、RocketMQ等

9、 分布式數據一致性控制。

在IPaaS這類大型分布式系統中,數據不能存在單個節點(主機)上,否則可能出現單點故障,必須多個節點(主機)需要同時保證具有相同的數據。一致性算法就是為了解決多個節點數據同步保持一致性的問題。

常用組件有:Zookeeper、etcd、Chubby等。

10、 負載均衡。

負載均衡,是在IPaaS系統中,用來在多個具備相同功能的微服務中分配負載,以達到最優化資源使用、最大化吞吐率、最小化響應時間、同時避免過載的目的。

Nginx/LVS/HAProxy是目前使用最廣泛的三種負載均衡軟件

Gartner把提供IPaaS某一局部服務的平臺也作了不同的命名,提供數據庫平臺開發環境的定義為DBPaaS,提供業務流程管理開發環境的定義為BMPPaaS,提供函數服務的定義為FaaS等等,這些都可以歸并為IPaaS的一個分支。

能夠提供IPaaS全部技術棧的公司極少,像阿里云這類巨頭也只能提供局部的組件,而且大部分組件只是把開源組件稍作改造發布推廣。

根據技術架構的不同,可以把IPaaS分成兩大陣營:

一類是面向數據庫的貧血式IPaaS系統。

1、 計算和數據分離。多個微服務共享一個數據庫,數據庫單獨為一個分布式集群給很多微服務提供數據。這種方式的優點是可以很容易擴充并發量,便于大數據分析。缺點:一是運行效率低,在計算中使用大量數據必須跨服務器到專門集群中獲取;二是個完整的業務邏輯描述不能在一個類中完成,而是一組相互協作的類共同完成的。可復用的顆粒度比較小,代碼量膨脹很厲害,很重要的一點是業務邏輯的描述能力較差,一個稍微復雜的業務邏輯,就需要太多類和太多代碼去表達。

2、 多租戶共享一個微服務。當同一個微服務并發量很大時,只能把該微服務多次部署,再使用負載均衡技術避免單個微服務過載。優點:維護和購置成本低。缺點:運行效率低,安全性低。

3、 微服務之間是互相平等的扁平關聯。必須采用服務注冊、服務發現、服務網關、負載均衡等復雜技術治理微服務之間的互相調用,效率低,維護較難。

4、 不同功能組件形成多集群架構。貧血式IPaaS包含很多集群:分布式數據庫集群、分布式緩存集群、消息中間件集群、分布式一致性中間件集群、資源編排集群、負載均衡集群等等。集群越多,損壞越大,維護越復雜。

現階段,主流IPaaS大都是貧血式架構,以Spring Cloud框架為代表。提供貧血式IPaaS的廠商包括:阿里、騰訊、網易、亞馬遜等,包括所有的其它小型廠商。

另一類是領域驅動的充血式IPaaS系統。充血血式IPaaS主要特點是:

1、 計算和數據集成在一個領域模型中。一個微服務就是一個領域實體,一個領域實體一個微數據庫,微服務和微數據庫部署在同一個服務器。這種方式的優點:1、運行效率非常高,計算過程中操作數據非常快捷;2、所有邏輯運算在一個類中執行,便于復用,業務邏輯表達更清晰。

2、 一個業務應用由一個樹形架構組成,包含多個微服務,微服務之間存在父子關系。在業務應用部署過程中,就確立了每個微服務之間的連接關系,無需通過服務注冊、服務發現、服務網關、負載均衡等復雜技術去管理微服務之間的調用,效率高,維護簡單。

3、 每個租戶有獨立的業務應用以及微服務群。租戶之間不會互相搶占資源,當同一個微服務并發量很大時,可以對該微服務多次實例化部署到不同服務器,再使用負載均衡技術避免單個微服務過載。運行效率非常高,每個租戶擁有獨立數據庫,確保數據安全。

4、 整個IPaaS系統由一個集群驅動。每個功能組件只是每個領域實體的功能模塊,獨立為一個實體服務,無需做出集群。每實例化一個領域實體,所有功能組件都會實例化一份。運行效率高,需要的服務器資源降低,維護非常簡單。

領域驅動架構的IPaaS還一個最大的優點,可以完全支持圖形化編碼。降低開發成本。

充血式IPaaS非常少,典型代表是瓴碼PaaS系統。

3、FPaaS

FPaaS為SaaS應用提供不同功能的專用接口服務,例如物聯網的相關技術(IoTPaaS)、人工智能相關技術(AIPaaS)等。FPaaS嚴格意義上講,是一個特殊的SaaS應用,仍然是運行在IPaaS之上的,而給普通SaaS提供調用接口。

1、 IoTPaas

IoTPaaS目的是降低IoT開發的門檻,提供成熟和標準化的平臺接口,如賬號體系設備綁定管理、事件通知引擎、OTA管理、定時任務引擎、設備分享等,避免重復造輪子。

能提供IoTPaaS的廠商較多,例如:阿里、騰訊、百度、谷歌、亞馬遜、小米、西門子、GE、海爾、聯想等等。

2、 AIPaaS

AIPaaS主要在兩個維度加速人工智能企業的快速發展:

一是提供極致高性能的AI計算資源,實現高效的計算力支撐、精準的資源管理和調度、敏捷的數據整合及加速、流程化的AI場景及業務整合。

二是構建開放的AI創新生態,無縫對接行業ISV,賦能生態伙伴,兼容各AI應用和場景。

國內AIPaaS廠商相對較少,如阿里、百度、騰訊、商湯、曠視等。

根據海比研究,于2019年相比,2020年企業購買服務應用選擇PaaS的比例均有提高,其中大中型企業比例分別增值到19.1%和24.3%,在企業服務領域PaaS越來越受到大中型企業的青睞。從消費市場來看,大中型企業對云化軟件的需求力度持續加大,未來平臺化產品和服務將逐步成為企業構件數字化運營的核心,需求旺盛必然加快企業未來對PaaS的更多部署。

版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。

(0)
上一篇 2024年5月13日 上午8:52
下一篇 2024年5月13日 上午9:04

相關推薦

99国产在线观看| 窈窕淑女在线观看免费韩剧| 国产亚洲美女精品久久久久| 超碰97人人做人人爱少妇| 国产女人18一级毛片视频| 被女同桌调教成鞋袜奴脚奴| 国产午夜免费福利红片| 美女无遮挡免费视频网站| 啊轻点灬大ji巴太粗小说太男 | 国产精品亚欧美一区二区三区| 55夜色66夜色国产精品视频| 国产熟睡乱子伦视频观看软件| 青青青爽在线视频观看| 国产免费av片在线观看| 精品国内片67194| 全免费A级毛片免费看网站| 波多野吉衣AV无码| 亚洲欧美人成网站在线观看看| 有色视频在线观看免费高清在线直播 | 午夜影院app| 男女深夜爽爽无遮无挡我怕 | 精品影片在线观看的网站| 再深点灬用力灬太大了| 永久域名在线观看视频| 亚洲欧洲另类春色校园小说| 日韩视频一区二区| 久久人人爽爽爽人久久久| 成人免费视频网| 一个人看的免费观看日本视频www 一个人看的免费视频www在线高清动漫 | 蜜臀精品国产高清在线观看| 国产丝袜第一页| 男人进去女人爽免费视频国产 | 亚洲va欧美va国产综合| 日本chinese人妖video| 中文字幕丰满乱孑伦无码专区| 大香网伊人久久综合网2020| 91精品国产免费久久国语麻豆| 国产无遮挡又黄又爽在线视频| 色一情一乱一乱91av| 办公室开档情趣内衣做爽视频| 欧美第一页浮力影院|