SlideShare una empresa de Scribd logo
1 de 46
Descargar para leer sin conexión
Cloud and evolutions of the Microsoft platform



What’s new for Open Source, PHP
and Cloud Computing in the
Microsoft environment.




Pierre Couzy - Microsoft



Laurent Bonnet - Microsoft
Agenda
• The (relatively) new Microsoft/OSS story
• A new PHP platform on Windows
   • Running PHP on Windows
   • PHP apps on Windows
   • Opening Windows products to PHP
• Cloud story : PHP on Windows Azure
   • The Why
   • The How
Introduction

PHP on Windows :
 • Has been around for a decade
 • Actually, most PHP development is done
   on Windows
 • And yet, the Microsoft-PHP story has
   been difficult for years.
Open Source at Microsoft ?

Open Source Technology Center
3 goals :
I.     Get Involved with Open Source
       communities
II.    Ensure major projects run correctly on the
       Windows Operating Systems
III.   Open our products and platform to non-
       Microsoft stacks
OSTC : in the early days …


Founded in 2004

           2 computers

                         One guy…
OSTC today

• Hosted in Redmond
  • Staffed by OSS and Linux
    experts
  • 300 servers of varying types
  • 340+ Linux distros available
    for testing
  • Tests interoperability of OSS
    and Windows
  • Research of OSS
    technologies
Results ?
A SQL Server driver for PHP ?

• Done in collaboration with the PHP community
• Published on CodePlex with an OSI-approved
  license (http://sqlsrvphp.codeplex.com/).
• Can access any Sql Server instance (Express, 2005,
  2008, 2008 R2, Azure) from PHP
• Work in progress : enable Sql Server access to
  major PHP projects & frameworks
And also
OSTC has changed Microsoft
• We contributed to the linux kernel
• GPL developers do exist in Redmond
• On-going collaboration
   • With the Apache Software Foundation
   • With communities
• There’s still room for improvement
   • A typical project is still 1 month dev, 3
     months stabilization, 1 year legal…
Agenda
• The (relatively) new Microsoft/OSS story
• A new PHP platform on Windows
   • Running PHP on Windows
   • PHP apps on Windows
   • Opening Windows products to PHP
• Cloud story : PHP on Windows Azure
   • The Why
   • The How
A PHP Windows platform ?
•   Application: PHP
•   DB: SQL Server, MySql, etc.
•   Web Server: Internet Information Services (IIS)
•   OS: Windows Server 2008 / 2008 R2
From CGI to FastCGI

      One request, One              PHP runtime lives             PHP runtime
CGI




                            ISAPI




                                                        FastCGI
      process                       in IIS or in a                handled by a
                                    surrogate process             process pool


      The good                      The good
      • Very stable                                               The good
                                    • Very fast
                                                                  • Faster than CGI
      The bad                       The bad                       • More robust than
                                                                    ISAPI
      • *SLOW* on Windows
        (spawning a new             • Stability                   • No more threading
        process)                    • Thread safety                 issues
Démo
Also available on Server Core


• A “distro” that minimizes footprint and
  attack surface

• PHP runs on
  Server Core
  since Windows
  Server 2008
Creating a new Build Process
               Using better tools to do a better job

Unix ‘configure’-style makefiles                      Created a clean, unified build

• Makefiles are generated using Unix-style            •Using tools built by the OSTC, we have constructed a
  configure scripts. Functionality is emulated with    better build process which opens many new
  JScript                                              possibilities, yet can easily adapt to new changes by
                                                       developers using older technologies.

No Optimizations                                      One unified set of properties
• Makefiles are generated with no ability to          •Generated project files use a single set of build
  optimize entire builds, nor take advantage of        configuration files, allowing 100% of the code to be
  better tools, compilers, etc.                        built to the same specifications.

Independent Dependencies                              Optimizations everywhere

• Libraries never compiled with the same              •The new process lets us take advantage of high-
  settings.                                            performance PGO technology to improve the
                                                       performance of PHP by leaps and bounds.

Undefined process                                     Limitless opportunities

• Very few people had all the right bits/tools to     •With the new process, we can now do instrumented
  even compile the Windows PHP binaries—               builds of the entire stack, allowing us to analyze and
  Certainly impossible to replicate an exact build.    improve PHP for any environment.
Using VC 9
           What a difference the compiler makes


VC 6 builds                                     VC 9 builds

• Visual C++ 6.0, being over a decade old,      • Visual C++ 9.0 provides technologies that
  would not produce code optimized for            allow us to target today’s operating
  modern operating systems and                    systems and hardware.
  hardware.

                                                New Compiler
Older Compiler
                                                • By just changing the compiler, generates
• PHP on Windows was being left behind,           code that performs better, even before
  simply because it was nearly impossible         using advanced PGO technologies.
  to build with any other compiler
                                                Now, 64 bit support
No 64 bit support
                                                • We are now building 64bit snapshot
• VC 6 offered no ability to build for 64 bit     builds alongside the 32 bit builds, 95%+
  Windows                                         libraries are 64 bit too.
Going native
                Using Windows APIs on Windows…

                                                     Eliminated POSIX emulation
Heavy use of POSIX emulation
                                                     • Dropped the POSIX emulation libraries, and
• PHP has been built with POSIX in mind, and
                                                       code has been written to use Win32 APIs
  therefore, on Windows it was natural to adopt
                                                       correctly.
  emulation libraries to accomplish similar tasks.

                                                     Choosing the Win32 Way
Using wrong methods
                                                     • Implemented features in a way that doesn’t
• Often, the way to do something on Unix, is not
                                                       mimic the method on Unix, just the results.
  the way to do it on Windows.

                                                     Use native libraries/APIs
Non-standard Implementations
                                                     • Replaced that code with calls to the natively
• Many libraries were being used to supply
                                                       provided APIs.
  functionality that was already present in
  Windows (Crypto, DNS, etc)
                                                     Targets new OS, gracefully
Targeted oldest OS possible
                                                     • Recent code changes now allow us to target
                                                       features on the latest versions of Windows, and
• Windows 98 was considered a primary target…
                                                       provides graceful failure on down-level
  ‘nuff said!
                                                       platforms.
Testing and QA
                 Using Windows APIs on Windows…


Unix was the primary platform
                                                    Windows is a primary platform
• If it worked on a Unix platform, it was done...
  Windows was never given any attention, nor        •Windows is now a primary platform, and changes
  care by hardly anyone                              which break Windows must be addressed.

                                                    98%+ tests now pass on Windows.
Tests did not have high pass rate.
                                                    •Over 98% of tests now pass on Windows, and we’re
• The standard PHP test suite did not pass with a    aiming to close the gap completely.
  strong success rate.
                                                    Windows is now represented
Security was a Unix concern.
                                                    •Windows developers are now on the security mailing
• Security considerations for Windows were not       lists, and can take action at the same time.
  taking place, no Windows developers were on
  the Security Mailing Lists                        New Testing Tools

                                                    •The OSTC has created new tools for testing FastCGI
No tools for doing automated testing.                and PHP builds that can be included in the official
                                                     build process, providing PGO and instrumentation
• Nearly no tools to assist in automation of         data to the developers.
  testing on Windows at all.
Release Process
                   Same Day Service…with a smile


                                                Windows is a primary platform
Unix was the primary platform
                                                • Windows gets the same ability to push
• Unix Platforms was the only concern.            back on Release Dates, and builds are
                                                  done on both platforms on the same day.
Single point of failure.
                                                Easy to replicate.
• Builds for Windows were constrained by
  a single person’s ability to make the build   • It is now simple for anyone to rebuild the
  happen.                                         exact same PHP stack on Windows as the
                                                  release build.
No attention to details.
                                                New work on the installer.
• Hardly anyone worked on Windows
  releases, and the installer was poor.         • New work is being done to improve the
                                                  installer for the Windows platform.
Where are we now ?
• PHP is at last maintained on Windows.
   • And ready for production
   • http://windows.php.net
• Performance tuning is on its way
   • We are getting on par with LAMP
   • Ongoing work on caching
• We still lack many modules for 5.3
   • That’s our top priority right now
Web Plaform Installer
                                         http://www.microsoft.com/web
• A tool to install and configure
   •   IIS
   •   Frameworks and runtimes (.NET / PHP)
   •   Databases (SQL Server, MySQL)
   •   Tools (Visual Web Developper 2008, Silverlight 3 Tools for VS)

• And Web apps
   • Blogs (phpBB, WordPress, DasBlog, …)
   • Wikis, Galleries, etc.
   • CMS (DotNetNuke, Drupal, SilverStripe, ...)
What’s next
Windows Cache Extension 1.0 for PHP
PHP Connectivity to Windows Azure
Word and Excel reading and writing
Windows Live services
PDO Driver for Sql Server
…
Working in sync with you on the most popular
 applications
Web Platform Installer
Agenda
• The (relatively) new Microsoft/OSS story
• A new PHP platform on Windows
   • Running PHP on Windows
   • PHP apps on Windows
   • Opening Windows products to PHP
• Cloud story : PHP on Windows Azure
   • The Why
   • The How
Cloud terms & actors in a nutshell
• Infrastructure as a Service : bring your OS
• Platform as a service : bring your App
• Infrastructure as a service : use our App
How does your app handle load ?


                                                                   peak load

       Usage                                                    Idle time


               Jan            Apr              Jul        Oct

                                                                             Cloud
                          Cloud p1 p2 p3
Web Tier       B/L Tier

Web Tier       B/L Tier             Database         Web Tier     B/L Tier           Database

Web Tier       B/L Tier
How does your app share data ?




                                          I love
    I love you!
                                         you too!

                  Server          Data


                      Company A
Scenarios for Data
                                                   In-browser
                                                   Application
                                               (JSON & AtomPub
                                                Support in Azure)

              Public Cloud
     Server
                                        Data
     Server

     Server


                                               Company B


                   Server               Data       Server


                            Company A
Your app, my accounts ?



                          Federated Identity               Your App
      Your App                Provider




                 Account DB            Your        Your
Entreprise
                  for a web         University   OpenID          …
 directory
                     app             account     account
The Windows Azure cloud infrastructure
We Start with Lots of Blinking Lights and Cables
We Put them Into Racks
Then, we add software
• A hypervisor, on top of which
  a Host Virtual Machine,
  on top of which
  many Virtual Machines



            CPU: x64
            OS : Windows 2008
            Web Server : IIS 7
            Apps : .Net, PHP, C++, etc.
Then, we add redundancy logic

   Front-end Node                       Front-end Node                  Front-end Node

       REST/SOAP                            REST/SOAP                       REST/SOAP
                                                                                                                     front-end
        ACE Logic                            ACE Logic                       ACE Logic
    Data Access Library                  Data Access Library             Data Access Library




                                                                                                              Master Cluster

                 Service Management

                                                Health                                           Master Node                      Master Node
 Provisioning             Deployment
                                               Monitoring
                                                                                                Partition Manager                Partition Manager

                                                                                                   Data Node                        Data Node
                                                                                                  Components                       Components




                                                                 Data Cluster

         Data Node                      Data Node                 Data Node                       Data Node                        Data Node

      SQL                           SQL                         SQL                             SQL                           SQL
     Server          Mgmt.         Server         Mgmt.        Server      Mgmt.               Server      Mgmt.             Server         Mgmt.
                    Services                     Services                 Services                        Services                         Services
     Fabric                        Fabric                      Fabric                          Fabric                        Fabric


          Fabric                                                        Fetch Partition                                  SQL
                                       Replication
                                                                             Map                                        Client
Which leads to :
Running code on Azure
• We re-use the existing IIS infrastructure

• FastCGI allows us to plug in almost every
  language
   • For example, you can package PHP,
   • .. Including your own extensions and
     configuration,
   • Point PHP files to PHP-CGI.exe,
   • .. And run them directly

• Let’s see that in action.
Running code on Azure
Data on Azure


• A basic storage infrastructure : Azure Storage
   • Blobs (think files)
   • Tables (think Flat File database)
   • Queues (messages)
   • Access is done using REST

• A SQL-Server engine : SQL Azure
   • A subset of SQL Server 2008
   • Including Views, Stored Procedures, etc.
   • Access is done using TDS
Using Azure Storage
• http://phpazure.codeplex.com/
• Overview
   • Enables PHP developers to take advantage
     of the Microsoft Cloud Services Platform – Windows
     Azure.
   • Provides consistent programming model for Windows
     Azure Storage (Blobs, Tables & Queues)
• Features
   • PHP classes for Windows Azure Blobs, Tables & Queues
     (for CRUD operations)
   • Helper Classes for HTTP transport, AuthN/AuthZ, REST &
     Error Management
   • Manageability, Instrumentation & Logging support
   • Support for storing PHP sessions in Azure Table Storage
• Licence : BSD
Using Sql Azure



• http://www.codeplex.com/SQLSRVPHP
• Licence : Microsoft Public License (Ms-PL)
• Gives access to SQL Server databases,
   • But also SQL Azure
Consuming Sql Azure
... in PHP
… with Eclipse
We do our best to be technology-agnostic


        Azure Services Platform
             ™
Thank you, and stay
tuned for more (Symfony
on Azure ?)
Links
• www.azure .com : main entry point
• http://sqlazuremw.codeplex.com/
   • Migration Wizard (Sql Server -> Sql Azure)
• http://www.codeplex.com/SQLSRVPHP
   • Accessing data using TDS (Sql Server, Sql Azure)
• http://phpazure.codeplex.com/
   • Accessing Azure Storage in PHP
• http://windows.php.net
   • Latest PHP binaries & Source
• http://www.microsoft.com/downloads/details.aspx?FamilyID=413E
  88F8-5966-4A83-B309-53B7B77EDF78&displaylang=en
   • Standard Azure Training Kit, contains samples to run PHP on
      Azure
• http://phpdataservices.codeplex.com/
   • Accessing REST data using PHP

Más contenido relacionado

La actualidad más candente

Dd13.2013.milano.open ntf
Dd13.2013.milano.open ntfDd13.2013.milano.open ntf
Dd13.2013.milano.open ntfUlrich Krause
 
The Architect Way - JSCamp.asia 2012
The Architect Way - JSCamp.asia 2012The Architect Way - JSCamp.asia 2012
The Architect Way - JSCamp.asia 2012Jan Jongboom
 
Maven: from Scratch to Production (.pdf)
Maven: from Scratch to Production (.pdf)Maven: from Scratch to Production (.pdf)
Maven: from Scratch to Production (.pdf)Johan Mynhardt
 
CLA Summit 2013: Connecting LabVIEW to Everything Else
CLA Summit 2013: Connecting LabVIEW to Everything ElseCLA Summit 2013: Connecting LabVIEW to Everything Else
CLA Summit 2013: Connecting LabVIEW to Everything ElseJKI
 
Building Android apps with Maven
Building Android apps with MavenBuilding Android apps with Maven
Building Android apps with MavenFabrizio Giudici
 
Eclipse OMR: a modern toolkit for building language runtimes
Eclipse OMR: a modern toolkit for building language runtimesEclipse OMR: a modern toolkit for building language runtimes
Eclipse OMR: a modern toolkit for building language runtimesMark Stoodley
 
Object Oriented Programming I
Object Oriented Programming IObject Oriented Programming I
Object Oriented Programming Iraven_rainagi
 
UKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basicsUKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basicsUlrich Krause
 
Web services on IBM i with PHP and Zend Framework
Web services on IBM i with PHP and Zend FrameworkWeb services on IBM i with PHP and Zend Framework
Web services on IBM i with PHP and Zend FrameworkAlan Seiden
 
Enterprise OSGi at eBay
Enterprise OSGi at eBayEnterprise OSGi at eBay
Enterprise OSGi at eBayTony Ng
 
Symfony2 for legacy app rejuvenation: the eZ Publish case study
Symfony2 for legacy app rejuvenation: the eZ Publish case studySymfony2 for legacy app rejuvenation: the eZ Publish case study
Symfony2 for legacy app rejuvenation: the eZ Publish case studyGaetano Giunta
 
BP-10 Keeping Your Sanity – Rapid Development & Deployment Tools
BP-10 Keeping Your Sanity – Rapid Development & Deployment ToolsBP-10 Keeping Your Sanity – Rapid Development & Deployment Tools
BP-10 Keeping Your Sanity – Rapid Development & Deployment ToolsAlfresco Software
 
Perforce's Java Platform: Continuous Integration For Real
Perforce's Java Platform: Continuous Integration For RealPerforce's Java Platform: Continuous Integration For Real
Perforce's Java Platform: Continuous Integration For RealPerforce
 
Pie chart with center 11 stages powerpoint diagrams and powerpoint templates
Pie chart with center 11 stages powerpoint diagrams and powerpoint templatesPie chart with center 11 stages powerpoint diagrams and powerpoint templates
Pie chart with center 11 stages powerpoint diagrams and powerpoint templatesSlideTeam.net
 
MWLUG 2015 - An Introduction to MVC
MWLUG 2015 - An Introduction to MVCMWLUG 2015 - An Introduction to MVC
MWLUG 2015 - An Introduction to MVCUlrich Krause
 
Modernisation of Legacy PHP Applications to Symfony2 - Symfony Live Berlin 2012
Modernisation of Legacy PHP Applications to Symfony2 - Symfony Live Berlin 2012Modernisation of Legacy PHP Applications to Symfony2 - Symfony Live Berlin 2012
Modernisation of Legacy PHP Applications to Symfony2 - Symfony Live Berlin 2012Fabrice Bernhard
 
#JavaOne What's in an object?
#JavaOne What's in an object?#JavaOne What's in an object?
#JavaOne What's in an object?Charlie Gracie
 
Lessons learned from building Eclipse-based add-ons for commercial modeling t...
Lessons learned from building Eclipse-based add-ons for commercial modeling t...Lessons learned from building Eclipse-based add-ons for commercial modeling t...
Lessons learned from building Eclipse-based add-ons for commercial modeling t...IncQuery Labs
 
XPages -Beyond the Basics
XPages -Beyond the BasicsXPages -Beyond the Basics
XPages -Beyond the BasicsUlrich Krause
 

La actualidad más candente (20)

Dd13.2013.milano.open ntf
Dd13.2013.milano.open ntfDd13.2013.milano.open ntf
Dd13.2013.milano.open ntf
 
The Architect Way - JSCamp.asia 2012
The Architect Way - JSCamp.asia 2012The Architect Way - JSCamp.asia 2012
The Architect Way - JSCamp.asia 2012
 
Maven: from Scratch to Production (.pdf)
Maven: from Scratch to Production (.pdf)Maven: from Scratch to Production (.pdf)
Maven: from Scratch to Production (.pdf)
 
CLA Summit 2013: Connecting LabVIEW to Everything Else
CLA Summit 2013: Connecting LabVIEW to Everything ElseCLA Summit 2013: Connecting LabVIEW to Everything Else
CLA Summit 2013: Connecting LabVIEW to Everything Else
 
Building Android apps with Maven
Building Android apps with MavenBuilding Android apps with Maven
Building Android apps with Maven
 
Eclipse OMR: a modern toolkit for building language runtimes
Eclipse OMR: a modern toolkit for building language runtimesEclipse OMR: a modern toolkit for building language runtimes
Eclipse OMR: a modern toolkit for building language runtimes
 
Object Oriented Programming I
Object Oriented Programming IObject Oriented Programming I
Object Oriented Programming I
 
UKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basicsUKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basics
 
Web services on IBM i with PHP and Zend Framework
Web services on IBM i with PHP and Zend FrameworkWeb services on IBM i with PHP and Zend Framework
Web services on IBM i with PHP and Zend Framework
 
Enterprise OSGi at eBay
Enterprise OSGi at eBayEnterprise OSGi at eBay
Enterprise OSGi at eBay
 
Symfony2 for legacy app rejuvenation: the eZ Publish case study
Symfony2 for legacy app rejuvenation: the eZ Publish case studySymfony2 for legacy app rejuvenation: the eZ Publish case study
Symfony2 for legacy app rejuvenation: the eZ Publish case study
 
BP-10 Keeping Your Sanity – Rapid Development & Deployment Tools
BP-10 Keeping Your Sanity – Rapid Development & Deployment ToolsBP-10 Keeping Your Sanity – Rapid Development & Deployment Tools
BP-10 Keeping Your Sanity – Rapid Development & Deployment Tools
 
Perforce's Java Platform: Continuous Integration For Real
Perforce's Java Platform: Continuous Integration For RealPerforce's Java Platform: Continuous Integration For Real
Perforce's Java Platform: Continuous Integration For Real
 
Pie chart with center 11 stages powerpoint diagrams and powerpoint templates
Pie chart with center 11 stages powerpoint diagrams and powerpoint templatesPie chart with center 11 stages powerpoint diagrams and powerpoint templates
Pie chart with center 11 stages powerpoint diagrams and powerpoint templates
 
MWLUG 2015 - An Introduction to MVC
MWLUG 2015 - An Introduction to MVCMWLUG 2015 - An Introduction to MVC
MWLUG 2015 - An Introduction to MVC
 
Modernisation of Legacy PHP Applications to Symfony2 - Symfony Live Berlin 2012
Modernisation of Legacy PHP Applications to Symfony2 - Symfony Live Berlin 2012Modernisation of Legacy PHP Applications to Symfony2 - Symfony Live Berlin 2012
Modernisation of Legacy PHP Applications to Symfony2 - Symfony Live Berlin 2012
 
#JavaOne What's in an object?
#JavaOne What's in an object?#JavaOne What's in an object?
#JavaOne What's in an object?
 
Stackato v6
Stackato v6Stackato v6
Stackato v6
 
Lessons learned from building Eclipse-based add-ons for commercial modeling t...
Lessons learned from building Eclipse-based add-ons for commercial modeling t...Lessons learned from building Eclipse-based add-ons for commercial modeling t...
Lessons learned from building Eclipse-based add-ons for commercial modeling t...
 
XPages -Beyond the Basics
XPages -Beyond the BasicsXPages -Beyond the Basics
XPages -Beyond the Basics
 

Destacado

Destacado (20)

Developer design services
Developer design servicesDeveloper design services
Developer design services
 
H2o Recycle
H2o RecycleH2o Recycle
H2o Recycle
 
Masa Depanku Stefanie 6c
Masa Depanku Stefanie 6cMasa Depanku Stefanie 6c
Masa Depanku Stefanie 6c
 
Komputerku Rania 4a
Komputerku Rania 4aKomputerku Rania 4a
Komputerku Rania 4a
 
Harry: "Community Garden"
Harry: "Community Garden"Harry: "Community Garden"
Harry: "Community Garden"
 
Album aula 8
Album aula 8Album aula 8
Album aula 8
 
Llibertat
LlibertatLlibertat
Llibertat
 
for test7
for test7for test7
for test7
 
Greenathan
GreenathanGreenathan
Greenathan
 
Quale futuro per l'acqua
Quale futuro per l'acquaQuale futuro per l'acqua
Quale futuro per l'acqua
 
Street Fighter
Street Fighter Street Fighter
Street Fighter
 
Komputerku Nabila 4 B
Komputerku Nabila 4 BKomputerku Nabila 4 B
Komputerku Nabila 4 B
 
Paint the planet with green
Paint the planet with greenPaint the planet with green
Paint the planet with green
 
Contours123
Contours123Contours123
Contours123
 
Mitchell
MitchellMitchell
Mitchell
 
Artificial intelligence prelims - answers
Artificial intelligence   prelims - answersArtificial intelligence   prelims - answers
Artificial intelligence prelims - answers
 
Edlt528 group3 vision_learningproject
Edlt528 group3 vision_learningprojectEdlt528 group3 vision_learningproject
Edlt528 group3 vision_learningproject
 
Presentation1
Presentation1Presentation1
Presentation1
 
Rain water harvesting
Rain water harvestingRain water harvesting
Rain water harvesting
 
Nghi dinh 171-2013-nd-cp
Nghi dinh 171-2013-nd-cpNghi dinh 171-2013-nd-cp
Nghi dinh 171-2013-nd-cp
 

Similar a What's new for PHP and Cloud on Microsoft platforms

Continuous Integration In A PHP World
Continuous Integration In A PHP WorldContinuous Integration In A PHP World
Continuous Integration In A PHP WorldIdaf_1er
 
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchAugust Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchHoward Greenberg
 
Configuration manager presentation
Configuration manager presentationConfiguration manager presentation
Configuration manager presentationjeyg
 
PHP Unconference Continuous Integration
PHP Unconference Continuous IntegrationPHP Unconference Continuous Integration
PHP Unconference Continuous IntegrationNils Hofmeister
 
Continuous Integration at Mollie
Continuous Integration at MollieContinuous Integration at Mollie
Continuous Integration at Molliewillemstuursma
 
How bigtop leveraged docker for build automation and one click hadoop provis...
How bigtop leveraged docker for build automation and  one click hadoop provis...How bigtop leveraged docker for build automation and  one click hadoop provis...
How bigtop leveraged docker for build automation and one click hadoop provis...Evans Ye
 
321 codeincontainer brewbox
321 codeincontainer brewbox321 codeincontainer brewbox
321 codeincontainer brewboxLino Telera
 
Portable infrastructure with puppet
Portable infrastructure with puppetPortable infrastructure with puppet
Portable infrastructure with puppetlkanies
 
How bigtop leveraged docker for build automation and one click hadoop provis...
How bigtop leveraged docker for build automation and  one click hadoop provis...How bigtop leveraged docker for build automation and  one click hadoop provis...
How bigtop leveraged docker for build automation and one click hadoop provis...Evans Ye
 
DevOps on AWS: DevOps Day San Francisco
DevOps on AWS: DevOps Day San FranciscoDevOps on AWS: DevOps Day San Francisco
DevOps on AWS: DevOps Day San FranciscoAmazon Web Services
 
Get acquainted with the new ASP.Net 5
Get acquainted with the new ASP.Net 5Get acquainted with the new ASP.Net 5
Get acquainted with the new ASP.Net 5Suyati Technologies
 
A Lap Around Visual Studio 11
A Lap Around Visual Studio 11A Lap Around Visual Studio 11
A Lap Around Visual Studio 11Chad Green
 
SRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver FasterSRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver FasterAmazon Web Services
 
Content Management Systems and Refactoring - Drupal, WordPress and eZ Publish
Content Management Systems and Refactoring - Drupal, WordPress and eZ PublishContent Management Systems and Refactoring - Drupal, WordPress and eZ Publish
Content Management Systems and Refactoring - Drupal, WordPress and eZ PublishJani Tarvainen
 
Development environments in seconds using Bitnami containers
Development environments in seconds using Bitnami containersDevelopment environments in seconds using Bitnami containers
Development environments in seconds using Bitnami containersAdnan Abdulhussein
 
Open Audit
Open AuditOpen Audit
Open Auditncspa
 

Similar a What's new for PHP and Cloud on Microsoft platforms (20)

Php on Windows
Php on WindowsPhp on Windows
Php on Windows
 
Continuous Integration In A PHP World
Continuous Integration In A PHP WorldContinuous Integration In A PHP World
Continuous Integration In A PHP World
 
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchAugust Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
 
Configuration manager presentation
Configuration manager presentationConfiguration manager presentation
Configuration manager presentation
 
PHP Unconference Continuous Integration
PHP Unconference Continuous IntegrationPHP Unconference Continuous Integration
PHP Unconference Continuous Integration
 
Continuous Integration at Mollie
Continuous Integration at MollieContinuous Integration at Mollie
Continuous Integration at Mollie
 
How bigtop leveraged docker for build automation and one click hadoop provis...
How bigtop leveraged docker for build automation and  one click hadoop provis...How bigtop leveraged docker for build automation and  one click hadoop provis...
How bigtop leveraged docker for build automation and one click hadoop provis...
 
321 codeincontainer brewbox
321 codeincontainer brewbox321 codeincontainer brewbox
321 codeincontainer brewbox
 
Portable infrastructure with puppet
Portable infrastructure with puppetPortable infrastructure with puppet
Portable infrastructure with puppet
 
How bigtop leveraged docker for build automation and one click hadoop provis...
How bigtop leveraged docker for build automation and  one click hadoop provis...How bigtop leveraged docker for build automation and  one click hadoop provis...
How bigtop leveraged docker for build automation and one click hadoop provis...
 
DevOps on AWS: DevOps Day San Francisco
DevOps on AWS: DevOps Day San FranciscoDevOps on AWS: DevOps Day San Francisco
DevOps on AWS: DevOps Day San Francisco
 
Get acquainted with the new ASP.Net 5
Get acquainted with the new ASP.Net 5Get acquainted with the new ASP.Net 5
Get acquainted with the new ASP.Net 5
 
A Lap Around Visual Studio 11
A Lap Around Visual Studio 11A Lap Around Visual Studio 11
A Lap Around Visual Studio 11
 
SRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver FasterSRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver Faster
 
Developer Tools at AWS 2018.pdf
Developer Tools at AWS 2018.pdfDeveloper Tools at AWS 2018.pdf
Developer Tools at AWS 2018.pdf
 
Vagrant to-aws-flow
Vagrant to-aws-flowVagrant to-aws-flow
Vagrant to-aws-flow
 
Content Management Systems and Refactoring - Drupal, WordPress and eZ Publish
Content Management Systems and Refactoring - Drupal, WordPress and eZ PublishContent Management Systems and Refactoring - Drupal, WordPress and eZ Publish
Content Management Systems and Refactoring - Drupal, WordPress and eZ Publish
 
Development environments in seconds using Bitnami containers
Development environments in seconds using Bitnami containersDevelopment environments in seconds using Bitnami containers
Development environments in seconds using Bitnami containers
 
Open Audit
Open AuditOpen Audit
Open Audit
 
The Architect Way
The Architect WayThe Architect Way
The Architect Way
 

Último

Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 

Último (20)

Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 

What's new for PHP and Cloud on Microsoft platforms

  • 1. Cloud and evolutions of the Microsoft platform What’s new for Open Source, PHP and Cloud Computing in the Microsoft environment. Pierre Couzy - Microsoft Laurent Bonnet - Microsoft
  • 2. Agenda • The (relatively) new Microsoft/OSS story • A new PHP platform on Windows • Running PHP on Windows • PHP apps on Windows • Opening Windows products to PHP • Cloud story : PHP on Windows Azure • The Why • The How
  • 3. Introduction PHP on Windows : • Has been around for a decade • Actually, most PHP development is done on Windows • And yet, the Microsoft-PHP story has been difficult for years.
  • 4. Open Source at Microsoft ? Open Source Technology Center 3 goals : I. Get Involved with Open Source communities II. Ensure major projects run correctly on the Windows Operating Systems III. Open our products and platform to non- Microsoft stacks
  • 5. OSTC : in the early days … Founded in 2004 2 computers One guy…
  • 6. OSTC today • Hosted in Redmond • Staffed by OSS and Linux experts • 300 servers of varying types • 340+ Linux distros available for testing • Tests interoperability of OSS and Windows • Research of OSS technologies
  • 8. A SQL Server driver for PHP ? • Done in collaboration with the PHP community • Published on CodePlex with an OSI-approved license (http://sqlsrvphp.codeplex.com/). • Can access any Sql Server instance (Express, 2005, 2008, 2008 R2, Azure) from PHP • Work in progress : enable Sql Server access to major PHP projects & frameworks
  • 10. OSTC has changed Microsoft • We contributed to the linux kernel • GPL developers do exist in Redmond • On-going collaboration • With the Apache Software Foundation • With communities • There’s still room for improvement • A typical project is still 1 month dev, 3 months stabilization, 1 year legal…
  • 11. Agenda • The (relatively) new Microsoft/OSS story • A new PHP platform on Windows • Running PHP on Windows • PHP apps on Windows • Opening Windows products to PHP • Cloud story : PHP on Windows Azure • The Why • The How
  • 12. A PHP Windows platform ? • Application: PHP • DB: SQL Server, MySql, etc. • Web Server: Internet Information Services (IIS) • OS: Windows Server 2008 / 2008 R2
  • 13. From CGI to FastCGI One request, One PHP runtime lives PHP runtime CGI ISAPI FastCGI process in IIS or in a handled by a surrogate process process pool The good The good • Very stable The good • Very fast • Faster than CGI The bad The bad • More robust than ISAPI • *SLOW* on Windows (spawning a new • Stability • No more threading process) • Thread safety issues
  • 14. Démo
  • 15. Also available on Server Core • A “distro” that minimizes footprint and attack surface • PHP runs on Server Core since Windows Server 2008
  • 16. Creating a new Build Process Using better tools to do a better job Unix ‘configure’-style makefiles Created a clean, unified build • Makefiles are generated using Unix-style •Using tools built by the OSTC, we have constructed a configure scripts. Functionality is emulated with better build process which opens many new JScript possibilities, yet can easily adapt to new changes by developers using older technologies. No Optimizations One unified set of properties • Makefiles are generated with no ability to •Generated project files use a single set of build optimize entire builds, nor take advantage of configuration files, allowing 100% of the code to be better tools, compilers, etc. built to the same specifications. Independent Dependencies Optimizations everywhere • Libraries never compiled with the same •The new process lets us take advantage of high- settings. performance PGO technology to improve the performance of PHP by leaps and bounds. Undefined process Limitless opportunities • Very few people had all the right bits/tools to •With the new process, we can now do instrumented even compile the Windows PHP binaries— builds of the entire stack, allowing us to analyze and Certainly impossible to replicate an exact build. improve PHP for any environment.
  • 17. Using VC 9 What a difference the compiler makes VC 6 builds VC 9 builds • Visual C++ 6.0, being over a decade old, • Visual C++ 9.0 provides technologies that would not produce code optimized for allow us to target today’s operating modern operating systems and systems and hardware. hardware. New Compiler Older Compiler • By just changing the compiler, generates • PHP on Windows was being left behind, code that performs better, even before simply because it was nearly impossible using advanced PGO technologies. to build with any other compiler Now, 64 bit support No 64 bit support • We are now building 64bit snapshot • VC 6 offered no ability to build for 64 bit builds alongside the 32 bit builds, 95%+ Windows libraries are 64 bit too.
  • 18. Going native Using Windows APIs on Windows… Eliminated POSIX emulation Heavy use of POSIX emulation • Dropped the POSIX emulation libraries, and • PHP has been built with POSIX in mind, and code has been written to use Win32 APIs therefore, on Windows it was natural to adopt correctly. emulation libraries to accomplish similar tasks. Choosing the Win32 Way Using wrong methods • Implemented features in a way that doesn’t • Often, the way to do something on Unix, is not mimic the method on Unix, just the results. the way to do it on Windows. Use native libraries/APIs Non-standard Implementations • Replaced that code with calls to the natively • Many libraries were being used to supply provided APIs. functionality that was already present in Windows (Crypto, DNS, etc) Targets new OS, gracefully Targeted oldest OS possible • Recent code changes now allow us to target features on the latest versions of Windows, and • Windows 98 was considered a primary target… provides graceful failure on down-level ‘nuff said! platforms.
  • 19. Testing and QA Using Windows APIs on Windows… Unix was the primary platform Windows is a primary platform • If it worked on a Unix platform, it was done... Windows was never given any attention, nor •Windows is now a primary platform, and changes care by hardly anyone which break Windows must be addressed. 98%+ tests now pass on Windows. Tests did not have high pass rate. •Over 98% of tests now pass on Windows, and we’re • The standard PHP test suite did not pass with a aiming to close the gap completely. strong success rate. Windows is now represented Security was a Unix concern. •Windows developers are now on the security mailing • Security considerations for Windows were not lists, and can take action at the same time. taking place, no Windows developers were on the Security Mailing Lists New Testing Tools •The OSTC has created new tools for testing FastCGI No tools for doing automated testing. and PHP builds that can be included in the official build process, providing PGO and instrumentation • Nearly no tools to assist in automation of data to the developers. testing on Windows at all.
  • 20. Release Process Same Day Service…with a smile Windows is a primary platform Unix was the primary platform • Windows gets the same ability to push • Unix Platforms was the only concern. back on Release Dates, and builds are done on both platforms on the same day. Single point of failure. Easy to replicate. • Builds for Windows were constrained by a single person’s ability to make the build • It is now simple for anyone to rebuild the happen. exact same PHP stack on Windows as the release build. No attention to details. New work on the installer. • Hardly anyone worked on Windows releases, and the installer was poor. • New work is being done to improve the installer for the Windows platform.
  • 21. Where are we now ? • PHP is at last maintained on Windows. • And ready for production • http://windows.php.net • Performance tuning is on its way • We are getting on par with LAMP • Ongoing work on caching • We still lack many modules for 5.3 • That’s our top priority right now
  • 22. Web Plaform Installer http://www.microsoft.com/web • A tool to install and configure • IIS • Frameworks and runtimes (.NET / PHP) • Databases (SQL Server, MySQL) • Tools (Visual Web Developper 2008, Silverlight 3 Tools for VS) • And Web apps • Blogs (phpBB, WordPress, DasBlog, …) • Wikis, Galleries, etc. • CMS (DotNetNuke, Drupal, SilverStripe, ...)
  • 23. What’s next Windows Cache Extension 1.0 for PHP PHP Connectivity to Windows Azure Word and Excel reading and writing Windows Live services PDO Driver for Sql Server … Working in sync with you on the most popular applications
  • 25. Agenda • The (relatively) new Microsoft/OSS story • A new PHP platform on Windows • Running PHP on Windows • PHP apps on Windows • Opening Windows products to PHP • Cloud story : PHP on Windows Azure • The Why • The How
  • 26. Cloud terms & actors in a nutshell • Infrastructure as a Service : bring your OS • Platform as a service : bring your App • Infrastructure as a service : use our App
  • 27. How does your app handle load ? peak load Usage Idle time Jan Apr Jul Oct Cloud Cloud p1 p2 p3 Web Tier B/L Tier Web Tier B/L Tier Database Web Tier B/L Tier Database Web Tier B/L Tier
  • 28. How does your app share data ? I love I love you! you too! Server Data Company A
  • 29. Scenarios for Data In-browser Application (JSON & AtomPub Support in Azure) Public Cloud Server Data Server Server Company B Server Data Server Company A
  • 30. Your app, my accounts ? Federated Identity Your App Your App Provider Account DB Your Your Entreprise for a web University OpenID … directory app account account
  • 31. The Windows Azure cloud infrastructure
  • 32. We Start with Lots of Blinking Lights and Cables
  • 33. We Put them Into Racks
  • 34. Then, we add software • A hypervisor, on top of which a Host Virtual Machine, on top of which many Virtual Machines CPU: x64 OS : Windows 2008 Web Server : IIS 7 Apps : .Net, PHP, C++, etc.
  • 35. Then, we add redundancy logic Front-end Node Front-end Node Front-end Node REST/SOAP REST/SOAP REST/SOAP front-end ACE Logic ACE Logic ACE Logic Data Access Library Data Access Library Data Access Library Master Cluster Service Management Health Master Node Master Node Provisioning Deployment Monitoring Partition Manager Partition Manager Data Node Data Node Components Components Data Cluster Data Node Data Node Data Node Data Node Data Node SQL SQL SQL SQL SQL Server Mgmt. Server Mgmt. Server Mgmt. Server Mgmt. Server Mgmt. Services Services Services Services Services Fabric Fabric Fabric Fabric Fabric Fabric Fetch Partition SQL Replication Map Client
  • 37. Running code on Azure • We re-use the existing IIS infrastructure • FastCGI allows us to plug in almost every language • For example, you can package PHP, • .. Including your own extensions and configuration, • Point PHP files to PHP-CGI.exe, • .. And run them directly • Let’s see that in action.
  • 39. Data on Azure • A basic storage infrastructure : Azure Storage • Blobs (think files) • Tables (think Flat File database) • Queues (messages) • Access is done using REST • A SQL-Server engine : SQL Azure • A subset of SQL Server 2008 • Including Views, Stored Procedures, etc. • Access is done using TDS
  • 40. Using Azure Storage • http://phpazure.codeplex.com/ • Overview • Enables PHP developers to take advantage of the Microsoft Cloud Services Platform – Windows Azure. • Provides consistent programming model for Windows Azure Storage (Blobs, Tables & Queues) • Features • PHP classes for Windows Azure Blobs, Tables & Queues (for CRUD operations) • Helper Classes for HTTP transport, AuthN/AuthZ, REST & Error Management • Manageability, Instrumentation & Logging support • Support for storing PHP sessions in Azure Table Storage • Licence : BSD
  • 41. Using Sql Azure • http://www.codeplex.com/SQLSRVPHP • Licence : Microsoft Public License (Ms-PL) • Gives access to SQL Server databases, • But also SQL Azure
  • 42. Consuming Sql Azure ... in PHP … with Eclipse
  • 43. We do our best to be technology-agnostic Azure Services Platform ™
  • 44.
  • 45. Thank you, and stay tuned for more (Symfony on Azure ?)
  • 46. Links • www.azure .com : main entry point • http://sqlazuremw.codeplex.com/ • Migration Wizard (Sql Server -> Sql Azure) • http://www.codeplex.com/SQLSRVPHP • Accessing data using TDS (Sql Server, Sql Azure) • http://phpazure.codeplex.com/ • Accessing Azure Storage in PHP • http://windows.php.net • Latest PHP binaries & Source • http://www.microsoft.com/downloads/details.aspx?FamilyID=413E 88F8-5966-4A83-B309-53B7B77EDF78&displaylang=en • Standard Azure Training Kit, contains samples to run PHP on Azure • http://phpdataservices.codeplex.com/ • Accessing REST data using PHP