Windows Azure - Uma Plataforma para o Desenvolvimento de Aplicações
-
Upload
comunidade-netponto -
Category
Technology
-
view
1.477 -
download
2
description
Transcript of Windows Azure - Uma Plataforma para o Desenvolvimento de Aplicações
Windows AzureUma Plataforma para o Desenvolvimento de Aplicações
Pedro Rosa
http://netponto.org11ª Reunião Presencial - 19/06/2010
Pedro Rosa - DeepDiveIn
Contacto+351 961 624 203
LinkedInhttp://pt.linkedin.com/in/pedrobarraurosa
Twitterhttp://twitter.com/pedrorosa
Business Drivers for IT Projects
• Increase market share and revenue– Investing in product development and customer
facing interaction channels• Increase efficiency and lower TCO
– Investing in technologies and processes to drive efficiency and lower cost through optimization
Economy of ScaleLow High
ControlHigh Low
On premises vs. in the cloud
This is new…
Leveraging Economy of Scale
Ratio between $ buckets for medium and very large DC
Technology RatioNetwork 7.1Storage 5.7Administration 7.1
Source: Above the Clouds: A Berkeley View of Cloud Computing
Short distance access to hydroelectric power
Long distance transmission over the grid
Energy generation based on expensive resources
Location Matters
Short distance access to hydroelectric power
Long distance transmission over the grid
Energy generation based on expensive resources
Price per KWH 3.6¢ Idaho 10.0¢ California
18.8¢ Hawaii
Location Matters
Application runs on-premises
Buy my own hardware, and
manage my own data center
Application runs at a hoster
Pay someone to host my
application using hardware that I
specify
Application runs using cloud
platform
Pay someone for a pool of computing resources that can be applied to a set
of applications
Datacenter Options
Datacenter Options
Application runs on-premises
• Bring my own machines, connectivity, software, etc.
• Complete control and responsibility
• Upfront capital costs for the infrastructure
Application runs at a hoster
• Rent machines, connectivity, software
• Less control, but fewer responsibilities
• Lower capital costs, but pay for fixed capacity, even if idle
Application runs using cloud
platform
• Shared, multi-tenant environment
• Offers pool of computing resources, abstracted from infrastructure
• Pay as you go
Software as a Service• Use applications over a network
Platform as a Service• Deploy customer-created applications to
a cloud
Infrastructure as a Service• Rent processing, storage, network
capacity, and other fundamental computing resources
X as a Service
IaaS
• User gets access to a pool of resources through VM abstraction
• User needs to patch/maintain the system• Scales only if stateless or if well partitioned
• E.g. Amazon EC2
PaaS
• User gets access to a pool of resources through a programming model
• System is managed by the cloud provider• Platform (programming model) can provide
scalability
• E.g. Windows Azure, Google App Engine
SaaS
• User gets access to applications• System is completely managed by the cloud
provider• Cloud provider may offer customization and
extensibility options
• E.g. Salesforce.com, Microsoft BPOS, Google Apps
Need for Elasticity
Wall Street firm on Amazon EC2
3000 CPU’s for one firm’s risk management processes
Num
ber
of E
C2
Inst
ance
s
300 CPU’s on weekends
Thursday4/23/2009
Friday4/24/2009
Sunday4/26/2009
Monday4/27/2009
Tuesday4/28/2009
Saturday4/25/2009
Wednesday4/22/2009
3000--
300 --
Scale through PaaS
• The platform abstracts the physical infrastructure• Ability to scale built into the programming model
– Google’s AppEngine– Microsoft’s Windows Azure– Amazon’s elastic MapReduce– …
What is Windows Azure?An Operating System for the cloud
• Hardware Abstraction across multiple servers• Distributed Scalable, Available Storage• Deployment, Monitoring and Maintenance• Automated Service Management, Load Balancers,
DNS• Programming Environments• Interoperability• Designed for Utility Computing
Why Windows Azure?
• OS Takes care of your service in the cloud– Deployment– Availability– Patching– Hardware Configuration
• You worry about writing the service
What is Windows Azure?Features
• Automated Service Management• Compute• Storage• Developer Experience
DeveloperTools
What is Windows Azure?
Compute• .NET 4.0• Server 2008 – 64bit• Full Trust*• Web Role
• IIS7 Web Sites (ASP.NET, FastCGI)
• Web Services (WCF)
• Worker Role• Stateless Servers• Http(s), TCP
Storage
DeveloperTools
What is Windows Azure?
Compute
Storage• Durable, scalable, available• Blobs• Drives• Tables• Queues• REST interfaces
– Can be used without compute
All of the hardwareHardware Load BalancersServersNetworksDNSMonitoring
Automated service management
What is Windows Azure?
Compute Storage
DeveloperTools
What is Windows Azure?
Compute Storage
Developer SDK
• Windows Azure SDK– Local Development Fabric emulates running multiple
instances, load-balancing, service API– Local Development Storage emulates blob, tables and
queue storage– Command line tools allows integration outside of Visual
Studio
• Microsoft Visual Studio 2008, 2010 add-in– Provide rich tooling and templates to easily build your
application
Windows Azure API
• All operations are accessed through RoleEnvironment• RoleEnvironment Handles
– Retrieving configuration information– LocalResource locations (local disk)– Accessing Role information like InstanceEndpoints necessary for
inter-role communication– Exposes events during instance lifecycle, allowing a chance to
respond to topology or config change
Service Models
• Describes your Service<?xml version="1.0" encoding="utf-8"?><ServiceDefinition name="CloudService1" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition"> <WebRole name="WebRole"> <ConfigurationSettings> <Setting name="AccountName"/> </ConfigurationSettings> <LocalStorage name="scratch" sizeInMB="50"/> <InputEndpoints> <!-- Must use port 80 for http and port 443 for https when running in the cloud --> <InputEndpoint name="HttpIn" protocol="http" port="80" /> </InputEndpoints> </WebRole> <WorkerRole name="WorkerRole"> <ConfigurationSettings> <Setting name="AccountName"/> <Setting name="TableStorageEndpoint"/> </ConfigurationSettings> </WorkerRole></ServiceDefinition>
Service Architecture
Service Architecture
Storage
• Blobs, Drives, Tables, Queues• Designed for the cloud
– 3 replicas– Guaranteed consistency
• Accessible directly from the internet via REST API – .NET Client library supported
• Does not require compute• Storage account drives unique URL, e.g.:
– https://<youraccount>.blob.core.windows.net
Blobs
• Blobs stored in Containers• 1 or more Containers per account
– Scoping is at container level– …/Container/blobname– $root is special name for root container
• Blobs– Two types, Page and Block
• Page is random R/W, Block has block semantics– Metadata, accessed independently
• name/value pairs (8kb total)
• Private or Public container access
Queues
• Simple asynchronous dispatch queue– Create and delete queues
• Message:– Retrieved at least once– Max size 8kb– Operations:
• Enqueue• Dequeue• RemoveMessage
Tables
• Entities and properties (rows & columns)• Tables scoped by account• Designed for billions+• Scale-out using partitions
– Partition key & row key– Operations performed on partitions– Efficient queries– No limit on number of partitions
• Use ADO.NET Data Services
Service Lifecycle
• Create service packageBinaries + Content + Service Metadata
• Deploy via web portal or Service Management API• Add & remove capacity via web portal or API• Deployed across fault domains• Upgrade with zero downtime
Automated Service Management
• You tell us what, we take care of how• What
– Service metadata• How
– Metadata describes service– No OS footprint– Service is copied to instances– Instances were copied to physical hardware– Physical hardware booted from VHD– All patching is performed offline
Service Monitoring
• SDK component providing distributed monitoring & data collection for cloud apps
• Support Standard Diagnostics APIs– Trace, Debug normally
• Manage multiple role instances centrally• Scalable• Choose what to collect & when to collect it
– Event Logs, Trace/Debug, Performance Counters, IIS Logs, Crash Dumps, Arbitrary log files
Design Considerations
• Scale and availability are the design points• Storage isn’t a relational database• Stateless
– Stateless front ends, store state in storage• Use queues to decouple components• Instrument your application (Trace)• Once you are on - stay on• Think about patching & updates
The CxO Value Proposition
• Time to Market– No upfront CAPEX– Instant access to compute resources
• Total Cost of Ownership – CAPEX/OPEX– Economy of scale– Elasticity
• Productivity– Higher level of abstraction for compute resources
• Risk Mitigation– Allows for trial and error– Unpredictable utilization patterns
Cloud Pricing
• Pricing Options– Pay as you go – flexible but unpredictable– Flat fees, Quotas, Limits allow for better control– Decisions based on business model, predictability, IT budgeting
• Pricing Dimensions– Compute pricing
• # CPUs (hours deployed vs. hours utilized)• Dedicated local storage & memory
– Bandwidth (inbound, outbound, inter-DC)• Can become very pricy for large storages• Disk shipments
– Storage• Average used storage capacity vs. , “fixe sized” storage• Storage transactions (read, write)• Used query time
The Bandwidth Challenge
• Storage vs. Bandwidth• Time and cost of transferring data
– AWS Import/Export• Compute and storage location matters
– Compute where the data is stored instead of moving the data to the compute resource
The Regulation Challenge
• Safe Harbor Act– Datacenter locations matter
• Patriot Act– Big Brother might get access to your data
• Industry Regulations– E.g. Payment Card Industry Data Security
Standard (PCI DSS)
Where to Start?
• Find a business case first!• Compute Scenarios
– Capabilities with little integration requirements• Input compute output
– High scalability/performance requirements– Challenging utilization requirements
• Storage Scenarios– Archiving solutions– Cross-corporate data sharing– Look for capabilities with infrequent compute
Questões?
Patrocinadores desta reunião
Próximas reuniões presenciais
• 19/06/2010 - Junho• 10/07/2010 - Julho• 14/08/2010 - Agosto• 18/09/2010 - Setembro
Reserva estes dias na agenda! :)
Obrigado!
Pedro Rosahttp://pt.linkedin.com/in/pedrobarraurosahttp://twitter.com/pedrorosa