MASA Stack 1.0 發佈會講稿——產品篇

語言: CN / TW / HK

架構

基於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