SlideShare una empresa de Scribd logo
1 de 88
Scaling Big while Sleeping Well Josh Holmes @joshholmes josh.holmes@microsoft.com www.joshholmes.com
Agenda Testing the Waters What is cloud computing? What are the advantages of cloud computing? How’s Azure fit in? Diving Deep Digging into PHP/Ruby on Azure Leveraging FastCGI Leveraging Azure Storage Leveraging SQL Azure
We are all excited about the cloud
Cloud-Addressable Challenges 1 1 5 Maintaining security while increasing access and transparency—within and outside the organization Infrastructure costs are fixed and ongoing, and distract from the mission of reducing business process friction 2 6 Leveraging past investments to provide future value Security, access, and transparency across the value chain: suppliers, partners,  etc. 3 Many data centers at limit—real estate, capacity, cooling and power 7 Lack of a common platform 4 Matching capacity to demand
In House or Hosted Servers Allocated IT-capacities Load Forecast “Under-supply“ of capacities “Waste“ of capacities Fixed cost of IT-capacities IT CAPACITY Barrier for innovations ActualLoad TIME
Cloud Computing Load Forecast Allocated IT capacities No “under-supply“ IT CAPACITY Reduction of “over-supply“ Possible reduction of IT-capacities in case of reduced load Reduction of initial investments ActualLoad Time
Types of Clouds Platform (as a Service) Private (On-Premise) Infrastructure (as a Service) You manage Applications Applications Applications You manage Runtimes Runtimes Runtimes Security & Integration Security & Integration Security & Integration Managed by vendor Databases Databases Databases You manage Servers Servers Servers Managed by vendor Virtualization Virtualization Virtualization Server HW Server HW Server HW Storage Storage Storage Networking Networking Networking
The Microsoft Cloud ~100 Globally Distributed Data Centers Quincy, WA Chicago, IL San Antonio, TX Dublin, Ireland Generation 4 DCs
Categories of Services Application Services Software Services Platform Services The Microsoft Cloud Infrastructure Services
The trick is knowing what your systems need, and how the cloud can help.
Not everything has to or can live in the cloud
Only move to the cloud that which can benefit
The core strategy is ‘hybrid’
Take an À la carteapproach
We call this Software + Services
An Example…
“Packaged” Application Big Pharmaceutical Example Hosted  “Packaged” “Packaged” using cloud  “Software as a Service” Buy ERP “Too costly to run this myself, but I’ve made too many customizations” CRM Email Build vs. Buy “Home Built” Application Hosted  “Home Built” “Home Built” using cloud  “Platform as a Service” HR System Molecule Research Build Clinical Trial Hoster Vendor On Premise Cloud
“Packaged” Application Big Pharmaceutical Example Hosted  “Packaged” “Packaged” using cloud  “Software as a Service” Buy ERP CRM “CRM and Email are commodity services – They have no customizations, and it’s cheaper for someone else to run these” Email Build vs. Buy “Home Built” Application Hosted  “Home Built” “Home Built” using cloud  “Platform as a Service” HR System Molecule Research Build Clinical Trial Hoster Vendor On Premise Cloud
Big Pharmaceutical Example “Packaged” Application Hosted  “Packaged” “Packaged” using cloud  “Software as a Service” Buy ERP CRM Email Build vs. Buy “Home Built” Application Hosted  “Home Built” “Home Built” using cloud  “Platform as a Service” “I can’t afford to maintain this old HR application written in VB4 – it’s driving me mad!” HR System “…but due to regulatory issues, I cannot store my HR data off-premise” Molecule Research Build Clinical Trial Hoster Vendor On Premise Cloud
“Packaged” Application Big Pharmaceutical Example Hosted  “Packaged” “Packaged” using cloud  “Software as a Service” Buy ERP CRM Email HR System Build vs. Buy “Home Built” Application Hosted  “Home Built” “Home Built” using cloud  “Platform as a Service” “I wish I had access to cheaper compute and storage when I need it” Molecule Research Build Clinical Trial Hoster Vendor On Premise Cloud
“Packaged” Application Big Pharmaceutical Example Hosted  “Packaged” “Packaged” using cloud  “Software as a Service” Buy ERP CRM Email HR System Build vs. Buy “Home Built” Application Hosted  “Home Built” “Home Built” using cloud  “Platform as a Service” Molecule Research Build “THIS is where I want to spend my IT resources – I’m going to double down on this application!” Clinical Trial Hoster Vendor On Premise Cloud
Where the Cloud is Compelling
Only 2 reasons to use the cloud
Windows Azure VMs Small Medium Large  X Large $0.12  $0.24  $0.48  $0.96  Per service hour Per service hour Per service hour Per service hour 1 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 memory 14 GB memory
Windows Azure, In One Picture Business Portal Developer Portal Service Management Service REST User Code … … Runtime API Storage Cluster VS Tools Compute Cluster … WA SDK VM Setup REST MSFT Datacenters Desktop Cloud VM
Determine an ROI Consider: ,[object Object]
Current staff costs
Cooling/power/space
Migration costs
LicensingAzureROI.CloudApp.net
ZENDFRAMEWORK
Digging into Azure with PHP/Ruby
Windows Azure, In One Picture Business Portal Developer Portal Service Management Service REST User Code … … Runtime API Storage Cluster VS Tools Compute Cluster … WA SDK VM Setup REST MSFT Datacenters Desktop Cloud VM
Windows Azure Roles WorkerRole ,[object Object]
TCP/HTTP Endpoint
Long running processes
Think Service or DeamonWebRole ,[object Object]
HTTP/HTTPS Endpoint
Short lived calls
Think Web Server,[object Object]
Windows Azure 4 Eclipse Does a lot of the heavy lifting for you Creates the Web.config, Web.roleConfig, PHP implementation and debugs in the dev fabric http://windowsazure4e.org
Running EXEs in the Worker Process Start with a Worker Role Process to  Copy the exes to the worker role’s app directory Execute the process Monitor the health of the process Other auxiliary tasks…
Running Ruby in the Worker Process http://code.msdn.microsoft.com/railsonazure Download and extract the solution  Copy the Ruby bin and lib folders to the Ruby folder in the RR project  Copy your rails application to the RailsApp folder in the RR project  Open the solution in Visual Studio  Run in the Dev Fabric Navigate to http://127.0.0.1:5100
Data Storage
Storage options Windows Azure Data Sql Azure
Windows Azure Data Storage Queue Blob Account Tables Drives
Azure Platform Data Storage Options ,[object Object]
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 Azure ,[object Object],[object Object]
Windows Azure Data Storage
PHP with Windows Azure Storage Windows Azure SDK for PHP @ http://phpazure.codeplex.com PHP programming model for Windows Azure Storage Features  PHP classes for Blobs, Tables & Queues Store PHP sessions in Table Storage
Windows Azure Data Storage - Blobs Unstructured data storage Partitioned by container Unlimited containers
Blobs Sample $blobStorage= new Microsoft_WindowsAzure_Storage_Blob(); // Create if (!$blobStorage->containerExists($containerName)) { $blobStorage->createContainer($containerName); $blobStorage->setContainerAcl($containerName,  Microsoft_WindowsAzure_Storage_Blob::ACL_PUBLIC); } // Store $blob = $blobStorage->putBlob($containerName, $blobName,  $localFilename, $metadata); /* @var $blob Microsoft_WindowsAzure_Storage_BlobInstance */
Blobs Sample Cont… // Copy $result = $blobStorage->copyBlob(      $containerName, $blobName, $containerName, $blob2Name); // Retrieve $tempStore= azure_getlocalresourcepath('tempstore'); $tempPath= $tempStore. '' . $imageId; $blobStorage->getBlob($containerName, $blobName, $tempPath); // Delete $result = $blobStorage->deleteBlob($containerName, $blobName); $result = $blobStorage->deleteContainer($containerName);
Blob Stream Wrapper $blobStorage= new Microsoft_WindowsAzure_Storage_Blob(); // Register: $blobStorage->registerStreamWrapper(); // registers azure:// // or $blobStorage->registerStreamWrapper('blob://'); // use blob:// // Use $fp= fopen('azure://mycontainer/myfile.txt', 'r'); // ... fclose($fp);
Storage: XDrive NTFS drive in the cloud: X:br />Fixed size between 16MB and 1TB Max 8 drives on your VM Implemented as a page blob Single instance write Multiple instance read
Queue Workflow Concepts Windows Azure Queue Provides Guarantee delivery (two-step consumption) Worker Dequeues Message and mark it as Invisible Worker Deletes Message when finished processing it If Worker role crashes, message becomes visible for another Worker to process Doesn’t guarantee “only once” delivery Doesn’t guarantee ordering Best effort FIFO Worker Role Web Role Input Queue (Work Items) Worker Role Azure Queue Web Role Worker Role Web Role Worker Role
Azure Queues RemoveMessage GetMessage (Timeout) Worker Role PutMessage Queue Msg 1 Msg 2 Msg 2 Msg 1 Web Role Worker Role Worker Role Msg 3 Msg 4 Msg 2
Loosely Coupled Work with Queues Worker-Queue Model Load work in a queue Many workers consume the queue Input Queue (Work Items) Azure Queue Worker Role Web Role Worker Role Web Role Worker Role Web Role Worker Role
Queues $queueClient= new Microsoft_WindowsAzure_Storage_Queue(); // Create $result = $queueClient->createQueue('imageQueue'); // Delete $queueClient->deleteQueue('imageQueue'); // Add message $queueClient->putMessage('imageQueue', $message, $ttl); // Retrieve Messages $messages = $queueClient->getMessages('imageQueue', 10); foreach($messages as $message) { // Do work here... $queueClient->deleteMessage('imageQueue', $message); }
Windows Azure Data Storage - Tables Semi-Structured data Tables contain entities Entities contain properties May be partitioned across thousands of servers. Support ACID transactions over single entities Queries over entire table .NET and REST interfaces
Windows Azure Data Storage – Tables (Terms Part 1) Table Contains a set of entities.   Entity (Row)  Basic data items stored in a table.   Property (Column) Single value in an entity.    RowKey Unique ID of the entity within a partition Timestamp Time it was created
Windows Azure Data Storage – Tables (Terms Part 2) Partition  Entities in a table with the same partition key PartitionKey Segments entities in to partitions to automatically distribute the table’s entities over many storage nodes. Sort Order There is a single index provided for the CTP, where all entities in a table are sorted by PartitionKey and then RowKey
Key Example – Blog Posts Partition 1 Partition 2 Getting all of dunnry’s blog posts is fast Single partition Getting all posts after 2008-03-27 is slow Traverse all partitions
Table Sample $tableStorage= new Microsoft_WindowsAzure_Storage_Table( 'table.core.windows.net', 'myaccount', 'myauthkey'); // Create $result = $tableStorage->createTable($tableName); // List  $result = $tableStorage->listTables(); foreach($result as $table) { echo 'Table name is: ' . $table->Name . ""; } // Delete $tableStorage->deleteTable($tableName);
Tables with Entities // Structured entity class ImageEntityextends  Microsoft_WindowsAzure_Storage_TableEntity { /**      * @azure filename      */ public $filename; /**      * @azure size Edm.Int64      */ public $size; } // Unstructured entity // Microsoft_WindowsAzure_Storage_DynamicTableEntity
Tables with Entities Cont… // Insert $image = new ImageEntity($partitionKey, $rowKey); $image->filename = $_FILES['imageUpload']['name']; $image->size = $_FILES['imageUpload']['size']; $image = $tableStorageClient->insertEntity($tableName, $image); // Retrieve $image = $tableStorage->retrieveEntityById($tableName,  $partitionKey, $rowKey, 'ImageEntity'); // Update $image->filename = 'newname.jpg'; $result = $tableStorage->updateEntity($tableName, $image); // Delete $result = $tableStorage->deleteEntity($tableName, $image);
Table Queries // Filter condition $select = "filesizegt 1024 and PartitionKeyeq '$partitionKey'"; // Or fluent interface $select = $tableStorage->select()->from($tableName)           ->where('filesizegt 1024')           ->andWhere('PartitionKeyeq ?', $partitionKey); // Run query $images = $tableStorage->storageClient->retrieveEntities( 'testtable', $select, 'ImageEntity' ); foreach($images as $image) { echo 'Name: ' . $image->filename . ""; }
Batching Operations // Start batch $batch = $tableStorage->startBatch(); // Insert multiple $images = generateEntities(); foreach($images as $image) { $tableStorage->insertEntity($tableName, $image); } // Commit $batch->commit();
Table session handler $sessionHandler     = new Microsoft_WindowsAzure_SessionHandler($tableStorage); $sessionHandler->register(); session_start(); if (!isset($_SESSION['start'])) { $_SESSION['start'] = time(); }
SQL Azure and Windows Azure Table Comparison Windows Azure Tables SQL Azure Tables Semi-structured Loosely typed Non-Relational (Not RDMS) Massively scalable Fully structured Strongly typed Relational (RDMS) Highly scalable
MySQL: Simple Configuration VIP Load Balancer Web Role MySQL Worker Role
MySQL in a Windows Azure Application Running MySQL in a worker role Copy MySQL to the worker role sub-directory Copy to read-write local storage Configure MySQL to listen on the right port Monitor MySQL health Consuming MySQL Discover IP address and port Normal access from then on Handle topology changes
Simple Configuration VIP Load Balancer MySQL
Replication VIP Load Balancer M S S MySQL MySQL MySQL
Windows Azure Drive with Hot Spare VIP Load Balancer MySQL MySQL
Windows Azure Drive with Hot Spare VIP Load Balancer MySQL MySQL
SQL Azure
SQL Azure Features Supported Tables, Indexes, Views Stored Procedures Triggers Constraints Table Variables Temp Tables (#Name) Not Supported Physical Server Access  Catalog DDL Common Language Runtime Service Broker Reporting Services Analysis Services Distributed Transactions and Queries
SQL AzureDeployment Web Portal (API) DB Script SQL Azure TDS

Más contenido relacionado

La actualidad más candente

Azure Storage – Foundation for Building Secure, Scalable Cloud Applications
Azure Storage – Foundation for Building Secure, Scalable Cloud ApplicationsAzure Storage – Foundation for Building Secure, Scalable Cloud Applications
Azure Storage – Foundation for Building Secure, Scalable Cloud ApplicationsMicrosoft Tech Community
 
(WEB203) Building a Website That Costs Pennies to Operate | AWS re:Invent 2014
(WEB203) Building a Website That Costs Pennies to Operate | AWS re:Invent 2014(WEB203) Building a Website That Costs Pennies to Operate | AWS re:Invent 2014
(WEB203) Building a Website That Costs Pennies to Operate | AWS re:Invent 2014Amazon Web Services
 
Creating Real-Time Data Mashups with Node.js and Adobe CQ by Josh Miller
Creating Real-Time Data Mashups with Node.js and Adobe CQ by Josh MillerCreating Real-Time Data Mashups with Node.js and Adobe CQ by Josh Miller
Creating Real-Time Data Mashups with Node.js and Adobe CQ by Josh Millerrtpaem
 
[Toroman/Kranjac] Red Team vs. Blue Team in Microsoft Cloud
[Toroman/Kranjac] Red Team vs. Blue Team in Microsoft Cloud[Toroman/Kranjac] Red Team vs. Blue Team in Microsoft Cloud
[Toroman/Kranjac] Red Team vs. Blue Team in Microsoft CloudEuropean Collaboration Summit
 
Building Highly Scalable Web Applications
Building Highly Scalable Web ApplicationsBuilding Highly Scalable Web Applications
Building Highly Scalable Web ApplicationsIWMW
 
Responsive Websites and Grid-Based Layouts by Gabriel Walt
Responsive Websites and Grid-Based Layouts by Gabriel Walt Responsive Websites and Grid-Based Layouts by Gabriel Walt
Responsive Websites and Grid-Based Layouts by Gabriel Walt AEM HUB
 
Azure Storage
Azure StorageAzure Storage
Azure StorageMustafa
 
Altitude SF 2017: Granular, Precached, & Under Budget
Altitude SF 2017: Granular, Precached, & Under BudgetAltitude SF 2017: Granular, Precached, & Under Budget
Altitude SF 2017: Granular, Precached, & Under BudgetFastly
 
Firebase: Totally Not Parse All Over Again (Unless It Is)
Firebase: Totally Not Parse All Over Again (Unless It Is)Firebase: Totally Not Parse All Over Again (Unless It Is)
Firebase: Totally Not Parse All Over Again (Unless It Is)Chris Adamson
 
Firebase: Totally Not Parse All Over Again (Unless It Is) (CocoaConf San Jose...
Firebase: Totally Not Parse All Over Again (Unless It Is) (CocoaConf San Jose...Firebase: Totally Not Parse All Over Again (Unless It Is) (CocoaConf San Jose...
Firebase: Totally Not Parse All Over Again (Unless It Is) (CocoaConf San Jose...Chris Adamson
 
Rest services caching
Rest services cachingRest services caching
Rest services cachingSperasoft
 
Developing applications with Cloud Services #javaone 2012
Developing applications with Cloud Services  #javaone 2012Developing applications with Cloud Services  #javaone 2012
Developing applications with Cloud Services #javaone 2012Chris Richardson
 
Cloud Computing With Amazon Web Services, Part 3: Servers on Demand With EC2
Cloud Computing With Amazon Web Services, Part 3: Servers on Demand With EC2Cloud Computing With Amazon Web Services, Part 3: Servers on Demand With EC2
Cloud Computing With Amazon Web Services, Part 3: Servers on Demand With EC2white paper
 
Developing and deploying applications with Spring Boot and Docker (@oakjug)
Developing and deploying applications with Spring Boot and Docker (@oakjug)Developing and deploying applications with Spring Boot and Docker (@oakjug)
Developing and deploying applications with Spring Boot and Docker (@oakjug)Chris Richardson
 
Zero to 60 with Azure Cosmos DB
Zero to 60 with Azure Cosmos DBZero to 60 with Azure Cosmos DB
Zero to 60 with Azure Cosmos DBAdnan Hashmi
 
Taking SharePoint to the Cloud
Taking SharePoint to the CloudTaking SharePoint to the Cloud
Taking SharePoint to the CloudAaron Saikovski
 
Introduction to Azure for SMB partners
Introduction to Azure for SMB partnersIntroduction to Azure for SMB partners
Introduction to Azure for SMB partnersRobert Crane
 
REST API Design for JAX-RS And Jersey
REST API Design for JAX-RS And JerseyREST API Design for JAX-RS And Jersey
REST API Design for JAX-RS And JerseyStormpath
 
Elegant Rest Design Webinar
Elegant Rest Design WebinarElegant Rest Design Webinar
Elegant Rest Design WebinarStormpath
 
Web Performance, Scalability, and Testing Techniques - Boston PHP Meetup
Web Performance, Scalability, and Testing Techniques - Boston PHP MeetupWeb Performance, Scalability, and Testing Techniques - Boston PHP Meetup
Web Performance, Scalability, and Testing Techniques - Boston PHP MeetupJonathan Klein
 

La actualidad más candente (20)

Azure Storage – Foundation for Building Secure, Scalable Cloud Applications
Azure Storage – Foundation for Building Secure, Scalable Cloud ApplicationsAzure Storage – Foundation for Building Secure, Scalable Cloud Applications
Azure Storage – Foundation for Building Secure, Scalable Cloud Applications
 
(WEB203) Building a Website That Costs Pennies to Operate | AWS re:Invent 2014
(WEB203) Building a Website That Costs Pennies to Operate | AWS re:Invent 2014(WEB203) Building a Website That Costs Pennies to Operate | AWS re:Invent 2014
(WEB203) Building a Website That Costs Pennies to Operate | AWS re:Invent 2014
 
Creating Real-Time Data Mashups with Node.js and Adobe CQ by Josh Miller
Creating Real-Time Data Mashups with Node.js and Adobe CQ by Josh MillerCreating Real-Time Data Mashups with Node.js and Adobe CQ by Josh Miller
Creating Real-Time Data Mashups with Node.js and Adobe CQ by Josh Miller
 
[Toroman/Kranjac] Red Team vs. Blue Team in Microsoft Cloud
[Toroman/Kranjac] Red Team vs. Blue Team in Microsoft Cloud[Toroman/Kranjac] Red Team vs. Blue Team in Microsoft Cloud
[Toroman/Kranjac] Red Team vs. Blue Team in Microsoft Cloud
 
Building Highly Scalable Web Applications
Building Highly Scalable Web ApplicationsBuilding Highly Scalable Web Applications
Building Highly Scalable Web Applications
 
Responsive Websites and Grid-Based Layouts by Gabriel Walt
Responsive Websites and Grid-Based Layouts by Gabriel Walt Responsive Websites and Grid-Based Layouts by Gabriel Walt
Responsive Websites and Grid-Based Layouts by Gabriel Walt
 
Azure Storage
Azure StorageAzure Storage
Azure Storage
 
Altitude SF 2017: Granular, Precached, & Under Budget
Altitude SF 2017: Granular, Precached, & Under BudgetAltitude SF 2017: Granular, Precached, & Under Budget
Altitude SF 2017: Granular, Precached, & Under Budget
 
Firebase: Totally Not Parse All Over Again (Unless It Is)
Firebase: Totally Not Parse All Over Again (Unless It Is)Firebase: Totally Not Parse All Over Again (Unless It Is)
Firebase: Totally Not Parse All Over Again (Unless It Is)
 
Firebase: Totally Not Parse All Over Again (Unless It Is) (CocoaConf San Jose...
Firebase: Totally Not Parse All Over Again (Unless It Is) (CocoaConf San Jose...Firebase: Totally Not Parse All Over Again (Unless It Is) (CocoaConf San Jose...
Firebase: Totally Not Parse All Over Again (Unless It Is) (CocoaConf San Jose...
 
Rest services caching
Rest services cachingRest services caching
Rest services caching
 
Developing applications with Cloud Services #javaone 2012
Developing applications with Cloud Services  #javaone 2012Developing applications with Cloud Services  #javaone 2012
Developing applications with Cloud Services #javaone 2012
 
Cloud Computing With Amazon Web Services, Part 3: Servers on Demand With EC2
Cloud Computing With Amazon Web Services, Part 3: Servers on Demand With EC2Cloud Computing With Amazon Web Services, Part 3: Servers on Demand With EC2
Cloud Computing With Amazon Web Services, Part 3: Servers on Demand With EC2
 
Developing and deploying applications with Spring Boot and Docker (@oakjug)
Developing and deploying applications with Spring Boot and Docker (@oakjug)Developing and deploying applications with Spring Boot and Docker (@oakjug)
Developing and deploying applications with Spring Boot and Docker (@oakjug)
 
Zero to 60 with Azure Cosmos DB
Zero to 60 with Azure Cosmos DBZero to 60 with Azure Cosmos DB
Zero to 60 with Azure Cosmos DB
 
Taking SharePoint to the Cloud
Taking SharePoint to the CloudTaking SharePoint to the Cloud
Taking SharePoint to the Cloud
 
Introduction to Azure for SMB partners
Introduction to Azure for SMB partnersIntroduction to Azure for SMB partners
Introduction to Azure for SMB partners
 
REST API Design for JAX-RS And Jersey
REST API Design for JAX-RS And JerseyREST API Design for JAX-RS And Jersey
REST API Design for JAX-RS And Jersey
 
Elegant Rest Design Webinar
Elegant Rest Design WebinarElegant Rest Design Webinar
Elegant Rest Design Webinar
 
Web Performance, Scalability, and Testing Techniques - Boston PHP Meetup
Web Performance, Scalability, and Testing Techniques - Boston PHP MeetupWeb Performance, Scalability, and Testing Techniques - Boston PHP Meetup
Web Performance, Scalability, and Testing Techniques - Boston PHP Meetup
 

Destacado

Architecting RIAs with Silverlight
Architecting RIAs with SilverlightArchitecting RIAs with Silverlight
Architecting RIAs with SilverlightJosh Holmes
 
Touch me, I Dare You...
Touch me, I Dare You...Touch me, I Dare You...
Touch me, I Dare You...Josh Holmes
 
Microsoft and PHP at CakeFest 2010
Microsoft and PHP at CakeFest 2010Microsoft and PHP at CakeFest 2010
Microsoft and PHP at CakeFest 2010Josh Holmes
 
Microsoft/Zend Webcast on Cloud Computing
Microsoft/Zend Webcast on Cloud ComputingMicrosoft/Zend Webcast on Cloud Computing
Microsoft/Zend Webcast on Cloud ComputingJosh Holmes
 
F as in failure slideshare
F as in failure   slideshareF as in failure   slideshare
F as in failure slideshareJosh Holmes
 
32 Ways To Keep Your Blog From Sucking
32 Ways To Keep Your Blog From Sucking32 Ways To Keep Your Blog From Sucking
32 Ways To Keep Your Blog From SuckingJosh Holmes
 
So you want to be an architect
So you want to be an architectSo you want to be an architect
So you want to be an architectJosh Holmes
 

Destacado (7)

Architecting RIAs with Silverlight
Architecting RIAs with SilverlightArchitecting RIAs with Silverlight
Architecting RIAs with Silverlight
 
Touch me, I Dare You...
Touch me, I Dare You...Touch me, I Dare You...
Touch me, I Dare You...
 
Microsoft and PHP at CakeFest 2010
Microsoft and PHP at CakeFest 2010Microsoft and PHP at CakeFest 2010
Microsoft and PHP at CakeFest 2010
 
Microsoft/Zend Webcast on Cloud Computing
Microsoft/Zend Webcast on Cloud ComputingMicrosoft/Zend Webcast on Cloud Computing
Microsoft/Zend Webcast on Cloud Computing
 
F as in failure slideshare
F as in failure   slideshareF as in failure   slideshare
F as in failure slideshare
 
32 Ways To Keep Your Blog From Sucking
32 Ways To Keep Your Blog From Sucking32 Ways To Keep Your Blog From Sucking
32 Ways To Keep Your Blog From Sucking
 
So you want to be an architect
So you want to be an architectSo you want to be an architect
So you want to be an architect
 

Similar a Scaling Big While Sleeping Well

Building Cloud-Native Applications with Microsoft Windows Azure
Building Cloud-Native Applications with Microsoft Windows AzureBuilding Cloud-Native Applications with Microsoft Windows Azure
Building Cloud-Native Applications with Microsoft Windows AzureBill Wilder
 
Thinking Strategically about Cloud Computing
Thinking Strategically about Cloud ComputingThinking Strategically about Cloud Computing
Thinking Strategically about Cloud Computingguesta04b0
 
Windows Azure Platform + PHP - Jonathan Wong
Windows Azure Platform + PHP - Jonathan WongWindows Azure Platform + PHP - Jonathan Wong
Windows Azure Platform + PHP - Jonathan WongSpiffy
 
Windows Azure & How to Deploy Wordress
Windows Azure & How to Deploy WordressWindows Azure & How to Deploy Wordress
Windows Azure & How to Deploy WordressGeorge Kanellopoulos
 
Big Data - in the cloud or rather on-premises?
Big Data - in the cloud or rather on-premises?Big Data - in the cloud or rather on-premises?
Big Data - in the cloud or rather on-premises?Guido Schmutz
 
AZUG.BE - Azure User Group Belgium - First public meeting
AZUG.BE - Azure User Group Belgium - First public meetingAZUG.BE - Azure User Group Belgium - First public meeting
AZUG.BE - Azure User Group Belgium - First public meetingMaarten Balliauw
 
Just Another Word Press Weblog But More Cloudy
Just Another Word Press Weblog   But More CloudyJust Another Word Press Weblog   But More Cloudy
Just Another Word Press Weblog But More CloudyMaarten Balliauw
 
Big Data Analytics from Azure Cloud to Power BI Mobile
Big Data Analytics from Azure Cloud to Power BI MobileBig Data Analytics from Azure Cloud to Power BI Mobile
Big Data Analytics from Azure Cloud to Power BI MobileRoy Kim
 
Cloud computing and the Windows Azure Services Platform (KU Leuven)
Cloud computing and the Windows Azure Services Platform (KU Leuven)Cloud computing and the Windows Azure Services Platform (KU Leuven)
Cloud computing and the Windows Azure Services Platform (KU Leuven)Maarten Balliauw
 
Just another Wordpress weblog, but more cloudy
Just another Wordpress weblog, but more cloudyJust another Wordpress weblog, but more cloudy
Just another Wordpress weblog, but more cloudyMaarten Balliauw
 
ArcReady - Architecting For The Cloud
ArcReady - Architecting For The CloudArcReady - Architecting For The Cloud
ArcReady - Architecting For The CloudMicrosoft ArcReady
 
Windows Azure - Uma Plataforma para o Desenvolvimento de Aplicações
Windows Azure - Uma Plataforma para o Desenvolvimento de AplicaçõesWindows Azure - Uma Plataforma para o Desenvolvimento de Aplicações
Windows Azure - Uma Plataforma para o Desenvolvimento de AplicaçõesComunidade NetPonto
 
Cloud and azure and rock and roll
Cloud and azure and rock and rollCloud and azure and rock and roll
Cloud and azure and rock and rollDavid Giard
 
Real World Azure - IT Pros
Real World Azure - IT ProsReal World Azure - IT Pros
Real World Azure - IT ProsClint Edmonson
 
Experiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure teamExperiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure teamBrian Benz
 
Cloud application architecture with sql azure and windows azure
Cloud application architecture with sql azure and windows azureCloud application architecture with sql azure and windows azure
Cloud application architecture with sql azure and windows azureEduardo Castro
 
Understanding the Windows Azure Platform - Dec 2010
Understanding the Windows Azure Platform - Dec 2010Understanding the Windows Azure Platform - Dec 2010
Understanding the Windows Azure Platform - Dec 2010DavidGristwood
 
MSDN - Converting an existing ASP.NET application to Windows Azure
MSDN - Converting an existing ASP.NET application to Windows AzureMSDN - Converting an existing ASP.NET application to Windows Azure
MSDN - Converting an existing ASP.NET application to Windows AzureMaarten Balliauw
 
AWS Cloud Kata | Manila - Getting to Profitability on AWS
AWS Cloud Kata | Manila - Getting to Profitability on AWSAWS Cloud Kata | Manila - Getting to Profitability on AWS
AWS Cloud Kata | Manila - Getting to Profitability on AWSAmazon Web Services
 

Similar a Scaling Big While Sleeping Well (20)

Building Cloud-Native Applications with Microsoft Windows Azure
Building Cloud-Native Applications with Microsoft Windows AzureBuilding Cloud-Native Applications with Microsoft Windows Azure
Building Cloud-Native Applications with Microsoft Windows Azure
 
Azure JumpStart
Azure JumpStartAzure JumpStart
Azure JumpStart
 
Thinking Strategically about Cloud Computing
Thinking Strategically about Cloud ComputingThinking Strategically about Cloud Computing
Thinking Strategically about Cloud Computing
 
Windows Azure Platform + PHP - Jonathan Wong
Windows Azure Platform + PHP - Jonathan WongWindows Azure Platform + PHP - Jonathan Wong
Windows Azure Platform + PHP - Jonathan Wong
 
Windows Azure & How to Deploy Wordress
Windows Azure & How to Deploy WordressWindows Azure & How to Deploy Wordress
Windows Azure & How to Deploy Wordress
 
Big Data - in the cloud or rather on-premises?
Big Data - in the cloud or rather on-premises?Big Data - in the cloud or rather on-premises?
Big Data - in the cloud or rather on-premises?
 
AZUG.BE - Azure User Group Belgium - First public meeting
AZUG.BE - Azure User Group Belgium - First public meetingAZUG.BE - Azure User Group Belgium - First public meeting
AZUG.BE - Azure User Group Belgium - First public meeting
 
Just Another Word Press Weblog But More Cloudy
Just Another Word Press Weblog   But More CloudyJust Another Word Press Weblog   But More Cloudy
Just Another Word Press Weblog But More Cloudy
 
Big Data Analytics from Azure Cloud to Power BI Mobile
Big Data Analytics from Azure Cloud to Power BI MobileBig Data Analytics from Azure Cloud to Power BI Mobile
Big Data Analytics from Azure Cloud to Power BI Mobile
 
Cloud computing and the Windows Azure Services Platform (KU Leuven)
Cloud computing and the Windows Azure Services Platform (KU Leuven)Cloud computing and the Windows Azure Services Platform (KU Leuven)
Cloud computing and the Windows Azure Services Platform (KU Leuven)
 
Just another Wordpress weblog, but more cloudy
Just another Wordpress weblog, but more cloudyJust another Wordpress weblog, but more cloudy
Just another Wordpress weblog, but more cloudy
 
ArcReady - Architecting For The Cloud
ArcReady - Architecting For The CloudArcReady - Architecting For The Cloud
ArcReady - Architecting For The Cloud
 
Windows Azure - Uma Plataforma para o Desenvolvimento de Aplicações
Windows Azure - Uma Plataforma para o Desenvolvimento de AplicaçõesWindows Azure - Uma Plataforma para o Desenvolvimento de Aplicações
Windows Azure - Uma Plataforma para o Desenvolvimento de Aplicações
 
Cloud and azure and rock and roll
Cloud and azure and rock and rollCloud and azure and rock and roll
Cloud and azure and rock and roll
 
Real World Azure - IT Pros
Real World Azure - IT ProsReal World Azure - IT Pros
Real World Azure - IT Pros
 
Experiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure teamExperiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure team
 
Cloud application architecture with sql azure and windows azure
Cloud application architecture with sql azure and windows azureCloud application architecture with sql azure and windows azure
Cloud application architecture with sql azure and windows azure
 
Understanding the Windows Azure Platform - Dec 2010
Understanding the Windows Azure Platform - Dec 2010Understanding the Windows Azure Platform - Dec 2010
Understanding the Windows Azure Platform - Dec 2010
 
MSDN - Converting an existing ASP.NET application to Windows Azure
MSDN - Converting an existing ASP.NET application to Windows AzureMSDN - Converting an existing ASP.NET application to Windows Azure
MSDN - Converting an existing ASP.NET application to Windows Azure
 
AWS Cloud Kata | Manila - Getting to Profitability on AWS
AWS Cloud Kata | Manila - Getting to Profitability on AWSAWS Cloud Kata | Manila - Getting to Profitability on AWS
AWS Cloud Kata | Manila - Getting to Profitability on AWS
 

Más de Josh Holmes

Mentorship by Josh Holmes - a KalamazooX talk
Mentorship by Josh Holmes - a KalamazooX talkMentorship by Josh Holmes - a KalamazooX talk
Mentorship by Josh Holmes - a KalamazooX talkJosh Holmes
 
Tips from a grizzled speaker
Tips from a grizzled speakerTips from a grizzled speaker
Tips from a grizzled speakerJosh Holmes
 
BrazilJS Perf Doctor Talk
BrazilJS Perf Doctor TalkBrazilJS Perf Doctor Talk
BrazilJS Perf Doctor TalkJosh Holmes
 
Cloud becomingreality
Cloud becomingrealityCloud becomingreality
Cloud becomingrealityJosh Holmes
 
Wordpress on Windows
Wordpress on WindowsWordpress on Windows
Wordpress on WindowsJosh Holmes
 
Is that a Rich Web in Your Pocket?
Is that a Rich Web in Your Pocket?Is that a Rich Web in Your Pocket?
Is that a Rich Web in Your Pocket?Josh Holmes
 
Cloud by Numbers
Cloud by NumbersCloud by Numbers
Cloud by NumbersJosh Holmes
 
Rev it up with php on windows
Rev it up with php on windowsRev it up with php on windows
Rev it up with php on windowsJosh Holmes
 
Microsoft Zend webcast on Azure
Microsoft Zend webcast on AzureMicrosoft Zend webcast on Azure
Microsoft Zend webcast on AzureJosh Holmes
 
Scaling WordPress on Microsoft
Scaling WordPress on MicrosoftScaling WordPress on Microsoft
Scaling WordPress on MicrosoftJosh Holmes
 
Wordpress On Windows
Wordpress On WindowsWordpress On Windows
Wordpress On WindowsJosh Holmes
 
Moving Enterprise Applications To The Cloud
Moving Enterprise Applications To The CloudMoving Enterprise Applications To The Cloud
Moving Enterprise Applications To The CloudJosh Holmes
 
Best And Worst Practices Building Ria with Adobe and Microsoft
Best And Worst Practices Building Ria with Adobe and MicrosoftBest And Worst Practices Building Ria with Adobe and Microsoft
Best And Worst Practices Building Ria with Adobe and MicrosoftJosh Holmes
 
The Lost Art of Simplicity
The Lost Art of SimplicityThe Lost Art of Simplicity
The Lost Art of SimplicityJosh Holmes
 
Architecture of RIA from JAOO
Architecture of RIA from JAOOArchitecture of RIA from JAOO
Architecture of RIA from JAOOJosh Holmes
 
Best And Worst Ria
Best And Worst RiaBest And Worst Ria
Best And Worst RiaJosh Holmes
 
Architecting For Ux
Architecting For UxArchitecting For Ux
Architecting For UxJosh Holmes
 

Más de Josh Holmes (18)

Mentorship by Josh Holmes - a KalamazooX talk
Mentorship by Josh Holmes - a KalamazooX talkMentorship by Josh Holmes - a KalamazooX talk
Mentorship by Josh Holmes - a KalamazooX talk
 
Tips from a grizzled speaker
Tips from a grizzled speakerTips from a grizzled speaker
Tips from a grizzled speaker
 
BrazilJS Perf Doctor Talk
BrazilJS Perf Doctor TalkBrazilJS Perf Doctor Talk
BrazilJS Perf Doctor Talk
 
Cloud becomingreality
Cloud becomingrealityCloud becomingreality
Cloud becomingreality
 
Wordpress on Windows
Wordpress on WindowsWordpress on Windows
Wordpress on Windows
 
Is that a Rich Web in Your Pocket?
Is that a Rich Web in Your Pocket?Is that a Rich Web in Your Pocket?
Is that a Rich Web in Your Pocket?
 
Cloud by Numbers
Cloud by NumbersCloud by Numbers
Cloud by Numbers
 
Rev it up with php on windows
Rev it up with php on windowsRev it up with php on windows
Rev it up with php on windows
 
Microsoft Zend webcast on Azure
Microsoft Zend webcast on AzureMicrosoft Zend webcast on Azure
Microsoft Zend webcast on Azure
 
Scaling WordPress on Microsoft
Scaling WordPress on MicrosoftScaling WordPress on Microsoft
Scaling WordPress on Microsoft
 
MODx on Windows
MODx on WindowsMODx on Windows
MODx on Windows
 
Wordpress On Windows
Wordpress On WindowsWordpress On Windows
Wordpress On Windows
 
Moving Enterprise Applications To The Cloud
Moving Enterprise Applications To The CloudMoving Enterprise Applications To The Cloud
Moving Enterprise Applications To The Cloud
 
Best And Worst Practices Building Ria with Adobe and Microsoft
Best And Worst Practices Building Ria with Adobe and MicrosoftBest And Worst Practices Building Ria with Adobe and Microsoft
Best And Worst Practices Building Ria with Adobe and Microsoft
 
The Lost Art of Simplicity
The Lost Art of SimplicityThe Lost Art of Simplicity
The Lost Art of Simplicity
 
Architecture of RIA from JAOO
Architecture of RIA from JAOOArchitecture of RIA from JAOO
Architecture of RIA from JAOO
 
Best And Worst Ria
Best And Worst RiaBest And Worst Ria
Best And Worst Ria
 
Architecting For Ux
Architecting For UxArchitecting For Ux
Architecting For Ux
 

Último

Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 

Último (20)

Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 

Scaling Big While Sleeping Well

  • 1. Scaling Big while Sleeping Well Josh Holmes @joshholmes josh.holmes@microsoft.com www.joshholmes.com
  • 2. Agenda Testing the Waters What is cloud computing? What are the advantages of cloud computing? How’s Azure fit in? Diving Deep Digging into PHP/Ruby on Azure Leveraging FastCGI Leveraging Azure Storage Leveraging SQL Azure
  • 3. We are all excited about the cloud
  • 4. Cloud-Addressable Challenges 1 1 5 Maintaining security while increasing access and transparency—within and outside the organization Infrastructure costs are fixed and ongoing, and distract from the mission of reducing business process friction 2 6 Leveraging past investments to provide future value Security, access, and transparency across the value chain: suppliers, partners, etc. 3 Many data centers at limit—real estate, capacity, cooling and power 7 Lack of a common platform 4 Matching capacity to demand
  • 5. In House or Hosted Servers Allocated IT-capacities Load Forecast “Under-supply“ of capacities “Waste“ of capacities Fixed cost of IT-capacities IT CAPACITY Barrier for innovations ActualLoad TIME
  • 6. Cloud Computing Load Forecast Allocated IT capacities No “under-supply“ IT CAPACITY Reduction of “over-supply“ Possible reduction of IT-capacities in case of reduced load Reduction of initial investments ActualLoad Time
  • 7. Types of Clouds Platform (as a Service) Private (On-Premise) Infrastructure (as a Service) You manage Applications Applications Applications You manage Runtimes Runtimes Runtimes Security & Integration Security & Integration Security & Integration Managed by vendor Databases Databases Databases You manage Servers Servers Servers Managed by vendor Virtualization Virtualization Virtualization Server HW Server HW Server HW Storage Storage Storage Networking Networking Networking
  • 8. The Microsoft Cloud ~100 Globally Distributed Data Centers Quincy, WA Chicago, IL San Antonio, TX Dublin, Ireland Generation 4 DCs
  • 9.
  • 10. Categories of Services Application Services Software Services Platform Services The Microsoft Cloud Infrastructure Services
  • 11. The trick is knowing what your systems need, and how the cloud can help.
  • 12. Not everything has to or can live in the cloud
  • 13. Only move to the cloud that which can benefit
  • 14. The core strategy is ‘hybrid’
  • 15. Take an À la carteapproach
  • 16. We call this Software + Services
  • 18. “Packaged” Application Big Pharmaceutical Example Hosted “Packaged” “Packaged” using cloud “Software as a Service” Buy ERP “Too costly to run this myself, but I’ve made too many customizations” CRM Email Build vs. Buy “Home Built” Application Hosted “Home Built” “Home Built” using cloud “Platform as a Service” HR System Molecule Research Build Clinical Trial Hoster Vendor On Premise Cloud
  • 19. “Packaged” Application Big Pharmaceutical Example Hosted “Packaged” “Packaged” using cloud “Software as a Service” Buy ERP CRM “CRM and Email are commodity services – They have no customizations, and it’s cheaper for someone else to run these” Email Build vs. Buy “Home Built” Application Hosted “Home Built” “Home Built” using cloud “Platform as a Service” HR System Molecule Research Build Clinical Trial Hoster Vendor On Premise Cloud
  • 20. Big Pharmaceutical Example “Packaged” Application Hosted “Packaged” “Packaged” using cloud “Software as a Service” Buy ERP CRM Email Build vs. Buy “Home Built” Application Hosted “Home Built” “Home Built” using cloud “Platform as a Service” “I can’t afford to maintain this old HR application written in VB4 – it’s driving me mad!” HR System “…but due to regulatory issues, I cannot store my HR data off-premise” Molecule Research Build Clinical Trial Hoster Vendor On Premise Cloud
  • 21. “Packaged” Application Big Pharmaceutical Example Hosted “Packaged” “Packaged” using cloud “Software as a Service” Buy ERP CRM Email HR System Build vs. Buy “Home Built” Application Hosted “Home Built” “Home Built” using cloud “Platform as a Service” “I wish I had access to cheaper compute and storage when I need it” Molecule Research Build Clinical Trial Hoster Vendor On Premise Cloud
  • 22. “Packaged” Application Big Pharmaceutical Example Hosted “Packaged” “Packaged” using cloud “Software as a Service” Buy ERP CRM Email HR System Build vs. Buy “Home Built” Application Hosted “Home Built” “Home Built” using cloud “Platform as a Service” Molecule Research Build “THIS is where I want to spend my IT resources – I’m going to double down on this application!” Clinical Trial Hoster Vendor On Premise Cloud
  • 23. Where the Cloud is Compelling
  • 24. Only 2 reasons to use the cloud
  • 25. Windows Azure VMs Small Medium Large X Large $0.12 $0.24 $0.48 $0.96 Per service hour Per service hour Per service hour Per service hour 1 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 memory 14 GB memory
  • 26. Windows Azure, In One Picture Business Portal Developer Portal Service Management Service REST User Code … … Runtime API Storage Cluster VS Tools Compute Cluster … WA SDK VM Setup REST MSFT Datacenters Desktop Cloud VM
  • 27.
  • 32.
  • 34. Digging into Azure with PHP/Ruby
  • 35. Windows Azure, In One Picture Business Portal Developer Portal Service Management Service REST User Code … … Runtime API Storage Cluster VS Tools Compute Cluster … WA SDK VM Setup REST MSFT Datacenters Desktop Cloud VM
  • 36.
  • 39.
  • 42.
  • 43. Windows Azure 4 Eclipse Does a lot of the heavy lifting for you Creates the Web.config, Web.roleConfig, PHP implementation and debugs in the dev fabric http://windowsazure4e.org
  • 44. Running EXEs in the Worker Process Start with a Worker Role Process to Copy the exes to the worker role’s app directory Execute the process Monitor the health of the process Other auxiliary tasks…
  • 45. Running Ruby in the Worker Process http://code.msdn.microsoft.com/railsonazure Download and extract the solution Copy the Ruby bin and lib folders to the Ruby folder in the RR project Copy your rails application to the RailsApp folder in the RR project Open the solution in Visual Studio Run in the Dev Fabric Navigate to http://127.0.0.1:5100
  • 47. Storage options Windows Azure Data Sql Azure
  • 48. Windows Azure Data Storage Queue Blob Account Tables Drives
  • 49.
  • 50. Blobs
  • 57.
  • 59. PHP with Windows Azure Storage Windows Azure SDK for PHP @ http://phpazure.codeplex.com PHP programming model for Windows Azure Storage Features PHP classes for Blobs, Tables & Queues Store PHP sessions in Table Storage
  • 60. Windows Azure Data Storage - Blobs Unstructured data storage Partitioned by container Unlimited containers
  • 61. Blobs Sample $blobStorage= new Microsoft_WindowsAzure_Storage_Blob(); // Create if (!$blobStorage->containerExists($containerName)) { $blobStorage->createContainer($containerName); $blobStorage->setContainerAcl($containerName, Microsoft_WindowsAzure_Storage_Blob::ACL_PUBLIC); } // Store $blob = $blobStorage->putBlob($containerName, $blobName, $localFilename, $metadata); /* @var $blob Microsoft_WindowsAzure_Storage_BlobInstance */
  • 62. Blobs Sample Cont… // Copy $result = $blobStorage->copyBlob( $containerName, $blobName, $containerName, $blob2Name); // Retrieve $tempStore= azure_getlocalresourcepath('tempstore'); $tempPath= $tempStore. '' . $imageId; $blobStorage->getBlob($containerName, $blobName, $tempPath); // Delete $result = $blobStorage->deleteBlob($containerName, $blobName); $result = $blobStorage->deleteContainer($containerName);
  • 63. Blob Stream Wrapper $blobStorage= new Microsoft_WindowsAzure_Storage_Blob(); // Register: $blobStorage->registerStreamWrapper(); // registers azure:// // or $blobStorage->registerStreamWrapper('blob://'); // use blob:// // Use $fp= fopen('azure://mycontainer/myfile.txt', 'r'); // ... fclose($fp);
  • 64. Storage: XDrive NTFS drive in the cloud: X:br />Fixed size between 16MB and 1TB Max 8 drives on your VM Implemented as a page blob Single instance write Multiple instance read
  • 65. Queue Workflow Concepts Windows Azure Queue Provides Guarantee delivery (two-step consumption) Worker Dequeues Message and mark it as Invisible Worker Deletes Message when finished processing it If Worker role crashes, message becomes visible for another Worker to process Doesn’t guarantee “only once” delivery Doesn’t guarantee ordering Best effort FIFO Worker Role Web Role Input Queue (Work Items) Worker Role Azure Queue Web Role Worker Role Web Role Worker Role
  • 66. Azure Queues RemoveMessage GetMessage (Timeout) Worker Role PutMessage Queue Msg 1 Msg 2 Msg 2 Msg 1 Web Role Worker Role Worker Role Msg 3 Msg 4 Msg 2
  • 67. Loosely Coupled Work with Queues Worker-Queue Model Load work in a queue Many workers consume the queue Input Queue (Work Items) Azure Queue Worker Role Web Role Worker Role Web Role Worker Role Web Role Worker Role
  • 68. Queues $queueClient= new Microsoft_WindowsAzure_Storage_Queue(); // Create $result = $queueClient->createQueue('imageQueue'); // Delete $queueClient->deleteQueue('imageQueue'); // Add message $queueClient->putMessage('imageQueue', $message, $ttl); // Retrieve Messages $messages = $queueClient->getMessages('imageQueue', 10); foreach($messages as $message) { // Do work here... $queueClient->deleteMessage('imageQueue', $message); }
  • 69. Windows Azure Data Storage - Tables Semi-Structured data Tables contain entities Entities contain properties May be partitioned across thousands of servers. Support ACID transactions over single entities Queries over entire table .NET and REST interfaces
  • 70. Windows Azure Data Storage – Tables (Terms Part 1) Table Contains a set of entities. Entity (Row) Basic data items stored in a table. Property (Column) Single value in an entity. RowKey Unique ID of the entity within a partition Timestamp Time it was created
  • 71. Windows Azure Data Storage – Tables (Terms Part 2) Partition Entities in a table with the same partition key PartitionKey Segments entities in to partitions to automatically distribute the table’s entities over many storage nodes. Sort Order There is a single index provided for the CTP, where all entities in a table are sorted by PartitionKey and then RowKey
  • 72. Key Example – Blog Posts Partition 1 Partition 2 Getting all of dunnry’s blog posts is fast Single partition Getting all posts after 2008-03-27 is slow Traverse all partitions
  • 73. Table Sample $tableStorage= new Microsoft_WindowsAzure_Storage_Table( 'table.core.windows.net', 'myaccount', 'myauthkey'); // Create $result = $tableStorage->createTable($tableName); // List $result = $tableStorage->listTables(); foreach($result as $table) { echo 'Table name is: ' . $table->Name . ""; } // Delete $tableStorage->deleteTable($tableName);
  • 74. Tables with Entities // Structured entity class ImageEntityextends Microsoft_WindowsAzure_Storage_TableEntity { /** * @azure filename */ public $filename; /** * @azure size Edm.Int64 */ public $size; } // Unstructured entity // Microsoft_WindowsAzure_Storage_DynamicTableEntity
  • 75. Tables with Entities Cont… // Insert $image = new ImageEntity($partitionKey, $rowKey); $image->filename = $_FILES['imageUpload']['name']; $image->size = $_FILES['imageUpload']['size']; $image = $tableStorageClient->insertEntity($tableName, $image); // Retrieve $image = $tableStorage->retrieveEntityById($tableName, $partitionKey, $rowKey, 'ImageEntity'); // Update $image->filename = 'newname.jpg'; $result = $tableStorage->updateEntity($tableName, $image); // Delete $result = $tableStorage->deleteEntity($tableName, $image);
  • 76. Table Queries // Filter condition $select = "filesizegt 1024 and PartitionKeyeq '$partitionKey'"; // Or fluent interface $select = $tableStorage->select()->from($tableName) ->where('filesizegt 1024') ->andWhere('PartitionKeyeq ?', $partitionKey); // Run query $images = $tableStorage->storageClient->retrieveEntities( 'testtable', $select, 'ImageEntity' ); foreach($images as $image) { echo 'Name: ' . $image->filename . ""; }
  • 77. Batching Operations // Start batch $batch = $tableStorage->startBatch(); // Insert multiple $images = generateEntities(); foreach($images as $image) { $tableStorage->insertEntity($tableName, $image); } // Commit $batch->commit();
  • 78. Table session handler $sessionHandler = new Microsoft_WindowsAzure_SessionHandler($tableStorage); $sessionHandler->register(); session_start(); if (!isset($_SESSION['start'])) { $_SESSION['start'] = time(); }
  • 79. SQL Azure and Windows Azure Table Comparison Windows Azure Tables SQL Azure Tables Semi-structured Loosely typed Non-Relational (Not RDMS) Massively scalable Fully structured Strongly typed Relational (RDMS) Highly scalable
  • 80. MySQL: Simple Configuration VIP Load Balancer Web Role MySQL Worker Role
  • 81. MySQL in a Windows Azure Application Running MySQL in a worker role Copy MySQL to the worker role sub-directory Copy to read-write local storage Configure MySQL to listen on the right port Monitor MySQL health Consuming MySQL Discover IP address and port Normal access from then on Handle topology changes
  • 82. Simple Configuration VIP Load Balancer MySQL
  • 83. Replication VIP Load Balancer M S S MySQL MySQL MySQL
  • 84. Windows Azure Drive with Hot Spare VIP Load Balancer MySQL MySQL
  • 85. Windows Azure Drive with Hot Spare VIP Load Balancer MySQL MySQL
  • 87. SQL Azure Features Supported Tables, Indexes, Views Stored Procedures Triggers Constraints Table Variables Temp Tables (#Name) Not Supported Physical Server Access Catalog DDL Common Language Runtime Service Broker Reporting Services Analysis Services Distributed Transactions and Queries
  • 88. SQL AzureDeployment Web Portal (API) DB Script SQL Azure TDS
  • 89. SQL AzureAccessing databases Web Portal (API) Your App SQL Azure TDS Change Connection String
  • 90. Database Replicas Single Database Multiple Replicas Replica 1 Single Primary Replica 2 DB Replica 3
  • 91. SQL AzureDatabase Monitoring & Recovery Web Portal (API) ! Your App SQL Azure TDS
  • 92. SQL Azure Server Creation
  • 93.
  • 94.
  • 95. Database Migrations Scripts Transfer Schema BCP Transfer Data SSIS (SQL Server Integration Service) Transfer Schema and Data
  • 96. Database Migrations (Cont.) The SQL Azure Migration Wizard helps you migrate your local SQL Server 2005 / 2008 databases into SQL Azure. The wizard walks you through the selection of your SQL objects, creates SQL scripts suitable for SQL Azure, and allows you to migrate your data.” http://sqlazuremw.codeplex.com/
  • 97. Database Management using SQL Management Studio
  • 98. PHP with SQL Azure SQL Server Driver for PHP @ http://sqlsrvphp.codeplex.com/ Supports PHP access to SQL Azure Features Choose between SQL Server and SQL Azure by changing connection string Use from on-premises or in Windows Azure
  • 99.
  • 100. More resources Microsoft Windows Azure Interop http://www.microsoft.com/windowsazure/interop/ Interop Bridges http://www.interoperabilitybridges.com/
  • 101. More resources PHP http://www.windowsazure4e.org http://phpazure.codeplex.com/ MySQL Windows Azure MySQL PHP Solution Accelerator http://code.msdn.microsoft.com/winazuremysqlphp
  • 102. More resources Python Sriram Krishnan http://www.sriramkrishnan.com/blog/2008/11/python-wrapper-for-windows-azure.html Ruby Simon Davies http://blogs.msdn.com/simondavies http://code.msdn.microsoft.com/railsonazure Johnny Halife http://github.com/johnnyhalife/waz-storage http://waz-storage.heroku.com/rdoc/index.html
  • 103. And of course Josh Holmes http://www.joshholmes.com
  • 104. Scaling Big while Sleeping Well Josh Holmes @joshholmes josh.holmes@microsoft.com www.joshholmes.com

Notas del editor

  1. Many of the challenges with building applications today have very little to do with development tools, programming languages, or frameworks. Rather, many of the challenges that organizations face are related to the infrastructure required to deploy, run, and manage applications. Quickly summarize only 1 of the following:Startups - For example, imagine you were a startup building the next social networking site or online game You have to worry about numerous issues that are unrelated to the functionality of the application.[Capacity]You have to think about the capacity requirements for the application.Will it be used by a few thousand users or hundreds of thousands or millions?How do users translate to bandwidth, storage, and server requirements?Will the usage be consistent during all times of the year? Will it be consistent over the lifetime of the application?Can you handle spikes in demand if there were sudden demands for the app? (Digg Effect)Ultimately, most organizations end up paying for more capacity then they need.[Deployment, operations, and versioning]Then you have to worry about deploying and operating your applicationHow do you deploy your application over multiple servers?How do you role out updates to the app without taking it offline?How do you manage patches? Enterprise - For established organizations, some of these decisions and problems may have already been addressed through a shared data center or an established staff and processes. However, in enterprise organizations we often find that apps are silos of their own servers. Established organizations also still have to spend a significant amount of capital and operations funding. IT resources are applied to maintaining applications rather than delivering new value and functionality. ISV - Finally, if you’re an ISV who builds applications for use by other businesses you have to worry about a number of additional problems. You have to think about your customer’s capacity, which gets factored into the cost of ownership. Often, your sales opportunities are limited by your customer’s ability to deploy new applications.Your customers often have existing assets such as order fulfillment systems, ERP systems, multi-terabyte databases, etc. that are running on-premise. You must be able to easily integrate with these assets.
  2. http://www.flickr.com/photos/cesarastudillo/158254288/sizes/o/
  3. This reference chart may help us to recognize opportunities for using cloud computing within our own organizations or our vendors or customers.A new social networking sight may need a massive amount of scalability…A 911 call center may require that last “9” of reliability…A tax preparation package may require varying amounts of computational power, storage, and bandwidth…A hurricane relief site may need to launch on a moment’s notice and be available for a duration that is hard to predict at the onset of the disaster.A genome sequencing project or perhaps a search for extraterrestrial planets to live on in our future might require massive amounts of parallel processing power.A new online startup may need to begin business with little or no capital investment and fail fast with little or no financial lossSo with the terrific list of “great fits” … are there any “bad fits”? Well… yes… there are a few… at the present time…Frequently updated applications are not very good candidates. Primarily I say this because as a developer … the time that it takes to deploy is longer than if you had your own local on premise or hosted servers; however, you must take this with a grain of salt as you’ll have to compare it against the level of effort the you presently invest to make deployments in order to gauge the applicability of this advice.Applications needing external data storage are also not very good candidates at the present time.Of course, this is a moving target… and as cloud computing evolves further… even these bullets (and others like them) may move from the not-so-good list to the good-list. We are entering a new era of software development where we will once again be inspired and excited about our profession as software developers!
  4. http://www.flickr.com/photos/28481088@N00/2530180465/sizes/m/
  5. 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.
  6. Okay… That’s all about SQL Azure for now… we’ll come back to this topic in Session 3…Keep in mind that SQL Azure is a separate product from Windows Azure…. And that Windows Azure includes Windows Azure Data Storage, which we are going to talk about now. We will be using the Windows Azure Data Storage directly in demos, so these slides will provide more of a brief and high level overview.To get Windows Azure Data Storage setup, we simply create a new Storage Account from the Windows Azure Portal.
  7. Our Windows Azure Data Storage will be accessible via RESTful queries at the endpoints you see on this slide, or via the API in the Windows Azure SDK library.We’ll be using the Windows Azure library in our demo.
  8. 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.
  9. 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
  10. 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.
  11. The PartitionKey combined with the RowKey uniquely identifies an entity in a table.
  12. 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
  13. 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.
  14. http://www.flickr.com/photos/timothymorgan/75593157/sizes/o/
  15. 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.
  16. 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.
  17. 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.
  18. 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.
  19. 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.
  20. I will demonstrate creating a SQL Azure account in session 3 where I will walk you through the entire process.For now I simply want to give you some background information to prepare you for our first demonstration.When we create our SQL Azure database server, we’ll be prompted for an Administrator’s name and a password.This username and password will be the granted a system administrator role that is similar to the “sa” account on a local SQL Server 2008 box. The account has permission to create and drop databases and database ownership authority in any databases that you create with this account.
  21. After creating your SQL Azure database server, you will want to grant appropriate access through the SQL Azure firewall.SQL Azure provides a very simple and easy to maintain firewall. The firewall is so easy to use that it’s only going to get one slide in my deck!The firewall allows us to expose our database to Windows Azure services via a checkbox and to add ranges of IP addresses such as your home office and your business… or possibly the address of a 3rd party server hosting some application that needs data access.I’ll do a thorough demo of this feature in session 3…
  22. 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…
  23. There are a number of techniques for getting data migrated from an existing database into a SQL Azure database.One very effective technique is to script the database schema and any stored procedures or views and then apply these scripts to the SQL Azure database. Once the schema has been deployed to the cloud, BCP can be used to copy the data in.Another effective technique is to utilize SQL Server Integration Service which will transfer the Schema and the Data.
  24. I think that I saved the best for last here… The SQL Server Migration Wizard is available for download from the CodePlex website at the URL on this slide.To quote the website, “The SQL Azure Migration Wizard helps you migrate your local SQL Server 2005 / 2008 databases into SQL Azure. The wizard walks you through the selection of your SQL objects, creates SQL scripts suitable for SQL Azure, and allows you to migrate your data.”I will demonstrate this tool in session 3 when I use it to migrate an application and associated database from the local desktop to the cloud.
  25. Although some things can be done with SQL Server 2008 Management Studio, I highly recommend that you use the 2008 R2 Nov CTP as it is SQL Azure aware.After you have created your system administrator account for SQL Azure, you can use SQL Server Management Studio R2 CTP to make connections to the database and execute scripts such as the one that I am showing in this slide.