在安全要求比較高的企業中,服務放內網是很基本的需求。在 Azure 的世界裡,我們可以透過 Private Endpoint 來完成。
不過在 Service Bus 的定價層中,只有 Premium 以上才支援 Private Endpoint 的功能,不過它的價格相當不斐,如果不是正式環境使用,真的是很難下手。
既然這樣,有沒有其他「俗擱大碗」的方式可以幫助我們達到目的呢?如果你有相同的疑問,你要找的,很可能就是 IP Rule 這個功能!
在安全要求比較高的企業中,服務放內網是很基本的需求。在 Azure 的世界裡,我們可以透過 Private Endpoint 來完成。
不過在 Service Bus 的定價層中,只有 Premium 以上才支援 Private Endpoint 的功能,不過它的價格相當不斐,如果不是正式環境使用,真的是很難下手。
既然這樣,有沒有其他「俗擱大碗」的方式可以幫助我們達到目的呢?如果你有相同的疑問,你要找的,很可能就是 IP Rule 這個功能!
在 Azure 中 VNet 是串起內網通連的基礎,若要讓兩條不同的 VNet 彼此可以互通,我們可以使用 peering 來達成目的。而當產品架構日益龐大之後,VNet 的數量也會隨之增長,此時過多的 peering 會致使服務間的網路拓樸變得錯綜複雜且不易維護,這時可以考慮使用 Private Link 來有效降低過多 peering 所造成的耦合性。本文將簡述網路架構的演進過程以及如何使用 Private Link 來減少 VNet peering 所帶來的耦合關係。
若提到 ASP.NET 網站託管的 PaaS 服務,Azure App Service 絕對會是首選!它整合了佈署、憑證管理、及日誌等功能,大幅降低了維運成本。
雖然看似簡單,但還是有許多的眉眉角角!最近在管理 App Service 的實務上,就遇到了一些對外連線測試的需求,在幾經摸索後找到了幾個可行的做法,特此記錄一下。
GitKraken 在去年九月推出了 CLI 的功能,
一直沒有時間好好地來把玩一下,
剛好趁著最近的小空檔來體驗一下。
本次要介紹的是號稱開發者體驗最好的壓測工具 – k6。
它在 GitHub 上擁有相當驚人的星星數( > 10w ),受歡迎的程度可想而知。
k6 的一大特點就是簡單易用,只要撰寫 ES6 JS 的腳本就可以進行壓測,
無論你在團隊中是擔任什麼角色,都可以輕易地上手這套工具。
在本文中會簡介 k6 的使用特性,並撰寫一個簡單的壓測腳本
Git 是現代主流的版本控制系統,
而 GitKraken 是一套為了 Git 打造而生的 GUI 工具。
除了整合了許多第三方平台以外,也提供了相當華麗及便利的操作體驗。
我在先前的文章中曾介紹過 GitKraken x Azure DevOps 的整合方式,
而本次要分享的是另一個讓我愛不釋手的功能 — Command Palette。
睽違了兩年之久,
微軟於前幾日正式開放 Visual Studio 2022 Preview1 下載,
雖然平時早已被 Rider 慣壞,但是內心深處對 VS 依舊有愛。
廢話不多說,趕緊來瞧瞧這次的版本多了哪些好料吧!
本次的主題集中在探索內建的程式碼產生功能,
但因為已經一陣子沒接觸 VS 了,
有些提到的功能可能會與 VS 2019 重疊,敬請見諒。
StackExchange.Redis 是 .NET 領域中最廣為人知的 Redis 套件,
因為知名度很高,所以相關的教學文章也非常豐富。
而今日卻意外發現其建立的連線數似乎跟預期的不太一樣,
趕緊趁著記憶猶新的時候記錄一番。
進入 .NET Core 之後,當系統需要與自身之外的 API 溝通時,使用 IHttpClientFactory 已是廣為人知的事情。
而本篇要介紹的,是 HttpClient 的進化版 – Typed client,除了能夠提供 IntelliSense 之外,還能將 API 介接邏輯巧妙地封裝起來。
Source Generator 是微軟於 .NET 5 所推出的新功能,
它允許我們從原始碼編譯的結果中取得所需的 meta 資訊,
進而根據這些資訊去組出額外的程式碼,並加至最後的編譯結果中。
而當原始碼數量過於龐大時,將篩選 Syntax 的邏輯寫在 Generator 內就會稍顯雜亂。
這時可以使用 SyntaxReceiver 幫助我們快速篩選所需的 Syntax 資訊!
開發的過程中難免會於組態檔中存取應用程式的特定資訊,
在 .NET Core 中拋棄了過去存於 Web.Config 的方式,
而將組態預設存放在 appsetting.json 中。
官方預設提供了 IOptions<T> 讓我們能夠以強型別的方式繫結組態,
但是使用起來總覺得不是那麼順手,
本文介紹如何透過自訂擴充方法簡化組態注入方式。
.NET Standard 最初的願景是作為 .NET Framework 與 .NET Core 的中繼層,
讓開發人員能夠基於這個抽象來開發支援上述兩種 target framework 的函式庫。
這玩意兒出來其實也挺久了,但一直到最近才碰到它。
本篇將介紹如何透過 Azure Pipeline 將 .NET Standrad Library 發布至 Azure Artifact Feed。
Azure DevOps Wiki 使用 Markdown 風格撰寫,
可用來記錄開發過程及系統維護等相關文件,
讓組織內不同角色於同個平台共享資訊,
本篇將簡介 Azure DevOps 中 Wiki 文件的管理方式。
Azure Release Pipeline 能夠延續 Build Pipeline 的工作,
將 Artifacts 發佈至指定伺服器上。
本篇將簡介如何透過 Azure DevOps 建立 Release Pipeline。
(圖片來源:https://morioh.com/p/15bbac48c8e7)
Azure Build Pipeline 提供程式碼持續整合功能,
能執行建置、測試、Artifact 產出及自訂 Script 等工作,
本文將簡介如何透過 Azure DevOps 快速打造一條 Build Pipeline。
Azure DevOps Pipeline 中提供了許多預定義變數,
以供在 CI(持續整合)、CD(持續交付)流程中靈活運用。
但總是會碰到變數不夠用的時候,
這時候就只能動手自己做了!
本篇介紹如何使用 PowerShell 於 Build Pipeline 中自訂 GitShortHash 變數。
現今許多前端或後端的框架,
預設都是採用相依性注入的方式進行開發,
對我這種原先較少使用DI框架的開發者而言,
上手適應的確得花一番功夫。
記得某次參加twMVC週四固定聚會時,
我向Bill叔請益有關相依性注入的看法時,他秒回道:
不就是相依,然後再注入而已。
這看似簡單的幾句話,
卻讓當下只會用DI框架的我,
開始反思何謂相依、何謂注入。
此篇我想從「何謂相依」出發,
分別地來談談「相依」及「注入」,
順手記錄自己理解的過程。
File Layout是Resharper中一個非常實用的功能,
它可以針對自訂的規則進行程式碼排版,
本篇將以新增MsTest的模板為例,
介紹如何訂製自己想要的File Layout。
Azure DevOps是微軟在DevOps領域的一個平臺服務,
性質上與市面上其他DevOps的平臺相近,
提供VCS、CI、CD及Artifacts等功能。
近日在協助公司導入Azure DevOps Server(地端版)時,
在建置Pipelines/Build(CI)流程Nuget Restore Task時,
有些內部套件需要從Artifacts Feeds拉取,
而因為有跨組織專案共享內部套件的需求,
花了些時間才搞懂這些東西如何設定,
趕緊趁著還沒忘記之前記錄一下。