Just Another Word Press Weblog But More Cloudy

  • 4,949 views
Uploaded on

Session at PHP Benelux conference 2010 on Wordpress and Windows Azure

Session at PHP Benelux conference 2010 on Wordpress and Windows Azure

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
4,949
On Slideshare
0
From Embeds
0
Number of Embeds
21

Actions

Shares
Downloads
52
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1.
  • 2. Just another WordPress weblog, but more cloudy
    Maarten Balliauw – RealDolmenE-mail: maarten.balliauw@realdolmen.comBlog: http://blog.maartenballiauw.beTwitter: @maartenballiauw
  • 3. 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
  • 4.
  • 5. Agenda
    Cloud computing?
    Windows Azure?
    Application architecture
    Using PHP with Windows Azure
    Wordpress
    Resources
    Q&A
  • 6. What’s in the cloud?
    Cloud Computing
  • 7. 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)
  • 8. Definition of cloud (NIST)
    On-demand self service
    Standardized access
    Location independant resource pooling
    Rapid elasticity
    Pay per use
  • 9. IT as a Service
    Private
    (On-Premise)
    Infrastructure
    (as a Service)
    Platform
    (as a Service)
    You manage
    Applications
    Applications
    Applications
    You manage
    Runtimes
    Runtimes
    Runtimes
    Security & Integration
    Security & Integration
    Security & Integration
    Managed by vendor
    You manage
    Databases
    Databases
    Databases
    Servers
    Servers
    Servers
    Managed by vendor
    Virtualization
    Virtualization
    Virtualization
    Server HW
    Server HW
    Server HW
    Storage
    Storage
    Storage
    Networking
    Networking
    Networking
  • 10. What’s in the cloud?
    Windows Azure
  • 11. The Windows Azure Platform
    Windows Azure
    SQL Azure
    Windows Azure platform AppFabric
    Microsoft Codename “Dallas”
    Developer tools
  • 12. Azure Service Platform
    Windows Azure is an Operating System as a Service for the Cloud.
    • Compute– auto-provisioning 64-bit application containers in Windows Server VMs; supports a wide range of application models
    • 13. Storage– highly available distributed table, blob, queue, & cache
    • 14. Languages – .NET 3.5 (C#, VB.NET, etc.), IronRuby, IronPython, PHP, native Win32 code
    SQL Azure is a Relational Database for the Cloud.
    • RDBMS – Tables, Views, Indexes, Stored Procedures, Triggers, ...
    • 15. Programmability – Managed ADO.NET data access, native ODBC, support for PHP
    • 16. Tools – SQLCMD and the SQL Azure Database account portal
    AppFabric is the glue between on-premises and the cloud.
    • Service Bus – connectivity to on-premises applications; secure, federated fire-wall friendly Web services messaging intermediary; durable & discoverable queues
    • 17. Identity Management – rules-driven federated identity; AD federation; claims-based authorization
    Live Services is a building block within the Azure Services Platform.
    Live Services
  • 21. Windows Azure
    Flexible application hosting
    Lights-out service management
    Provide code & service model, hit ENTER
    Storage at massive scale
    Compute
    Storage
    Management
    There’s an SDK for this: http://phpazure.codeplex.com
  • 22. Windows Azure
  • 23. SQL Azure
    Relational database as a service
    Highly available, automatically maintained
    Extension of the SQL Server Data Platform
    Business Analytics
    Reporting
    Data Sync
    Database
    There’s a driver for this: http://sqlsrvphp.codeplex.com
  • 24. 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
    Beyond “hosted database”
    High availability, DB provisioning, and DB management are provided by the service
    Pay for what you use
  • 25. 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/
  • 26. Windows Azure AppFabric - Service Bus
    Securely connect applications
    Over the internet
    Across any network topology
    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
  • 27. Service Bus Overview
  • 28. Microsoft Codename “Dallas”
    Content brokerage and discovery platform
    Available as a CTP at commercial launch
    Microsoft Codename “Dallas”Information Services
  • 29.
  • 30.
  • 31. 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
    I’m whining for this one!
  • 32. What’s in the cloud?
    Application Architecture
  • 33. Typical Architecture on Azure
    Service Unavailable
    VIP
    Worker Role
    Web Role
    Windows Azure Storage
    (Blob, Table, Queue)
  • 34. 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)
  • 35. What’s in the cloud?
    Using PHP with Windows Azure
  • 36. Using PHP with 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
  • 37. 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
  • 38. PHP + Cloud Storage
    Windows Azure Storage
    On-Premise
    VIP
    PHP
    Web Role
    Load Balancer
    PHP App
    SQL Azure
    Windows Azure Platform
  • 39. 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
  • 40. 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
  • 41. 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

  • 42. What’s in the cloud?
    Wordpress
    Finally!
  • 43. Wordpress
    Blogging engine
    Widely used
    Easy installation
    Gazillion plugins
    Huge community around it
    Free and open-source
  • 44. But...
    Runs on top of MySQL
    Has no database abstraction layer
    So: only runs on MySQL
    Windows Azure has Table Storage and SQL Azure
    I feellots of work coming…
  • 45.
  • 46. There are ways around!
    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
  • 47. The easy way out
    Windows Azure Storage
    VIP
    PHP
    Web Role
    Load Balancer
    MySQL
    Windows Azure Platform
    On-Premise / hosted
  • 48. The easy way out
    Fresh Windows Azure project in Eclipse
    Fresh Wordpress.org download
    Point wp-config.php to some MySQL server
    Package & deploy
  • 49. The medium way out
    Windows Azure Storage
    VIP
    PHP
    Web Role
    Load Balancer
    WorkerRole
    runningMySQL
    Windows Azure Platform
    On-Premise / hosted
  • 50. The medium way out
    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
  • 51. So...
    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
  • 52. The hard way out
    Windows Azure Storage
    VIP
    PHP
    Web Role
    Load Balancer
    SQL Azure
    Windows Azure Platform
    On-Premise / hosted
  • 53. The hard way out
    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?
  • 54. Have you ever looked at Wordpress?
    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...
  • 55. Strategic options
    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!
  • 56. Here’s what we did...
    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
  • 57. But there’s also... resources
    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!
  • 58.
  • 59. What’s in the cloud?
    Demo time
    If the Internet works...
  • 60. What’s in the cloud?
    Resources
  • 61. 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
  • 62. AZUG.BE – Azure User Group Belgium
    Focus on the Azure Services Platform
    Community-driven
    Focus on architecture
    And development
    And the business value of Azure
    www.azug.be
  • 63. And one more announcement...
    Get a free t-shirt at the Microsoft booth!
  • 64. Before skipping to Q&A...
    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 packaging.
    I’ll keep whining to make this available on Linux.
  • 65. Questions, possibly Answers…
    ?
    Maarten Balliauw – RealDolmenBlog: http://blog.maartenballiauw.beTwitter: @maartenballiauw
  • 66. THANK YOU!
    Maarten Balliauwhttp://blog.maartenballiauw.be