Just another Wordpress weblog, but more cloudy
Upcoming SlideShare
Loading in...5
×
 

Just another Wordpress weblog, but more cloudy

on

  • 5,073 views

While working together with Microsoft on the Windows Azure SDK for PHP, we found that we needed an popular example application hosted on Microsoft’s Windows Azure. Wordpress was an obvious choice, ...

While working together with Microsoft on the Windows Azure SDK for PHP, we found that we needed an popular example application hosted on Microsoft’s Windows Azure. Wordpress was an obvious choice, but not an obvious task. Learn more about Windows Azure, the PHP SDK that we developed, SQL Azure and about the problems we faced porting an existing PHP application to Windows Azure.

Statistics

Views

Total Views
5,073
Views on SlideShare
3,885
Embed Views
1,188

Actions

Likes
3
Downloads
45
Comments
2

9 Embeds 1,188

http://blog.maartenballiauw.be 1126
http://cartrackr.codeplex.com 24
http://www.blog.maartenballiauw.be 12
http://www.slideshare.net 11
http://translate.googleusercontent.com 7
http://webcache.googleusercontent.com 4
http://microsoft.realdolmenblogs.com 2
http://static.slidesharecdn.com 1
http://web.archive.org 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

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

12 of 2

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • We specialize in web design & development, search engine optimization and web marketing, eCommerce and WordPress Theme Development
    http://wbcomdesigns.com
    Are you sure you want to
    Your message goes here
    Processing…
  • we are wordpress developers, hire us from Odesk @vapvarun @wbcomdesigns
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Just another Wordpress weblog, but more cloudy Just another Wordpress weblog, but more cloudy Presentation Transcript

    • Just another Wordpress weblog,but more cloudy
      WUX211
      Maarten Balliauw
      @maartenballiauw
    • While working together with Microsoft on the Windows Azure SDK for PHP, we found that we needed an popular example application hosted on Microsoft's Windows Azure. Wordpress was an obvious choice, but not an obvious task. Learn more about Windows Azure, the PHP SDK that we developed, SQL Azure and about the problems we faced porting an existing PHP application to Windows Azure.
      Just another wordpress weblog, but more cloudy
    • Maarten Balliauw
      Maarten Balliauw is a technical consultant in web technologies at RealDolmen, one of Belgium's biggest ICT companies. His interests are ASP.NET (MVC), PHP and Windows Azure. He's a Microsoft Most Valueable Professional (MVP) ASP.NET and has published many articles in both PHP and .NET literature such as MSDN magazine Belgium and PHP architect. Maarten is a frequent speaker at various national and international events. His blog can be found at http://blog.maartenballiauw.be.
    • Start with the title slide
      Keep the two hidden slides(#2&#3) for speaker and session description
      Use the “Demo” Layout for Demos
      if using Powerpoint 2010, please use sections
      There’s a “black” and a “white” layouts if necessary
      End with the Q&A, “thank you”, “fill the forms” and the “Microsoft Potential + Passion” slide
      Quick guide
    • Who am I?
      Maarten Balliauw
      Antwerp, Belgium
      www.realdolmen.com
      Focus on web
      ASP.NET, ASP.NET MVC, PHP, Azure, VSTS, …
      MVP ASP.NET
      Interested in interoperability
      PHPExcel, PHPLinq, Windows Azure SDK for PHP, ...
      http://blog.maartenballiauw.be
      http://twitter.com/maartenballiauw
    • Agenda
      Cloud computing?
      Windows Azure?
      Application architecture
      Using PHP with Windows Azure
      Wordpress
      Resources
      Q&A
    • What’s in the cloud?
      Cloud Computing
    • What is Cloud Computing ?
      What is cloud computing ?
      Offering infrastructure, platform and software as a service over the internet to a global market.
      Move on-premises management of non functional IT assets to a provider.
      Difference from traditional hostings
      Sold on demand “pay as you grow”
      Elastic scalability
      Service is fully managed by the provider
      End user centric (IW or developer)
      Strong focus on integration (cloud-cloud or cloud-on-premises)
    • Definition of cloud (NIST)
      On-demand self service
      Standardized access
      Location independant resource pooling
      Rapid elasticity
      Pay per use
    • IT as a Service
      You manage
      Private
      (On-Premise)
      Infrastructure
      (as a Service)
      Platform
      (as a Service)
      You manage
      Applications
      Applications
      Applications
      Runtimes
      Runtimes
      Runtimes
      Security & Integration
      Security & Integration
      Security & Integration
      You manage
      Managed by vendor
      Databases
      Databases
      Databases
      Servers
      Servers
      Servers
      Managed by vendor
      Virtualization
      Virtualization
      Virtualization
      Server HW
      Server HW
      Server HW
      Storage
      Storage
      Storage
      Networking
      Networking
      Networking
    • Microsoft’s cloud
      Windows Azure
    • The Windows Azure Platform
      Windows Azure
      SQL Azure
      Windows Azure platform AppFabric
      Microsoft Codename “Dallas”
      Microsoft Codename “Sydney”
    • Windows Azure
      Flexible application hosting
      Lights-out service management
      Provide code & service model, hit ENTER
      Storage at massive scale
      Blobs, tables, queues
      Compute
      Storage
      Management
      There’s an SDK for this: http://phpazure.codeplex.com
    • Windows Azure
    • Windows Azure Data Storage
      Queue
      Blob
      Account
      Tables
      Drives
    • Storage options
      Blobs, tables, queues
      Windows Azure Drive (a.k.a. XDrive)
      Virtual NTFS volume that can be mounted
      .vhd format
      Use existing NTFS API’s
      Easier migration
      Stored on blob storage provides quick mount/unmount in other VM
    • SQL Azure
      Relational database as a service
      Highly available, automatically maintained
      Extension of the SQL Server Data Platform
      Reporting
      Data Sync
      Business Analytics
      Database
      There’s a driver for this: http://sqlsrvphp.codeplex.com
    • SQL Azure
      Relational database, provided as a service
      Highly symmetrical development and tooling experience (use TDS protocol and T-SQL)
      Highly scaled out, on commodity hardware
      Built on the SQL Server technology foundation
      High availability, DB provisioning, and DB management are provided by the service
    • Windows Azure AppFabric
      Secure connections between services
      Across organizational boundaries
      Claims-based access control
      ServiceBus
      AccessControl
      There’s an SDK for this: http://dotnetservicesphp.codeplex.com/
    • Service Bus Overview
    • Windows Azure AppFabric - Service Bus
      Securely connect applications
      Over the internet
      Across any network topology (= across firewalls!)
      Across organizational boundaries
      Primary application patterns
      Eventing:
      Notify applications and/or devices
      Service Remoting:
      Securely project on-premises services out to the cloud
      Tunneling:
      App-to-app communication with NAT/Firewall traversal
    • PortBridge - http://bit.ly/bCDrUs
      Bridge TCP over Service Bus
      A fun usage scenario…
    • Microsoft Codename “Dallas”
      Content brokerage and discovery platform
      Available as a CTP
      Microsoft Codename “Dallas”Information Services
    • Microsoft Codename “Sydney” - Connectivity
      WINDOWS AZURE PLATFORM
      ENTERPRISE
      Data Service
      Service Bus
      Access Control Service
      Code Name “Project Sydney”
    • Developer tools
      Development
      Use your favourite editor
      Local debugging
      Windows with IIS 7.x
      Visual Studio
      Windows Azure tools for Eclipse
      Packaging
      Windows Azure SDK
      Deployment
      Any browser
    • Your typical cloud application
      Application architecture
    • Typical Architecture on Azure
      Service Unavailable
      VIP
      Worker Role
      Web Role
      Windows Azure Storage
      (Blob, Table, Queue)
    • Web + Worker Role Service Model
      Worker Role
      Service Still Available
      Worker Role
      Web Role
      VIP
      Worker Role
      Web Role
      Worker Role
      Worker Role
      Windows Azure Storage
      (Blob, Table, Queue)
    • How about that?
      PHP & Windows Azure
    • It’s all about…
      Running PHP Code in Windows Azure
      Eclipse Tooling
      Build, Test, Deploy PHP Projects
      Create New or Use Existing PHP Projects
      Scaling PHP Apps
      Using Cloud Storage from PHP
      Using Windows Azure Storage
      Using SQL Azure
      Using PHP with Windows Azure
    • Running PHP in Windows Azure
      How to Do It
      Host in Web role (like .NET)
      Supply PHP runtime
      Point to runtime via FastCGIconfiguration in
      Web.config
      Web.roleConfig
      Eclipse Tooling athttp://windowsazure4e.org does the above for you
      PHP
      Web Role
      Instance 1
      VIP
      Load Balancer
      PHP
      Web Role
      Instance 2
    • PHP + Cloud Storage
      Windows Azure Storage
      VIP
      On-Premise
      Load Balancer
      PHP
      Web Role
      PHP App
      SQL Azure
      Windows Azure Platform
    • PHP with Windows Azure Storage
      Windows Azure SDK for PHP at http://phpazure.codeplex.com
      PHP programming model for Windows Azure Storage
      Features
      PHP classes for Blobs, Tables & Queues
      Store PHP sessions in Table Storage
      File system wrapper for Blob Storage
    • PHP with SQL Azure
      SQL Server Driver for PHP at http://sqlsrvphp.codeplex.com/
      Supports PHP access to SQL Azure
      Features
      Choose between SQL Server and SQL Azure by changing connection string
      Use from on-premise apps or in Windows Azure
    • PHP with AppFabric
      AppFabric SDK for PHP developers athttp://dotnetservicesphp.codeplex.com/
      Supports PHP on service bus and access control
      Features
      Expose on-premise apps on an external endpoint without opening firewall
      Pub/sub scenario’s

    • Finally!
      Wordpress
    • Blogging engine
      Widely used
      Easy installation
      Gazillion plugins
      Huge community around it
      Free and open-source
      Wordpress
    • Runs on top of MySQL
      Has no database abstraction layer
      So: only runs on MySQL
      Windows Azure has Table Storage and SQL Azure
      I feel lots of work coming…
      But...
    • Easy way out
      Wordpress on Windows Azure
      MySQL on-premise / at other hoster
      Medium way out
      Wordpress on Windows Azure
      MySQL as well
      Hard way out
      Wordpress on Windows Azure
      MySQL out, SQL Azure in
      There are ways around!
    • The easy way out
      Windows Azure Storage
      VIP
      Load Balancer
      PHP
      Web Role
      MySQL
      Windows Azure Platform
      On-Premise / hosted
    • The easy way out
      Fresh Windows Azure project in Eclipse
      Fresh Wordpress.org download
      Point wp-config.php to some MySQL server
      Package & deploy
    • The medium way out
      Windows Azure Storage
      VIP
      Load Balancer
      PHP
      Web Role
      WorkerRole
      runningMySQL
      Windows Azure Platform
      On-Premise / hosted
    • Fresh Windows Azure project in Eclipse
      Fresh Wordpress.org download
      “Windows Azure MySQL PHP Solution Accelerator”
      http://code.msdn.microsoft.com/winazuremysqlphp
      Some configuration
      Some anger
      Some configuration
      Point wp-config.php to the above MySQL server
      Package & deploy
      The medium way out
    • BUT!
      Instance count!
      Pricing!
      (5 x 240 EUR / month adds up...)
      Easier migration, but at a cost...
      The medium way out
    • Yes, you can run MySQL on Windows Azure!
      More “solution accelerators”:
      MySQL
      http://code.msdn.microsoft.com/winazuremysqlphp
      Memcached
      http://code.msdn.microsoft.com/winazurememcached
      MediaWiki
      http://code.msdn.microsoft.com/winazuremediawiki
      Tomcat
      http://code.msdn.microsoft.com/winazuretomcat
      So...
    • The hard way out
      Windows Azure Storage
      VIP
      Load Balancer
      PHP
      Web Role
      SQL Azure
      Windows Azure Platform
      On-Premise / hosted
    • Fresh Windows Azure project in Eclipse
      Fresh Wordpress.org download
      Point wp-config.php to SQL Azure
      Package & deploy
      Fail!
      There’s no SQL Server / SQL Azure support in Wordpress, remember?
      The hard way out
    • MySQL queries all over the place!
      “Data layer” (wp-db.php) = very thin
      Raw MySQL queries passed from app to db
      Logging
      Some other stuff
      That’s nowhere near a database abstraction...
      Have you ever looked at Wordpress?
    • Required:
      Re-build wp-db.php using SQL Server Driver for PHP
      http://www.microsoft.com/sqlserver/2005/en/us/PHP-Driver.aspx
      Options...
      Re-write every single query in Wordpress
      Future proof?
      Insane!
      Build a query translation tool, rewriting queries on-the-fly
      Future proof!
      Insane!
      Strategic options
    • Hooks in Wordpress
      Wp-contents/db.php
      Wp-includes/wp-db.php
      Strategy
      Create wp-db.php class on top of SQL Server Driver for PHP
      http://www.microsoft.com/sqlserver/2005/en/us/PHP-Driver.aspx
      Create custom DB schema, compatible with SQL Server
      Build a query translation tool, rewriting queries on-the-fly
      Someone at Microsoft had this laying around
      Here’s what we did...
    • Resources
      Images, other file uploads, ...
      Normally stored on server disk
      But this may not survive on Windows Azure...
      Solution
      Plugin using Windows Azure SDK for PHP
      Storing everything on Blob Storage
      Serving everything from Blob Storage
      There’s a CDN available!
      But there’s also... resources
    • If the Internet works...
    • Learn more!
      Resources
    • Resources
      Windows Azurehttp://www.azure.com
      Windows Azure SDK for PHPhttp://phpazure.codeplex.com
      SQL Server Driver for PHPhttp://sqlsrvphp.codeplex.com
      AppFabric SDK for PHP developershttp://dotnetservicesphp.codeplex.com
      PDChttp://microsoftpdc.com
      PHP Architect December 2009 issuehttp://www.phparch.com
      Steve Marxhttp://blog.smarx.com/
      Clemens Vastershttp://vasters.com/clemensv/
      Simon Guesthttp://simonguest.com/blogs/smguest
      My bloghttp://blog.maartenballiauw.be/category/Azure.aspx
      RealDolmen blogs is running on Azure!http://www.realdolmenblogs.com
    • Windows Azure is
      Operating system (computing & storage)
      SQL Azure
      AppFabric
      Codename projects
      Your application and skills
      Hybrid applications
      It’s not that hard to do
      Conclusion
    • Is the source code available?
      No, not at this time.
      Do I need Visual Studio / Eclipse?
      Only for local debugging.
      Do I need Windows & the Windows Azure SDK?
      Only for local debugging.
      Before skipping to Q&A...
    • Maarten Balliauwhttp://blog.maartenballiauw.be