Windows Azure What, how and why Tutvustus Martin Maripuu Net Group OÜ
Agenda Why use cloud IaaS, PaaS, SaaS Windows Azure Developing for Windows Azure Miks kasutada pilve Tsükliline või skaleeruv tarbimine Kindlus Odavus IaaS, PaaS, SaaS Mis suunas toimub areng Mis on Azure Arendamine
On-premise hosting Klassikaline lähenemine, suuremates firmades enimkasutatud Ei ole otseselt halb – firmal otsene kontroll turvalisuse ja failoveri üle
% of Capital Equipment Budget spent on IT in 2000? 45% On-premise on kallis – tänu sellele et me ei kasuta resursse ära Commerce Department Statistics
% of Utilized Server Capacity on Average? 6% See ei tähenda et meil on 94% ruumi areneda... Tuleb mängu elastsus Economist Survey on IT, 2008
Elasticity – Provisioning for Peak Real World Server Utilization Is 5% to 20% Many Services Peak Exceeds Average by a Factor of 2 to 10 Most Provision for Peak Painful to Under-Provision (Lost Customers) Provisioning for Peak Without Elasticity, We Waste Resources (Shaded Areas) During Non-Peak Times Suure tehnikapoe (E) näide Low – 04-07, 11-13 Average - N High – 15-16, 18-20 – 8N High season – jõulude eelne nädalavahetus 80N
Elasticity: Risks of Under-Provisioning Potential Revenue (Shaded Area) Is Sacrificed Under-Provisioning #2 Some Users Respond to Under-Provisioning by Permanently Deserting the Site... Bad for Revenue!
Hosting Et vähendada IT infra kulusid
Hosting isn’t sliced bread Complex contracts Years of legal battles for reimbruisement Do you trust your hosting provider? Same elasticity and scaling problems
If only there was a way I pay ONLY for what i use ONLY when i use it With the ability to SCALE capacity up and down on-demand Without large initial INVESTMENT Providing data SECURITY and service FAULT-TOLERANCE
We just defined the CLOUD MANIFESTO
Cloud is not a Grid/Cluster Cloud manifesto could be satisfied by a service provider running a medium sized grid/cluster
Cloud is not a Grid/Cluster Illusion of infinite computing resources avalibale No illusion Content is delivered from a „cloud“ Content is delivered from a fixed point No upfront commitment needed Upfront commitment usually needed Illusion of infinite failover available Very specific failover limit Location independence Location dependence Agile scaling Not so agile scaling in most cases
Workload Patterns Optimal For Cloud Usage Compute Time Average Inactivity Period On & off workloads (e.g. batch job) Over provisioned capacity is wasted Time to market can be cumbersome Average Usage Compute Time Successful services needs to grow/scale Keeping up w/ growth is big IT challenge Complex lead time for deployment “On and Off“ “Growing Fast“
Workload Patterns Optimal For Cloud Compute Time Average Usage Unexpected/unplanned peak in demand Sudden spike impacts performance Can’t over provision for extreme cases Compute Time Average Usage “Predictable Bursting“ Services with micro seasonality trends Peaks due to periodic increased demand IT complexity and wasted capacity “Unpredictable Bursting“
IaaS, PaaS, SaaS Infrastruktuur Platvorm Tarkvara
IT as a service Private Infrastructure Platform Software (On-Premise) Applications Applications Applications Applications Runtimes Runtimes Runtimes Runtimes Security & Integration Security & Integration Security & Integration Security & Integration Databases Databases Databases Databases Managed by vendor Managed by vendor Servers Servers Servers Servers Virtualization Liigume vaikselt paremalt vasakule Hetkel oleme reaalsuses IaaS’is, veiid PaaS’i poole liikumas IaaS – klassikaline hosting, pilves EC2, Azure VM Role PaaS – pilves Azure Web ja Worker role, Google’i pilveteenused SaaS – ühtepidi vaadates meile pakutavad teenused – kasvõi gmail -- teistpidi teenused mida meil võimaldatakse pakkuda, nt. Wordpress kohaliku hostinuga, Salesforce Virtualization Virtualization Virtualization Server HW Server HW Server HW Server HW Storage Storage Storage Storage Networking Networking Networking Networking
IT as a service vs. hosting Private IaaS PaaS SaaS Tihti on piirid hägusad On-premise Hosted Cloud Hosting
Cost of ownership Small application, no significant change in usage patterns, no growth Pilv ei ole hõbekuul mis kõik meie probleemid lahedab ja samal ajal odav on
Cost of ownership Small application, medium change in usage patterns, medium growth
Cost of ownership Small application, significant change in usage patterns, significant growth Portaali (B) veebikaamera näide – vahel oleks otstarbekas meida hoida pilves 70k lahtist browserit 100k pilt 10 s refresh => 7000 päringut sekundis 700mb/s uplink Apache peal (8mb virtuallmälu per req) – 56GB/s virtuaalmälu eraldamise kiirus - saame osa loadist pilve delegeerida
Why scaling is cheap in a cloud? Volume Volume $500 machine $10,000 machine Cloud OS Up 1N – 500 4N – 10000 – ühiku hind kasvanud 5 korda – ühik – 2500$ 8N – 50000 (2LB, 3clustrit) – ühiku hind kasvanud 12,5 korda – ühik 6250$ Out N on N (reaalsuses, kui väga hästi tehtud siis N=1,01N ) Azure on Cloud OS $1000 machine $500 machine $500 machine $500 machine $500 machine # Machines Scale Up Scale Out
Windows Azure Azure jookseb hetkel MS datacentrites kuid selle aasta jooksul tuleb MS välja ka stand-alone Azure’iga private cloudide jaoks Põhiliselt räägin IaaS ja PaaS kihtidest Azure’is, kuid seal on ka SaaS kiht.
Azure Azure koondab väga suurt hulka erinevaid kasutajaid ja ärisid
Azure Azure – eirnevad komponendid, räägin igast lähemalt Pildil IaaS/PaaS kihid azureist
Azure – Applications and Data Rakendusele (rakenduse osale) antakse roll Roll on pmslt virtuaalmasina tüüp kus seda rolli täidetakse Igale rakenduse-rolli seosele saame määrata mitu instance’it sellest luuakse Näide: veebipood Front-End N web instances Back-End - teenustekiht / tellimuste töötlus – M instanceis
Azure – Applications and Data Web Role .NET (ASP, ASP.NET, MVC, WCF etc.) PHP Worker role .NET Java Perl Etc. VM role Virtually no limit Size CPU Memory Storage I/O Cost per hour Extra Small 1.0 GHz 768 MB 20 GB Low $0.05 Small 1.6 GHz 1.75 GB 225 GB Moderate $0.12 Medium 2 x 1.6 GHz 3.5 GB 490 GB High $0.24 Large 4 x 1.6 GHz 7 GB 1,000 GB High $0.48 Extra Large 8 x 1.6 GHz 14 GB 2,040 GB High $0.96
Azure – Roles Näide eri rollide kasutamisest 1 rakenduses Mitu instance’it teha? Staatiline (inimese poolt defineeritud nr) Ärireegel (nt vähemalt 10 inst kella 8’st 10ni) Kui 30 sec keskimine latency on üle 100ms siis loome uue Kombineeritud
Azure – Staging
Azure - Storage Kõik andmed asuvad vähemalt 3’s asukohas 3 eri tüüpi storaget Http/Soap/Rest/Xml ligipääs Storage $0.15 per GB stored per month $0.01 per 10,000 storage transactions http://<Account>.<Storage type>.core.windows.net/<Storage specific>
Azure - Blobs http://sally.blob.core.windows.net/images/PIC01.jpg Block – kuni 200GB, transaktsionaalne Blob skoobis, võimalik andmeid kasutada osadena (blockid) Page – kuni 1 TB, 512b pageid, transaktsionaalne page skoobis Blob URL: http://<Account>.blob.core.windows.net/<Container>/<BlobName> Example: Account – sally Container – images BlobName – PIC01.jpg URL: http://sally.blob.core.windows.net/images/PIC01.jpg or http://sally.blob.core.windows.net/PIC01.jpg if in root container http://sally.blob.core.windows.net/images/PIC01.jpg
Azure - Queues 8Kb sõnumid Lugemine teeb sõnumi ettemäärtud ajaks nähtamatuks (30s default) http://sally.queue.core.windows.net/thubmnailjobs/messages
Azure - Tables http://moviesonline.table.core.windows.net/Movies() Pole SQL Pole relatsioonilised Entitite arv ei pea olema sama tabeli piires Rea võtmeks on partitionkey*rowkey Toetab piiratud mahus LINQ’i http://moviesonline.table.core.windows.net/Movies()
Azure - Fabric Fabric controller on ise distributed application Fabric controller vastutab VM’ide töös hoidmise eest
Azure - Fabric Fabric controller valib optimaalse arvu fault domeene 2 role instence’i puhul nad kindlalt eraldi fault domeenides 10 instance’i puhul tõenäolislet ~5 eri domeenis Update domeenide arvu saame ise määrata – otsustame loadi põhiselt... Vähemalt kaks
Azure - CDN Sinu Azure storage accoundi sisu replikeeritakse 24’jale CDN datacentrile CDN’i kasutavad ka MS’i enda teenused – Windows Update, Zune Videos, Bing Maps jms. Sisu ajakohasust on väga lihtne manageerida
Azure - CDN $0.15 per GB for data transfers from European and North American locations $0.20 per GB for data transfers from other locations $0.01 per 10,000 transactions
Azure - Connect Kasutab IPv6 IPSEC tunnelit Vajalik on agendi olemasolu kohalikus masinas Toetab Vista, 7 2008, 2008 R2 Näide: Windows Server conenctiga storage accoundi küljes, jagab kohtvõrku välja NTFS share’ina
Azure - Connect Rollide ja gruppide haldamine
SQL Azure Üks paljudest SaaS teenustest mida Microsoft hostib Azure’is (olemas ka Sharepoint, Live, Net, CRM jms)
SQL Azure Power of SQL server with cloud preformance and reliability Saab teha pea kõike mida tavalises SQL serveris Saab kasutada SSMS’i Ei saa kasutada failisüsteemi käske (filegroups jms) Alternatiiv SQL serveri litsentsi ostmisele (Enterprise 27k$/cpu, Starndard 8k$/cpu, azure 1gb baas 9.99$/kuu, 0.15$/gb in/out transfer) 50gb baasi limiit Toetab shardingut
Developing for Azure Azure’i suureks plussiks on arenduse lihtsus ja arendusvahendite mitmekesisus Azure’i arenduseks pole vaja Azure spetsialisti, iga arendaja saab sellega ilusti hakkama peale väikest koolitust
Developing for Azure SDK Applications Connectivity Tools .NET Java PHP Ruby Python Tools Visual Studio Eclipse Development Fabric Applications Java MySql Tomcat Etc... Connectivity SOAP REST HTTP XML VM rollile deploydes võime kasutada misiganes keelt/serverit mis toimib Windows Server’i peal Igale keelele on lihtne kirjutada Storage API (rest/soap/http/xml)
Development life cycle Disain ja Arendus Testimine Provisioning – deployer määrab rakenduse parameetrid (rollide instance’ite arvud, stage/live jms) Fabric controller deployb VM’id kasutades update domeene Fabric controller vastutab et piisav arv instance’id jookseks
Development fabric Töötab SQL Express’i peal – saab tasuta kasutada Lihtne konfigureerida Projektides lihtne valida kuhu deployme
Emulator Compute UI Dvelpment fabrikus jookseb 1 rakendus, millel on 1 web role (2 instance’it) ja 1 worker role (6 instance’it), iga masina konsooli on võimalik vaadata, on võimalik tekitada failover situatsioone
Emulator Storage UI Testimise eesmärgil on võimalik andmeid tühjendada Andmetele pääseb ligi emulaatoris näidatud aadressidel, kasutades samu tehnoloogiaid nagu päris pilves
Configuration
Kas on tekkinud küsimusi?
Martin Maripuu martin.maripuu@netgroup.ee Tänud kuulamast! Martin Maripuu martin.maripuu@netgroup.ee