• Save
Playing with php_on_azure
Upcoming SlideShare
Loading in...5
×
 

Playing with php_on_azure

on

  • 1,463 views

 

Statistics

Views

Total Views
1,463
Views on SlideShare
1,463
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Playing with php_on_azure Playing with php_on_azure Presentation Transcript

  • Playing with PHP on Azure A Zend experience Cédric Derue – GWAB 2014
  •  Web Architect @ Altran  Skills: •  Zend Framework 2 •  ASP.NET MVC •  JavaScript •  NoSQL  Twitter: @cderue Cédric Derue
  •  You love PHP,  You love scripting,  You love pachyderms,  You know Windows? Who this session is for? View slide
  •  Cloud Computing definition  Windows Azure introduction  Zend Framework 2 use case  Azure Web Sites  Azure Storage Agenda View slide
  • Cloud Computing origin  Arpanet  Amazon  Google  HP  Microsoft
  • Windows Azure solution
  • Choose your ressources App
  • A simple equation to summary Windows Azure Blocs de construction applicatif Compute Application blocks Infra for building and deploying apps
  •  Evolutive and scalable  Fault tolerance  On demand  Pay for what you use Windows Azure benefits
  • Azure free trial
  • Windows Azure Portal
  • Windows Azure execution models Cloud Services Mobile Services Virtual Machines Web Sites
  • Virtual Machines Highly configurable Windows Server or Linux IaaS Scalable
  • Web Sites .NET, PHP, Python, Node.js, Java IIS PaaS Scalable
  • Mobile Services Android iOS HTML Hybrid Storage Authentication Push Monitoring MBaaS Scalable
  • Cloud Services Highly configurable IIS PaaS (Web & Worker Roles) Scalable
  • How to choose the right(s) model(s)?
  •  Create a new Azure Web Site  Start a new ZF2 app on Azure  Add ZF2 modules  Work with relational data on Azure  Work with non relational data on Azure  Install Windows Azure SDK for PHP  Demonstrate reversibility PHP Azure Web Site demo
  • Create a new Web Site on Azure
  • Configuring source control
  • Explore Azure Web Site(s)
  • Managing configuration
  • Scaling
  •  Modular  Extensible  High performing  Secure  Enterprise ready  Community Why Zend Framework 2?
  • > composer create-project --repository-url= "https://packages.zendframework.com" -s dev zendframework/skeleton-application <path/to/install> > composer update > php -S localhost:8080 -t public/ public/index.php Initialize a new ZF2 app
  • <?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="MyFixIt" stopProcessing="true"> <match url="^(.*)$" ignoreCase="false" /> <conditions> <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" /> </conditions> <action type="Rewrite" url="index.php" /> </rule> </rules> </rewrite> </system.webServer> </configuration> Web.config
  • > git remote add origin https://cderue@zf2.scm.azurewebsites.net:443/zf2.git > git remote -v > git push origin master Publishing with Git
  • First sign of life http://zf2.azurewebsites.net
  • Understanding ZF2 app structure
  • Discovering ZF2 modules http://modules.zendframework.com
  • { "name": "cderue/zf2-myfixit", "description": "MyFixIt Application for ZF2", "license": "Apache License, Version 2.0", "keywords": [ "framework", "zf2", "azure" ], "homepage": "http://github.com/cderue", "minimum-stability": "alpha", "require": { "php": ">=5.3.3", "zendframework/zendframework": "2.2.*", } } Composer
  •  ZfcUser  Authentication  MyFixIt  Task Management Which modules for our demo?
  •  Authentication is to verify that a person or entity is what it claims to be.  Authentication is not authorization. Authentication
  • ZendAuthentication principle Storage ZendAuthenticationAuthenticationService Adapter Db LDAP … Db Session …
  • "require": { "zf-commons/zfc-user": "dev-master" } Install ZfcUser module <?php return array( 'modules' => array('ZfcBase','ZfcUser') );  Post installation  Installation
  • The MyFixIt module
  •  Domain Driven Design  Dependency injection  Table Storage  Blob storage  Environment specific configuration  Reversibility Exploring the FixIt module
  •  With Azure, data can be stored in different systems like SQL or/and NoSQL databases, blobs, drives, etc.  Azure provides data management services for reporting or Big Data computing. Working with data
  •  Azure SQL Database  Azure Table Storage  Azure Blob Storage  Others… Working with data on Azure
  • $adapter = new ZendDbAdapterAdapter( array( 'driver' => 'pdo', 'dsn' => '<dsn>' 'database' => '<mysql_db>', 'username' => '<db_user>', 'password' => '<db_user_password>', 'hostname' => '<hostname>', ) ); Access to MySQL Azure with ZendDb
  • Store and access data with:  Blob (large binary or text data)  Table (non relational data)  Queue (messages) Azure Storage Services overview
  •  Storage in the form of tables  Flexible schema  High performance  REST API Azure Table Storage
  • Azure Blob Storage Account Container Blob cedric pictures movies Man of Steel.avi Beyonce.jpg Shakira.png
  • Explore Azure Storage
  •  Windows Azure SDK for PHP  Zend Framework 2 components  Symfony 2 bundles Working with PHP on Azure
  • Windows Azure SDK for PHP Windows Azure SDK for PHP PHP Client Librairies Command Line Tools Azure Emulators Windows Azure REST API Compute Storage Manage My PHP application
  • Install Windows Azure SDK "require": { "microsoft/windowsazure": "*" }, "repositories": [ { "type": "pear", "url": "http://pear.php.net" } ], "minimum-stability": "dev" }  Installation
  • When you deploy an application on the cloud, the reversibility must be taken into account to allow execution on premise if you decide to leave the cloud. Think reversibility!
  • Switch beetween two configuration files:  config/autoload/module.myfixit- azure.local.php  config/autoload/module.myfixit- onpremise.local.php Switch with env specific config
  • "require": { "doctrine/doctrine-mongo-odm-module": "dev-master" } Install Doctrine ODM module <?php return array( 'modules' => array( 'DoctrineModule', 'DoctrineMongoODMModule' ) );  Installation  Post installation
  • return array( 'doctrine' => array( 'connection' => array( 'server' => 'localhost', 'port' => '27017', 'user' => '<user_name>', 'password' => '<password>', 'dbname' => '<db_name>', ), ), ); Connect to MongoDB with Doctrine
  • It’s time to demo
  •  New Relic  Application Insights  Zend Server (PHP only) Monitoring your cloud applications
  • http://windowsazure-trainingkit.github.io/ http://blogs.msdn.com/b/microsoft_press/archive/tags/ azure/ http://www.pluralsight.com/training/ https://github.com/WindowsAzure/azure-sdk-for-php https://www.windowsazure.com/fr-fr/support/legal/sla/ Resources
  • Windows Azure makes all you want … …except French Kiss! Summary
  • Thank you!