解析rainbond以應用為中心的架構設計原理
前言碎語
今天博主安利一個國產(chǎn)開源的無服務器容器云平臺,關注它已經(jīng)有一年多了,雖然其迭代到現(xiàn)在很多功能還是一直處于測試驗證中,但是其設計理念以應用為中心,我覺得這個是未來的趨勢。
其實以docker+k8s這種架構也是一種以應用為中心的架構,rainbond底層深度集成k8s,為用戶提供云原生應用全生命周期解決方案,構建應用與基礎設施、應用與應用、基礎設施與基礎設施之間互聯(lián)互通的生態(tài)體系,滿足支撐業(yè)務高速發(fā)展所需的敏捷開發(fā)、高效運維和精益管理需求。
github:https://github.com/goodrain/rainbond
一、云計算的發(fā)展
回顧云計算產(chǎn)業(yè)與技術的發(fā)展路程,物理計算集群逐步被IaaS層虛擬化取代,國內例如阿里云,騰訊云等IaaS廠商布局多年。IaaS層解決了資源提供者與使用者的耦合問題,對于用戶來說只需要選擇使用什么操作系統(tǒng),分配多大資源上限即可,一定層度上降低了用戶交付應用價值的難度。
但是,用戶依然需要重復得進行操作系統(tǒng)運維,環(huán)境與應用運維,技術難度依然很高。近兩年,以Docker、Kubernetes為代表的容器與容器編排技術盛行,其實際上是將虛擬化進一步上移,更加面向應用,可以說容器化是對應用的虛擬化。在這樣的基礎上用戶創(chuàng)造和交付大規(guī)模業(yè)務系統(tǒng)變得更加簡單。
我們認為,云計算的發(fā)展更多的是讓大部分公司和人群只需要關注和創(chuàng)造業(yè)務系統(tǒng),關注業(yè)務邏輯,而不是將大量時間和人力投入到復雜的,重復的計算資源維護上,因此只是容器化還不能達到這個層次,我們希望將云計算推向到下個階段:應用管理階段,呈現(xiàn)出兩個產(chǎn)品,無服務器PaaS和云原生SaaS。
二、企業(yè)價值與IT
上文我們提出了應用管理的概念,那么應用管理對于我們大多數(shù)企業(yè)IT有多大的價值呢?
對于大多數(shù)IT企業(yè)和互聯(lián)網(wǎng)企業(yè),企業(yè)價值的直接體現(xiàn)在于創(chuàng)造的應用或運營的應用本身,也就是說在業(yè)務本身上。然而我們都知道,一個業(yè)務系統(tǒng)需要運行,必須得搭建運行環(huán)境,考慮網(wǎng)絡、存儲、配置、負載均衡、安全等等一系列復雜的計算資源管理問題,而且每一次系統(tǒng)搭建都重復得進行,往往在這些問題上花費大量的成本。
我們在應用與計算資源管理這兩者之間增加一層應用管理(無服務器PaaS和云原生SaaS),完全以應用為中心進行設計,將應用與計算資源解耦,應用管理之上,開發(fā)或使用人員只需要關注業(yè)務設計,編碼,測試,上線流程環(huán),應用管理平臺自動化完成從源碼到云端運行的復雜流程。
開發(fā)者無需再面對底層計算資源的管理復雜性,也就解除了對傳統(tǒng)的運維人員的依賴,同時對于運維人員,只需要在平臺自動化資源管理的基礎上維護資源池穩(wěn)定,兩者責任清晰,邊界清晰,天然的解決了DevOps問題。經(jīng)過與大量用戶溝通實踐后我們發(fā)現(xiàn),應用管理成為了提升企業(yè)IT能力的關鍵。
三、服務模式
完整的應用管理方案包括:
- 北向的應用抽象管理
- 南向的計算資源管理
Rainbond產(chǎn)品按照這樣的設計思路應運而生。在應用管理方面,我們設計了應用抽象模型,面向企業(yè)IT系統(tǒng)和基礎應用,例如互聯(lián)網(wǎng)類應用,行業(yè)類應用,物理網(wǎng)類應用以及大數(shù)據(jù)技術類應用等。
針對微服務架構的支持,除了兼容已有的微服務架構以外,原生提供了Service Mesh架構的支持,對上訴多種類型的單體應用,新老應用實現(xiàn)規(guī)模化整合,對各類型應用提供標準的、完整的功能支持。
當然,不同的應用在高級需求上是不同的,例如MySQL需要熱備份,外網(wǎng)訪問應用需要防火墻等等需求我們設計了應用插件體系,對應用功能進行差異化,無侵入式擴展。
在計算資源管理方面,對不同的計算資源進行統(tǒng)一的池化,軟件定義,提供標準的計算服務。除了在公有云計算資源之上,目前我們嘗試了在地方IDC廠商,企業(yè)私有已有的x86-64架構計算資源之上搭建Rainbond數(shù)據(jù)中心。
我們正朝著資源全自動運維的目標前進。對于用戶來說,取需要的任何應用,運行于需要的計算資源之上,按需組合,靈活組合,最終提供了SaaS化得服務。
四、以應用為中心的產(chǎn)品設計
Rainbond基本的設計思想就是 以應用為中心,近年來該理念也被業(yè)界同行和更多用戶所認同,Rainbond提供了應用完整的生命周期管理:
應用的生產(chǎn)階段
Rainbond從設計上就支持從各類型軟件源構建生產(chǎn)應用,從各類型編程語言源碼,已經(jīng)打包的容器鏡像,更包括定義好的DockerCompose文件等等。Rainbond定義應用的各層面元素,就像一個生產(chǎn)線,輸入各種代碼,生產(chǎn)出統(tǒng)一的應用。
應用運行階段
Rainbond軟件抽象管理存儲,網(wǎng)絡、計算等各種計算資源。在此基礎之上運行APP-Runtime,為應用運行提供統(tǒng)一得,豐富得服務。讓簡單的應用組建起高性能的架構。
應用傳播階段
應用是需要被更多的用戶使用產(chǎn)生價值的,Rainbond提供得是應用得傳播,即一處構建應用,到處生產(chǎn)服務。例如某軟件商生產(chǎn)一套微服務架構服務,涉及30個獨立應用。云幫將作為其與客戶快速交付得橋梁,用戶只需一鍵即可部署完整服務。
五、面向未來
我們的愿景是希望Rainbond的使用者是一個相輔相成的整體,有人創(chuàng)造應用,有人發(fā)揮應用的最大價值,有人為應用提供超大資源保障。這一切的連接由Rainbond承載,構建起互聯(lián)互通的應用管理生態(tài)體系。
以上就是解析rainbond以應用為中心的架構設計原理的詳細內容,更多關于ainbond應用架構設計的資料請關注腳本之家其它相關文章!
相關文章
Java 詳解循環(huán)屏障CyclicBarrier如何實現(xiàn)多線程分段等待執(zhí)行完成
CyclicBarrier是一個同步工具類,可以翻譯成循環(huán)屏障,也叫障礙器或同步屏障。CyclicBarrier內部有一個計數(shù)器count,調用障礙器的await方法會使計數(shù)器count的值減一,當計數(shù)器count的值為0時,表明調用了await方法線程已經(jīng)達到了設置的數(shù)量2021-11-11Spring boot監(jiān)控Actuator-Admin實現(xiàn)過程詳解
這篇文章主要介紹了Spring boot監(jiān)控Actuator-Admin實現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-09-09SpringCloud Eureka服務發(fā)現(xiàn)實現(xiàn)過程
這篇文章主要介紹了SpringCloud Eureka服務發(fā)現(xiàn)實現(xiàn)過程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-11-11MyBatis JdbcType 與Oracle、MySql數(shù)據(jù)類型對應關系說明
這篇文章主要介紹了MyBatis JdbcType 與Oracle、MySql數(shù)據(jù)類型對應關系說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09Java Web使用Html5 FormData實現(xiàn)多文件上傳功能
這篇文章主要介紹了Java Web使用Html5 FormData實現(xiàn)多文件上傳功能,需要的朋友可以參考下2017-07-07解析SpringBoot?搭建基于?MinIO?的高性能存儲服務的問題
Minio是Apache?License?v2.0下發(fā)布的對象存儲服務器,使用MinIO構建用于機器學習,分析和應用程序數(shù)據(jù)工作負載的高性能基礎架構。這篇文章主要介紹了SpringBoot?搭建基于?MinIO?的高性能存儲服務,需要的朋友可以參考下2022-03-03關于MyBatis中SqlSessionFactory和SqlSession簡解
這篇文章主要介紹了MyBatis中SqlSessionFactory和SqlSession簡解,具有很好的參考價值,希望大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12