Leveraging Non-Microsoft Technologies into Azure
Josh Holmes – UX Evangelist @ Microsoft
Twitter: @JoshHolmes
In-House or Hosted Servers
- In House
- Barrier for Innovation
- Requires a large amount of IT that needs to be bought and needs a lot of money and also takes a lot of time
- “Waste” of capacity
- Our businesses have spikes but that’s not the normal usage, but in order to permit that usage we need to have that IT capacity and so we waste a lot of that capacity
- Barrier for Innovation
- Cloud Computing
- No Initial costs, and this the investment needed
- Cloud Computing is not competing with Shared Hosting, this is for real enterprise applications
Types of Cloud
- Private Cloud (On-Premise)
- We manage everything
- Infrastructure (IaaS)
- We manage only a small amount of the Infrastructure and not all the network
- Platform as a Service (PaaS)
- We don’t manage any infrastructure but only take advantage of the platform services that are being released
- Windows Azure seats here
Windows Azure Data Centers (~100 Globally Distributed Data Centers)
- US
- Quincy, WA
- Chicago, IL
- San Antonio, TX
- …
- Europe
- Dublin
- Amsterdam
- Asia
Microsoft CDN – Content Delivery Network . Currently in CTP
The Microsoft Cloud
- Application Services
- Bing
- Windows Live
- Office Live
- Health Vault
- Microsoft Advertising
- Software Services
- Office Online
- Dynamics CRM Online
- Exchange Online
- …
- Platform Services
- Windows Azure
- SQL Azure
- AppFabric
- Live Mesh
- …
Not everything has to or can live in the cloud.
Only need the things that benefits on being in the cloud.
The core Strategy is ‘Hybrid’, we call that Software + Services
Where is the cloud most compelling
- Massive scales: Outback promo on Facebook
- High reliability: eCommerce Apps
- Variable load
Reasons to use the cloud
- Improve Bottom Line Business
- Improve Strategy
Windows Azure VMs
- Small
- 1 x 1.8GHz
- 1.76 GB memory
- Medium
- 2 x 1.8 GHz
- 3.5 GB memory
- Large
- 4 x 1.8 GHz
- 8 GB memory
- X-Largeb
- 8 x 1.8 GHz
- 16 GB memory
Determine an ROI
- AzureROI.CloudApp.net
Windows Azure Roles
- Web Role
- External Facing
- Http/Https endpoints
- Short lived calls
- “Think Web Server”
- Worker Role
- Internal Facing
- TCP/HTTP endpoint
- Long running processes
- “Think Service or Deamon”
Running PHP and Ruby on Azure
- We can place the all the php files inside the package and have several versions of PHP running in different WebRoles
- How to do it
- Host in WebRole (like in .NET)
- Package the PHP runtime
- Point to FastCGI
Windows Azure for 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 Worker Role
- Start with 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
- Examples:
- Deploying Tomcat on Windows Azure
- Deploying MySQL
- …
Storage Options
- Windows Azure Storage
- Types Available:
- Queues
- Buffered delivery data storage
- Blobs
- Unstructured data Storage
- Partitioned by Containers
- Tables
- Semi-structured or tabular a storage (not the same as SQL Tables)
- Tables contain entities
- Entities contain properties
- Tables are contained in partitions
- Partitions are the units of replication
- Support ACID transitions
- Loosely typed
- Non Relational DB
- Massive scalable
- Drives
- Durable NTFS volumes that Windows Azure applications can use. See: http://microsoftpdc.com/Sessions/SVC14
- Maps back to Blobs
- Queues
- SDKs
- Windows Azure for PHP
- Types Available:
- SQL Azure
- Relational Data storage
- Fully structured
- Strongly typed
- RDMS
- Highly Scalable
- guaranteed 99.999 % uptime
- 3 replicas are guaranteed
- Not Supported
- Physical Server Access
- Catalog DDL
- CLR
- Service Broker
- Reporting Services
- Analysis Services
- Distributed Transactions and Queries
- Supported
- Tables, Indexes, Views
- Stored procedures
- Triggers
- constraints
- table variables
- temp tables
- Database Migration
Admin Windows Azure Data Storage
- http://windows.azure.com and make some Storage type project
- This gives you access to a storage account and also the AccountName and ApplicationId that you’ll need to develop against it
MySQL in a Windows Azure Application
- Running MySQL in a Worker Role
Zend Framework has now support for Windows Azure for Azure Storage, and will have support for Azure AppFabric (Service Bus, Access Control)