0 people following this project (follow)

Project Description
Experimental rapid deployment framework for Windows Azure


Quick Start
OK, not so quick at the moment...
  • Get latest from source and build (one-time)
    • get latest from wonderland/Main
    • open Source/CodePlex.Wonderland.Azure solution
    • build solution
  • Setup local publisher environment (one-time)
    • create local folder to serve as the master repository folder, e.g.c:\wonderland\machines
    • choose an machine identity for your azure instance, e.g.machine1
    • create local subfolder to serve as the master application folder for your new machine, e.g.c:\wonderland\machines\machine1
    • set system environment variable WLLOCAL to your master repository folder. e.g. c:\wonderland\machines
    • set system environment variable AZURE to your azure credentials in the format accountname:primaryaccesskey:secondaryaccesskey, e.g. bob:3LIJ9NNI==:UUJ8820J8==
    • set system environment variable WLREPO to point to a spot inside blob storage to server as your master remote repository folder in the format AZURE:containername:blobprefix, e.g. AZURE:mycontainer:wonderland/machines/
    • set system environment variable WLMACHINE to the machine identity you chose, e.g. machine1
  • Deploy the host project to Windows Azure (one-time)
    • right-click on CodePlex.Wonderland.CloudService -> Publish...
    • publish the package to your Azure staging instance
    • create a cscfg with your private credentials, fill out at least AZURE, WLMACHINE and WLREPO values to the same values you set in the previous step
    • use this cscfg as the configuration for your Azure deployment
    • publish and start your Azure instance (go and get a cup of coffee)
    • do not hit the web server just yet

Everything from this point forward can be done on xp if necessary...
  • Create sample application
    • create a new .net class library project, reference CodePlex.Wonderland.dll built in the first step
    • create a class called MyFirstFilter inheriting from WebFilter, implement the required Process method (write something out to the http response)
    • override the optional IsFlushRequest and implement. e.g. return true when request.CurrentExecutionFilePath == "/flush"
    • build the dll and copy it into an application subfolder under the machine folder from step 2, e.g. e.g.c:\wonderland\machines\machine1\MyApp
  • Publish your local repository to your remote repository
    • set CodePlex.Wonderland.Publisher.ConsoleApp as the startup project, and run
    • this should sync your local repository folder with the remote repository
    • the remote repository serves as the source for the azure deployment
  • Test your sample application on Windows Azure
    • hit the web server, and the host should download and run your sample application from the remote repository
  • Iterate using Azure (rapid)
    • update your sample app filter, copy the new dll over the old dll in the local application subfolder
    • republish your local repo to the remote repo, run CodePlex.Wonderland.Publisher.ConsoleApp
    • hit the azure flush path specified above, e.g. http://2348u2348.cloudapp.net/flush
    • the host should download and run your updated sample application from the remote repository

- or -
  • Iterate using local web project (super-rapid)
    • startup the CodePlex.Wonderland.CloudService.WebRole project, using the local asp.net dev server
    • update your sample app filter, copy the new dll over the old dll in the local application subfolder
    • hit the local flush path specified above, e.g. http://localhost:63797/flush
    • the local host will simply use your local repo

Last edited Jul 6 2009 at 12:13 AM by JohnSpurlock, version 3