This document provides an overview of Windows Azure and its core concepts. It discusses:
- Why cloud computing started and how Windows Azure came about to address challenges with managing machines.
- Key characteristics of cloud computing like elasticity, reduced costs, and new capabilities.
- Core Windows Azure services like Blob storage, Tables, Queues and AppFabric for identity management.
- How to plan application architecture, deploy to Windows Azure using tools like Visual Studio, and manage applications once deployed.
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
A Lap Around Windows Azure for PHP Developers
1. A Lap Around Windows Azure Chris Ismael Developer Evangelist Developer and Platform Evangelism Microsoft Singapore
2. Goals and Agenda To get you to sign up for the Windows Azure Introductory Offer http://bit.ly/freeazuresg Provide you with the “core concepts” knowledge that would be your foundation in understanding Windows Azure Agenda Why Cloud Computing? Why Would I… Define my website/service’s architecture Use Blob Storage, Tables, Queues Use Windows Azure AppFabric
3. Why Cloud Computing started How Windows Azure came about? Microsoft’s online services challenges Spending a lot of time managing the machines Inefficient utilization Little resource sharing No shared platform or standard toolset for everyone Reasons for major cloud providers Optimization (extra resources to share) ie Amazon Web Services Profit – economies of scale Strategic – product franchise Extension – customer relationships Presence – in market Platform – hub master of ISV’s offerings
4. Characteristics of Cloud Computing Value Proposition Elasticity No Commitment Reduced Cost Consumption-based Pricing Extra Capacity Faster Time to Market Self-Service IT SLA – 99.9% (over existing) Simplify IT Convert CapEx to OpEx New Capabilities – ie federated security Concerns Security Performance and Availability (ie storage) Vendor Lock-in Disaster Recovery In-house Capability and Process Billing Concerns Trust Alignment Best bet: Try it (bit.ly/freeazuresg) From David Pallman (davidpallman.blogspot.com)
5. Sample Scenario – Your typical Online Store The Service Model Signing up for Windows Azure Windows Azure Tool Set Portal and Service Management API Blobs and Tables Queues AppFabric Access Control Service (ACS) Planning / Architecture Purchasing (hardware, software licenses, etc) Prototyping / Testing Deployment / Management Adding new storage Decoupling components Managing identity (credentials)
10. Things to ponder on: This looks like Platform-As-A-Service (PAAS) Provides the tools and development environment to deploy applications Provides APIs to interact with the cloud components IAAS, SAAS Can I log-in to view these machines?
13. Things to ponder on Do I have to use Visual Studio to deploy? (show demo first) Is there a way to programmatically control and manage my deployments? Service Runtime API – let’s you access manipulate, and respond to the ambient environment in which your code runs (managed, native) Service Management API – meant to be run “outside” the cloud to manipulate your running services from outside (HTTP REST, free)
14. Sample Scenario – Your typical Online Store The Service Model Signing up for Windows Azure Windows Azure Tool Set Portal and Service Management API Blobs and Tables Queues AppFabric Access Control Service (ACS) Planning / Architecture Purchasing (hardware, software licenses, etc) Prototyping / Deployment Management Adding new storage Decoupling components Managing identity (credentials)
15. Storage using Blobs Blobs No need to predict how much storage is needed Persistent storage for your instances Scalable – consistent performance regardless of amount of data Replication of data REST HTTP / StorageClient libraries Why a new storage model? What’s wrong with the filesystem? When would I need a blob? What skills do I need to use blobs?
18. Things to ponder on.. Standard REST PUT/GET Interface http://<Account>.blob.core.windows.net/<Container>/<BlobName> StorageClient Library available Metadata can be associated per blob – 8K max Watch your wallet $0.15 per GB stored per month $0.01 per 10,000 storage transactions Windows Azure Drive… the C:solution (using VHDs)
22. Summary Of Windows Azure Queues Provide reliable message delivery Allows Messages to be retrieved and processed at least once No limit on number of messages stored in a Queue Message size is <=8KB
23. Tables First a little story about traffic signals… Versus traditional databases Denormalized data No schema – just name-value pairs No distributed transactions Black box – no settings Row size limits – 1MB Easy analogy = Excel sheet
27. CheapFastest to slowest query Unique partition key Partition key + row key Partition key No partition key/row
28. So do I need SQL Azure? Windows Azure Tables Denormalized data No schema – just name-value pairs No distributed transactions Black box – no settings Row size limits – 1MB SQL Azure Invert everything (pretty much) on the left, plus… Easier migration – MySQL/SQL Server -> SQL Azure, etc Has limits 10, 20, 30 – 50GB What if I need more than that???
29. Sample Scenario – Your typical Online Store The Service Model Signing up for Windows Azure Windows Azure Tool Set Portal and Service Management API Blobs and Tables Queues AppFabric Access Control Service (ACS) Planning / Architecture Purchasing (hardware, software licenses, etc) Prototyping / Deployment Management Adding new storage Decoupling components Managing identity (credentials)
30. Identity Management using AppFabric ACS Recap.. Scenarios You don’t want to manage passwords (how is that possible?) You don’t want to drastically change your existing code to handle logic for credentials You have an existing Identity Store (Active Directory) You want users to authenticate using several existing Identity Stores such as Live ID, Google, etc Claims-based identity to the rescue! (share analogy) – portal.appfabriclabs.com
33. Sample Scenario – Your typical Online Store The Service Model Signing up for Windows Azure Windows Azure Tool Set Portal and Service Management API Blobs and Tables Queues AppFabric Access Control Service (ACS) Planning / Architecture Purchasing (hardware, software licenses, etc) Prototyping / Deployment Management Adding new storage Decoupling components Managing identity (credentials) A bunch more to check out: VM Role Azure Drive AppFabric – Cache AppFabric - Service Bus
34. Pizza time Sign up for a free account http://bit.ly/freeazuresg Learn more at http://www.azure.com Try AppFabric at http://portal.appfabriclabs.com - free
36. Windows Azure Command-line Tools for PHP Overview Enables PHP developers to easily package and deploy application to Windows Azure A simple command-line tool Features Create new applications or convert existing PHP applications to Windows Azure applications Package all project assets: PHP Engine, Application source, PHP Extensions New Features including support for Worker role for batch processing & long running transactions. Windows Azure Drive Hosted Web Core on Worker Role Deploy to Local Development Fabric or the Windows Azure Cloud Specify deployment options Eg:- Configure # of instances Create the Azure deployment package (.cspkg) and Configuration file (.cscfg) Project site: http://azurephptools.codeplex.com Local (Development Fabric) or Cloud 1 2 3 Windows Azure Command-line Tools for PHP
37. Windows Azure SDK for PHP Logical architecture Overview Enables PHP developers to develop against Windows Azure Storage & Service Management infrastructure using familiar & consistent programming model. Features Set of PHP classes for Windows Azure Blobs, Tables & Queues (for CRUD operations) & Service Management Helper Classes for HTTP transport, AuhN/AuthZ, REST & Error Management Manageability, Instrumentation & Logging support Open Source Project site: Developed by our Partner RealDolmen http://phpazure.codeplex.com/ Distributed through Zend Framework http://framework.zend.com Simple Cloud API http://simplecloudapi.org Your PHP application REST Compute Storage Manage Deployment scenarios PHP Runtime Any internet connected Server PHP Runtime REST REST
38. Windows Azure Companion Applications feed (ATOM) Start deploying & controlling: Using the Windows Azure Companion and your custom feed deploy PHP runtime, frameworks, applications you want Provides a seamless experience installing and configuring PHP platform-elements (PHP runtime, extensions) and community PHP applications on Windows Azure. Installation engine running on your Windows Azure service. Fully customizable through a feed which describes what components to install. Growing Feed Ecosystem Integrated Administration, Diagnostics, Monitoring & Logging Project site: http://code.msdn.microsoft.com/azurecompanion http://www.interoperabilitybridges.com/projects/windows-azure-companion 1 2 3 Fire up the Windows Azure Companion: Deploy Windows Azure Companion package to your Windows Azure account Deploy to Cloud Applications to deploy Get Ready: Download the Windows Azure Companion package & set your custom feed
39. Storage Account And Blob Containers Blob Container Account IMG001.JPG pictures IMG002.JPG sally Storage Account An account can have many Blob Containers Container A container is a set of blobs Sharing policies are set at the container level Public READ or Private Associate Metadata with Container Metadata is <name, value> pairs Up to 8KB per container List the blobs in a container movies MOV1.AVI
41. Blob Features And Functions Store Large Objects (up to 50 GB each) Standard REST PUT/GET Interface http://<Account>.blob.core.windows.net/<Container>/<BlobName> PutBlob Inserts a new blob or overwrites the existing blob GetBlob Get whole blob or by starting offset, length DeleteBlob Support for Continuation on Upload Associate Metadata with Blob Metadata is <name, value> pairs Set/Get with or separate from blob data bits Up to 8KB per blob
42. Windows Azure Tables Provides Structured Storage Massively Scalable Tables Billions of entities (rows) and TBs of data Automatically scales to thousands of servers as traffic grows Highly Available Can always access your data Durable Data is replicated at least 3 times Familiar and Easy to use Programming Interfaces ADO.NET Data Services – .NET 3.5 SP1 .NET classes and LINQ REST - with any platform or language
43. Virtual Machine Role VM Role provides additional control and flexibility on the Windows Azure environment, and makes it easy to run existing Windows applications on Windows Azure. Developers have full control over the OS image Ability to upload your own customized WS08R2 Enterprise images Operators can reboot, reimage and Remote Desktop Continue to benefit from automated service management, including service model enhancements described on subsequent slides
Notas del editor
Start asking yourselves, do I need these?Windows Azure Key FeaturesService hostingService managementStorage – HTTP APIWindows Server - .NET Framework, FastCGI for PHP, ROR, Python, etcDevelopment Tools
Demo New ProjectShow Definition and Configuration FilesShow Properties of Web Role to demonstrate how easy it is to configure
Show signing upShow portalShow RDP
Show foldersShow public/privateShow metadata
Remember in our online store, one particular part of the process during purchasing is card payment.
The right choice depends on the environment you’re inDatabase administrators go to great lengths in making sure their data is not repeated, this process is called normalization. This ensures data integrity – you don’t want to have to update several tables with the column “name” under it. One drawback to this is performance. With Tables, it is up to the developer to take care of data integrity
Show propertiesAdd new properties – remember to put valuesPartition key / Row keys