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

Posted dotNET跨平台

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MASA Stack 1.0 发布会讲稿——产品篇相关的知识,希望对你有一定的参考价值。

2023

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整个系统中的项目/应用进行监测来排查故障情况,其中包含从项目维度视角来查看监测的故障情况。以及溯源到具体的链路日志中去。除了可以监控整个MASAS 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在我们的集成平台里面都可以快速接进来

PPT下载链接

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

扫码观看回放

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

以上是关于MASA Stack 1.0 发布会讲稿——产品篇的主要内容,如果未能解决你的问题,请参考以下文章

MASA Stack 1.0 发布会讲稿——趋势篇

MASA Stack 1.0 发布会讲稿——实践篇

MASA Stack 1.0 发布会倒计时

MASA Stack 1.0 发布会圆满收官

MASA Stack 1.0 发布会 —— 社区问题解答

MASA Stack 1.0 发布会 —— 社区问题解答