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