Date post: | 09-Jul-2015 |
Category: |
Technology |
Upload: | josef-finsel |
View: | 342 times |
Download: | 0 times |
Software as Service and Microsoft Azure
Leveraging Microsoft’s Infrastructure Leveraging Microsoft’s Infrastructure to Provide Scalabilityto Provide Scalability
What is Software as Service
• Software as a service is reallySoftware as a service is reallyComputing as a utilityComputing as a utility
• Quick History of ElectricityQuick History of Electricity
Water was First Power Source
• Limited locationLimited locationof manufacturingof manufacturing
• Dependent uponDependent uponWeatherWeather
Steam Replaced Water
• Less LocationLess Locationdependentdependent
• Expensive toExpensive toinstall and install and maintainmaintain
Steam Power had Dangers
• ComplexComplexbelts tobelts totransfer transfer powerpower
Electricity pre-1890s
• Factories required their own power plants Factories required their own power plants because it wasn’t practical to transmit because it wasn’t practical to transmit electricity large distanceselectricity large distances
• ExpensiveExpensive• Growth was a large capital investmentGrowth was a large capital investment
Electricity 1890s On
• Nikola Tesla and Alternating Current Nikola Tesla and Alternating Current caught on and suddenly energy could be caught on and suddenly energy could be delivered from far awaydelivered from far away
• It’s a utility that we don’t think about much, It’s a utility that we don’t think about much, apart from business continuityapart from business continuity
• Only pay for what we useOnly pay for what we use
The Web Based Electricity Analogy
• In the early 1980s through mid-1990s, our In the early 1980s through mid-1990s, our computers were stand-alone or, at best, computers were stand-alone or, at best, connected within our businesses, much the connected within our businesses, much the way early mills were located along streams.way early mills were located along streams.
Along Came the Internet
• With the Internet, we were able to open a With the Internet, we were able to open a path to other businesses to interact with us.path to other businesses to interact with us.
• Start with a couple of servers that could Start with a couple of servers that could grow to a large data center. grow to a large data center.
• Data center must be large enough to handle Data center must be large enough to handle peak loadspeak loads
Along Came the Internet (cont)
• Peak load may require machines and Peak load may require machines and licenses that are idle large amounts of timelicenses that are idle large amounts of time
• Need personnel to manage Need personnel to manage • Clustering leads to more complexity and Clustering leads to more complexity and
higher development costshigher development costs
Software as Services / Utility
• Let someone else worry about the data Let someone else worry about the data center/ hardwarecenter/ hardware
• Our programs are like lamps, we run as Our programs are like lamps, we run as many of them as we need and pay for the many of them as we need and pay for the resources they useresources they use
Microsoft Azure
• Azure Hosted ServicesAzure Hosted Services• Run your software in the cloudRun your software in the cloud
• Azure Storage Azure Storage • Store files (Blob Storage)Store files (Blob Storage)• Handle Transactions (Queue Storage)Handle Transactions (Queue Storage)• Scalably store data (Table Storage)Scalably store data (Table Storage)
Azure Hosted Services
• Currently has two partsCurrently has two parts• Web Roles (ASPX Web Sites in the Web Roles (ASPX Web Sites in the
Cloud)Cloud)• Worker Roles (Services in the Cloud)Worker Roles (Services in the Cloud)
• Run multiple instances as neededRun multiple instances as needed
Web Roles
• ASPX Web SitesASPX Web Sites• Subset of ASP.NET and Windows Subset of ASP.NET and Windows
Communication Foundation (WCF) Communication Foundation (WCF) technologies. technologies.
• Can include Azure Specific Code but Can include Azure Specific Code but doesn’t need todoesn’t need to
Web Role Demo 1
• Creating and deploying a siteCreating and deploying a site
Configuring the Cloud
• Multiple web roles may be different Multiple web roles may be different machinesmachines
• Can change the Service Configuration for Can change the Service Configuration for worker and web rolesworker and web roles
Worker Roles
• Like Windows ServicesLike Windows Services• Difficult to DebugDifficult to Debug• Best to use as lightweight wrapper to Class Best to use as lightweight wrapper to Class
Library Library
Worker Role Demo
Azure Storage
• Blob StorageBlob Storage• Queue StorageQueue Storage• Table StorageTable Storage
Azure Storage
• Uses a REST-ful API for accessUses a REST-ful API for access• Uses an Account plus a keyUses an Account plus a key
http://{account}.http://{account}.{storagetype}.core.windows.net{storagetype}.core.windows.net
Blob Storage
• Containers are URIs that contains BlobsContainers are URIs that contains Blobs• Can be public or privateCan be public or private
• Can’t nest Containers but a Blob’s name Can’t nest Containers but a Blob’s name can be path like to fake directoriescan be path like to fake directories
Blob Storage Demo
Queue Storage
• Queues are URIs that contain messagesQueues are URIs that contain messages• Messages are 8KB text blocksMessages are 8KB text blocks• If you need more than 8KB for the If you need more than 8KB for the
Queuing, store pointer to Blob StorageQueuing, store pointer to Blob Storage
Queue Storage Demo
Table Storage
• Schemaless DataSchemaless Data• Atom/XMLAtom/XML
Structures
• Tables are collections of Tables are collections of • Entities that have a Primary Key and a Entities that have a Primary Key and a
collection ofcollection of• PropertiesProperties
Tables
• Tables Names Tables Names • must be uniquemust be unique• alphanumeric and not begin with a numberalphanumeric and not begin with a number• case sensitive and must be 3-63 characterscase sensitive and must be 3-63 characters
• Tables have no schema and can contain entities Tables have no schema and can contain entities with different propertieswith different properties
• Are really URIsAre really URIs
Entities
• Have three required propertiesHave three required properties• Partition key Partition key • Row keyRow key• Timestamp (read only, created by server)Timestamp (read only, created by server)
• Key fields are alphanumeric but cannot Key fields are alphanumeric but cannot contain /, \, # or ?contain /, \, # or ?
• Can have 252 other propertiesCan have 252 other properties• Maximum entity size 1MBMaximum entity size 1MB
Keys
• ATS uses partitioning for load balancingATS uses partitioning for load balancing• Partition keys uniquely define the partition Partition keys uniquely define the partition
the data lives onthe data lives on• Hint as to how to group dataHint as to how to group data
• Partition key + Row key = Primary KeyPartition key + Row key = Primary Key• Performance can be affected by KeysPerformance can be affected by Keys• The combination of keys define both The combination of keys define both
scalability and uniquenessscalability and uniqueness
Comparing ATS and SQL Server
• Scaling SQL ServerScaling SQL Server• Scale up (more powerful hardware)Scale up (more powerful hardware)• Scale out (more pieces of hardware)Scale out (more pieces of hardware)
• Scaling ATSScaling ATS• Simplify to do more with same hardwareSimplify to do more with same hardware
What SQL Server Offers
• SQL Server does a lot of maintenance work SQL Server does a lot of maintenance work for usfor us• JOINSJOINS• Foreign keysForeign keys• ViewsViews• IndicesIndices• Management comes with cost of faster Management comes with cost of faster
hardware to compensate for the work hardware to compensate for the work needing to be doneneeding to be done
What ATS Offers
• Simpler structureSimpler structure• Less management featuresLess management features• Delivering a static page takes fewer Delivering a static page takes fewer
resources than dynamically created one resources than dynamically created one making it more scalablemaking it more scalable
ATS Advantages
• ATS uses simplicity to achieve scalabilityATS uses simplicity to achieve scalability• Requires rethinking how we perceive dataRequires rethinking how we perceive data• Schemaless tables (similar to Google’s Schemaless tables (similar to Google’s
BigTable)BigTable)• EntityEntity• AttributeAttribute• ValueValue
Quick Quiz
Rethinking required for:
• JOINsJOINs• TransactionsTransactions
What Data Should I Put in the Cloud?
• Anything you don’t mind losing control Anything you don’t mind losing control overover
• Items that require geographic dispersionItems that require geographic dispersion
Cost
• Not defined yetNot defined yet• Probably close to other providers Probably close to other providers
• Amazon’s SimpleDBAmazon’s SimpleDB
Availability
• Sign up now Sign up now
http://www.microsoft.com/azure/http://www.microsoft.com/azure/default.mspxdefault.mspx
Questions?
Links
• Microsoft AzureMicrosoft Azurehttp://www.microsoft.com/azure/http://www.microsoft.com/azure/default.mspxdefault.mspx
• ForumForumhttp://social.msdn.microsoft.com/Forums/en-US/windowsazure/threadshttp://social.msdn.microsoft.com/Forums/en-US/windowsazure/threads
• Azure Command ProjectAzure Command Projecthttp://http://www.amundsen.comwww.amundsen.com//
• Contact me:Contact me:http://www.reluctantdba.comhttp://www.reluctantdba.comTwitter: @carpdeusTwitter: @carpdeus