This document discusses using PHP on the Azure cloud platform. It provides an overview of Azure's global data center presence and scale. It then covers hosting PHP applications on Azure Web Apps, using Azure services like storage and SQL, and other tools like the PHP SDK and CLI. The document aims to help developers get started with PHP on Azure.
10. Transform existing networks into a pooled, automated resource. Enable software to dynamically optimize the
network as per application/workload requirements, including flexible placement and mobility across clouds.
=
13. max capacity
demand
unused resources
max capacity
The ability to provision and deprovision
resources automatically to meet point-in-time
demand as closely as possible.
23. On Premises
Youscale,makeresilientandmanage
Infrastructure
(as a Service)
Managedbyvendor
Youscale,make
resilient&manage
Platform
(as a Service)
Scale,resilienceand
managementbyvendor
Youmanage
Hosting models
Software
(as a Service)
Business model
Applications
Scale,resilienceand
managementbyvendor
Choose your model
25. Azure is Open Across the Stack
Languages
CMS
Devices
Databases
Operating
systems
Microsoft 1st Party Support Ecosystem Supported
26. Azure compliance audits and certifications
ISO/IEC 27001
HIPAA
(Healthcare)
European Union
Model Clause
FedRAMP
PCI DSS L1 version 3SOC 1 SOC 2
Criminal Justice
Information System
Defense Information
Systems Agency L2
China
Multi Layer Protection
Scheme
Sarbanes Oxley
China
CCCPPF
ITAR
FIPS 140-2
United Kingdom
G-Cloud
Life Sciences GxP
Family Educational Rights
and Privacy Act
Singapore
Multi-Tier Cloud
Security
Global
United States
Regional
Coming soon
Defense Information
Systems Agency L3-5
Australian Signals
Directorate I-RAP
Assessment
ISO / IEC 27018
Cloud Security Alliance
Cloud Security Matrix
27. Fortune 500 using Azure
>57% >300k
Active websites
More than
1,000,000
SQL Databases in Azure
>30TRILLION
storage objects >300MILLION
AAD users
>13 BILLION
authentication/wk
>3
MILLION
requests/sec
>1.65MILLION
Developers registered
with Visual Studio Online
30. Create a Site with Command Line
• Need to be authenticated and logged in ( azure login)
• Mac/Linux:
azure site create mySiteName
• PowerShell:
New-AzureWebSite mySiteName
[-Location <location name>]
[-Hostname <custom host name>]
Demo
31. Configuring PHP
• General stuff
– Azure portal
• PHP configuration
– Use .user.ini or ini_set function
PHP Extensions
• How-to
http://azure.microsoft.com/en-us/documentation/articles/web-sites-php-configure/
Demo
32. Debugging Applications
• Enable debugging!
• You can FTP to these log files, or you can tail them using the
Azure SDK
– azure site tail log siteName
– Get-AzureWebsiteLog [siteName] –tail
• Visual Studio Online “Monaco”
40. Table Storage
255 properties
Max size 1 MB
Very fast!
PartionKey and RowKey
http://azure.microsoft.com/en-us/documentation/articles/storage-php-how-to-use-table-storage/blobs/
41. Storage Account: All access to Azure Storage is done through
a storage account.
Queue: A queue contains a set of messages.
Message: A message, in any format, of up to 64KB.
Queue Components
42. • Synchronize your corporate
and 3rd party identities
• Integration with O365
• Support modern protocols
• OAuth 2.0
• OpenID Connect
• WS-Fed
• SAML 2.0
• Identity and Access Mgmt Permissions
• Users
• Groups
• Applications
Microsoft Azure Active Directory
3rd party clouds/hostingMicrosoft
Azure AD
Yo
u
Lets now take a look at the global scale at which Windows Azure operates.
We operate in 8 global regions across different contents. 4 in US, 2 in Europe, and 2 in Asia. These are gigantic in their scale and operations and here are some of the pictures.
In addition, we have 24 CDN locations across the globe.
We provide support across 109 countries and in 8 languages
We have our local teams and sales offices across the world.
In addition, we have 19 countries with local currency support
Key Talking Points:
To support growth in the massive demand for Windows Azure, Microsoft has developed a modular approach to building and expanding physical datacenter capacity quickly – in days, instead of weeks and months
ITPACs are pre-assembled, self-contained datacenter “pods” that contain pre-wired racks of servers, storage and networking equipment along with cooling, venting and power management.
Multiple ITPACs can be quickly delivered to a datacenter site and interconnected to build and/or grow datacenter capacity
By leveraging ITPACs as building blocks for modular datacenters, not only can Microsoft quickly expand physical capacity, but existing capacity is delivered very cost-effectively – in our Gen4 datacenters, we’ve demonstrated a 1.05 PUE ( Power Utilization Efficiency) ratio – whereas traditional datacenters often have a PUE as much as 2-3x higher.
Direct attendees to the links on the page for more details. If time permits during the event, you may wish to play one or both videos.
Additional Resources:
aka.ms/itpac
aka.ms/msdatacenters
United Nations ITPAC datacenter technology video - http://www.microsoft.com/en-us/showcase/details.aspx?uuid=0d0d24d6-f637-4b50-b118-5c8a0f5bf614
Microsoft Generation 4.0 Data Center Vision - http://www.youtube.com/watch?v=PPnoKb9fTkA
May have lots of goals for our service, increase usage, profit
No matter what you’re building, you want people using it + pref liking it & hopefully telling others
Many underlying elements but overall = user experience
Key component of that is performance. How well your site or service responds.
Many studies have shown link between poor performance & loss of customers etc
Traditionally… carve out capacity @ max, hard to change. IT asks business how many people? Thousands = thousands $$$, maybe not. Lots of guess work
DR environment = 2x capacity
Now – speed, scale, economics
Building blocks / construction yard
Guidance from MS for SharePoint
Multiple user populations – CDN or Traffic manager
Cost, manageability, flexibility. Chat about hybrid transition – allblacks, warehouse using just VMs etc
THIS IS SQL AZURE DB – different?
We make 3 copies of data for durability and availability. So if a rack or server goes down, you data is available and accessible. We provide 99.9% SLA for storage.
Windows Azure Storage system is the underpinning to everything in Azure that requires storage. The Windows Azure storage system provides a solid robust data platform for different services that make use of it – Blobs, Tables and Drives.
Use Blob service for storing large amounts of unstructured data that can be accessed from anywhere in the world via HTTP or HTTPS. A single blob can be hundreds of gigabytes in size, and a single storage account can contain up to 100TB of blobs. Common uses of Blob storage include: Serving images or documents directly to a browser, Storing files for distributed access, Streaming video and audio, Performing secure backup and disaster recovery, Storing data for analysis by an on-premises or Windows Azure-hosted service
Tables is a NoSQL datastore which is ideal for storing structured, non-relational data. Common uses of the Table service include: Storing TBs of structured data capable of serving web scale applications, or storing datasets that don’t require a full fledged relational DB.
Drives are what are attached to VMs. They automatically provide get the same durability and availability. This differentiates us from other competitive offerings (like AWS) that have less reliable and durable storage systems for their VM instances.
Additionally, data is asynchronously copied to another datacenter that’s at least 400 miles away.
So you can be sure that every piece of data that you store in the Azure Blob is available as well as protected against regional disasters (we call this geo-replication).
Geo replication is a unique feature, that differentiates us from competition.
Slide Objectives
Understand each of the storage types at a high level
Speaker Notes
The Windows Azure storage services provide storage for binary and text data, messages, and structured data in Windows Azure. The storage services include:
The Blob service, for storing binary and text data
The Queue service, for storing messages that may be accessed by a client
The Table service, for structured storage for non-relational data
Windows Azure drives, for mounting an NTFS volume accessible to code running in your Windows Azure service
Programmatic access to the Blob, Queue, and Table services is available via the Windows Azure Managed Library and the Windows Azure storage services REST API
Notes
http://blogs.msdn.com/b/windowsazurestorage/archive/2010/03/28/windows-azure-storage-resources.aspx
Slide Objective
Understand block blob
Speaker Notes
Block blobs are comprised of blocks, each of which is identified by a block ID.
You create or modify a block blob by uploading a set of blocks and committing them by their block IDs.
If you are uploading a block blob that is no more than 64 MB in size, you can also upload it in its entirety with a single Put Blob operation.
When you upload a block to Microsoft Azure using the Put Block operation, it is associated with the specified block blob, but it does not become part of the blob until you call the Put Block List operation and include the block's ID.
The block remains in an uncommitted state until it is specifically committed. Writing to a block blob is thus always a two-step process.
Each block can be a maximum of 4 MB in size. The maximum size for a block blob in version 2009-09-19 is 200 GB, or up to 50,000 blocks.
Notes
http://msdn.microsoft.com/en-us/library/dd135734.aspx
Slide Objectives
Understand the hierarchy of Blob storage
Speaker Notes
The Blob service provides storage for entities, such as binary files and text files.
The REST API for the Blob service exposes two resources:
Containers
Blobs.
A container is a set of blobs; every blob must belong to a container.
The Blob service defines two types of blobs:
Block blobs, which are optimized for streaming.
Page blobs, which are optimized for random read/write operations and which provide the ability to write to a range of bytes in a blob.
Blobs can be read by calling the Get Blob operation. A client may read the entire blob, or an arbitrary range of bytes.
Block blobs less than or equal to 64 MB in size can be uploaded by calling the Put Blob operation.
Block blobs larger than 64 MB must be uploaded as a set of blocks, each of which must be less than or equal to 4 MB in size.
Page blobs are created and initialized with a maximum size with a call to Put Blob.
To write content to a page blob, you call the Put Page operation. The maximum size currently supported for a page blob is 1 TB.
Notes
http://msdn.microsoft.com/en-us/library/dd573356.aspx
Using the REST API for the Blob service, developers can create a hierarchical namespace similar to a file system. Blob names may encode a hierarchy by using a configurable path separator. For example, the blob names MyGroup/MyBlob1 and MyGroup/MyBlob2 imply a virtual level of organization for blobs. The enumeration operation for blobs supports traversing the virtual hierarchy in a manner similar to that of a file system, so that you can return a set of blobs that are organized beneath a group. For example, you can enumerate all blobs organized under MyGroup/.
Slide Objectives
Understand Tables
Speaker Notes
The Table service provides structured storage in the form of tables.
The Table service supports a REST API that is compliant with the ADO.NET Data Services REST API.
Developers may also use the .NET Client Library for ADO.NET Data Services to access the Table service.
Notes
http://msdn.microsoft.com/en-us/library/dd573356.aspx
Slide Objectives:
Explain the three established terms in the industry for cloud services
Speaking Points:
With this in mind, it’s important to understand how to talk about our Cloud Services offerings.
There is a lot of confusion in the industry when it comes to the cloud.
It’s important that you understand both what is happening in the industry and how we think about the cloud.
This is the most commonly used taxonomy for differentiating between types of cloud services.
The industry has defined three categories of services:
IaaS – a set of infrastructure level capabilities such as an operating system, network connectivity, etc. that are delivered as pay for use services and can be used to host applications.
PaaS – higher level sets of functionality that are delivered as consumable services for developers who are building applications. PaaS is about abstracting developers from the underlying infrastructure to enable applications to quickly be composed.
SaaS – applications that are delivered using a service delivery model where organizations can simply consume and use the application. Typically an organization would pay for the use of the application or the application could be monetized through ad revenue.
It is important to note that these 3 types of services may exist independently of one another or combined with one another.
SaaS offerings needn’t be developed upon PaaS offerings although solutions built on PaaS offerings are often delivered as SaaS.
PaaS offerings also needn’t expose IaaS and there’s more to PaaS than just running platforms on IaaS.
Windows Azure is a broad stack of services that runs in our datacenters globally.
Think of the different services as building blocks. These services can be categorized into three classes –
Infrastructure services which are lower level building blocks,
Data services that provide storage and data management capabilities to apps, and
App services which provide different capabilities to rapidly develop apps, scale and run apps at a global scale.
You can use these blocks or puzzle pieces to rapidly build apps, and then choose an Azure datacenter to run the app. Windows Azure takes care of the underlying management, and provides your app the scale it needs.
This approach is what industry experts call a Platform as a Service.
But that is not all that you can do with Azure. Windows Azure also provides infrastructure services which allow for more hands on configuration and management similar the servers you have today. However, they’re hosted in Microsoft datacenters letting you use Azure as if you were operating your own datacenter in the Cloud. For example, you can provision VMs, give them private IP addresses, and connect to them using a VPN from your on-premises environment. Most importantly, this lets Windows Azure mimic your on-premises datacenter and run your current apps with little or no change without the expense of having to own servers of racks, cooling and building costs. Furthermore, you can connect the “datacenter” you build in the Cloud to your on-premises datacenter so the datacenter in the Cloud becomes an extension to your on-premises infrastructure.
These “building blocks” lets Windows Azure to be used as an Infrastructure-a- a-service.
So, you see Windows Azure offers IaaS +PaaS in one platform. IaaS provides flexibility, PaaS eliminates complexity. Use PaaS where you can, use IaaS where you need. With Azure, you can use both together or independently, and build apps of the future. That uniquely differentiates us.