.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.pswp.cn/news/284547.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/284547.shtml
英文地址,請注明出處:http://en.pswp.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 出現了暴漲現象,由于程序是買來的,所以問題就比較棘手了,那既然找到我,就想辦法幫朋友找出來吧,分析下來,問題比較經典,有必要和大…

linux開機引導過程總覽

簡單的說,系統的啟動過程如下: 1.開機自檢: 按下電源按鍵后,計算機硬件會主動讀取BIOS加載硬件信息并進行硬件的自我測試,然后系統會根據BIOS里的啟動順序讀取第一個可啟動的設備,從而移交系統控制權&#…

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用戶使用)如果…

JS正則提取字符串

河北科技師范學院歐美學院新聞標題 河南大學邁阿密學院新聞標題 首都經濟貿易大學密云分校新聞標題 北京科技大學(延慶校區)新聞標題 湖北中醫藥大學職業技術學院新聞標題 公安消防部隊高等專科學校新聞標題 從上邊的類似新聞標題中提取完整學校名稱,最終參考代…

【工具】PC端調試手機端 Html 頁面的工具

一、概述 有一個項目需要在手機端顯示一個 web 頁面,而每次把應用 launch 后,從手機端看比較麻煩,因此搜羅了幾種在 PC 端調試手機端頁面的工具。 二、工具 http://fonkie.iteye.com/blog/1846858 http://blog.csdn.net/dojotoolkit/article/…

【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中制作標準的河流和湖泊圖例的完整教程。 文章目錄 一、案例效果二、圖例制作三、圖例修改一、案例…

從shiro源碼角度學習工廠方法設計模式

緒論 shiro是一個簡單易用,功能強大的Java安全框架,學習其源碼設計思想對我們的編碼水平的提高大有裨益。現在,就從源碼角度帶大家學習一下shiro里面的工廠方法模式。 這里的前提是讀者有過使用shiro的基礎,沒有也行,關…

淺談微信小程序對于房地產行業的影響

前幾日,我們曾經整理過一篇文章是關于微信小程序對于在線旅游業的影響的一些反思(淺談微信小程序對OTA在線旅游市場的影響),近日由于生活工作的需要走訪了一些房地產的住宅商品房,突然想到微信小程序對于房地產行業會有…

新型基礎測繪與實景三維中國建設技術文件【1】名詞解釋

文章目錄一、新型基礎測繪 new fundamental surveying and mapping**二、實景三維 3D real scene**三、時空大數據平臺 spatio-temporal big data platform**四、地理實體 geo-entity**五、基礎地理實體 fundamental geo-entity**六、組合地理實體數據 combined geo-entity dat…

Android.bp 和 Android.mk 的對應關系

參考 Soong 構建系統 Android.mk 轉為 Android.bp 沒有分支、循環等流程控制的簡單的 Android.mk ,可以通過 androidmk 命令轉化為 Android.bp source 、lunch 之后執行即可。 androidmk Android.mk > Android.bp對應關系 Android 13 ,build/soon…

深入理解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分鐘。最近一名讀者咨詢一個問題:洋哥,最近公司有一名同事因為打探其他人薪資被開除了,為啥我們公司要把薪資設置為高壓線。這是個好問題,解答完他的疑惑后想起了一年多前寫過一篇,彼時讀者還比較少&…