Oracle z oblaka

by Rok Bermež 27. March 2012 12:41

Oracle z oblaka

Včasih dobi kdo fiksno idejo, da integracija med aplikacijami pomeni pisanje ene aplikacije direktno v podatkovno bazo druge. V primeru, da naša aplikacije teče v Microsoftovem oblaku, druga pa uporablja Oracle podatkovno bazo skrito na neki skriti interni mreži, pridemo do zanimivega problema. Če ga razdelimo na dva dela, vidimo da moramo prvo nekako fizično povezati naše oblačne VM na katerih teče naša aplikacija z strežnikom na katerem se nahaja Oracle, brez da bi ga pri tem izpostavili celotnemu internetu. Nato, pa bo treba še našo aplikacijo prepričati oziroma mogoče bolje primerno rečeno VM na katerem teče, da se bo dejansko znala pogovarjat z #«!#!.

Za rešitev prvega problema lahko uporabimo mehanizem, ki sliši na ime Windows Azure Connect , in nam omogoča 'point to point' VPN povezavo med računalniki, ne glede na to na kakšnih mrežah in za kakšnimi požarnimi se nahajajo, seveda če imajo ti vsaj internetno povezavo.

Tega se lotimo tako, da na Windows Azure management portalu prisurfamo na 'Virtual Network' sekcijo, izberemo naročnino ter zahtevamo aktivacijski žeton in s tem vklopimo to storitev za našo naročnino.

clip_image001

Nato v naših oblačnih vlogah vklopimo Connect modul, tako da v ServiceDefiition.csdef dodamo:

clip_image002

Ter mu v csconfig datoteki nastavimo specifično naš aktivacijski žeton:

clip_image004

Za dostop do lokalnih virov, pa morama na vse računalnike do katerih bi radi dostopali namestiti Windows Azure Connect Endpoint programsko opremo, ki jo dobimo na naslovu (pri čemer moramo obvezno uporabiti Internet Explorer brskalnik): https://waconnecttokenpage.cloudapp.net/Default.aspx?token=moj_žeton_guid.

clip_image005

Po namestitvi, se bo nekaj sekund kasneje računalnik pojavil kot aktiviran na management portalu.

clip_image007

Preostane nam samo še konfiguracija naše virtualne mrežne topologije, kar naredimo tako da ustvarimo EndPoint skupino ter nastavimo primerna pravila.

clip_image009

Pri čemer lahko obkljukajo 'Interconnected' opcijo in s tem poskrbimo, da se bodo tudi lokalni EndPointi videli med seboj ter bodo tako dosegljivi tudi drug za drugega in ne zgolj z oblačnih virov.

clip_image011

Privzeto vlog v oblaku ne moremo pingati ker imajo vklopljen požarni zid, ki pa mu lahko z enostavno zagonsko nalogo (Startup task) dodamo novo pravilo in tako omogočimo tudi ping v oblak.

clip_image013

Prvi problem je tako rešen in se lahko posvetimo drugemu. Povezava na Oracle podatkovno bazo iz .NET kode z uporabo Oracle.DataAccess knjižnice ni problematična dokler imamo na sistemu nameščene Oraclove ODAC komponente, ki pa jih privzeto na VMjih v Windows Azure Compute storitvah ni.

Za njihovo namestitev bomo morali tako poskrbeti sami in sicer mora biti zadeva avtomatsko nameščena ob vsakem novem deploymentu. Prvi korak je iz oraclovega spletnega mesta poberemo zahtevane komponente; trenutno ODAC 11.2 Release 4 (11.2.0.3.0) with Xcopy Deployment, ki pa morajo biti 64 bitne in jih ni malo (okoli 60MB v kompresirani obliki). Tako bi v primeru, da bi jih deployali z našo aplikacijo, kar precej povečalo čas deploymenta. Zato jih je precej bolj smiselno odložiti v Azure Storage in poskrbeti da se v okviru zagonske naloge (Startup taska) naložijo na VMjev sistem, odpakirajo ter namestijo.

PowerShell skripta, ki bo vse te naloge opravila bo izgledala nekako tako:

clip_image014

Preden pa jo bomo v okviru zagonske naloge poklicali pa moramo poskrbeti, da bo poklicana zgolj v pravem in ne tudi v emuliranem okolju ter nastaviti politiko izvajanja PowerShell skript.

clip_image015

Preostane nam zgolj registracija zagonske naloge v ServiceDefinition.csdef datoteki.

clip_image017

Pozorni moramo biti, da imajo vse potrebne datoteke (*.cmd, *.ps1) 'Copy to Output Directory' opcijo nastavljeno na ' Copy always', nato pa lahko brez skrbi glede nadaljnjih popravkov in deplyomentov, na oblak namestimo našo aplikacijo, ki je sposobna komunicirati z 'on premises' Oracle podatkovno bazo.

Tags:

.Net | Azure | Visual Studio

Add comment

Calendar

<<  September 2018  >>
MonTueWedThuFriSatSun
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

View posts in large calendar

Page List

Month List