Configuring PHP 5.4 on Windows Azure

Today I was pointed out by PHPDeveloper.org to an article of Cory Fowler, a very active PHP developer and MVP working for Microsoft, where he describes in detail how to get your Windows Azure Websites up-and-running with PHP 5.4.

“Much like many other developers, I like to live on the bleeding edge, learning new language features, using the latest tools so naturally one of the things I wanted to see in Windows Azure Web Sites is support for PHP 5.4. I’m pleased to be telling you today in this post that support for Bring-Your-Own-Runtime is now available in Windows Azure Web Sites.”

Go check out his blog article if you want serious PHP 5.4 power with your applications up in the clouds of Windows Azure. Thanks to Cory for sharing this information and to Chris Cornutt for bringing it to my attention.

Comparing Windows Azure Blob Storage with Google Cloud Storage

Today I stumbled upon a blog article written by Gaurav Mantri where he compares Windows Azure Blob Storage (WABS) with Google Cloud Storage (GCS) and describes in detail the differences and similarities of both services.

From fundamental functionality point of view, both WABS and GCS provides similar functionality. Simply put, both can be considered as file system in the cloud allowing you to store huge amount of unstructured data (usually in form of files).

Both systems provide a REST based API for working with files and folders and other higher level language libraries which are essentially wrappers implementing REST API. Over the years, both systems have evolved in terms of functionality provided. In both systems, each release of the API is versioned and is specified as a date. At the time of writing this blog, the service version number for WABS is 2011-08-18 while that of GCS is version 2.0.

If you’re still trying to figure out which service you want to pick, take a look at this article and base your decisions on what you read here.

And then it went dark

If you’re an internet junky like me, you might have noticed that since last Friday (June 29) several big sites were down, like Netflix, Instagram, Pinterest and many more. They all made use of Amazon Elastic Cloud service, which was struck by severe weather on Friday night causing the Northern Virginia (US-EAST-1 Region) hub to go down. Almost 12 hours later, Amazon’s Health Status still showed problems within each node of Northern Virginia. But apparently this failure of a single hub caused many big sites to be offline, a really bad thing for a running internet business and could cause major damage to the company’s image and reputation. Question one needs to be ask here: can the promise of cloud solutions be offered in reality? The “cloud” should leverage issues like outages and such, because if one node goes down another node serves as failover.But in this case, the story doesn’t have a nice ending. According to this report on Forbes, the outage for Netflix lasted little under 2 hours. But Pinterest, Instagram and others were still down.

We all want to be on the cloud and invest a lot of effort to build our applications scalable, distributed and lightning fast. But one thing forgotten in all of this is how to leverage failover. The cloud offers us such richness but why are we all betting on a single horse? Have we forgotten the old-school way of setting up a failover system on another service provider “just-in-case”? Aren’t we doing the same thing for our networks?

With Windows Azure you can relax a little more as they provide a 3-way replication of your services world wide. So whenever a node goes down, Windows Azure has your instances replicated on 2 other nodes as well and will redirect traffic until the crashed node revives again. But to be on the safe side of things, keep a cheap virtual hosting service somewhere else where you can at least post updates on services and such.

For everyone who got impacted this weekend, make sure you learn a valuable lesson and distribute your eggs in different baskets.

Big Azure

TechEd 2012

How often do you find yourself in a situation where you have massive amounts of data that you need to store somewhere? I have had many of those moments and I often had to scale out my database server by adding more machines, more storage disks or a combination of both. And many of those times I had to make an order for new hardware, additional disks which took at least a couple of days.

 

Now with Windows Azure you have 4 ways to solve that issue.

1. A Database in a VM

Within minutes you can set up a Windows Azure VM running a Microsoft Windows Server, Microsoft SQL Server, Ubuntu Linux Server, SuSE Linux Server or a CentOS Server. There you can install and configure a database of your choice (except the Microsoft SQL Server) to handle your data.

The beauty is that you are set within a few hours (including installation and configuration of your databases), but there’s also a downside to this approach, you need to manage your VM yourself and keep it updated all the time. If that’s not a problem, using the VM approach is by far the easiest way to have your data available.

2. Windows Azure SQL Database

If you already have a MS SQL Server running on your premises, it’s easy to extend it using Windows Azure SQL Database as it’s a robust system you’re familiar with, but now running up in the clouds. If you don’t yet have a MS SQL Server, it requires a little adaptation and an intensive MS SQL training, but you can get around it fairly easily.

There are a ton of advantages using Windows Azure SQL Database, but I just highlight a few of them here:

  1. You only need to manage the data. Updates, upgrades and backups (failover replication) are all handled by Windows Azure.
  2. You can create federations (clusters) where you can shard your data at runtime into different SQL Database instances.
  3. You can use the same tools used for accessing your on-premise SQL Database servers, even for replication of data to Windows Azure SQL Database.
  4. With Windows Azure SQL Database, you also get great reporting tools that integrate into your Office applications.

But theres also a major downside: this is only Windows Azure SQL Database, a modified version of MS SQL Server customized for running in the cloud. So if you’re looking for the same benefits for another database vendor, you’re kinda stuck here.

3. Windows Azure Table Storage

If you’re already used to using NoSQL databases, you will love the Windows Azure Table Storage components as they allow you to quickly store key/value objects and approach them in a SQL-like way.

The beauty of these Windows Azure Table Storage components is that it’s lightning fast, but persists your data onto a disk. So if you want to dump structured data up into the cloud, have a look at these Windows Azure Table Storage components.

4. Windows Azure Blob Storage

As I already mentioned this in a previous article, I’m not going to spend too much time on this matter. It’s fast, replicated to different data centers and scales very well.

Conclusion

If you have a situation where you need to expand your data storage, come and check out these cool Windows Azure components. You might end up becoming addicted at it.

Live at TechEd Europe

TechEd 2012

Today I’m in Amsterdam for Microsoft’s TechEd Europe 2012, a conference about all Microsoft products, services and certifications. But I’m here just for one thing: Windows Azure. It’s strange to walk around here, as everyone is really turned to themselves and seem not to talk about how to do certain stuff.

TechEd12

But no problem, I got to sit down in the Windows Azure sessions where I picked up a few things. What is remarkable is the amount of times PHP is mentioned. Even though Microsoft is very enterprise focussed, there is no denying that web technology is essential in any industry. And guess what, PHP is a great technology to accomplish all those enterprise needs.

Sitting here in the Windows Azure sessions, I see a lot of  great new ways to push your code onto the production server. Of course, you can still use your old-school FTP client, but pushing with Git is really ready for Web 3.π (I’ve taken this “three point pi” concept from Mr. Chris Hartjes (@grmpyprogrammer) who mentioned it a couple of times during his /dev/hell podcast).

With the new Windows Azure portal, you have a PHP website (wordpress, drupal, joomla or other open source apps) up-and-running within a few minutes. And you don’t need a PC or laptop for doing that. You can use a smartphone, tablet or even command line shells to get your website live. So you whenever you’re with a customer, you can sign the contract and start explaining how he or she can manage their website for adding content while  you focus on the design and modules. Isn’t that great!

I’ll be back for more new updates from Microsoft’s TechEd Europe 2012 as they come in.

AzureBlob Designs

Even though the AzureBlob app was working, it was not really appealing for users to use it. So I decided to add some style to the application, and it looks good. I need to have my wife to take a look at it.

Anyways, here are already some screenshots

You can try it out yourself at http://azureblob.phpdev.nu and fork it straight from https://github.com/PHPBenelux/azureblob.

And we are live

Ok, the first version of this “Windows Azure Blob Storage browser” is now in production!

Go check out http://azureblob.phpdev.nu and try it out yourself. Like I said, it’s a simple application, but will give some additional benefits as you now can simply browse your storage accounts.

If you find still some bugs in there, please report these issues at https://github.com/PHPBenelux/azureblob/issues.

Happy browsing

Browsing Windows Azure Blob Storage

Today I was confronted with a simple challenge: put a movie file on Windows Azure storage. The file wasn’t part of a particular project nor did I wanted to use existing apps to load this file up into the cloud. Consider it something similar to DropBox, but a whole lot more simplified.

So, I wrote a first prototype that I could run on my local machine and open-sourced it on GitHub.

But this whole idea of having a storage browser is not as bad as it may seem, so in the next few days I’ll be modifying this tool so you can use it online or grab it from GitHub.

Fork this browser from http://github.com/PHPBenelux/azureblob.

Windows Azure on iPhone

20120622-025953.jpg

I was able to run Windows Azure on my iPhone and set up this blog. Now you really have the cloud in your hands!

Hello cloud!

Hey world! This blog will capture my experiences developing PHP applications for cloud platforms.

I already co-blogged at http://www.azure-roadtrip.be regarding first steps to deploy PHP applications to Windows Azure, and on this blog I want to extend all features in more detail.

On a side note: I used my iPhone to setup and deploy this WordPress blog in less then 10 minutes, making it really easy to start any kind of application wherever you are :-)