.NET开发云原生应用,你只差给自己加个油

为什么要云原生(Cloud Native)

Cloud表示应用程序位于云中,而不是传统的数据中心;Native表示应用程序从设计之初即考虑到云的环境,原生为云而设计,在云上以最佳姿势运行,充分利用和发挥云平台的弹性+分布式优势。

了解了为什么要云原生以后,接下来,我们看看到底什么是云原生?

云原生的定义(1.0)

云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API。

这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统作出频繁和可预测的重大变更。

容器

有效的将单个操作系统的资源划分到孤立的组中,以便更好的在孤立的组之间平衡有冲突的资源使用需求,这种技术就是容器技术。

Docker 是目前被最官方使用的。提到它就离不开Kubernetes(管理容器集群)。他们两个对于初学者来说就好像两座大山,但其实如果你明白他们解决的问题和场景,或许你会觉得原来他们已经“很简单”了。作为运维已经基本算是必备技能了,而对于开发来说,繁重的开发压力或许也是让大家没有更多精力从全方位了解一个新的领域的重要原因吧。如果在开发时可以屏蔽一些偏运维的技能,或许将是个不错的选择。

服务网格

处理服务间通信的基础设施层,用于在云原生应用复杂的服务拓扑中实现可靠的请求传递。

两大王者Istio和Linkerd,他们是云原生解决方案和微服务架构中必不可少的组成部分(只需要其中之一即可)。他们提供了如服务发现、负载均衡、故障恢复、指标和监控等功能,甚至连A/B 测试、金丝雀发布、限流、访问控制和端到端身份验证都被涵盖进去了。虽然他们很强大,但近两年异军突起的Dapr或许会给大家带来新的可能性。

微服务

把一个服务拆成N个小的服务就是微服务,NO!!!

我有一个单体,只要我把业务分成不同的类库,到时候给他们套个Web API的壳跑起来,就是微服务,NO!!!

微服务通常需要按领域科学拆分,目的是为了每个切分的领域可以自主开发,独立部署。

正因为独立部署成服务,由类库间调用就要转向服务调用,所以需要标准的通信协议。

引入了标准的通信协议,所以不同的语言只要遵循协议,也就没有语言占山为王一说了(要硬说没有也不是,毕竟单一语言的经验积累比并行多个语言还是要容易的,可不同的语言也有他们自身的优势)。

最后组合在一起形成了一个新的应用(所以微前端的概念也可以插进来了)。

这不还是拆就完事儿了?NO!!!

微服务将会带来新的挑战:

  • 如何解决通信相关的问题,比如性能,瞬态故障,网络阻塞,安全性等

  • 如何让服务可以弹性伸缩,比如程序崩溃,流量瞬间增大,部署等

  • 如何解决分布式的挑战,比如大量数据,分布式事务,跨服务查询等

  • 如何存储密钥或敏感信息?

.NET不会替你解决这些挑战,但它会帮你。比如.NET 6和.NET 7的更新,正在为支持云原生而做的努力。这些应该被开发者们看到,并大胆的去尝试,去体验。

不可变基础设施

基础设施在部署了之后决不会被修改。一脸懵逼 ≡(▔﹏▔)≡

说一下优点,它可以保证基础设施具有更高的一致性和可靠性,更简单,可预测的部署过程。那来反推一下,如果基础设施部署后人为变更了,那自动化过程就可能会受到阻碍,比如雪花服务器。

声明式API

描述目标状态,而不是指令

声明式API相当于是我只需要告诉服务 会议室空调是26度,至于是要打开空调还是调整温度这个由服务来自行完成。在我们设计的绝大多数服务都会直接提供 打开空调API,设置温度API,所以声明式API和命令式API其实是有本质的区别的。

Java比.NET更有优势?

Java的确起步的早,但今日的.NET已经不是以前的.NET了。.NET最近几个大版本的更新中,针对云原生技术的挑战已经开始发力解决了。甚至在一些方面实现了反超,这让使用.NET构建云原生应用成为更优解变得可能。

更多内容,让我们来 MASA Framework实战课程 来了解一下吧。

众多 .NET领域大咖 带你走进.NET云原生的世界。

从0开始解决中大型电商项目带来的挑战!

我们在 开课圆桌 等你!

f4d23914bc161bcb62a5219258968d56.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/284547.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java成员变量的初始化

2019独角兽企业重金招聘Python工程师标准>>> 类变量(static变量,不需要实例化对象也可以引用) 实例变量(非static变量,需要实例化对象) 局部变量(类的成员函数中的变量) 初始化方式: 构造函数初始化 变量声明时初始化 代码块初始化 java自动初始化(在构造函数执行之…

Win11 的日历 替代

Win11 的日历虽然漂亮,却少了很多小功能,特别是没有秒钟和日程的设计,让用惯了 Win10 的小伙伴大呼不满。原来曾经用过360带的日历,可惜不支持Win11,下面这个日历是一款功能强大、颜值很高的小工具,能够提供…

ReactNative--React简介

React 基础框架,是一些实现理念,不能用来做网页的开发和手机应用的开发 React.js 用来做网页开发 ReactNative 移动应用开发 在学习ReactNative之前,先学习React http://reactnative.cn/ 中文网 http://facebook.github.io/react-nativ…

【ArcGIS微课1000例】0030:ArcGIS利用MXD doctor工具分析并修复mxd地图文档

MXD Doctor 是一个独立的应用程序,位于 ArcGIS Desktop 安装目录下的 Tools 文件夹中。该工具可用于分析已损坏的 .mxd 文件。根据分析结果,可将已损坏的 .mxd 文件中所包含的实体复制到新的或现有 .mxd 文件中。 可以从所有程序 > ArcGIS > Desktop 工具中打开 MXD Do…

分析一个 .NET 写的 某 RFID标签系统 CPU暴涨

一:背景 1. 讲故事前段时间有位朋友说他的程序 CPU 出现了暴涨现象,由于程序是买来的,所以问题就比较棘手了,那既然找到我,就想办法帮朋友找出来吧,分析下来,问题比较经典,有必要和大…

CentOS关机与重启命令详解

2019独角兽企业重金招聘Python工程师标准>>> Linux centos重启命令: 1、reboot  2、shutdown -r now 立刻重启(root用户使用)  3、shutdown -r 10 过10分钟自动重启(root用户使用)  4、shutdown -r 20:35 在时间为20:35时候重启(root用户使用)如果…

【ArcGIS微课1000例】0031:ArcGIS中的32个拓扑规则(图文详解)

在地理数据库中,拓扑是定义点要素、线要素以及面要素共享重叠几何的方式的排列布置。例如,街道中心线与人口普查区块共享公共几何,相邻的土壤面共享公共边界。学习拓扑就必须掌握ArcGIS中常见的拓扑规则。 文章目录 一、面的拓扑规则(10种)二、点的拓扑规则(6种)三、线的…

Blazor University (38)JavaScript 互操作 —— 从 .NET 调用 JavaScript

原文链接:https://blazor-university.com/javascript-interop/calling-javascript-from-dotnet/从 .NET 调用 JavaScriptJavaScript 应添加到服务器端 Blazor 应用程序的 /Pages/_Host.cshtml 或 Web Assembly Blazor 应用程序的 wwwroot/index.html 中。然后可以通…

十大排序总结(js实现、稳定性、内外部排序区别、时间空间复杂度、冒泡、快速、直接选择、堆、直接插入、希尔、桶、基数、归并、计数排序)

目录 排序相关概念 稳定性 内部排序 外部排序 十种排序算法特点总结 交换排序 冒泡排序(数组sort方法的原理) 图解 js实现 特点 快速排序 图解 js实现 特点 选择排序 直接选择排序 图解 js实现 特点 堆排序 大(小&#xff0…

三维重建技术概述

基于视觉的三维重建,指的是通过摄像机获取场景物体的数据图像,并对此图像进行分析处理,再结合计算机视觉知识推导出现实环境中物体的三维信息。 1. 相关概念 (1)彩色图像与深度图像 彩色图像也叫作RGB图像,…

【ArcGIS微课1000例】0032:ArcGIS中河流(曲线)、湖泊(水体色)图例制作案例教程

河流作为线要素,在符号化的过程中使用的大多都是直线符号,但是为了能够在出图的使用表现形象的河流对象,就有了使用曲线表示河流图例的需求,湖泊亦是如此。本文讲解在ArcGIS中制作标准的河流和湖泊图例的完整教程。 文章目录 一、案例效果二、图例制作三、图例修改一、案例…

浅谈微信小程序对于房地产行业的影响

前几日,我们曾经整理过一篇文章是关于微信小程序对于在线旅游业的影响的一些反思(浅谈微信小程序对OTA在线旅游市场的影响),近日由于生活工作的需要走访了一些房地产的住宅商品房,突然想到微信小程序对于房地产行业会有…

新型基础测绘与实景三维中国建设技术文件【1】名词解释

文章目录一、新型基础测绘 new fundamental surveying and mapping**二、实景三维 3D real scene**三、时空大数据平台 spatio-temporal big data platform**四、地理实体 geo-entity**五、基础地理实体 fundamental geo-entity**六、组合地理实体数据 combined geo-entity dat…

深入理解javascript原型和闭包

原文链接http://www.cnblogs.com/wangfupeng1988/p/3977924.html 对象是属性的集合。 function show(x) {console.log(typeof(x)); // undefinedconsole.log(typeof(10)); // numberconsole.log(typeof(abc)); // stringconsole.log(typeof(true)); // booleanconsole.lo…

薪资高压线

阅读本文大概需要5分钟。最近一名读者咨询一个问题:洋哥,最近公司有一名同事因为打探其他人薪资被开除了,为啥我们公司要把薪资设置为高压线。这是个好问题,解答完他的疑惑后想起了一年多前写过一篇,彼时读者还比较少&…

达摩院年终预测出炉:2022 十大科技趋势,AI for Science 高居榜首

作为“一所探索科技未知的研究院”,阿里巴巴达摩院成立至今已经四年了。 这四年来,达摩院秉持着“探索科技位置,以人类愿景为驱动力,开展基础科学和颠覆式技术创新研究”的原则与使命,在基础科研和硬科技发展上“遍地生…

chrome调试工具高级不完整使用指南(基础篇)

一、前言 本文记录的是作者在工作上面对chrome的一些使用和情况的分析分享,内容仅代表个人的观点。转发请注明出处(http://www.cnblogs.com/st-leslie/),谢谢合作 二、浏览器模块介绍 由于chrome浏览器一直在不断的进行更新迭代,会不断的新增功能&#x…

新型基础测绘与实景三维中国建设技术文件【2】基础地理实体分类、粒度及精度基本要求

《新型基础测绘体系建设试点技术大纲》指出,新型基础测绘将以“基础地理实体”为核心的成果模式创新为切入点,带动技术体系、生产组织体系和政策标准体系的全面创新,从而实现基础测绘高质量发展。 基础地理实体作为新型基础测绘产品体系的核心…

构建和实现单点登录解决方案(转载于IBMdeveloperWorks)

将一个开放源码的基于 Java 的身份验证组件集成进 Web 门户中 在现有的应用程序中实现单点登录解决方案(single sign-on,SSO,即登录一次,就可以向所有网络资源验证用户的身份)是非常困难的,但是在构建复杂的…

分享一个基于Abp 和Yarp 开发的API网关项目

这个项目起源于去年公司相要尝试用微服务构建项目,在网关的技术选型中,我们原本确认了ApiSix 网关,如果需要写网关插件需要基于Lua脚本去写,我和另外一个同事当时基于这个写了一个简单的插件,但是开发测试以及发布都很麻烦,而且使用Lua脚本作为插件的开发语言本身也不是我们强项…