架构
基于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/helmhelm repo updatehelm search repo masastack --devel --versionshelm 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 DEBUGbuilder.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