Windows Azure is one of the best cloud solutions out there and offers many services and tools for professionals to scale and extend their public and private applications. But as a professional web developer you need sometimes a quick solution to run your newest idea on. Most cloud solution providers ask you to download their stuff, upload your stuff and fight with numerous configurations while most of the things you do with Windows Azure you can do with a simple git repository, hosted on Github or BitBucket. This talk shows how fast you can develop a new idea with PHP and have it up-and-running in no time for your customers to see your latest idea and brainstorm about additional features. Generation Now, yes I am.
4. in it2
Why
Windows
Azure?
‣ PHP
Developer
‣ Write
web
applicaFons
‣ Want
to
deploy
fast
and
safe
‣ Prototyping
‣ Not
a
sysadmin
‣ Don’t
have
Fme
to
worry
about
plaIorms
‣ Don’t
want
to
worry
about
scalability
5. in it2
Azure
for
PHP
devs
‣ Supports
most
common
PHP
frameworks
‣ Symfony,
Zend
Framework,
Silex,
Slim,
…
‣ Building
robust
web
applicaFons
‣ storage
and
CDN
‣ easy
separaFon
of
responsibiliFes
7. in it2
Or
more
complex
Centric Architecture
Web Application
Database
Queue
Storage
Cache
Proxy
Log
Mail
8. in it2
Windows
Azure
Stack
Custom
Ready to go
Technology
Services
Data
Storage Blob Tables Queues CDN Cache
9. in it2
Azure
SDK
for
PHP
‣ Contents
‣ PHP
client
libraries
for
Windows
Azure
‣ Command
line
tools
for
Mac
&
Linux
‣ Windows
Azure
powershell
for
Windows
‣ Windows
Azure
Emulators
for
Windows
10. in it2
SDK
for
PHP
‣ WindowsAzure
‣ Blob
‣ Common
‣ Queue
‣ ServiceBus
‣ ServiceManagement
‣ ServiceRunFme
‣ Table
11. in it2
Composer
$
svn
export
h:ps://github.com/WindowsAzure/azure-‐sdk-‐for-‐
php/trunk/WindowsAzure
library/WindowsAzure
Subversion
Hp
GITPEAR
SDK
installaFon
16. in it2
Requirements
‣ A
PHP
project
‣ A
version
control
system
‣ local
(GIT,
Subversion,
TFS,
WebDeploy)
‣ on
line
(GitHub,
Bitbucket,
DropBox)
‣ AlternaFve
tools
‣ FTP
deploy
‣ Using
VisualStudio
or
WebMatrix
to
deploy
‣ About
15
minutes
17. in it2
One
important
thing!
‣ DocumentRoot
in
project
subdir
‣ e.g.
public/index.php
‣ Requirement
for
web.config
<rule name="GoPub" patternSyntax="Wildcard">
<match url="*" />
<action type="Rewrite" url="public/index.php" />
</rule>
21. in it2
Usages
‣ Run
arbitrary
processes
‣ e.g.
cron
processes
‣ Provide
uFlity
services
‣ e.g.
forward
proxy
‣ Cloud
OS
‣ Windows,
SQL
Server
or
Linux
in
the
cloud
25. in it2
Background
‣ Coming
from
a
UNIX/Linux
environment
‣ Worked
as
system
administrator
‣ Wrote
tools
in
Perl
(yeah,
I
know)
‣ Used
to
Cron,
Shell,
CGI
and
Daemons
‣ Worked
with
Windows
IIS
‣ Never
had
to
set
things
up
‣ Used
FTP
to
deploy
on
the
system
‣ Never
knew
the
fact
it
was
a
web
role
in
IIS
26. in it2
Figuring
it
out
‣ Web
Role
‣ A
web
site
or
service
running
on
the
internet
‣ Can
use
all
Windows
Azure
services
‣ Worker
Role
‣ Runs
processes
in
the
background
‣ Can
use
all
Windows
Azure
services
27. in it2
Why
Cloud
Services?
‣ All
the
power
of
Web
Sites
‣ With
smart
scaling
capabiliFes
‣ Memcache
like
caching
layer
per
instance
‣ Staging/ProducFon
environments
‣ With
smart
swapping
‣ Allows
controlled
automated
deployments
28. in it2
Command
line
tools
h;p://www.windowsazure.com/en-‐us/manage/linux/how-‐to-‐guides/command-‐line-‐tools/
h;p://msdn.microsok.com/en-‐us/library/windowsazure/jj156055.aspx
31. in it2
Web
Role
for
PHP
Local
‣ Start
Azure
Emulator
‣ PS
C:devmyProject>
Start-‐AzureEmulator
Creating local package...
Starting Emulator...
Role is running at http://127.0.0.1:81
Started
39. in it2
Blob
storage
‣ Storage
for
binary
large
objects
(BLOB)
‣ Block
blobs
(200GB)
‣ Page
blobs
(1TB)
‣ Unlimited
storage
capacity
‣ Content
delivery
network
(CDN)
‣ HTTP
and
HTTPS
support
‣ CNAME
support
‣ To
integrate
within
your
own
domain
(e.g.
blob.mycompany.com)
‣ Data
replicaFon
40. in it2
Blob
Storage
overview
My
Company
images
movies
image1.jpg
image2.jpg
movie1.mov
41. in it2
Usage
of
blobs
https://mycompany.blob.core.windows.net/image/image1.jpg
https://cdn01.mycompany.com/image/image1.jpg
42. in it2
Table
storage
‣ Storage
of
structured
data
‣ Oken
referred
to
as
NoSQL
‣ Implements
tree-‐like
data
storage
and
retrieval
‣ Scalable
and
replicated
‣ Supports
OData
protocol
43. in it2
Table
Storage
overview
Company
customer
product
name
=
…
email
=
…
name
=
…
email
=
…
code
=
…
price
=
…
44. in it2
Accessing
Table
Store
data
‣ Using
REST
directly
‣ GET
h;p://mycompany.table.core.windows.net/
customer
‣ Using
SDK
‣ h;ps://github.com/WindowsAzure/azure-‐sdk-‐
for-‐php
45. in it2
Queue
Storage
‣ FIFO
type
storage
‣ Processing
one
item
a
Fme
‣ Messages
in
any
format
of
64KB
‣ Useful
for
deferred
acFons
‣ Resize
of
images
‣ Sending
out
mails
‣ …
46. in it2
Queue
Storage
overview
Email
2
Email
1
Email
3
Worker
Role
Email
1Queue Email
2
47. in it2
Accessing
Queue
Messages
‣ Directly
with
REST
‣ GET
h;ps://
mycompany.queue.core.windows.net/
mailToSend
‣ Indirectly
using
SDK
‣ h;ps://github.com/WindowsAzure/azure-‐sdk-‐
for-‐php
49. in it2
Conclusion
‣ PHP
for
web
applicaFon
development
‣ WAWS
for
rapid
prototyping
‣ WACS
for
scaling
web
apps
and
workers
‣ WAVM
for
proxy,
tooling
and
scheduling
50. in it2
PHP
checklist
‣ Get
your
prototypes
online
quickly
‣ Ensure
your
apps
stay
online
all
the
Fme
‣ Distribute
responsibiliFes
‣ Integrate
3rd-‐party
soluFons
easily