MASA Stack 1.0 发布会讲稿——产品篇

MASAStack是一个基于MASA的云原生技术架构,包括MASABlazor(多端UI)、MASAFramework(非业务能力)、业务代码开发、微服务集成等。平台提供研发协作、应用治理、可观测性及数据开发等功能,利用Dapr进行第三方系统管理。MASAStack强调可配置性、开放性和标准,旨在优化开发者体验并支持API和SDK编程。未来版本将扩展更多功能,如Workflow和Function。MASAStack还涵盖权限中心、配置中心、消息中心等子系统,为用户提供一站式解决方案。

6d873be379cf6242380ae8cbc138ebe8.png

2023

MASA Stack 1.0 产品篇

架构

基于MASA的云原生技术架构

5704c457346f9f5455481388c63843e6.jpeg

我们基于MASA去做了一个云原生技术架构,左下角的MASA Blazor主要是为我们去集成一个多端的UI能力,具体的使用场景将在实践篇为大家介绍——MASA Blazor如何去做多端的

接着就是集成非业务能力的MASA Framework,它主要是解决整个云原生架构中非业务性的问题

在这两个基础上,我们就可以去编写业务代码,业务代码完成后上传GitHub并发布到微服务的集群里面,而MASA Stack则是提供的平台管理能力

最右边的第三方系统管理是最关键的一部分,我们第三方系统调用是通过Dapr来管理,不难看到MASA Framework和Dapr有部分重叠,MASA Framework对Dapr进行二次封装,既可以让大家体验类似.Net原生操作,又可以作为适配层对Dapr进行替换

MASA Stack 平台架构

64d1be9efa7829ecf9d7c3acacd35524.jpeg

研发协作平台:更多的是去帮助大家解决在研发过程当中的一些协作类的问题

现代化应用治理平台:主要是帮助大家解决在应用层面的一些治理问题

可观测性平台:解决的是一些可观测问题,在平台工程里面,帮助大家去采集一些公共的日志、跟踪、指标、数据等等

数据开发平台:在MASA Stack 平台里是非常重要的一个环节,在1.0和2.0中的工作主要是作为3.0的基建,为3.0做铺垫

低代码开发平台:解决API侧的编排问题,更多的还是偏开发,针对IT开发者,并不傻瓜化

集成平台:解决系统集成间的一些问题

MASA Stack 功能架构

7662445b1d1d65005e97bce599b46607.jpeg

MASA Stack的功能架构底部的内容已经在前面介绍过,那我们来看下上面的内容

第一部分是研发管理部分,紧接着是现代化应用开发治理,这里面可以看到比如API网关、应用治理这些功能。第三部分数据开发与治理,是数据开发相关的内容。最后一个是可观测性,从功能结构上来说,MASA Stack1.0是其中的基础部分,但未来的3.0我们还会继续往里面补充内容,追加新的功能,并不局限于这四个版块

设计理念

d39312b33eb9ae9a208bfdf18d6444f8.jpeg

能力

单体/分布式皆可

配置

可配置但约定优于配置

开放

可二开,可对接,也可以任意替换

标准

面向API和SDK编程

组合

通过对能力的组合,形成专属平台

应用现代化

平台工程

854bd2f6c7ca65c550c279f1c51abd43.jpeg

01

价值

为了帮助开发人员、数据科学家和终端用户,并减少他们从事有价值工作的阻力,平台工程优化了开发者体验并加速数字交付

02

如何优化开发者体验

提供一套精心策划的工具、功能和流程。减少开发者的认知负担,并包含开发团队需要的一切,以最适合他们的工作流程呈现

支持的业务策略:创建安全的底座、加速数字化、吸引和留住人才

03

关键

先构建内部开发者门户,这是最成熟、最容易理解的平台类型。积累的经验可以扩展到其他平台,平台必须将安全性嵌入到工作流程。全面、自动化的安全性和合规性检查作为测试套件的一部分,不要指望商业的一站式解决方案,无论如何你都需要定制它

MASA Stack 全景

cfb79a62f0956ea5f1dd3a894aeb3e78.jpeg

MASA Stack全景主要分为两大部分,MASA Stack每个版本是如何融合在一起的,它们之间的关系是什么?在这张图里都有清楚的展示

图中左边这一部分更贴近现代化应用部分,右边则是可观测性部分,在MASA Stack 1.0我们做的更多是一些基建类的东西,为后续版本打基础

2.0是图上白色部分,例如左下角的Workflow;3.0是图上不明显的灰色部分,比如左下角的Function,这些都是正在搭建的功能,会随着版本更新逐步实现

MASA Blazor

2c52a76583e4927167687e231c25f557.jpeg

MASA Blazor适用于PC端和移动端,包含两个库,第一个就是Blazor Component,主要提供了一个不包含样式的纯交互的组件库,第二个MASA Blazor 是基于Vuetify一个Material Design的组件库

MASA Framework

fa4c9dd7246c7d69c2ea0bd775d93549.jpeg

Building Blocks >>接口&能力>>提供非业务能力的接口,并提供组合多个能力形成新的能力的最佳实践

Contrib>>实现>>基于构建块的接口标准提供最佳实践,可被替换实现

Utils>>通用类库>>底层通用能力,可被用于业务和Contrib

Templates>>模板>>用于创建项目

项目管理

8dbccd3f7f9fd89acccce8b8f05496a9.jpeg

MASA PM是一款底层基建项目管理产品,提供0-1初始化的部分内容。从最初的底层环境创建,部署和创建对应的集群。编辑环境与集群的组合关系,在所需求的环境集群上创建项目。

权限中心

5e258424cba5898b9c93dcb8c93c8945.jpeg

MASA Auth是MASA Stack中最核心的功能之一,它统一负责了所有产品的权限、菜单、用户等。它包含了单点登录、用户管理、RBAC3、第三方平台接入、Ldap等企业级功能。除了可以用在企业内部管理系统,它还可以帮助管理C端用户。

配置中心

70b5ca8afaa5ef79798bc99540346f1e.jpeg

MASA DCC是MASA Stack1.0推出的分布式配置中心,在整个MASA Stack产品中担任所有系统以及部分全局综合配置的功能。

消息中心

f2ac432a45dcf199fd531a292aca4142.jpeg

MASA Stack 1.0 系统合集中底层支持消息发送的一款综合性产品,担任了全局消息系统支持多渠道的配置与消息发送规则的配置,并且可以配置多种消息模板以及特定用户组群。可以与关联产品Alert、TSC等对接,一站式解决故障问题触发与处理。

调度中心

9dc98dcba3545dc782343935fd2dd629.jpeg

Scheduler是MASA Stack 1.0推出的一款辅助性软件产品,主要负责处理应用程序任务执行的调度,以及自动重试等相关操作。在MASA Stack产品中,与MASA MC、MASA TSC、MASA Alert 3款产品结合,发挥最大的调度价值。当然Scheduler并不只是给MASA Stack产品使用,它同样可以为业务创造价值。

故障排查控制台

df9fb53df6768d7db239087a92749119.jpeg

MASA TSC主要负责对MASA整个系统中的项目/应用进行监测来排查故障情况,其中包含从项目维度视角来查看监测的故障情况。以及溯源到具体的链路日志中去。除了可以监控整个MASAS Stack的产品外,与PM进行组合使用,也可以将业务系统接入进来统一管理。

告警中心

5f1c938202be82b4b57bdb8699ebd5db.jpeg

MASA Alert是一款配合性产品,主要提供告警规则以及制定相关指标。它需要借助几个产品的基础功能组合来发挥它的价值,比如故障排查控制台作为监测数据源,调度中心作为调度周期控制,消息中心作为发送消息的渠道。MASA Stack会尽可能的复用基础功能,而不是重复性工作,所以单一部署它将失去意义,产品结合可以发挥告警中心的最大价值。

文档中心

1fdd3aac150a35f0ba3e03cf67abf42f.jpeg

MASA Stack 1.0 的文档将统一放在文档中心里,目前是比较早期的文档内容,我们会在1.0前继续完善它

优势

c778999d967391710d6502e5c0d43f85.jpeg

成本低:统一技术栈、统一交互、免费

不卡脖子:技术自主可控、云原生、开源

一站式:网页端、桌面端、微服务、云、移动端、IoT、ML、游戏

集成强:平台无边界、不限制开发语言、提供API和SDK

体系完善:应用交付、数据治理、安全智能、领域最佳实践

如何开始

安装MASA Stack - Helm

3a97edf4d3003250ace535b4b4b07b96.jpeg

介绍了那么多,那我们如何开始使用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

1cb96c835019a402a7dea94ac66a3dd1.jpeg

如果你是.NET用户,我们提供了SDK,直接接入即可

如果你是其他语言用户,我们现阶段是没有SDK的,可以通过标准的API去对接

异构

21a8ae3c5cfb70220fe12f82460e6c7b.jpeg

如果我的项目是一个异构的,里面有不同的语言那怎么办呢?

其实可以通过Dapr的方式去做,如果它提供了SDK,可以根据的原有的SDK去调整。如果没有,可以按照图上这个标准接口去实现对接

Windows 本地开发环境

ae59598d3c8084a24bf79363793c6169.jpeg

接下来是基于MASA Framework的开发,首先在我们的Windows本地开发环境里面,绝大数步骤都是可选的,但如果你用的是Dapr,还是希望可以选择完整的流程去开发项目

安装WSL→安装Docker→安装Dapr,这里都是为了安装Dapr做准备

准备工作完成后就是创建项目,这一步可以使用我们的模板或者从零开始都没有问题,然后需要添加Masa.Contrib.Development.DaprStarter.AspNetCore 包,

最后一步就是在Program.cs 添加代码

#if DEBUG

builder.Services.AddDaprStarter();

#endif

它可以帮你去管理Dapr的一个生命周期

基于模板创建新项目

4a1df69188e03a8002205628bf0623ce.jpeg

基于模板创建新项目这一部分需要先安装MASA模板

dotnet new install Masa.Template

然后使用 MASA Framework Project 模板去创建项目,这过程中会有一些引导,去引导你去选择哪些选项(右图所示),按需勾选即可,这个阶段就是我们在自定义我们整个项目的结构,最后点击创建即完成

老项目对接

e0cc43be5f5389737d816b7e02b36561.jpeg

如果是老项目对接怎么办?这里有四种方式可选

用的比较多的是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在我们的集成平台里面都可以快速接进来

PPT下载链接

MASA Stack 1.0 发布会——产品篇.pdf

扫码观看回放

f3dfc5903df557545fbc6fc27d5246b3.png

18f90c435c004048184f65c322a467dc.gif

如果你对我们的开源项目感兴趣,无论是代码贡献、使用、提 Issue,欢迎联系我们

cc2726f820310a852bf59e371253a212.png

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值