雲端運算下PAAS的解析一

來源:互聯網
上載者:User

標籤:系統   ast   伺服器   開源   流式   空間   blog   叢集   特殊性   

雲端運算下PAAS的解析一

      PaaS是Platform-as-a-Service的縮寫,意思是平台即服務。 把伺服器平台作為一種服務提供的商業模式。通過網路進行程式提供的服務稱之為SaaS(Software as a Service),而雲端運算時代相應的伺服器平台或者開發環境作為服務進行提供就成為了PaaS(Platform as a Service)。所謂PaaS實際上是指將軟體研發的平台(計世資訊定義為業務基礎平台)作為一種服務,以SaaS的模式提交給使用者。因此,PaaS也是SaaS模式的一種應用。但是,PaaS的出現可以加快SaaS的發展,尤其是加快SaaS應用的開發速度。

     IaaS(Infrastructure as a Service),即基礎設施即服務。


與分布式系統的關係?

Paas架構模型




核心實現-組態管理優先


核心實現-服務發現和註冊



核心實現-資源分派和調度


核心實現-向外的和向內的彈性



核心實現-緩衝本地化與分布式化的折中



核心實現-流式日誌



核心實現-編譯時間依賴和運行時依賴


核心實現-多租戶資源隔離

雲的特點是資源集區化,甚至為每個使用者開闢他自己專屬的應用資源空間,而與其他應用隔離起來。我們
稱之為“多租戶機制”,比如k8s的namespace就是實現了這種隔離機制.
如何?哪?
1)對於Iaas,VM是資源隔離的非常好的手段,但是比較重。
2)LXC實現了OS層級的資源隔離,並演化成類似Docker這種隔離手段。但是依然是本地隔離手段。
3)需要結合1-2的本地級隔離手段,在Paas上層的資源分派機制上進行處理,資源分派時將各個資源
匯聚成一個隔離的組並掛接或者註冊到一個App的“名下”,這些都需要配置和中繼資料管理的支援。
以後再分配資源時,其他App將不會獲得當前App的資源,並且當前資源如果崩潰,也不會影響到
其他應用。
4)網路也可以進行隔離,比如Vxlan,或者劃分專用網路:計算網路、儲存網路、管理網路等等

核心實現-全鏈路跟蹤和分析系統



核心實現-鏈路最佳化

將監控叢集狀態的心跳與叢集命令下發合并,最佳化通訊線路的負載。

核心實現-部署自動化-系統層面


核心實現-部署自動化-應用程式層面

1.部署時涉及編排的問題,也就是服務應該以何種狀態部署哪一個容器或者節點上,以及與其他節點的關係
策略:相親性和反相親性。
2.部署時還涉及版本管理、組態管理、持續發布和持續整合的問題,用於更好的走完生產的最後一公裡。
但是在開發應用期間是建議頻繁地在測試環境部署驗證的,可以儘快發現問題並演練部署策略和程式


核心實現-不可忽視的本地治理

1.整體由部分組成,部分的效能最大化就是整體效能的最大化的重要因素之一,整體效能還取決於各個組件的整合和協作方式的設計以及實現。首先實現本地合理的治理,是必須實現的事情。
2.RPC的效能、伺服器線程以及IO的處理方式、埋點的透明化、本地監控、本機快取、本地調用調度(節點管理器),本地升級策略等等都是要關注的點。
3.生命週期管理:節點管理器必須實現對服務執行個體的生命週期管理,並與叢集管理器緊密結合,在節點服務失敗或者崩潰時可以試圖重新恢複和拉起服務進程或者通知上層叢集管理器重新調度。

核心實現-監控閉環

移植遺留系

1.以上的內容,說明了Paas的三個核心內容:開發設施自動化、營運自動化和運行時環境自動化。
2.但是這樣的情況直接導致了遺留系統遷移的困難,因為老時代的系統往往很“重”,一開始就被鎖定在厚重的鎧甲中,另外一個更加讓人為難的就是釋放鎧甲必須修改應用代碼,這就涉及業務、功能重構! 這也是很多企業實施Paas很艱難的原因!
3.具體的一些情況:
A:系統服務之間使用獨立密碼庫授權通訊,難以使得自動化手段開通策略,實現自動擴容和伸縮。
B:老應用代碼依賴於應用伺服器的Api,比如很老的系統使用EJB架構。使得適應新的Paas變得非常困難!
C:上Paas的動因也在於老系統面臨的環境從內部走向外部了,但是之前架構師設計系統時是按由裡往外的思路進行的,比如重點放在交易模組上(因為此時線下活動佔主流),因為業務的發展,對系統的要求越來越高,要適應互連網環境的要求,比如互連網上查詢的量要遠遠大於交易的量,正好和原來的思路相反,是從外向裡的,這造成應用架構的極大不同,那麼就要求調整到分而治之的架構,那麼必然要求要進行調整和重構。
D:….......
那麼就沒有很好的辦法盡量減少這些麻煩嗎?因為麻煩意味著風險和成本

移植遺留系統-解決思路

1.總的方向就是向自動化、自省化、彈性化等努力。
2.我們可以通過回答以下的問題來決定如何調整您的系統:
A:本地應用不要依賴於本地的儲存來持久化資料(可以臨時性的,但是給系統帶來風險),日誌變成流匯聚到分布式日誌系統中,如果非要使用儲存,請使用類似HDFS來儲存,您的系統是否依賴於本機存放區哪?
B:如果應用上傳檔案,那麼這些檔案應該如何儲存?請參考問題一。
C:叢集中多執行個體的設定檔是否完全與底層OS解耦,設定檔是否不依賴於主機名稱和Ip?(可以採用環境變數來解決)
D:應用是否存在需要很長時間處理的任務類型?(盡量非同步化的方式解決)
E:叢集中執行個體是否採用了獨立安全授權的方式組建?(需要拆除)
F:叢集中是否使用了硬體負載平衡裝置?(需要撤除)
G:需要把服務無狀態化,您的App到底有多少部分需要依賴狀態?
H:您如果拆分業務系統,是按業務視角還是使用者視角?(建議採用業務視角,因為熱點根本無法預測)
I:業務拆分的原則是:識別基礎核心業務能力、業務核心能力、上層業務能力等

應用架構:CQRS

微服務是什嗎?

在分布式、雲等基礎設施支援下,從SOA演變而來的、具備明確的事務上下邊界的、鬆散耦合的、
可以並行開發、簡單開發、簡單或自動營運的、相互協作形成有機整體並為外部應用提供自省治理的
、不間斷的、高效能的服務系統。


前面提到互連網的分而治之的策略,大規模的分布式服務化系統在穩健的服務治理、彈性拓展、容災
以及開發週期能力支援下變得可管理、開跟蹤、高效能、高生命力。服務化的基礎是基礎設施的穩定力!
只要有一個堅如磐石的基礎設施,服務化就是非常可行的決策!

套娃-軟體架構之殤


1.在介紹核心實現的部分中,提到配置必須先行的道理,就是要保證內環境和外環境的一致性。
2.Docker雖然可以保證內部小環境的一致性,諸如CoreOS之類可以保證OS層級的版本一致性,但是Paas
由於是分布式系統,它的各個組成組件也需要一致性保證,否則很難保證服務品質和延續性。
可以採用冗餘服務+滾動式升級的辦法解決這個難題。

不要把焦點僅僅放在Docker上!

最近一年來,看到Docker幾乎瀰漫在各種系統中了,但是Docker解決了App內部環境一致性、解決了傳統Paas彈性拓展和容災時效的問題\基準鏡像分發等等,但是從架構上看過去,
它本身並不能解決App生產的其他大部分問題,所以當您僅僅關注Docker的話,那就失去了Paas的能力,K8s、Swarm、Mesos等解決了一部分自動化問題,但是還不完整,只是算是Mini Paas。

微服務化與Docker的關係

微服務是活在Tomcat或者Docker裡面並沒有本質區別,之所以業界喜歡採用Docker作為微服務的設計期和運行時基礎,是因為它有著諸多好的有點,比如環境一致性可以簡化組態管理、簡化Paas
生命週期管理的難度等等,但是本質來講,微服務和Docker並無強關係,只是Docker的諸多方便之處,更加適合而已,所以採用Docker的系統未必是微服務,微服務構建的系統也未必是Docker構成。

Paas的未來

經濟的發展、業務的發展所導致工作量的增加將促進PaaS得到採用。
? IaaS供應商將往堆棧的上層移動,涵蓋PaaS IT,大量的中介軟體被雲化。
? 公用PaaS將贏得中小企業市場,因為它提供了開箱即用的基礎設施。
? 公用服務將把大企業市場讓給私人PaaS。
? 開源PaaS平台將蓬勃發展,形成助推的作用。
? 開源PaaS平台將通過流行的Linux發行版來提供,進一步簡化Paas的管理複雜度。
? 專有的PaaS將開始如同開源產品,也體現出業界標準化的意願。
? PaaS相容性?更像是PaaS衝突性,由於各個廠家為了在競爭中取勝,也會更多的在自己的特殊性上下功夫,造成標準的不統一的局面,但是在市場的驅動力下,標準遲早會統一起來。
? Paas變成一種生產互連網產品的工廠,逐漸成為標配,並融合在日常的基礎設施中。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

希望對您軟體項目開發,營運管理,系統架構與研發管理體系, 資訊安全等有協助。 其它您可能感興趣的文章:
雲端運算參考架構幾例
微服務與Docker介紹
互連網直播平台架構案例一
高可用架構案例一
某互連網公司廣告平台技術架構
某大型電商雲平台實踐
雲端運算參考架構幾例
行動裝置 AppApp測試與品質管理一
全面的軟體測試
著名ERP廠商的SSO單點登入解決方案介紹一
軟體項目風險管理介紹
企業專案化管理介紹
智能企業與資訊化之一
由企業家基本素質想到的
敏捷軟體品質保證的方法與實踐
構建高效的研發與自動化營運
IT營運監控解決方案介紹
IT持續整合之品質管理
人才公司環境與企業文化
企業績效管理系統之平衡計分卡
企業文化、團隊文化與知識共用
高效能的團隊建設
餐飲連鎖公司IT資訊化解決方案一

如有想瞭解更多軟體研發 , 系統 IT整合 , 公司資訊化,專案管理,企業管理 等資訊,請關注我的訂閱號:

 


Petter Liu
出處:http://www.cnblogs.com/wintersun/
本文著作權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文串連,否則保留追究法律責任的權利。
該文章也同時發布在我的獨立部落格中-Petter Liu Blog。

雲端運算下PAAS的解析一

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.