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