Just Another Word Press Weblog But More Cloudy

Preview:

DESCRIPTION

Session at PHP Benelux conference 2010 on Wordpress and Windows Azure

Citation preview

APRIL 11, 2023 | SLIDE 1

APRIL 11, 2023 | SLIDE 2

www.realdolmen.com

Just another WordPress weblog, but more cloudy

Maarten Balliauw – RealDolmenE-mail: maarten.balliauw@realdolmen.com

Blog: http://blog.maartenballiauw.be Twitter: @maartenballiauw

APRIL 11, 2023 | SLIDE 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

APRIL 11, 2023 | SLIDE 4

APRIL 11, 2023 | SLIDE 5

AGENDA

Cloud computing? Windows Azure? Application architecture Using PHP with Windows Azure Wordpress Resources Q&A

APRIL 11, 2023 | SLIDE 6

What’s in the cloud?CLOUD COMPUTING

APRIL 11, 2023 | SLIDE 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)

APRIL 11, 2023 | SLIDE 8

DEFINITION OF CLOUD (NIST)

On-demand self service Standardized access Location independant resource pooling Rapid elasticity Pay per use

APRIL 11, 2023 | SLIDE 9

IT AS A SERVICE

Private(On-Premise)

Infrastructure

(as a Service)

Platform(as a

Service)

Storage

Server HW

Networking

Servers

Databases

Virtualization

Runtimes

Applications

Security & Integration

Storage

Server HW

Networking

Servers

Databases

Virtualization

Runtimes

Applications

Security & Integration

Storage

Server HW

Networking

Servers

Databases

Virtualization

Runtimes

Applications

Security & Integration

You

man

age

Managed by vendor

Managed by vendor

You

man

age

You

man

age

APRIL 11, 2023 | SLIDE 10

What’s in the cloud?WINDOWS AZURE

APRIL 11, 2023 | SLIDE 11

THE WINDOWS AZURE PLATFORM

Windows Azure SQL Azure Windows Azure platform AppFabric Microsoft Codename “Dallas”

Developer tools

APRIL 11, 2023 | SLIDE 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

Storage – highly available distributed table, blob, queue, & cache

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, ...

Programmability – Managed ADO.NET data access, native ODBC, support for PHP

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

Identity Management – rules-driven federated identity; AD federation; claims-based authorization

Live Services is a building block within the Azure Services Platform.

Live Mesh

Live ID

Live Contacts

Live …

Live Services

APRIL 11, 2023 | SLIDE 13

WINDOWS AZURE

Flexible application hosting Lights-out service management

Provide code & service model, hit ENTER

Storage at massive scale

Compute StorageManagement

There’s an SDK for this: http://phpazure.codeplex.com

APRIL 11, 2023 | SLIDE 14

WINDOWS AZURE

APRIL 11, 2023 | SLIDE 15

SQL AZURE

Relational database as a service Highly available, automatically maintained

Extension of the SQL Server Data Platform

Database

Business AnalyticsReporting Data Sync

There’s a driver for this: http://sqlsrvphp.codeplex.com

APRIL 11, 2023 | SLIDE 16

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

APRIL 11, 2023 | SLIDE 17

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/

APRIL 11, 2023 | SLIDE 18

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

APRIL 11, 2023 | SLIDE 19

SERVICE BUS OVERVIEW

APRIL 11, 2023 | SLIDE 20

MICROSOFT CODENAME “DALLAS”

Content brokerage and discovery platform Available as a CTP at commercial launch

Microsoft Codename “Dallas”

Information Services

APRIL 11, 2023 | SLIDE 21

APRIL 11, 2023 | SLIDE 22

APRIL 11, 2023 | SLIDE 23

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!

APRIL 11, 2023 | SLIDE 24

What’s in the cloud?APPLICATION ARCHITECTURE

APRIL 11, 2023 | SLIDE 25

TYPICAL ARCHITECTURE ON AZURE

Windows Azure Storage (Blob, Table, Queue)

VIP Web

RoleWorker

Role

Service Unavailable

APRIL 11, 2023 | SLIDE 26

WEB + WORKER ROLE SERVICE MODEL

Windows Azure Storage (Blob, Table, Queue)

Worker RoleWeb

Role

VIP

Web Role

Worker Role

Worker Role

Worker Role

Worker RoleService Still Available

APRIL 11, 2023 | SLIDE 27

What’s in the cloud?USING PHP WITH WINDOWS AZURE

APRIL 11, 2023 | SLIDE 28

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

APRIL 11, 2023 | SLIDE 29

RUNNING PHP IN WINDOWS AZURE

How to Do It Host in Web role (like .NET) Supply PHP runtime Point to runtime via FastCGI

configuration in Web.config Web.roleConfig

Eclipse Tooling athttp://windowsazure4e.org does the above for you

PHP Web RoleInstance 2

VIP

Load

Bala

nce

r

PHP Web RoleInstance 1

APRIL 11, 2023 | SLIDE 30

PHP + CLOUD STORAGE

PHPWeb Role

VIP

Load

Bala

nce

r

Windows Azure Storage

SQL Azure

PHP App

Windows Azure Platform

On-Premis

e

APRIL 11, 2023 | SLIDE 31

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

APRIL 11, 2023 | SLIDE 32

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

APRIL 11, 2023 | SLIDE 33

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 …

APRIL 11, 2023 | SLIDE 34

What’s in the cloud?WORDPRESSFinally!

APRIL 11, 2023 | SLIDE 35

WORDPRESS

Blogging engine Widely used Easy installation Gazillion plugins Huge community around it Free and open-source

APRIL 11, 2023 | SLIDE 36

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 feel lots of work coming…

APRIL 11, 2023 | SLIDE 37

APRIL 11, 2023 | SLIDE 38

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

APRIL 11, 2023 | SLIDE 39

THE EASY WAY OUT

PHPWeb Role

VIP

Load

Bala

nce

r

Windows Azure Storage

MySQL

Windows Azure PlatformOn-Premise / hosted

APRIL 11, 2023 | SLIDE 40

THE EASY WAY OUT

Fresh Windows Azure project in Eclipse Fresh Wordpress.org download Point wp-config.php to some MySQL server Package & deploy

APRIL 11, 2023 | SLIDE 41

THE MEDIUM WAY OUT

PHPWeb Role

VIP

Load

Bala

nce

r

Windows Azure Storage

Windows Azure PlatformOn-Premise / hosted

WorkerRolerunningMySQL

APRIL 11, 2023 | SLIDE 42

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

APRIL 11, 2023 | SLIDE 43

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

APRIL 11, 2023 | SLIDE 44

THE HARD WAY OUT

PHPWeb Role

VIP

Load

Bala

nce

r

Windows Azure Storage

SQL Azure

Windows Azure PlatformOn-Premise / hosted

APRIL 11, 2023 | SLIDE 45

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?

APRIL 11, 2023 | SLIDE 46

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...

APRIL 11, 2023 | SLIDE 47

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!

APRIL 11, 2023 | SLIDE 48

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

APRIL 11, 2023 | SLIDE 49

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!

APRIL 11, 2023 | SLIDE 50

APRIL 11, 2023 | SLIDE 51

What’s in the cloud?DEMO TIMEIf the Internet works...

APRIL 11, 2023 | SLIDE 52

What’s in the cloud?RESOURCES

APRIL 11, 2023 | SLIDE 53

RESOURCES Windows Azure

http://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

APRIL 11, 2023 | SLIDE 54

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

APRIL 11, 2023 | SLIDE 55

AND ONE MORE ANNOUNCEMENT...

Get a free t-shirt at the Microsoft booth!

APRIL 11, 2023 | SLIDE 56

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.

APRIL 11, 2023 | SLIDE 57

QUESTIONS, POSSIBLY ANSWERS…

?Maarten Balliauw – RealDolmen

Blog: http://blog.maartenballiauw.beTwitter: @maartenballiauw

APRIL 11, 2023 | SLIDE 58

THANK YOU!

Maarten Balliauwhttp://blog.maartenballiauw.be

Recommended