Microsoft Azure中國版的ARM Template和API版本

對於一個公有云產品來講,同時運行和維護兩套架構(ASM和ARM),絕對算得上是前無古人後無來者的偉大壯舉了。在當初沒有完全弄清楚市場需求的狀況下,稀裏糊塗的推出了以Cloud Service爲核心的ASM架構,準備高舉高打,直接跳過IaaS去玩PaaS。結果...仍是不得不向IaaS低頭,在Cloud Service中笨拙的添加VM Role...
的確,ARM架構比ASM架構更先進,確切的說,有了ARM架構,Microsoft Azure纔算從奇葩走向了主流。在Microsoft國際版中,ARM架構在快速的演進。而Azure中國版的更新進度卻慢慢吞吞。這給用戶特別是開發者帶來很大的麻煩。java

SDK

全部Azure的SDK,包括.net,java,nodejs等,都是基於Azure RESTful API的。若是RESTful API的版本落後,或者某些API不存在,任何SDK都無法工做。以Java SDK爲例,其master版本已是1.0了,
clipboard.png
由於這個本版本中用到了版本號爲:2016-04-30-preview的API,而這個版本的API在Azure中國版尚未發佈。若是想用Java SDK,而且還想用ARM模式管理Azure資源,辦法只有一個:回退到0.9版本
總結下來就是:對於全部的Azure SDK來講,若是最新版沒法在Azure中國版上運行,那麼就只能降級。具體降級幾個版本,請查閱官方文檔或者源代碼。原則只有一個:SDK中不能夠調用在Azure中國版上不存在的API版本node

ARM Template

所謂的ARM Template,能夠理解爲調用REST API的request body,所以,在ARM Template中,是會包含API版本信息的,例如:
clipboard.png
顯然,這個template在Azure中國版上也是無法使用的。但更大的問題是:Azure官方的ARM Template,只要是持續更新的,無論是文檔裏面的,GitHub上的仍是blog上發佈的,都是與Azure國際版保持一致。所以,目前狀況是:大多數ARM Template已經無法直接在Azure中國版上使用了!
對於compute而言,除了上述提到的API版本號問題,還有一個就是:Managed Disk,Azure國際版已經全面過分到Managed Disk,而Azure中國版仍是傳統的storage磁盤。
例如:Azure國際版上VM的Disk定義是這樣的:api

"osDisk": {
            "createOption": "FromImage"
          },
          "dataDisks": [
            {
              "diskSizeGB": "1023",
              "lun": 0,
              "createOption": "Empty"
            }
          ]

而Azure中國版VM的Disk定義倒是這樣的:架構

"osDisk": {
                "osType": "Linux",
                "name": "cg-dev-t001",
                "createOption": "FromImage",
                "vhd": {
                    "uri": "https://rgt01disks932.blob.core.chinacloudapi.cn/vhds/cg-dev-t00120170310132202.vhd"
                },
                "caching": "ReadWrite"
            },
            "dataDisks": []

因而可知,將Azure國際版的ARM Template翻譯成for Azure China的版本,工做量仍是挺大的。
Microsoft造就了全宇宙中體積最大,功能最強的IDE,但不知道爲何一直沒有給ARM Template作一個可視化編輯器,這方面,卻是AWS的Cloud Formation走在了前面。
clipboard.png
Azure卻是有一個第三方的ARM Template工具,可是看起來最近都沒有怎麼更新了。其使用體驗也的確不咋滴。
clipboard.png編輯器

相關文章
相關標籤/搜索