Continuous Deployment in Windows Azure Web Sites

Automation of tasks is one thing that I am an advocate of in my development projects. Getting functionality that is repeatable with a low risk of human error for a one time cost is a sound business decision and as a developer, keeps your hands on rolling more code for a greater percentage of your work day. It’s a Win-Win scenario.

The Windows Azure Web Sites team along side the Kudu team have added Continuous Deployment functionality in Windows Azure Web Sites with support for three familiar social source code repositories: CodePlex, GitHub and BitBucket. The team has also added support for Contiguous Integration using Team Foundation Service [a new Cloud Based offering of Team Foundation Server].

Windows Azure Web Sites now allows Continuous Deployment from Private Repositories from both GitHub and BitBucket.

In this post:

  1. Create a Windows Azure Web Site
    1. Enable Git Deployment
  2. Associate a Source Code Repository
    1. Associate a GitHub Repository to Windows Azure Web Sites
    2. Associate a BitBucket Repository to Windows Azure Web Sites

Create a Windows Azure Web Site

To avoid reinventing the wheel, you can follow instructions outlined on the Windows Azure Develop Center on how to Create a Windows Azure Web Site and Enable Git Deployment.

NOTE: If you do not need a MySQL database, or have decided to go with another database option, choose Quick Create from the Web Site menu instead of Create with Database.

Associate a Source Code Repository

In order to facilitate the Continuous Deployment it’s necessary to have a centralized location to pull the website code from, in this particular blog entry we’re going to use GitHub and BitBucket.

Initializing a Git Repository will redirect the Management Portal to the DEPLOYMENTS tab.

Now that Git has been enabled use the collapsible menus to select how you would like to deploy code to the new Windows Azure Web Site.

Associate a GitHub Repository to Windows Azure Web Sites

GitHub-Deployment-Accordion

Expand the item labeled Deploy from my GitHub repository.

GitHub-Deployment-Steps

Click on Authorize Windows Azure. This will open a window to federate with GitHub, you will need to approve the ability for Windows Azure to access your GitHub account.

GitHub-Authentication

Once access has been granted, the browser will redirected back to the Management Portal to a screen to select either a Public or Private repository.

GitHub-Select-Repository

After selecting the repository to be published, click on the check mark to start the deployment process.

If your repository is empty, push to GitHub to trigger deployment to Windows Azure.

GitHub-First-Deployment

Each subsequent push to GitHub will trigger a service hook and begin a deployment of the latest bits to the Web Site. Now that the deployment has been pulled into the Web Site, clicking on Browse in the Taskbar Drawer will launch the web application.

GitHub-Published-Custom-WordPress-Site

Associate a BitBucket Repository to Windows Azure Web Sites

BitBucket-Deployment-Accordion

Just like associating a GitHub account to a Windows Azure Web Site, expand the Deploy from my BitBucket repository. Authorize Windows Azure to access a BitBucket account by federating authentication through BitBucket.

BitBucket-Deployment-Steps

After clicking on Authorize Windows Azure, a prompt to authenticate with BitBucket.

BitBucket-Authentication

After signing into BitBucket a prompt to select the Public or Private repository to deploy to Windows Azure Web Sites.

BitBucket-Select-Repository

Unlike GitHub, BitBucket will require you push a change to the repository before the Service Hook will deploy code to the Windows Azure Web Site.

image

Once a push has been made to the private BitBucket repository, the deployment will be pushed to the Web Site.

image

In the taskbar drawer at the bottom of the browser viewport, click the Browse Button.

image

A new window will open and the site will display the web files which were pulled into the Web Site.

Conclusion

Continuous Deployment is a great way to introduce new features or functionality to your customers in an automated fashion. With the new support for Private Repositories, Windows Azure Web Sites can help delivery stunning web sites which utilize either open source projects from public repositories, or provide clients with a customized solution from a private repository.

Stay Cloud my Friends…

PHP 5.4 Now Native in Windows Azure Web Sites

A while back I wrote a blog post on Enabling PHP 5.4 in Windows Azure Web Sites, when we enabled the ability to bring-you-own-runtime to Windows Azure Web Sites. This is still a valid solution if you would like to manage your own PHP.ini file, or if you would like to ensure that you are using a specific build of PHP.

It’s exciting to announce that Windows Azure Web Sites now has PHP 5.4 ready to be enabled in your Web Sites.

Even though PHP 5.4 is available PHP 5.3 is still enabled by default.

image

Enable Native PHP 5.4 in Windows Azure Web Sites

After Creating a Windows Azure Web Site, navigate into the Web Site details page and select the CONFIGURE tab. Under the framework section you will see PHP VERSION, select the box containing 5.4, it will turn purple notifying that there is an unsaved change.

image

At the bottom of the browser viewport you will find the TASK DRAWER, which would have changed to include a SAVE button. Click the SAVE button to enable PHP 5.4 for your Windows Azure Web Site.

image

Once the change has been saved, you’ll be greeted by this nice little success notice.

image

Finally, you will also notice that the purple indicator has now changed back to blue on the PHP 5.4 box.

image

You are now ready to deploy PHP 5.4 applications to Windows Azure Web Sites.

Happy Clouding!

Windows AzureConf is Tomorrow!

Windows AzureConf

Three years ago, I began learning about this thing called “The Cloud” at that point in time I made a decision, much like I made as a teenager to get into Web Development in the first place. The thought that lead me down this career path was “Huh, this web thing is really going to take off, I need to be a part of it.” When I heard about Cloud Computing a similar thought ran through my mind, “Wow, this cloud thing is really cool, this is definitely the way of the future.

A year into working with Windows Azure, I urged other developers to start researching the cloud [Get Started for Free] as it was still early enough to be ahead of the curve and set themselves out from the rest. Enter Windows AzureConf.

I cannot say for certain if I influenced any of these individuals in particular , but what I can say is they have also identified that the Cloud was future. Featuring a Keynote from Scott Guthrie (The Gu) as well as presentations from the Windows Azure Community drawing from their own Real-World experience with Windows Azure.

Join us for Windows AzureConf

In June we launched a number of additional features and services in to Windows Azure’s offerings, since then we have added a great deal more as highlighted in Satya Nadella’s Day 2 Keynote Address at Build.

What will be covered at Windows AzureConf

Windows AzureConf will cover a wide variety of topics including:

  • HTML5
  • WebSockets
  • Windows Azure Media Services
  • Deployment
  • Keeping Costs low
  • SignalR
  • Windows Azure Mobile Services
  • Continuous Delivery
  • Building Cloud-Scale Applications
  • Node.js
  • Compliance
  • Messaging Architectures

How can I get started?

There are a number of ways to get started with Windows Azure including the Windows Azure Training Kit, tutorials on WindowsAzure.com and of course reading the blogs of our community members:

Speaker Name Twitter Blog
Andy Cross @AndyBareWeb blog.elastacloud.com
Sasha Goldshtein @goldshtn blog.sashag.net
Rick Garibay @rickggaribay rickgaribay.net
Mihai Tataran @mihai_tataran www.avaelgo.ro
Eric Boyd @ericdboyd www.ericdboyd.com
Panagiotis Kefalidis @pkefal www.kefalidis.me
Michael Collier @MichaelCollier www.MichaelSCollier.com
Magnus Martensson @noopman magnusmartensson.com

Find more great Windows Azure Community Members on the MVP Site.