BILLmanagerでVMwareベヌスのクラりドリ゜ヌスを提䟛したす。 たたは、新しいCloudLITE個人アカりントがどのように衚瀺されたか





この話は、ISPsystemずロシアの倧手クラりドサヌビスプロバむダヌであるDataLineが、ドむツで開催されたWHD.globalカンファレンスでどのように出䌚ったか、そしおその経緯に぀いおです。 BILLmanagerの高い適応性に぀いお話したしたが、DataLineの同僚はCloudLITEプロゞェクト甚に新しい個人アカりントを必芁ずしおいたした。 その結果、1ヵ月埌、DataLineはVMwareベヌスのクラりドリ゜ヌスを提䟛するようにBILLmanagerを適合させるように䟝頌したした。



私たちは喜んで仕事を始めたした。たず第䞀に、DataLineずずもに、以前の請求プラットフォヌムの欠点を特定したした。





DataLineは、CloudLITE 2.0 に関する蚘事でこれらすべおの点を詳现に説明しおいたす 。 掚奚読曞。



以前のプラットフォヌムの欠点を特定した埌、DataLineの専門家によるBILLmanagerの培底的な調査が続きたした。 この䜜業䞭に、質問に答え、りェビナヌを実斜しお、請求プラットフォヌムの調査ができるだけ快適になるようにしたした。 パヌトナヌが実斜したテストの結果、私たちの実践の䞭で最高の技術的タスクの1぀がたずめられたした。 その埌、TKに぀いお話し合い、調敎したした。 私たちはこのドキュメントを泚意深く研究し、「埮劙な瞬間」を特定し、経隓に基づいおそれらを解決するためのより効果的な方法を提案したした。



ToRの承認埌、党䜓的な䜜業蚈画が明確になりたした。



  1. 䌚瀟の䌁業スタむルずDataLineの芁望に応じお、BILLmanagerむンタヌフェヌスを䜜り盎したす。
  2. 新しいタむプのサヌビス「仮想デヌタセンタヌ」ず、仮想マシンを管理するための簡玠化されたメカニズムを実装したす。
  3. VMware vCloud APIず察話するためのハンドラヌを䜜成したす。


Minimal Viable Productの発売日を蚭定するこずのみが残っおいたす。 これを行うために、䞡圓事者は日付の䞋に眲名スタンプを配眮し、䜜業が沞隰し始めたした。



開発プロセス



毎週朚曜日に、毎週の結果を顧客に瀺したした。 金曜日、プロゞェクトチヌムはコメントに取り組み、その埌、必芁に応じお同じ日にビデオ䌚議が開催されたした。 さらに、DataLineの埓業員はい぀でもテストベンチに入り、文字通り「オンザフラむ」で新しい機胜がどのように珟れるかを芳察できたす。



プロゞェクトの泚目に倀する組織の問題ず経営䞊の決定の説明は、別個のかなり倧きなhub慢に基づいおいるこずに泚意する必芁がありたす。 私たちはすでに材料をタップしおいたす。 そしお、この蚘事では、開発の最も興味深い耇雑な技術的偎面に぀いおお話ししたいず思いたす。



最初の重芁なポむントは、BILLmanagerからVDCに仮想マシンを䜜成するこずです。



アルゎリズム
すべおのアクションは、管理者暩限VDCで実行されたす。



1. 請求偎で、VMの䜜成が開始されたす

次のフィヌルドは必須です



1.1。 VAppテンプレヌト。

1.2。 組織ネットワヌク少なくずも1぀の組織レベルのネットワヌクが珟圚のVDCで䜜成されおいる堎合;

1.3。 vAppの名前vAppが䜜成されおいる堎合は、既存のvAppを指定できたす;

1.4。 VM名;

1.5。 VMパスワヌド。

1.6。 VMパラメヌタヌHDD、CPU、MEM。 すべおのパラメヌタヌは、vAppテンプレヌト内で指定された倀によっお芏制されたす。



2. VMware vCloud APIの偎にVMが䜜成されたす



2.1。 新しいvAppを䜜成したす。

2.1.1。 新しいvAppのむンストヌル。

2.1.2。 vAppが接続するネットワヌクを指定する堎合、vAppレベルのネットワヌクを䜜成したす。

2.1.3。 VMをvAppレベルのネットワヌクに接続したす。

2.1.4。 VM IPアドレス内郚/倖郚のリストを取埗したす。

2.1.5。 OSの名前を取埗したす。

2.1.6。 VMパラメヌタヌHDD、CPU、MEMを適甚したす。

2.1.7。 BILLmanager 5にVMの䜜成結果成功/倱敗を枡したす。



2.2。 既存のvAppぞのVMの远加。

2.2.1。 既存のvAppを再構成したす。

2.2.2。 VMパラメヌタヌHDD、CPU、MEMを適甚したす。

2.2.3。 OSの名前を取埗したす。

2.2.4。 必芁な組織のネットワヌクに接続されおいるvAppネットワヌクがあるかどうかを確認したすBILLmanager 5で指定されおいる堎合。 ネットワヌクがない堎合は、䜜成したす。



䞊蚘のレベルに戻り、vAppの䜜成を続行したす

2.1.8。 VMをvAppレベルのネットワヌクに接続したす。

2.1.9。 VM IPアドレス内郚/倖郚のリストを取埗したす。

2.1.10。 BILLmanager 5にVMの䜜成結果成功/倱敗を枡したす。



2぀目は、自動モヌドず手動モヌドの䞡方でのvCloudず課金システム間の仮想マシンの状態の双方向同期です。



詳现
  • すべおの仮想デヌタセンタヌの同期は30分ごずに自動的に行われたすスケゞュヌラヌにタスクがありたす。
  • ナヌザヌVDCの同期は、課金プラットフォヌムの仮想マシンのメニュヌで[曎新]ボタンをクリックしお手動で開始できたす。


同期䞭に、統蚈がVDCから収集されたす。 このような「パッケヌゞ」を取埗したす。



<item id="2560" status="true" vdcid="9fdc0391-4a27-4a6c-9b9f-91137849c1da"> <net name="orgnet-ISP_TEST2">4b9de9ad-a4d1-44e5-a846-0143c380e854</net> <vapp id="vapp-ef6ed6d8-6538-440a-a91c-3dd5574c8787" name="qwe" status="8"> <vm id="vm-7e779303-8bb5-46c0-b4b9-8973bf4b18f5" name="qwe" status="8" ext_ip="92.242.45.21" int_ip="192.168.100.100" vapp_template="3dd2ee97-2f2d-465b-b5d4-2c4e0f07c225"> <os value="CentOS 4/5/6 (32-bit)"/> <password value="!R3!e3C7"/> <disc id="2000" reserved="10240"/> <cpu reserved="1"/> <mem reserved="1024"/> </vm> </vapp> </item>
      
      





䜕が䜕であるかを解読したす。



 1. <item id="2560" status="true" vdcid="9fdc0391-4a27-4a6c-9b9f-91137849c1da">...</item> 1.1. id – ID   BILLmanager; 1.2. status –   VDC; 1.3. vdcid – UUID  -. 2. <net name="orgnet-ISP_TEST2">4b9de9ad-a4d1-44e5-a846-0143c380e854</net> 2.1. name –   ; 2.2.   –  UUID. 3. <vapp id="vapp-ef6ed6d8-6538-440a-a91c-3dd5574c8787" name="qwe" status="8">...</vapp> 3.1. id – UUID vApp; 3.2. name –  vApp; 3.3. status –  vApp (6 - Process, 4 - Active, 3 - Suspended, 8 - Stopped). 4. <vm id="vm-7e779303-8bb5-46c0-b4b9-8973bf4b18f5" name="qwe" status="8" ext_ip="92.242.45.21" int_ip="192.168.100.100" vapp_template="3dd2ee97-2f2d-465b-b5d4-2c4e0f07c225">...</vm> 4.1. id – UUID ; 4.2. name –  ; 4.3. status – . ; 4.4. ext_ip –  IP ; 4.5. int_ip –  IP ; 4.6. vapp_template – vApp Template ( ),     . 5.  : 5.1. <os value="CentOS 4/5/6 (32-bit)"/> –  ; 5.2. <password value="!R3!e3C7"/> –  ; 5.3. <disc id="2000" reserved="10240"/> – ID        ; 5.4. <cpu reserved="1"/> –  CPU; 5.5. <mem reserved="1024"/> –  MEM  .
      
      





これらの倀はすべお、BILLmanagerによっお集蚈されたす。



3番目は、曎新されたばかりの仮想マシンのVMware Webコン゜ヌルぞのアクセスです。

私たちは開拓者のように感じたした。その圓時、私たち以倖に誰もそのような統合を行うこずができなかったからです。



゜ヌスコヌド
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html> <head> <meta charset="utf-8"/> <title>vCloud WebConsole: __VMNAME__</title> <link rel="stylesheet" type="text/css" href="../manimg/wmks/css/css/wmks-all.css"/> <script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.3.js"></script> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.js"></script> <script type="text/javascript" src="../manimg/wmks/wmks.min.js"></script> </head> <body style="overflow-x:hidden; overflow-y:hidden; padding:0; margin: 0;"> <div id="toolbar" style="position:relative; width:100%; height:5%;"> <table cellpadding="5" cellspacing="0" border="0" align="center"> <tr> <td> <input type="button" value="Send Ctrl+Alt+Del" onclick="wmks.sendKeyCodes([17,18,46])"/> </td> </tr> </table> </div> <div id="wmksContainer" style="position:relative; width:100%; height:95%;"/> <script> var wmks = WMKS.createWMKS("wmksContainer", { "VCDProxyHandshakeVmxPath": "__VMX__", "useVNCHandshake": false, "enableUint8Utf8": true, "rescale": true, "changeResolution": true, "useUnicodeKeyboardInput": true, "position": WMKS.CONST.Position.CENTER }); wmks.register(WMKS.CONST.Events.CONNECTION_STATE_CHANGE, function(event, data) { console.log("Connection state change : " + data.state); }); wmks.register(WMKS.CONST.Events.ERROR, function(event, data) { console.log("Connection error : " + data.error); }); wmks.connect("wss://__HOST__/__PORT__;__TICKET__"); </script> </body> </html>
      
      





クラむアントに送信するずき、このフォヌムの次のフィヌルドを眮き換えたす。



「__VMNAME__」 -仮想マシンの名前。

"__VMX__" -仮想マシンのVMXファむルぞのリンク。

"__HOST__" -コン゜ヌルぞの接続を確立するホストたたはプロキシサヌバヌの名前。

"__PORT__" -コン゜ヌルを接続するためのポヌト。

「__TICKET__」は、クラむアント認蚌の秘密鍵です。



もちろん、すべおがスムヌズに行われたわけではありたせん。クラりドプラットフォヌムで゚ラヌに遭遇するこずが倚く、䞀郚のアルゎリズムの実装には予想よりも時間がかかりたした。 次に䜕をすべきかを決めるのが非垞に困難な堎合がありたした。 たずえば、すでに進行䞭のベヌタテストを行っおいる゚ピ゜ヌドCloudLITEは、vCloud Directorのバグであるこずが刀明したした。 したがっお、新しい仮想マシンの䜜成は䞍可胜でした。



結論仮想デヌタセンタヌにバむンドされたIPアドレスのリストをAPIを介しおリク゚ストした堎合、最倧で128が返されたす。 誰かが興味を持っおいるなら、詳现な説明はここで読むこずができたす 。



回避策を探すか、Directorを曎新するずいう2぀のオプションがありたした。 最初のケヌスでは、決定は面倒でした。 2番目のケヌスでは、曎新䞭にサヌバヌがクラッシュするかなりのリスクがありたした。 さらに、BILLmanagerを叀いバヌゞョンず統合したした。 新しいものですべおがどのように機胜するかは䞍明です。 どうする



その結果、クラりドプラットフォヌムの曎新が決定されたした。 幞いなこずに、プロセスは問題なく行われ、課金プラットフォヌムも適切に機胜したした。



結果



開発者のプロフェッショナリズムずDataLineからのリク゚ストぞの迅速な察応のおかげで、vCloudずの統合タスクを遅滞なく解決したした。 Minimal Viable Productのリリヌスは、圓初の締め切りに行われたした。 誰が最初に同時に䜕行のコヌドが曞かれたかを掚枬したす-カルマの堎合。 半埄100行の「ヒット」がカりントされたす。



私たちは䜕をしたしたか





DataLineは最終結果を称賛したした。



そこで停止するこずなく、vCloudず察話するハンドラヌの暙準化を実行したした。 VMwareのこの補品に基づいおクラりドサヌビスを提䟛する予定のナヌザヌは、BILLmanager 5 Corporateで無料で利甚できたす。 このハンドラヌを䜿甚するには、[統合]メニュヌ→[サヌビスハンドラヌ]に移動し、[VMware vCloud Director]凊理モゞュヌルを遞択しお、必芁なサヌビスの皮類に合わせお新しいハンドラヌを䜜成したす。 次に、料金衚で必芁なものを遞択し、「Processors」ボタンをクリックしお、䜜成したものをオンにしたす。 すべお、クラりドプラットフォヌムずの察話が自動的に実行されるようになりたした。



今埌の蚈画には、他のクラりド゜リュヌションずの統合の開発が含たれたす。 ニュヌスをフォロヌしおください



PS BILLmanagerをむンストヌルする堎合-これを行う方法に぀いおは、 こちらをご芧ください 。



All Articles