MASA Stack 1.0 釋出會講稿——產品篇
架構
基於MASA的雲原生技術架構
我們基於MASA去做了一個雲原生技術架構,左下角的MASA Blazor主要是為我們去整合一個多端的UI能力,具體的使用場景將在實踐篇為大家介紹——MASA Blazor如何去做多端的
接著就是整合非業務能力的MASA Framework,它主要是解決整個雲原生架構中非業務性的問題
在這兩個基礎上,我們就可以去編寫業務程式碼,業務程式碼完成後上傳GitHub併發布到微服務的叢集裡面,而MASA Stack則是提供的平臺管理能力
最右邊的第三方系統管理是最關鍵的一部分,我們第三方系統呼叫是通過Dapr來管理,不難看到MASA Framework和Dapr有部分重疊,MASA Framework對Dapr進行二次封裝,既可以讓大家體驗類似.Net原生操作,又可以作為適配層對Dapr進行替換
MASA Stack 平臺架構
研發協作平臺:更多的是去幫助大家解決在研發過程當中的一些協作類的問題
現代化應用治理平臺:主要是幫助大家解決在應用層面的一些治理問題
可觀測性平臺:解決的是一些可觀測問題,在平臺工程裡面,幫助大家去採集一些公共的日誌、跟蹤、指標、資料等等
資料開發平臺:在MASA Stack 平臺裡是非常重要的一個環節,在1.0和2.0中的工作主要是作為3.0的基建,為3.0做鋪墊
低程式碼開發平臺:解決API側的編排問題,更多的還是偏開發,針對IT開發者,並不傻瓜化
整合平臺:解決系統整合間的一些問題
MASA Stack 功能架構
MASA Stack的功能架構底部的內容已經在前面介紹過,那我們來看下上面的內容
第一部分是研發管理部分,緊接著是現代化應用開發治理,這裡面可以看到比如API閘道器、應用治理這些功能。第三部分資料開發與治理,是資料開發相關的內容。最後一個是可觀測性,從功能結構上來說,MASA Stack1.0是其中的基礎部分,但未來的3.0我們還會繼續往裡面補充內容,追加新的功能,並不侷限於這四個版塊
設計理念
能力:單體/分散式皆可
配置:可配置但約定優於配置
開放:可二開,可對接,也可以任意替換
標準:面向API和SDK程式設計
組合:通過對能力的組合,形成專屬平臺
應用現代化
平臺工程
01 價值
為了幫助開發人員、資料科學家和終端使用者,並減少他們從事有價值工作的阻力,平臺工程優化了開發者體驗並加速數字交付
02 如何優化開發者體驗
提供一套精心策劃的工具、功能和流程。減少開發者的認知負擔,幷包含開發團隊需要的一切,以最適合他們的工作流程呈現
支援的業務策略:建立安全的底座、加速數字化、吸引和留住人才
03 關鍵
先構建內部開發者門戶,這是最成熟、最容易理解的平臺型別。積累的經驗可以擴充套件到其他平臺,平臺必須將安全性嵌入到工作流程。全面、自動化的安全性和合規性檢查作為測試套件的一部分,不要指望商業的一站式解決方案,無論如何你都需要定製它
MASA Stack 全景
MASA Stack全景主要分為兩大部分,MASA Stack每個版本是如何融合在一起的,它們之間的關係是什麼?在這張圖裡都有清楚的展示
圖中左邊這一部分更貼近現代化應用部分,右邊則是可觀測性部分,在MASA Stack 1.0我們做的更多是一些基建類的東西,為後續版本打基礎
2.0是圖上白色部分,例如左下角的Workflow;3.0是圖上不明顯的灰色部分,比如左下角的Function,這些都是正在搭建的功能,會隨著版本更新逐步實現
MASA Blazor
MASA Blazor適用於PC端和移動端,包含兩個庫,第一個就是Blazor Component,主要提供了一個不包含樣式的純互動的元件庫,第二個MASA Blazor 是基於Vuetify一個Material Design的元件庫
MASA Framework
Building Blocks >>介面&能力>>提供非業務能力的介面,並提供組合多個能力形成新的能力的最佳實踐
Contrib>>實現>>基於構建塊的介面標準提供最佳實踐,可被替換實現
Utils>>通用類庫>>底層通用能力,可被用於業務和Contrib
Templates>>模板>>用於建立專案
專案管理
MASA PM是一款底層基建專案管理產品,提供0-1初始化的部分內容。從最初的底層環境建立,部署和建立對應的叢集。編輯環境與叢集的組合關係,在所需求的環境叢集上建立專案。
許可權中心
MASA Auth是MASA Stack中最核心的功能之一,它統一負責了所有產品的許可權、選單、使用者等。它包含了單點登入、使用者管理、RBAC3、第三方平臺接入、Ldap等企業級功能。除了可以用在企業內部管理系統,它還可以幫助管理C端使用者。
配置中心
MASA DCC是MASA Stack1.0推出的分散式配置中心,在整個MASA Stack產品中擔任所有系統以及部分全域性綜合配置的功能。
訊息中心
MASA Stack 1.0 系統合集中底層支援訊息傳送的一款綜合性產品,擔任了全域性訊息系統支援多渠道的配置與訊息傳送規則的配置,並且可以配置多種訊息模板以及特定使用者組群。可以與關聯產品Alert、TSC等對接,一站式解決故障問題觸發與處理。
排程中心
Scheduler是MASA Stack 1.0推出的一款輔助性軟體產品,主要負責處理應用程式任務執行的排程,以及自動重試等相關操作。在MASA Stack產品中,與MASA MC、MASA TSC、MASA Alert 3款產品結合,發揮最大的排程價值。當然Scheduler並不只是給MASA Stack產品使用,它同樣可以為業務創造價值。
故障排查控制檯
MASA TSC主要負責對MASA整個系統中的專案/應用進行監測來排查故障情況,其中包含從專案維度視角來檢視監測的故障情況。以及溯源到具體的鏈路日誌中去。除了可以監控整個MASA Stack的產品外,與PM進行組合使用,也可以將業務系統接入進來統一管理。
告警中心
MASA Alert是一款配合性產品,主要提供告警規則以及制定相關指標。它需要藉助幾個產品的基礎功能組合來發揮它的價值,比如故障排查控制檯作為監測資料來源,排程中心作為排程週期控制,訊息中心作為傳送訊息的渠道。MASA Stack會盡可能的複用基礎功能,而不是重複性工作,所以單一部署它將失去意義,產品結合可以發揮告警中心的最大價值。
文件中心
MASA Stack 1.0 的文件將統一放在文件中心裡,目前是比較早期的文件內容,我們會在1.0前繼續完善它
優勢
成本低:統一技術棧、統一互動、免費
不卡脖子:技術自主可控、雲原生、開源
一站式:網頁端、桌面端、微服務、雲、移動端、IoT、ML、遊戲
整合強:平臺無邊界、不限制開發語言、提供API和SDK
體系完善:應用交付、資料治理、安全智慧、領域最佳實踐
如何開始
安裝MASA Stack - Helm
介紹了那麼多,那我們如何開始使用MASA Stack呢?
這裡我們分為兩部分進行講解,第一部分是MASA Stack的安裝和接入
安裝MASA Stack我們提供了Helm,首先需要準備K8s叢集,有了集群后就可以建立namespace(這一步是可選項,也可以選擇不建立),然後建立一個strong class(部署環境要求),部署Dapr搭建環境,使用MASA Stack Helm安裝
程式碼也是比較簡單的
helm repo add masastack https://github.com/masastack/helm
helm repo update
helm search repo masastack --devel --versions
helm upgrade --install masastack masastack/masastack --version=xxx --namespace masastack --create-namespace --wait
雖然安裝步驟簡單,但實際上對K8s是要一些技術要求的,如果對K8s不是很熟悉的話,門檻相對來說還是比較的高的,之後我們也會錄製MASA Stack相關的安裝教程視訊給大家
接入MASA Stack
如果你是.NET使用者,我們提供了SDK,直接接入即可
如果你是其他語言使用者,我們現階段是沒有SDK的,可以通過標準的API去對接
異構
如果你的專案是一個異構的,裡面有不同的語言那怎麼辦呢?
其實可以通過Dapr的方式去做,如果它提供了SDK,可以根據的原有的SDK去調整。如果沒有,可以按照圖上這個標準介面去實現對接
Windows 本地開發環境
接下來是基於MASA Framework的開發,首先在我們的Windows本地開發環境裡面,絕大數步驟都是可選的,但如果你用的是Dapr,還是希望可以選擇完整的流程去開發專案
安裝WSL→安裝Docker→安裝Dapr,這裡都是為了安裝Dapr做準備
準備工作完成後就是建立專案,這一步可以使用我們的模板或者從零開始都沒有問題,然後需要新增Masa.Contrib.Development.DaprStarter.AspNetCore 包,
最後一步就是在Program.cs 新增程式碼
#if DEBUG
builder.Services.AddDaprStarter();
#endif
它可以幫你去管理Dapr的一個生命週期
基於模板建立新專案
基於模板建立新專案這一部分需要先安裝MASA模板
dotnet new install Masa.Template
然後使用 MASA Framework Project 模板去建立專案,這過程中會有一些引導,去引導你去選擇哪些選項(右圖所示),按需勾選即可,這個階段就是我們在自定義我們整個專案的結構,最後點選建立即完成
老專案對接
如果是老專案對接怎麼辦?這裡有四種方式可選
用的比較多的是HTTP,可以用MASA Framework Caller或者HttpClient去對接
第二個是gRPC,這裡需要注意的是,MASA Framework Caller (2.0)才能實現對gRPC的支援,現階段使用的比較多的Grpc.Net.Client
最後一個就是Dapr,我們的Caller提供了Dapr的全集合
這三種方式裡Caller都出現了,如果說你的專案比較複雜,可能用了不同的協議,還是更推薦Caller,因為Caller是我們的一個構建塊,它是面對介面的方式去程式設計的,不管你對接哪一種方式,只需要調換Contrib包,書寫方式沒有特別大的區別
以上三種方式是大家比較常見的,最後一種方式是還在開發中的MASA Stack 2.0 整合平臺,在2.0裡,我們會做一個整合平臺,它會幫大家去接管內外的應用,HTTP、gRPC、Dapr在我們的整合平臺裡面都可以快速接進來
掃碼觀看回放
如果你對我們的開源專案感興趣,無論是程式碼貢獻、使用、提 Issue,歡迎聯絡我們
- WeChat:MasaStackTechOps
- QQ:7424099
- Blazor在IoT領域的前端實踐 @.NET開發者日
- MASA MAUI Plugin (十)iOS訊息推送(原生APNS方式)
- MASA MAUI Plugin (九)Android相簿多選照片(使用Android Jetpack套件庫)
- MASA MAUI Plugin (八)Android相簿多選照片(Intent 方式)
- MASA Stack 1.0 釋出會講稿——生態篇
- MASA Stack 1.0 釋出會講稿——實踐篇
- MASA Stack 1.0 釋出會講稿——產品篇
- MASA Stack 1.0 釋出會講稿——趨勢篇
- MASA MAUI Plugin (七)應用通知角標(小紅點)Android iOS
- .NET現代化應用開發 - CQRS&類目管理程式碼剖析
- MASA MAUI Plugin 安卓藍芽低功耗(二)藍芽通訊
- MASA MAUI Plugin 安卓藍芽低功耗(一)藍芽掃描
- MASA MAUI Plugin 安卓藍芽低功耗(二)藍芽通訊
- MASA MAUI Plugin 安卓藍芽低功耗(一)藍芽掃描
- MASA Framework的分散式鎖設計
- MAUI Masa Blazor 開發介面跟隨系統主題切換的App
- MAUI Masa Blazor 開發介面跟隨系統主題切換的App
- MAUI Masa Blazor 開發帶自動更新功能的安卓App
- 開篇-開啟全新的.NET現代應用開發體驗
- 怎麼樣的框架對於開發者是友好的?