Windows Azure Storage Tables - drugi del

by Rok Bermež 13. September 2013 06:54
V prejšnjem članku smo naredili uvod v NoSql podatke v oblaku ter 'Windows Azure Storage', tokrat pa bomo nadaljevali z raziskovanjem 'Tables' aspekta te storitve. Dandanes obstaja mnogo podatkovnih platform od katerih ima vsaka svoje prednosti slabosti. Mnogo od teh deluje po konceptu NoSQLja, kar pomeni da ni uporabljen RDBMS (a relational database management system) model. Skratka nimamo tabel in SQL stavkov, temveč druge podatkovne strukture, ki so po navadi masovne zbirke ključ/vrednost parov ali pa asociativnih nizov.  Priljubljeni izbori danes so are MongoDB, Cassandra, HBase, CouchDB, Neo4j in Windows Azure Tables, od katerega zadnjemu se bomo posvetili tokrat. Kljub velikim razlikam imajo tako SQL in NoSQL baze eno skupno stvar: te tehnologije so (lahko) na voljo kot storitev v oblaku in tako  sprostijo razvijalce pred ročnim provizioniranjem in de-provizioniranjem podatkovnih strežnikov. Tako so tudi Windows Azure Tables ponujene kot storitev in nam razvijalcem ni treba razmišljati o tem, kot o nekem ločenem fizičnem strežniku. Ena od pomembnejših značilnosti Windows Azure tabel je, da je njihovo hranjenje na voljo na treh geografsko porazdeljene regijah, ki so ZDA, Evropa in Azija. Vsak Microsoftov datacenter je v skladu z  Mednarodno organizacijo za standardizacijo (ISO) 27001, SSAE 16 ISAE 3402, EU Model Clauses and Health Insurance Portability and Accountability Act (HIPAA) business associate agreement (BAA) standards. Druga pomembna značilnost je georedundanca, ki vam omogoča hranjenje podatkov v drugem podatkovnem centru v isti regiji, kar doda še eno stopnjo varnosti pri naravnih nesrečah. WAS (Windows Azure Storage) zmogljivosti in kapacitete so povezane z računi za upravljanje z njimi, tako posameznikov račun vključuje do 200TB prostora za shranjevanje. Windows Azure Tables so optimizirane za zagotavljanje neverjetno hitrega delovanje poizvedb v stanju velike obremenitve s pisanjem. Več o tem si lahko preberete na bit.ly / cMAWsZ. <!--[if !vml]--><!--[endif]--> Prav tako so na voljo WAS analitike, ki nam omogočajo sledenje zahtevkov za shranjevanje, analizo trendov uporabe in optimizacijo vzorcev podatkov ter beleženje dostopov iz računa za shranjevanje (več na bit.ly/XGLtGt). Najbolj jedrnat način za izražanje vrednosti Windows Azure Tabel je, da so podprte NoSQL ključ / vrednost (key/value) poizvedbe in to tudi med pisanjem pri veliki obremenitvi. Iz razvijalskega stališča  so Windows Azure tables namenjene za shranjevanje velikih zbirk neenakomernih objektov ali za serviranje spletnih strani z veliko prometa. Do podatkov shranjenih v  Windows Azure tabelah je mogoče dostopati od skoraj kjerkoli. Celoten sistem shranjevanja podatkov je osnovan na REST-u (is Representational State Transfer), kar pomeni da lahko katerikoli klient, ki je sposoben http komunikacije, deluje z WAS sistemom. Prav tako, REST API podpira vse potrebne operacije za delo s podatki. V naslednji številki, bomo pa videli kako to poteka v praksi.    

Tags:

.Net | Azure

Windows Azure Storage Tables - prvi del

by Rok Bermež 22. May 2013 15:41
Cena shranjevanja podatkov na disku je padla tako dramatično, da se zdi  kot znanstvena fantastika. To omogoča podjetjem shranjevanje ogromnih količin podatkov. Gospodarno shranjevanje velikih podatkov pa reši le polovico problema, saj je količina tako velika in kompleksna, da so tradicionalna orodja za upravljanje podatkovnih baz ter aplikacij za obdelavo podatkov,  neustrezna.     S tako veliko količino shranjenih podatkov na disku, so se pojavila nova vprašanja, kot so kako izvajati poizvedbe nad njimi, izmenjava podatkov, analiza ter v končni fazi tudi vizualizacija.   Moč računalništva v oblaku je tu vstopila ter zapolnila to potrebo. Sposobnost izvajanja masivno vzporednih programskih rešitev, ki tečejo na desetine,  stotine ali celo tisoče strežnikov - je čudežna rešitev, ki omogoča organizacijam obdelavo vseh teh shranjenih podatkov.   Microsoft je ta pomemben trend spoznal že kar nekaj let nazaj. Storitev Windows Azure Storage (WAS) je bila lansirana  novembra 2008 in je dramatično izboljšala sposobnost podjetij, da bi dobili vrednost iz masivne količine podatkov.   Po besedan Microsoftovih inženirjev, ki so sodelovali na tem projektu je WAS: "Windows Azure Storage je sistem za shranjevanje podatkov v oblaku, ki omogoča strankam hranjenje navidezno neomejene količine podatkov za kakršno koli časovno obdobje in je zelo visoko dostopen ter vzdržljiv. Ko uporabljate Windows Azure Storage, boste imeli dostop do vaših podatkov od kjerkoli, kadarkoli in plačali boste zgolj uporabo ter hrambo."   WAS se znotraj Microsofta uporablja za aplikacije, kot so družabne mreže, serviranje video in glasbe ter zabavnih vsebin, vodenje zdravstvenih evidenc. Prav tako se uporablja v Bing isklaniku za praktično takoj dosegljive javne vsebine iz Facebooka in  Twitter-ja. S približno 350 TB podatkov na dan je obseg tega izjemen. Ko se podatki obdelajo, doseže število transakcij tudi do 40000 transakcij na sekundo in konča nekje med 2 in 3 miljarde na dan.   V naslednji seriji člankov si bomo pogledali en vidik WAS storitve – Windows Azure Tables, kako deluje ter kako razvijalci te storitve uporabimo.  

Tags:

.Net | Azure

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. Nato v naših oblačnih vlogah vklopimo Connect modul, tako da v ServiceDefiition.csdef dodamo: Ter mu v csconfig datoteki nastavimo specifično naš aktivacijski žeton: 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. Po namestitvi, se bo nekaj sekund kasneje računalnik pojavil kot aktiviran na management portalu. Preostane nam samo še konfiguracija naše virtualne mrežne topologije, kar naredimo tako da ustvarimo EndPoint skupino ter nastavimo primerna pravila. 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. 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. 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: 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. Preostane nam zgolj registracija zagonske naloge v ServiceDefinition.csdef datoteki. 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

Azure AppFabric Cache HowTo

by Rok Bermež 2. May 2011 19:24
Well since we now have Azure AppFabric Cache available, let’s get a head start on how to use it in your Cloud ASP.NET (MVC) application. First, you need to have AppFabric 1.0 April Refresh SDK installed on your machine so grab it at here. Next, go to Windows Azure Management portal. Log in, go to AppFabric/Cache and create new service namespace: wait for the service to be activated. Then click 'View Client Configuration Button' you will get a nice pre prepared configuration settings (with all those pesky security information included) for your app: now we have all the pieces of the puzzle ready, all we have to do is to add references to caching dlls (located at C:\Program Files\Windows Azure AppFabric SDK\V1.0\Assemblies\NET4.0\Cache) to our application and change web.config with the settings given by previous step. You would always need to put cache section in <configSections> node: <section name="dataCacheClients" type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" allowLocation="true" allowDefinition="Everywhere"/> and configure your Cache EndPoints: <dataCacheClients> <dataCacheClient name="default"> <hosts> <host name="ntkonferenca.cache.windows.net" cachePort="22233" /> </hosts> <securityProperties mode="Message"> <messageSecurity authorizationInfo="1AmN0tT371NgUtH@T"> </messageSecurity> </securityProperties> </dataCacheClient> <dataCacheClient name="SslEndpoint"> <hosts> <host name="ntkonferenca.cache.windows.net" cachePort="22243" /> </hosts> <securityProperties mode="Message" sslEnabled="true"> <messageSecurity authorizationInfo="1AmN0tT371NgUtH@T"> </messageSecurity> </securityProperties> </dataCacheClient> </dataCacheClients> If your application uses Session State and you want it to use Azure AppFabric Cache (which you do) you change your <sessionState> node to: <sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider"> <providers> <add name="AppFabricCacheSessionStoreProvider" type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache" cacheName="default" useBlobMode="true" dataCacheClientName="default" /> </providers> </sessionState> and the same for OutputCache by changing <caching> note: <caching> <outputCacheSettings enableFragmentCache="true" defaultProvider="DistributedCache"> <outputCacheProfiles> <add name="default" duration="43000" /> <add name="DistributedCache" type="Microsoft.Web.DistributedCache.DistributedCacheOutputCacheProvider, Microsoft.Web.DistributedCache" cacheName="default" dataCacheClientName="default" /> </outputCacheProfiles> </outputCacheSettings> </caching> That’s it, nothing needs to be changed in your code, your app is configured and ready to be published to the cloud. AppFabric Cache is not a free service even if you won’t be charged anything for its use prior to August 1, 2011. After that the prices are: 128 MB cache for $45.00/month 256 MB cache for $55.00/month 512 MB cache for $75.00/month 1 GB cache for $110.00/month 2 GB cache for $180.00/month 4 GB cache for $325.00/month In my next post, Ill tackle with using AppFabric Cache without using prepared providers by simple GET and PUT statements (lets get rid of HttpRuntime.Cache as well).  

Tags:

.Net | c# | Azure

Windows Azure AppFabric Caching Service Released

by Rok Bermež 30. April 2011 10:52
Finally the Azure thingy I’ve been waiting for the most. From the official source: Today we are excited to announce that the Caching service has been released as a production service.   The Caching service is a distributed, in-memory, application cache service that accelerates the performance of Windows Azure and SQL Azure applications by allowing you to keep data in-memory and saving you the need to retrieve that data from storage or database. We provide 6 different cache size options for you to choose from, varying from 128MB to 4GB.  In order for customers to be able to start using the service and evaluate your needs we are running a promotion period in which we will not be charging for the service for billing periods prior to August 1, 2011. To learn more about the Caching service please use the following resources: ·        Windows Azure AppFabric Caching availability announced!! blog post, including more information on pricing. ·        Video: Introduction to the Windows Azure AppFabric Cache ·        Video: Windows Azure AppFabric Caching – How to Set-up and Deploy a Simple Cache ·        Windows Azure AppFabric FAQ on MSDN ·        MSDN Documentation The service is already available in our production environment at: http://appfabric.azure.com. For questions on the Caching service please visit the Windows Azure Storage Forum. Customers can take advantage of our free trial offer to get started with the Caching service and Windows Azure AppFabric. Just click on the image below and get started today!  

Tags:

.Net | Azure

Calendar

<<  January 2018  >>
MonTueWedThuFriSatSun
25262728293031
1234567
891011121314
15161718192021
22232425262728
2930311234

View posts in large calendar

Page List

Month List