Saturday, June 09, 2012

The magic behind the new Azure Web Site Git Publishing? Kudu! And now you can get Kudu too (and you can even use it without Azure, on your own IIS servers...)

David Ebbo - Introducing Kudu: the Open Source engine behind ‘git push azure master’

"Yesterday, ScottGu unveiled the new Azure, which brings a whole list of exciting changes to the platform.

One of the most exciting new features is the ability to deploy Web Sites to Azure using git. Scott’s post covers that, and I also did a screencast on that topic.

One part that has not yet been discussed is that the engine that powers this feature was developed as an Open Source project from the first line. The project is code named Kudu and can be found at https://github.com/projectkudu/kudu. Kudu is a member of the the Outercurve Foundation, and is released under the Apache License 2.0 (the same as NuGet).

This project is actually not tied to Azure, and can run standalone on any machine. In that mode, you can push project and have them run in your local IIS.
..."
projectkudu / kudu
Kudu
Kudu is the engine behind git deployments in Azure Web Sites. It can also run outside of Azure.
Documentation
See the documentation
Getting Started
  1. First clone the repository.
    git clone git://github.com/projectkudu/kudu.git    
  2. Open Kudu.sln as Administrator and build it.
       
  3.  Set Kudu.Web as the startup project and run!
       
  4.  Deploy your application
image
Project Structure
Kudu Project Structure
  • Kudu.Client - Client APIs for Kudu web services
  • Kudu.Core - Core Kudu API. Includes source control management, deployment management etc.   
  • Kudu.Contracts - Interfaces that Kudu.Client and Kudu.Core share.   
  • Kudu.SiteManagement - IIS Site management layer (CRUD operations for IIS sites).   
  • Kudu.Web - Front end to manage Kudu site (UI etc)   
  • Kudu.Services - Kudu's web service layer. Exposes services like deployment, editing and source control management over http.    
  • Kudu.Services.Web - The host project for the Kudu.Services.    
  • Kudu.Setup - Builds an msi for Kudu.Services.Web.
Nice. I love that this is OSS...

No comments: