私有 Azure OpenAI Serivce 預想架構規劃
Info
此文是寫給廣大的 IT Infra 背景群眾看的,主要是提供落地架構設計參考,若你是想要知道 OpenAI 怎麼用的,此文並無涉及,可以參考官方文件 Azure OpenAI is now generally available
2022/11 最驚嚇到我的事情就是 ChatGPT 這服務的誕生,簡直看到 科技奇異點 ,然後沒想到這服務的母公司 OpenAI 居然是 Microsoft 投資的,我只能說真的是可喜可賀和感到哀傷。
可喜可賀是我可以在很近的距離看到這技術將要創造的歷史,感到哀傷是 ChatGPT 樹立了一個相當驚人的技術屏障,都不知道以後新進或菜鳥工程師到底要怎麼跟這個競爭,但幸好若問他做特別需要專業性問答的事情,這服務目前有可能會回答錯誤或亂答,譬如說問它網路除錯或設計問題後,看起來我還不會失業 :>
下圖是標準工程師使用範例,本人對於 HTML 和 CSS 毫無理解,也不知道從何改,然後我就去問 ChatGPT 後,就改好了...
Azure OpenAI Service Architecture Pre Design
聲明
於本文撰寫的今天 20220203 雖身為 Microsoft 員工,但我也還沒有拿到 Azure OpenAI 的訂閱權限,所以還沒有實測過這架構,故本文是依據既有 Azure 文件和我對 Azure 網路的認知提供預想架構給各位參考,反正後續可以修修改改
主要是看到強者我同事 Jimmy Liao - Azure OpenAI Part 1: 初探 OpenAI Studio 這文章,看到裡面 Azure OpenAI 左側的內容,才想先把網路架構先寫一寫給大家參考一下
目前預想私有架構上分為 2 個方案
- 生產環境規劃
- PoC 驗證環境規劃
方案 1: Production 生產私有環境規劃
方案 2: PoC 驗證私有環境規劃
預想私有架構詳解
整體私有網路的架構關鍵核心是 Azure Private Endpoint 和 Azure Private Link 的使用,根據此文 Private-link resource 故可提供以下服務 Private Endpoint 給私有連線使用,此外這個服務是在 Azure Cognitive Services 底下,所以若你有既有架構的話可以直接沿用
Private-link resource name | Resource type | Note |
---|---|---|
Azure OpenAI Services | Microsoft.CognitiveServices/accounts | 文件還沒有出來,但功能有 |
Azure Key Vault | Microsoft.KeyVault/vaults | N/A |
Azure Storage | Microsoft.Storage/storageAccounts | N/A |
Azure Monitor | Microsoft.insights/privateLinkScopes | 這個是用 Azure Monitor Private Link Scope (AMPLS) |
Azure Cognitive Services | Microsoft.CognitiveServices/accounts | N/A |
關於 DNS,如果是完全新建服務的話,還要注意 Azure Private DNS 解析問題,但這是另一塊需要額外討論處理,解法不外乎 2 種常見作法:
- Azure Private DNS Resovler: Azure PaaS 服務,本身有跨國架構需求,有 Private DNS Zone 管理需求相當推薦
- Customer DNS Forwarder: Azure VM + 看你喜歡哪家的 DNS,如 AD / Infoblox / Bind9 等,做 Forwarder
關於雲地連線,從地端環境連到 Azure,不外乎就 2 種常見做法
- Azure ExpressRoute 專線
- S2S VPN 使用 IPSec Tunnel
如果只是初期開啟來試試的話,S2S VPN 能用,後續訓練資料量大起來的話,是蠻推薦使用 ExpressRoute 確保連線穩定和低延遲,詳參 滑鼠點點之跨國 Azure ExpressRoute 網路架構
建議完整服務
下述的 API Management/Application Gateway 跟 Azure OpenAI 能力提供並無直接關係,故初期測試可以先以 PoC 驗證環境規劃樣板為主,再後續加下列服務上去完善
此外關於 API 控管的部分,Azure OpenAI 有提供 Azure OpenAI Service Swagger API
供程式呼叫使用,它角色如同常見的 Backend APIs,服務本身沒有做什麼特別的保護,故前面可以使用 API Management 進行轉換 API 和管制,而 API Management 前面還可以用 Application Gateway 保護 API
Q&A
Q1: 如果我不用上面什麼 Private Endpoint 還是有的沒的,可以用 Azure OpenAI Service?
A1: 可以,強者我同事 Jimmy Liao - Azure OpenAI Part 1: 初探 OpenAI Studio有寫系列文,可以直接參考他的系列文章
Q2: 現在申請不到 Azure OpenAI Service,難道我就沒什麼東西可以先評估了嗎?
A2: 雲地網路可以先討論和先拉,按照我的理解,正常台灣客戶討論到實際落地起來都會比 Azure OpenAI Service 推出的時間還要久,因為它不是單純滑鼠點點就可以解決的事情
其次就是看 Production 生產私有環境規劃 內容,了解一下裡面的內容個別功能
Q3: 無關題目,身為一名 Infra 工程師,對於這個服務有什麼想像力嗎?
A3: 修網路,丟給它一堆路由資訊,然後跟我說一下到底哪一條是擺錯的或者是哪裡怪怪的