Upload
michelangelo-van-dam
View
110
Download
0
Tags:
Embed Size (px)
DESCRIPTION
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.
Citation preview
in it2
PHP AzureA brand new day
PFCongres Hét Web Development Congres
in it2
email: [email protected];er: @dragonbefacebook: dragonbe
ContactTrainer
Community LeaderPHP Consultant
Michelangelo van Dam
in it2
#phpazure
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
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
in it2
Move to the cloud
in it2
Or more complexCentric Architecture
Web Application
Database
Queue
Storage
Cache
Proxy
Log
in it2
Windows Azure StackCustom
Ready to go
Technology
Services
Data
Storage Blob Tables Queues CDN Cache
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
in it2
SDK for PHP‣ \WindowsAzure‣ \Blob
‣ \Common
‣ \Queue
‣ \ServiceBus
‣ \ServiceManagement
‣ \ServiceRunFme
‣ \Table
in it2
Composer
$ svn export h:ps://github.com/WindowsAzure/azure-‐sdk-‐for-‐php/trunk/WindowsAzure library/WindowsAzure
Subversion Hp
GITPEAR
SDK installaFon
in it2
PEAR dependencies‣ HTTP_Request2
‣ Mail_mime
‣ Mail_mimeDecode
in it2
Websites
Storage
Cloud ServicesVirtual Machines
Windows Azure
CDN
SSLSLA
Mobile
Media Big Data
QAVPN
IdenHtyMgmt
ACL
in it2
Azure Websites
in it2
The quickest way to deploy to the cloud
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
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>
in it2
in it2
Virtual Machines
in it2
AlternaFve way to achieve cloud power
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
in it2
in it2
Cloud Services
in it2
I was clueless
? ? ?:-(
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
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
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
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
in it2
Endless posibiliFes
WebApp WebApp WorkerApp
WinCache
Blob Storage Table Storage Queues
Azure SQL 3rd-‐party MySQL
in it2
DTAP environment
Web Fabric Staging ProducHon
WorkstaHon WindowsAzure
WindowsAzure
in it2
Web Role for PHP Local‣ Start Azure Emulator‣ PS C:\dev\myProject> Start-‐AzureEmulator
Creating local package...Starting Emulator...Role is running at http://127.0.0.1:81Started
in it2
in it2
in it2
in it2
in it2
in it2
in it2
Storage
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
in it2
Blob Storage overview
My Company
images
movies
image1.jpg
image2.jpg
movie1.mov
in it2
Usage of blobs
https://mycompany.blob.core.windows.net/image/image1.jpghttps://cdn01.mycompany.com/image/image1.jpg
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
in it2
Table Storage overview
Company
customer
product
name = …email = …
name = …email = …
code = …price = …
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
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
‣ …
in it2
Queue Storage overview
Email 2
Email 1
Email 3
WorkerRole
Email 1Queue Email 2
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
in it2
Conclusion
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
in it2
PHP checklist‣ Get your prototypes online quickly
‣ Ensure your apps stay online all the Fme
‣ Distribute responsibiliFes
‣ Integrate 3rd-‐party soluFons easily
in it2
No system knowledge necessary!Limited
✓
in it2
Michelangelo van DamZend CerFfied Engineer
in it2
PHP ConsulFng -‐ QA Audits -‐ Training Courses
www.in2it.be
in it2
CreaFve Commons Credits‣ sunny clouds: h;p://www.flickr.com/photos/andyfitz/2340298916
‣ balloon: h;p://www.flickr.com/photos/ashraful/5836601848
‣ flight: h;p://www.flickr.com/photos/unfinishedportrait/7712845996
‣ train: h;p://www.flickr.com/photos/nomadic_lass/8508000688
in it2
8957
If you liked it, thanks!If not, tell me how to improve
in it2Thank you