Follow Us on Twitter
From the floor of the PHP Tek Conference in Chicago, with my colleague Peter Laudati, we’re excited to announce the availability of the Windows Azure SDK for PHP version 3.0. This Open Source SDK gives PHP developers a “speed dial” library to take full advantage of Windows Azure’s coolest features. On top of many improvements and bug fixes for this version (see the list from Maarten Balliauw’s preview), we’re particularly excited about the new service management possibilities and the new logging infrastructure.
Beyond the new features, we also feel that version 3.0 of this SDK marks an important milestone because we’re not only starting to witness real world deployment, but also we’re seeing more people joining the project and contributing. We’ve been talking a lot to Maarten Balliauw from RealDolmen who is the lead developer on this open source project and he also shares the same sentiment: “It’s interesting to see the Windows Azure SDK for PHP mature: people are willing to contribute to it and incorporate their experience with the SDK and the platform.”
The most compute intensive part of Facebook app www.hotelpeeps.com is powered by PHP on Windows Azure
My colleague Todi Pruteanu from Microsoft Romania worked with Lucian Daia and Alexandru Lapusan from Zitec to help them get started with PHP on Windows Azure. The result is impressive. The most compute intensive part of the Hotel Peeps Facebook application is now running on Windows Azure, using the SDK for PHP, as well as SQL Azure. Read the interview of Alexandru to get the details on what and how they did it (you can also check out the case study here). I like this quote from the interview: “HotelPeeps Trends running on the Windows Azure platform is the epitome of interoperability. Some people think that a PHP application running on Microsoft infrastructure is science fiction, but that’s not the case.” Another interesting aspect is also the subsequent contribution by Zitec of an advanced “logging” component to the Windows Azure SDK for PHP. This new component provides the possibility of storing logs from multiple instances in a centralized location, namely Azure Tables.
More contributions from the community
As the SDK gets more widely adopted, there is an exciting trend toward more community involvement. For example, Damien Tournoud from the CommerceGuys who is working on developing the Drupal integration module for Windows Azure, recently contributed a patch fixing bugs related to inconsistencies in URL-encoding of parameters in the HTTP_Client library. As we continue to improve the SDK to ensure great interoperability with popular applications like WordPress, Drupal and Joomla! we look forward to engagement more deeply with those communities to make the experience even better.
New! Windows Azure Sample Kit for PHP
Today we are also announcing the Windows Azure Sample Kit for PHP. It is a new project hosted on github that will be the primary repository for all sample php code / apps that developers can use to learn how to take advantage of the various features of Windows Azure in php. Today we are releasing two samples to the repository: the Guestbook application (example of how to use the Windows Azure storage objects – blobs, queues and tables as well as a simple web/worker pattern) and “Deal of the Day” (more on this one later). We look forward to feedback on the samples and I am also hoping to see some forks and new samples coming from the community!
New features to easily manage auto-scaling of applications on Windows Azure
As I mentioned the version 3.0 of the Windows Azure SDK for PHP includes a new “service management” library, which provides easy ways to monitor the activity of your running instances (Windows Azure web roles & workers roles virtual machines), and to start/stop automatically instances based on usage. Then it becomes easy for you to decide which parameters (CPU, bandwidth, # of connections, etc.) and thresholds to use to scale up and down, and maintain the optimum quality of service for your web applications.
The scenario is simple: let’s say you are running an e-commerce site and you want to run daily promotions to get rid of overstocked items. So you’re going to offer crazy deals every day starting at 8am, each deal being advertised to your subscribers by an email blast. You will have to be ready ready to absorb a major spike in traffic, but the exact time is difficult to predict as the news of the deal may take some time to travel through twitter. When the traffic does materialize, you want the site to run & scale independently – providing service assurance but also minimizing your costs (by shutting down unnecessary capacity as loads go down). This is the scenario for the “Deal of the Day” sample application.
What’s the “Deal of the Day” (DotD) sample app and what to expect?
Deal of the Day (DotD) is a sample application written in PHP to show how to utilize Windows Azure’s scalability features from within PHP. We’ve kept is simple and built it in a way that’s easy to deconstruct and learn from.
As a sample application, DotD did not undergo extensive testing, nor does the code include all the required error catching, security verifications and so on, that an application designed for real production would require. So, do expect glitches. And if you do witness issues, send us a screenshot showing error messages with a description. I’ll get a prize to the first 100 bug trackers!
However, to give you an opportunity to see the sample application working, we’ve decided to deploy a live version on Windows Azure to let you test it for real and give the chance to win actual fun prizes! (and sorry for our friends outside of USA, but prizes can be shipped only to a US address )
Wanna play? Just go this way: http://dealoftheday.cloudapp.net/ Looking for the code, just get it on GitHub here: http://bit.ly/iPddwx
Architecture of the DotD sample app
The DotD sample app is comprised of several pieces which fit together to create the overall experience:
Each of these parts is essential to the performance and scalability of DotD and for more details I invite you to read this introduction article, and then to dig deeper by reading part I (Performance Metrics) and Part II (Role Management) of our “Scaling PHP applications on Windows Azure” series. We will expand the series with additional in depth articles, the next one will be around monitoring the performance of your app.
We look forward to your feedback on the SDK and the Sample Kit. Once again the URL is https://github.com/Interop-Bridges/Windows-Azure-Sample-Kit-4-PHP
Cheers!
Craig Kitterman Twitter: Follow @craigkitterman Web: http://craig.kitterman.net
Microsoft announced today that, with immediate effect, it will support Windows Server2008 R2 Hyper-V running CentOS, a popular Linux distribution for hosters.
"This development enables our hosting partners to consolidate their mixed Windows and Linux infrastructure on Windows Server Hyper-V; reducing cost and complexity, while betting on an enterprise class virtualization platform. I want to thank the Microsoft Open Source Technology Center for the work they have done with the community to make this possible," Sandy Gupta, a general manager in Microsoft's Open Solutions Group, said in a blog post.
Gupta will also be delivering a keynote address at the opening day of the Open Source Business Conference (OSBC) in San Francisco today. During the keynote he, along with his colleague Fabio Cunha, will demonstrate the cross-platform architecture of Microsoft’s Private Cloud.
"We will show implementation that supports multiple hypervisors and delivers a platform for the transformation of a heterogeneous IT infrastructure into an automated mixed source Cloud infrastructure. Fabio will show demos of various cross-platform capabilities of System Center Operations Manager, System Center Orchestrator, and also how customers can use a single pane of glass to deploy patches and updates across Windows and Linux Servers," Gupta said.
You can read the full blog post here.
Today Microsoft Open Sourced the reference designs to the .Net Gadgeteer, a rapid prototyping, education/hobbyist kit built on the .NET Micro Framework.
The .Net Gadgeteer team has spent the past few months redesigning and re-implementing the kit to ensure that the architecture will work with the widest variety of processors and support the most diverse set of modules.
The .NET Gadgeteer is based on a set of pluggable modules that remove the need to create specific connections for each electronic component - you only need to plug the modules in. This greatly speeds up the process of building experimental devices and also removes the need for any electronics background to bring your ideas to reality.
In addition to making the hardware development easy, .NET Gadgeteer includes a set of libraries that provide a high level, high productivity development environment so that you can create the intelligence of the device in just a few lines of code.
These libraries are built on the .Net Micro Framework which provides a deep integration with the powerful Microsoft development tools. Now you can develop embedded logic in Visual Studio using C# then deploy the application to the device and debug that application using the rich debugging capabilites of the IDE.
The reference implementation includes the software libraries, which are licensed under Apache 2.0, as well as the designs and specifications for the hardware, which are licensed under the Creative Commons.
Program Unit Manager Colin Miller tells me that the .Net Gadgeteer platform has generated a great deal of enthusiasm among hobbyists and educators as it enables people with a wide range of electronics and programming skills to create an almost limitless array of devices. (Watch this video for more background).
“Our goal is to encourage and support third parties to build kits and modules that all work together to create a rich ecosystem for the user community. This software is still in beta form and we encourage your input on it. We will also aggressively encourage and support vendors interested in evaluating the potential of the platform,” he says.