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

Just another Wordpress weblog, but more cloudy

on

  • 5,149 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,149
Views on SlideShare
3,956
Embed Views
1,193

Actions

Likes
3
Downloads
45
Comments
2

9 Embeds 1,193

http://blog.maartenballiauw.be 1131
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
  • 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