Cloud Computing with Zend Framework and Windows AzureJosh Holmes@joshholmesjosh.holmes@microsoft.comwww.joshholmes.com
AgendaTesting the WatersWhat is cloud computing?What are the advantages of cloud computing?How’s Azure fit in?Diving DeepDigging into PHP on AzureLeveraging Azure StorageLeveraging SQL Azure
We are all excited about the cloud
In House or Hosted ServersAllocated IT-capacitiesLoad Forecast“Under-supply“ of capacities“Waste“ of capacitiesFixed cost of IT-capacitiesIT CAPACITYBarrier forinnovationsActualLoadTIME
Cloud ComputingLoad ForecastAllocated IT capacitiesNo “under-supply“IT CAPACITYReduction of “over-supply“Possible reduction of IT-capacities in case of reduced loadReduction of initial investmentsActualLoadTime
Types of Hosting SolutionsPlatform(as a Service)Private(On-Premise)Infrastructure(as a Service)You manageApplicationsApplicationsApplicationsYou manageRuntimesRuntimesRuntimesSecurity & IntegrationSecurity & IntegrationSecurity & IntegrationManaged by vendorDatabasesDatabasesDatabasesYou manageServersServersServersManaged by vendorVirtualizationVirtualizationVirtualizationServer HWServer HWServer HWStorageStorageStorageNetworkingNetworkingNetworking
The Microsoft Cloud~100 Globally Distributed Data CentersQuincy, WAChicago, ILSan Antonio, TXDublin, IrelandGeneration 4 DCs
Microsoft Zend webcast on Azure
ZENDFRAMEWORK
Two sides to talk about…StorageComputeUser CodeRuntime APIVM SetupCloud VM
Data Storage
PHP with Windows Azure StorageSimpleCloud API @ http://simplecloud.orgWindows Azure SDK for PHP @ http://phpazure.codeplex.comPHP programming model for Windows Azure StorageFeatures PHP classes for Blobs, Tables & QueuesStore PHP sessions in Table Storage
Windows Azure 4 EclipseDoes a lot of the heavy lifting for youCreates the Web.config, Web.roleConfig, PHP implementation and debugs in the dev fabrichttp://windowsazure4e.orgDoes a lot of the heavy lifting for you
Windows Azure Data StorageQueueBlobAccountTablesDrives
Azure Platform Data Storage OptionsWindows Azure Data Storage
Blobs
Unstructured data storage
Tables
Semi-structured or tabular data storage
Queues
Buffered delivery data storage
Drives
Durable NTFS volumes that Windows Azure applications can use.  See: http://microsoftpdc.com/Sessions/SVC14SQL AzureRelational data storageWindows Azure Data Storage - BlobsUnstructured data storagePartitioned by containerUnlimited containers
Storage: XDriveNTFS drive in the cloud: X:\Fixed size between 16MB and 1TBMax 8 drives on your VMImplemented as a page blobSingle instance writeMultiple instance read
Queue Workflow ConceptsWindows Azure Queue ProvidesGuarantee delivery (two-step consumption)Worker Dequeues Message and mark it as InvisibleWorker Deletes Message when finished processing itIf Worker role crashes, message becomes visible for another Worker to processDoesn’t guarantee “only once” deliveryDoesn’t guarantee orderingBest effort FIFOWorker RoleWeb RoleInput Queue (Work Items)Worker RoleAzure QueueWeb RoleWorker RoleWeb RoleWorker Role
Azure QueuesRemoveMessageGetMessage (Timeout)Worker RolePutMessageQueueMsg 1Msg 2Msg 2Msg 1Web RoleWorker RoleWorker RoleMsg 3Msg 4Msg 2
Loosely Coupled Work with QueuesWorker-Queue ModelLoad work in a queueMany workers consume the queueInput Queue (Work Items)Azure QueueWorker RoleWeb RoleWorker RoleWeb RoleWorker RoleWeb RoleWorker Role
Windows Azure Data Storage - TablesSemi-Structured dataTables contain entitiesEntities contain propertiesMay be partitioned across thousands of servers.Support ACID transactions over single entitiesQueries over entire table.NET and REST interfaces
Windows Azure Data Storage – Tables (Terms Part 1)TableContains a set of entities.  Entity (Row) Basic data items stored in a table.  Property (Column)Single value in an entity.   RowKeyUnique ID of the entity within a partitionTimestampTime it was created
Windows Azure Data Storage – Tables (Terms Part 2)Partition Entities in a table with the same partition keyPartitionKeySegments entities in to partitions to automatically distribute the table’s entities over many storage nodes.Sort OrderThere is a single index provided for the CTP, where all entities in a table are sorted by PartitionKey and then RowKey
Key Example – Blog PostsPartition 1Partition 2Getting all of dunnry’s blog posts is fastSingle partitionGetting all posts after 2008-03-27 is slowTraverse all partitions
SQL Azure and Windows Azure Table ComparisonWindows Azure TablesSQL Azure TablesSemi-structuredLoosely typedNon-Relational (Not RDMS)Massively scalableFully structuredStrongly typedRelational (RDMS)Highly scalable
SQL Azure
SQL Azure FeaturesSupportedTables, Indexes, ViewsStored ProceduresTriggersConstraintsTable VariablesTemp Tables (#Name)Not SupportedPhysical Server Access Catalog DDLCommon Language RuntimeService BrokerReporting ServicesAnalysis ServicesDistributed Transactions and Queries
SQL AzureDeploymentWeb Portal(API)DB ScriptSQL AzureTDS
SQL AzureAccessing databasesWeb Portal(API)Your AppSQL AzureTDSChange Connection String
Database ReplicasSingle DatabaseMultiple ReplicasReplica 1Single PrimaryReplica 2DBReplica 3
SQL AzureDatabase Monitoring & RecoveryWeb Portal(API)!Your AppSQL AzureTDS
SQL Azure Database Connection StringAn administrative user is created with the serverUser has system administrator permissions likesa”Server=tcp:itte80vcfq.database.windows.net; Database=FabrikamAzureDB;User ID=SaPaulM;Password=myPassword;Trusted_Connection=False;Encrypt=True;
Windows Azure VMsSmallMediumLarge X Large$0.12 $0.24 $0.48 $0.96 Per service hourPer service hourPer service hourPer service hour1 x 1.6Ghz  2 x 1.6Ghz 4 x 1.6Ghz 8 x 1.6Ghz(moderate IO) (high IO)(high IO) (high IO)1.75 GB memory 3.5 GB memory 7.0 GB memory14 GB memory
Windows Azure, In One PictureBusiness PortalDeveloper PortalService Management ServiceRESTUser Code……Runtime APIStorage ClusterVS ToolsCompute Cluster…WA SDKVM SetupRESTMSFT DatacentersDesktopCloud VM
Windows Azure RolesWorkerRoleInternal Facing

More Related Content

PPTX
Wordpress on Windows
PPTX
IIS for Developers
PPTX
Microsoft Azure Websites for PHP Developers
PDF
Playing with php_on_azure
PPT
INTRODUCTION TO IIS
PPT
IIS 7: The Administrator’s Guide
PPTX
Php On Windows
PPT
Understanding IIS
Wordpress on Windows
IIS for Developers
Microsoft Azure Websites for PHP Developers
Playing with php_on_azure
INTRODUCTION TO IIS
IIS 7: The Administrator’s Guide
Php On Windows
Understanding IIS

What's hot (20)

PPT
IIS-Settings
PPTX
06.m3 cms set-upwebserver
PDF
IIS 7.0 Architecture And Integration With Asp.Net
PDF
Build sites on iis
PPT
Web Servers (ppt)
PPT
Php Asp Net Interoperability Rc Jao
PPTX
introduction and configuration of IIS (in addition with printer)
PPTX
Upgrade, Migrate and Virtualisation with SharePoint 2010
PPTX
PHP konferencija - Microsoft
PPT
A Microsoft primer for PHP devs
PPTX
Hosting a website on IIS Server
PPTX
Creating php cloud applications
PPTX
IIS Always-On Services
PPTX
IIS PPT (1)
PPTX
IIS7 For Non IIS PFEs
PPT
The complete ASP.NET (IIS) Tutorial with code example in power point slide show
DOCX
IIS interview questions and answers
PDF
C# ASP.NET WEB API APPLICATION DEVELOPMENT
IIS-Settings
06.m3 cms set-upwebserver
IIS 7.0 Architecture And Integration With Asp.Net
Build sites on iis
Web Servers (ppt)
Php Asp Net Interoperability Rc Jao
introduction and configuration of IIS (in addition with printer)
Upgrade, Migrate and Virtualisation with SharePoint 2010
PHP konferencija - Microsoft
A Microsoft primer for PHP devs
Hosting a website on IIS Server
Creating php cloud applications
IIS Always-On Services
IIS PPT (1)
IIS7 For Non IIS PFEs
The complete ASP.NET (IIS) Tutorial with code example in power point slide show
IIS interview questions and answers
C# ASP.NET WEB API APPLICATION DEVELOPMENT
Ad

Similar to Microsoft Zend webcast on Azure (20)

PPTX
Azure for ug
PPTX
Microsoft cloud 101
PPTX
A Lap Around Azure
PPTX
Windows azure camp - Kolkata
PPTX
Design Considerations For Storing With Windows Azure
PPTX
Azure Data Storage
PPTX
Windows Azure & How to Deploy Wordress
PPTX
Cloud computing and the Windows Azure Services Platform (KU Leuven)
PPTX
Sky High With Azure
PPTX
Windows azure camp
PPTX
MSDN - Converting an existing ASP.NET application to Windows Azure
PDF
Cloud computing Azure
PPT
Building Cloud-Native Applications with Microsoft Windows Azure
PPT
Microsoft Azure, door Rob Brommer op de 4DotNet Developers Day
PPTX
Understanding The Azure Platform Jan
PPTX
Creation of cloud application using microsoft azure by vaishali sahare [katkar]
PPTX
Blewis Session 1 Fy10 Q3 Azure
PPTX
BizSpark Startup Night Windows Azure March 29, 2011
PPTX
Azure Microsoft
PPTX
Windows Azure Platform + PHP - Jonathan Wong
Azure for ug
Microsoft cloud 101
A Lap Around Azure
Windows azure camp - Kolkata
Design Considerations For Storing With Windows Azure
Azure Data Storage
Windows Azure & How to Deploy Wordress
Cloud computing and the Windows Azure Services Platform (KU Leuven)
Sky High With Azure
Windows azure camp
MSDN - Converting an existing ASP.NET application to Windows Azure
Cloud computing Azure
Building Cloud-Native Applications with Microsoft Windows Azure
Microsoft Azure, door Rob Brommer op de 4DotNet Developers Day
Understanding The Azure Platform Jan
Creation of cloud application using microsoft azure by vaishali sahare [katkar]
Blewis Session 1 Fy10 Q3 Azure
BizSpark Startup Night Windows Azure March 29, 2011
Azure Microsoft
Windows Azure Platform + PHP - Jonathan Wong
Ad

More from Josh Holmes (20)

PPTX
Mentorship by Josh Holmes - a KalamazooX talk
PPTX
Tips from a grizzled speaker
PPTX
BrazilJS Perf Doctor Talk
PPTX
Touch me, I Dare You...
PPTX
Cloud becomingreality
PPTX
F as in failure slideshare
PPTX
Is that a Rich Web in Your Pocket?
PPTX
Cloud by Numbers
PPTX
Rev it up with php on windows
PPTX
So you want to be an architect
PPTX
Microsoft/Zend Webcast on Cloud Computing
PPTX
Microsoft and PHP at CakeFest 2010
PPTX
Scaling WordPress on Microsoft
PPTX
MODx on Windows
PPT
Wordpress On Windows
PPTX
Scaling Big While Sleeping Well
PPTX
Moving Enterprise Applications To The Cloud
PPT
Best And Worst Practices Building Ria with Adobe and Microsoft
PPTX
The Lost Art of Simplicity
PPT
Architecture of RIA from JAOO
Mentorship by Josh Holmes - a KalamazooX talk
Tips from a grizzled speaker
BrazilJS Perf Doctor Talk
Touch me, I Dare You...
Cloud becomingreality
F as in failure slideshare
Is that a Rich Web in Your Pocket?
Cloud by Numbers
Rev it up with php on windows
So you want to be an architect
Microsoft/Zend Webcast on Cloud Computing
Microsoft and PHP at CakeFest 2010
Scaling WordPress on Microsoft
MODx on Windows
Wordpress On Windows
Scaling Big While Sleeping Well
Moving Enterprise Applications To The Cloud
Best And Worst Practices Building Ria with Adobe and Microsoft
The Lost Art of Simplicity
Architecture of RIA from JAOO

Recently uploaded (20)

PPTX
SGT Report The Beast Plan and Cyberphysical Systems of Control
PPTX
AI-driven Assurance Across Your End-to-end Network With ThousandEyes
PDF
Early detection and classification of bone marrow changes in lumbar vertebrae...
PDF
ment.tech-Siri Delay Opens AI Startup Opportunity in 2025.pdf
PDF
AI.gov: A Trojan Horse in the Age of Artificial Intelligence
PDF
Transform-Your-Streaming-Platform-with-AI-Driven-Quality-Engineering.pdf
PDF
Electrocardiogram sequences data analytics and classification using unsupervi...
PPTX
Presentation - Principles of Instructional Design.pptx
PDF
“The Future of Visual AI: Efficient Multimodal Intelligence,” a Keynote Prese...
PDF
Decision Optimization - From Theory to Practice
PDF
NewMind AI Weekly Chronicles – August ’25 Week IV
PDF
Lung cancer patients survival prediction using outlier detection and optimize...
PDF
substrate PowerPoint Presentation basic one
PDF
The-2025-Engineering-Revolution-AI-Quality-and-DevOps-Convergence.pdf
PDF
A hybrid framework for wild animal classification using fine-tuned DenseNet12...
PDF
A symptom-driven medical diagnosis support model based on machine learning te...
PDF
5-Ways-AI-is-Revolutionizing-Telecom-Quality-Engineering.pdf
PDF
Ensemble model-based arrhythmia classification with local interpretable model...
PDF
Rapid Prototyping: A lecture on prototyping techniques for interface design
PDF
SaaS reusability assessment using machine learning techniques
SGT Report The Beast Plan and Cyberphysical Systems of Control
AI-driven Assurance Across Your End-to-end Network With ThousandEyes
Early detection and classification of bone marrow changes in lumbar vertebrae...
ment.tech-Siri Delay Opens AI Startup Opportunity in 2025.pdf
AI.gov: A Trojan Horse in the Age of Artificial Intelligence
Transform-Your-Streaming-Platform-with-AI-Driven-Quality-Engineering.pdf
Electrocardiogram sequences data analytics and classification using unsupervi...
Presentation - Principles of Instructional Design.pptx
“The Future of Visual AI: Efficient Multimodal Intelligence,” a Keynote Prese...
Decision Optimization - From Theory to Practice
NewMind AI Weekly Chronicles – August ’25 Week IV
Lung cancer patients survival prediction using outlier detection and optimize...
substrate PowerPoint Presentation basic one
The-2025-Engineering-Revolution-AI-Quality-and-DevOps-Convergence.pdf
A hybrid framework for wild animal classification using fine-tuned DenseNet12...
A symptom-driven medical diagnosis support model based on machine learning te...
5-Ways-AI-is-Revolutionizing-Telecom-Quality-Engineering.pdf
Ensemble model-based arrhythmia classification with local interpretable model...
Rapid Prototyping: A lecture on prototyping techniques for interface design
SaaS reusability assessment using machine learning techniques

Microsoft Zend webcast on Azure

  • 1. Cloud Computing with Zend Framework and Windows AzureJosh [email protected]@microsoft.comwww.joshholmes.com
  • 2. AgendaTesting the WatersWhat is cloud computing?What are the advantages of cloud computing?How’s Azure fit in?Diving DeepDigging into PHP on AzureLeveraging Azure StorageLeveraging SQL Azure
  • 3. We are all excited about the cloud
  • 4. In House or Hosted ServersAllocated IT-capacitiesLoad Forecast“Under-supply“ of capacities“Waste“ of capacitiesFixed cost of IT-capacitiesIT CAPACITYBarrier forinnovationsActualLoadTIME
  • 5. Cloud ComputingLoad ForecastAllocated IT capacitiesNo “under-supply“IT CAPACITYReduction of “over-supply“Possible reduction of IT-capacities in case of reduced loadReduction of initial investmentsActualLoadTime
  • 6. Types of Hosting SolutionsPlatform(as a Service)Private(On-Premise)Infrastructure(as a Service)You manageApplicationsApplicationsApplicationsYou manageRuntimesRuntimesRuntimesSecurity & IntegrationSecurity & IntegrationSecurity & IntegrationManaged by vendorDatabasesDatabasesDatabasesYou manageServersServersServersManaged by vendorVirtualizationVirtualizationVirtualizationServer HWServer HWServer HWStorageStorageStorageNetworkingNetworkingNetworking
  • 7. The Microsoft Cloud~100 Globally Distributed Data CentersQuincy, WAChicago, ILSan Antonio, TXDublin, IrelandGeneration 4 DCs
  • 10. Two sides to talk about…StorageComputeUser CodeRuntime APIVM SetupCloud VM
  • 12. PHP with Windows Azure StorageSimpleCloud API @ http://simplecloud.orgWindows Azure SDK for PHP @ http://phpazure.codeplex.comPHP programming model for Windows Azure StorageFeatures PHP classes for Blobs, Tables & QueuesStore PHP sessions in Table Storage
  • 13. Windows Azure 4 EclipseDoes a lot of the heavy lifting for youCreates the Web.config, Web.roleConfig, PHP implementation and debugs in the dev fabrichttp://windowsazure4e.orgDoes a lot of the heavy lifting for you
  • 14. Windows Azure Data StorageQueueBlobAccountTablesDrives
  • 15. Azure Platform Data Storage OptionsWindows Azure Data Storage
  • 16. Blobs
  • 23. Durable NTFS volumes that Windows Azure applications can use. See: http://microsoftpdc.com/Sessions/SVC14SQL AzureRelational data storageWindows Azure Data Storage - BlobsUnstructured data storagePartitioned by containerUnlimited containers
  • 24. Storage: XDriveNTFS drive in the cloud: X:\Fixed size between 16MB and 1TBMax 8 drives on your VMImplemented as a page blobSingle instance writeMultiple instance read
  • 25. Queue Workflow ConceptsWindows Azure Queue ProvidesGuarantee delivery (two-step consumption)Worker Dequeues Message and mark it as InvisibleWorker Deletes Message when finished processing itIf Worker role crashes, message becomes visible for another Worker to processDoesn’t guarantee “only once” deliveryDoesn’t guarantee orderingBest effort FIFOWorker RoleWeb RoleInput Queue (Work Items)Worker RoleAzure QueueWeb RoleWorker RoleWeb RoleWorker Role
  • 26. Azure QueuesRemoveMessageGetMessage (Timeout)Worker RolePutMessageQueueMsg 1Msg 2Msg 2Msg 1Web RoleWorker RoleWorker RoleMsg 3Msg 4Msg 2
  • 27. Loosely Coupled Work with QueuesWorker-Queue ModelLoad work in a queueMany workers consume the queueInput Queue (Work Items)Azure QueueWorker RoleWeb RoleWorker RoleWeb RoleWorker RoleWeb RoleWorker Role
  • 28. Windows Azure Data Storage - TablesSemi-Structured dataTables contain entitiesEntities contain propertiesMay be partitioned across thousands of servers.Support ACID transactions over single entitiesQueries over entire table.NET and REST interfaces
  • 29. Windows Azure Data Storage – Tables (Terms Part 1)TableContains a set of entities. Entity (Row) Basic data items stored in a table. Property (Column)Single value in an entity. RowKeyUnique ID of the entity within a partitionTimestampTime it was created
  • 30. Windows Azure Data Storage – Tables (Terms Part 2)Partition Entities in a table with the same partition keyPartitionKeySegments entities in to partitions to automatically distribute the table’s entities over many storage nodes.Sort OrderThere is a single index provided for the CTP, where all entities in a table are sorted by PartitionKey and then RowKey
  • 31. Key Example – Blog PostsPartition 1Partition 2Getting all of dunnry’s blog posts is fastSingle partitionGetting all posts after 2008-03-27 is slowTraverse all partitions
  • 32. SQL Azure and Windows Azure Table ComparisonWindows Azure TablesSQL Azure TablesSemi-structuredLoosely typedNon-Relational (Not RDMS)Massively scalableFully structuredStrongly typedRelational (RDMS)Highly scalable
  • 34. SQL Azure FeaturesSupportedTables, Indexes, ViewsStored ProceduresTriggersConstraintsTable VariablesTemp Tables (#Name)Not SupportedPhysical Server Access Catalog DDLCommon Language RuntimeService BrokerReporting ServicesAnalysis ServicesDistributed Transactions and Queries
  • 36. SQL AzureAccessing databasesWeb Portal(API)Your AppSQL AzureTDSChange Connection String
  • 37. Database ReplicasSingle DatabaseMultiple ReplicasReplica 1Single PrimaryReplica 2DBReplica 3
  • 38. SQL AzureDatabase Monitoring & RecoveryWeb Portal(API)!Your AppSQL AzureTDS
  • 39. SQL Azure Database Connection StringAn administrative user is created with the serverUser has system administrator permissions likesa”Server=tcp:itte80vcfq.database.windows.net; Database=FabrikamAzureDB;User ID=SaPaulM;Password=myPassword;Trusted_Connection=False;Encrypt=True;
  • 40. Windows Azure VMsSmallMediumLarge X Large$0.12 $0.24 $0.48 $0.96 Per service hourPer service hourPer service hourPer service hour1 x 1.6Ghz 2 x 1.6Ghz 4 x 1.6Ghz 8 x 1.6Ghz(moderate IO) (high IO)(high IO) (high IO)1.75 GB memory 3.5 GB memory 7.0 GB memory14 GB memory
  • 41. Windows Azure, In One PictureBusiness PortalDeveloper PortalService Management ServiceRESTUser Code……Runtime APIStorage ClusterVS ToolsCompute Cluster…WA SDKVM SetupRESTMSFT DatacentersDesktopCloud VM
  • 45. Think Service or DeamonWebRoleExternal Facing
  • 48. Think Web ServerRunning PHP in Windows AzureHow to Do ItHost in Web role (like .NET)Supply PHP runtimePoint to runtime via FastCGI configuration inWeb.configWeb.roleConfigPHP Web RoleInstance 1VIPLoad BalancerPHP Web RoleInstance 2
  • 49. Running EXEs in the Worker ProcessStart with a Worker Role Process to Copy the exes to the worker role’s app directoryExecute the processMonitor the health of the processOther auxiliary tasks…
  • 51. More resourcesMicrosoft Windows Azure Interophttp://www.microsoft.com/windowsazure/interop/Interop Bridgeshttp://www.interoperabilitybridges.com/
  • 53. And of courseJosh Holmeshttp://www.joshholmes.com
  • 54. Cloud Computing with Zend Framework and Windows AzureJosh [email protected]@microsoft.comwww.joshholmes.com

Editor's Notes

  • #16: We’ll start with SQL Azure... This will give most of developers a common frame of reference as most developers are comfortable with relational databases.In a short while, I will introduce Blobs, Tables, Queues, and DrivesSQL Azure can be thought of as your SQL Server in the cloud. It is based on a subset of SQL Server 2008.Blobs are a means of storing unstructured data, such as pictures, movies, PDF’s, Word documents, and the like.Tables are a means of storing semi-structured or tabular data. Tables are similar to an Excel spreadsheet in the sense that data is tabular and there is no strict type cohesion as there would be in a SQL Server table column. Data stored in tables is partitioned and keyed for retrievalQueues are a means of buffered message delivery. There are very useful for communicating data between our Windows Azure service instances. As our service instances do not have to wait around for the I/O of delivering the message or the result of the message processing, they can dramatically improve the scalability of our software system.Drives are a recently added feature announced at the Los Angeles PDC in November 2009. Drives provide durable storage that appears to our application as an NTFS volume. The drive itself is an abstraction over the same Windows Azure Data Storage used for Blobs. You can get more information on Drives by visiting the PDC site on my slide.Applications may use multiple types of data storage at the same time. In fact, this is quite common. When we do our first Windows Azure Data Storage demo together, I will be showing you an application that uses Blobs, Tables, and Queues in concert.
  • #17: It’s time now to introduce Windows Azure Data Storage Blobs.Blobs are for storage of unstructured data.We partition our data by creating Blob containers which we give names to.We can create an unlimited number of Blob Containers.We then simply place our blob data into the blob containers, supplying a unique identifier.When we want to retrieve our data, we simply provide the container and the unique identifier.
  • #20: Use queues as a way of communicating w/ the backend worker rolesWRs call getmessage and pass timeoutTimeout value is importantExpiration time is important; message is marked in the queue as invisible; for duration of timeout it’s invisibleWhen we’re done processing, we call a message to remove the message through a deleteTh reason we do this is imagine we have a second worker role; if something goes wrong, once the timeout expires, the message becomes visible, and the next person to do a get message will get the message
  • #22: http://www.flickr.com/photos/cav666/3562455727/http://go.microsoft.com/fwlink/?LinkId=153401Windows Azure Data Storage Tables are how we get massively scalable and highly available databases.Although there are some similarities, these tables are very different from relational database tables.Data in Windows Azure Data Storage Tables is semi-structured; The concept of a Windows Azure Data Storage Table is similar to how a spreadsheet is used to provide tabularized organization to data without strongly enforcing data cohesion.… Data is indexed in Tables for high performance retrieval, but there are no relationships between Tables.The tables support ACID transactions over single entities and rich queries over the entire table.
  • #24: The PartitionKey combined with the RowKey uniquely identifies an entity in a table.
  • #25: 11:53Getting the all of dunnry’s post it fast because we’re selecting the entities by a partition keyGetting all of the posts after a certain is slow because we may have to traverse across multiple servers because we’re selecting entities that span partition keysA query without the partition key is really a scan
  • #26: We have included this feature comparison table in anticipation of your likely questions about differences between using a relational database table as you may be currently doing with your SQL Server databases and the new Windows Azure Tables included in Windows Azure.
  • #27: http://www.flickr.com/photos/timothymorgan/75593157/sizes/o/
  • #28: As I stated earlier, SQL Azure is based on SQL Server 2008. At this time it is only a subset of the features of the server product.My intention here is to convey the high level features that are supported and the ones that are not.SQL Azure will support most of the things we need… Tables, Index, Views, Stored Procedures, Triggers, and Constraints… in my book… that’s all the functionality that I need for most of my applications.There are some other adjunct technologies that ship as part of SQL Server 2008 such as SQL Reporting Services and Analysis Services which are not supported. The Service Broker is also not supported.
  • #29: So let’s assume that we have designed our relational database with local developer and data modeling tools.We can begin our story then by assuming that we want to get our database deployed to the cloud.There are some tools that will expedite this process which I will show you later, but for now lets assume that we have scripted our database schema. We apply this script to SQL Azure which speaks native TDS.If you created your database through the SQL Azure Portal, then SQL Azure will have created one master database and three replicas of that database. If you create your database with the script the same will be true.These replicas are stored in different database centers from the master to provide redundancy and protection against geographical catastrophe.
  • #30: Configuring our application to use SQL Azure storage instead of SQL Server is simply a matter of modifying the connection string in our application’s configuration file.When our application requests data, ADO.NET speaks to the TDS which directs our queries to the master database server. The master database server performs our query and returns the results to our application.
  • #31: From our application’s point of view, there is only one SQL Azure database.As we make updates to our database, those updates are replicated to other copies stored in other data centers so that in the event that our database fails for any reason, the other databases will be standing by ready to take its place.
  • #32: But what if that master database server fails for some reason?TDS is receives notification of the database failure and automatically redirects the call to the replica!The Azure Cloud Fabric is self-healing… and the details are outside the scope of this presentation; however, the fabric will get busy repairing itself like drones on a Borg mother ship… essentially with the objective of keeping three replicas online at a time.
  • #33: When you created your SQL Azure database server, you supplied an administrator’s user name and password. I have named my user accordingly… to remind me of its power.The SQL Portal will offer you the ability to copy these credentials in connection string format to your clip board… tempting you into believing that you should just paste this into your configuration file.This is terrific for demos like mine… BUT you should NEVER, EVER do this…A database server system administrator password placed in a configuration file in clear text format… there has got to be something naive in the extreme going on here… and worse… no way to create non-sa-like users through the UI… you must script your database users and then apply the script to the database. And to anticipate your question… no… you can’t use SQL Server Management Studio to do this either.I will demo this as well in session 3… so hang tight…