.NET平臺(tái)下的跨平臺(tái)探索

一年之前投稿的azure云服務(wù)使用經(jīng)驗(yàn),記錄一下

我從2014年開始一直跟蹤Azure云服務(wù),之前擁有五年以上的.NET平臺(tái)應(yīng)用開發(fā)經(jīng)驗(yàn),從winform到webform,mvc框架到WebApi,主要從事物聯(lián)網(wǎng)應(yīng)用的前后端開發(fā)工作。跟著微軟整個(gè)生態(tài)體系在進(jìn)行跨平臺(tái)改革,。.NET平臺(tái)整體跨平臺(tái)后我就不再追技術(shù)方面的改革,轉(zhuǎn)戰(zhàn)涉及l(fā)inux平臺(tái)下的軟件開發(fā),豐富的LAMP,LNMP架構(gòu)經(jīng)驗(yàn)。

幾年前我在一家智能硬件公司參與過一項(xiàng)可穿戴健康云的技術(shù)架構(gòu)開發(fā)工作,涉及到幾個(gè)關(guān)鍵詞和使用場景。云平臺(tái)從阿里云遷移到azure,.NET后端程序的跨平臺(tái)部署,數(shù)據(jù)庫使用azure數(shù)據(jù)庫服務(wù),開源框架servicestack深度使用。

云服務(wù)整體遷移到Azure主要考慮到平臺(tái)自定義創(chuàng)建虛擬機(jī),靈活的創(chuàng)建各項(xiàng)服務(wù)機(jī)制,以及從應(yīng)用程序到數(shù)據(jù)分析以及大數(shù)據(jù)分析處理的生態(tài)組件體系。我們按需搭建了生產(chǎn),測試,灰度三套環(huán)境。生產(chǎn)負(fù)載均衡直接使用的azure的服務(wù)。

.NET后端程序的跨平臺(tái)部署主要進(jìn)行了以下幾個(gè)方面的改造.

1公司軟件服務(wù)全部搭建在Linux

centos操作系統(tǒng)下。.NET程序包括網(wǎng)站和應(yīng)用API一律由Jexus

web服務(wù)器替換,API供公司網(wǎng)站和APP使用。Jexus服務(wù)器依賴于mono環(huán)境。

2數(shù)據(jù)庫服務(wù)一律替換為云數(shù)據(jù)庫,采用Azure的Mysql服務(wù),權(quán)限控制,備份,維護(hù)全部交由Azure平臺(tái)。

3后端服務(wù)按照功能模塊化和服務(wù)組件化的思路拆分為多個(gè)二級(jí)域名服務(wù),API框架采用ServiceStack開源軟件,深度使用其ORM,Redis,MySQl連接庫,序列化組件。另外后端服務(wù)的緩存和隊(duì)列也采用redis實(shí)現(xiàn),放棄使用.NET本身的緩存機(jī)制。

我在使用Azure云服務(wù)的過程中發(fā)現(xiàn)幾個(gè)特點(diǎn),個(gè)人感覺不利于Azure云服務(wù)的傳播。

1使用人群

從平臺(tái)接入門檻和使用難度來說,主要受眾以.NET平臺(tái)開發(fā)者為主,以致力于改變,有多年平臺(tái)開發(fā)經(jīng)驗(yàn),有危機(jī)感的一部分平臺(tái)開發(fā)者。

2平臺(tái)差異性和依賴

通過我的使用觀察來看,平臺(tái)本身還有很強(qiáng)的語言平臺(tái)屬性,具體表現(xiàn)在多個(gè)功能組件強(qiáng)調(diào)開發(fā)者接入和維護(hù)時(shí)需要借助于PowerShell.

.NET開發(fā)人員很少知道PowerShell是什么,有何用,更不用談PHP等Linux平臺(tái)的開發(fā)者了。其實(shí)我并不喜歡PowerShell這個(gè)工具,之前也是被迫使用。

以MongoDb的使用介紹為例,Azure是這么介紹的

快速搭建MongoDB集群使用Azure

PowerShell和Azure

CLI在Azure虛擬機(jī)上快速搭建單節(jié)點(diǎn)MongoDB(

測試使用 )和包含主從復(fù)制以及分片集群的多節(jié)點(diǎn)MongoDB(

生產(chǎn)環(huán)境使用 )。

這樣的介紹依賴于windows機(jī)器,對(duì)開發(fā)者有接入環(huán)境門檻,而不是直接的界面分配與虛擬機(jī)Linux環(huán)境操作兩部分直接完成,自認(rèn)為會(huì)被部分人直接pass。

3在使用azure虛擬機(jī)時(shí),一定要確定分配的IP是否是固定IP,在哪種情況下可變,azure虛擬機(jī)有多個(gè)IP屬性,一不小心,在重啟或者其他相關(guān)操作下就會(huì)改變IP。我的方法是使用PowerShell命令固定一遍IP再使用。

基于.NET平臺(tái)開發(fā),如果要嘗試跨平臺(tái),更多的需要技術(shù)決策者的支持。

以web部署為例,mono

Jexus不是主流的web服務(wù)服務(wù)器選型,但是絕對(duì)經(jīng)得起生產(chǎn)環(huán)境驗(yàn)證。作為.net背景的開發(fā)人員,不局限在原有的windows思維里,就可以為程序設(shè)計(jì)和業(yè)務(wù)實(shí)現(xiàn)贏得更多的擴(kuò)展性,而Azure云服務(wù)正是我們可以充分利用的平臺(tái)!期待Azure的服務(wù)更加好用,在開源的支持方面更加全面。

如今的.net平臺(tái)開發(fā)環(huán)境可以說發(fā)生了翻天覆地的變化,.net core整體重新定義了.net平臺(tái)的開發(fā)能力,擁抱變化或許也是微軟正在遵從的發(fā)展理念

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,355評(píng)論 25 708
  • Awesome DotNet,這又是一個(gè) Awesome XXX 系列的資源整理,由 quozd 發(fā)起和維護(hù)。內(nèi)容...
    小明yz閱讀 4,032評(píng)論 0 47
  • 望雁棲湖的方向 有一群人在起舞 領(lǐng)舞的那位好美 我知道你來了! 從天上踏著彩云 帶著你滿滿的愛 翩翩在懷柔的校園里...
    象天之性閱讀 298評(píng)論 0 0
  • 每日踐行正面管教 大家好,我是正面管教家長講師&鼓勵(lì)咨詢師&親子咨詢師Ivy Ding,我陪大家一起踐行正面管教。...
    小妖丁兒閱讀 311評(píng)論 0 0
  • 人和人交往,總避免不了打招呼這個(gè)環(huán)節(jié)。它就像人與人間的潤滑劑,形式意義遠(yuǎn)大于內(nèi)容。一個(gè)人向你走來,若是多年好友,打...
    阿秋的冬天閱讀 2,806評(píng)論 1 4

友情鏈接更多精彩內(nèi)容