Skip to content

Commit 1e9716c

Browse files
committed
More readme updates
Making sure README shows up in solution
1 parent f18dd1d commit 1e9716c

File tree

2 files changed

+42
-11
lines changed

2 files changed

+42
-11
lines changed

AzureWebFarm.OctopusDeploy.sln

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
2222
BREAKING_CHANGES.md = BREAKING_CHANGES.md
2323
LICENSE = LICENSE
2424
logo.png = logo.png
25+
README.md = README.md
2526
EndProjectSection
2627
EndProject
2728
Global

README.md

Lines changed: 41 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,25 @@ AzureWebFarm.OctopusDeploy
44
This project allows you to easily create an [infinitely-scalable farm of IIS 8 / Windows Server 2012 web servers using Windows Azure Web Roles](http://www.windowsazure.com/en-us/services/cloud-services/) that are deployed to by an [OctopusDeploy](http://octopusdeploy.com/) server.
55

66
![AzureWebFarm.OctopusDeploy logo](https://raw.github.com/MRCollective/AzureWebFarm.OctopusDeploy/master/logo.png)
7+
Logo courtesy of Aoife Doyle (thanks so much - it's awesome!)
78

8-
todo: jump links
9+
tl;dr
10+
-----
11+
* Installation Instructions
12+
* What if I want to use Web Roles, but don't want to pay for another VM / don't want to use OctopusDeploy?
13+
* Why is this needed?
14+
* If you are using OctopusDeploy for deployments and you want to move to the cloud
15+
* If you are deploying web applications to Windows Azure
16+
* Contributing
17+
* Stay abreast of the latest changes / releases
18+
19+
Installation Instructions
20+
-------------------------
21+
22+
You have two options for using AzureWebFarm.OctopusDeploy
23+
24+
1. You can use one of our pre-packaged cloud packages to avoid the need to crack open Visual Studio - this is really easy, but limits you to the standard configurations we have built
25+
2. You can install the project into a cloud project using NuGet and retain full control over how your cloud service is configured (and have the flexibility to have a non-standard configuration)
926

1027
What if I want to use Web Roles, but don't want to pay for another VM / don't want to use OctopusDeploy?
1128
--------------------------------------------------------------------------------------------------------
@@ -23,10 +40,10 @@ Why is this needed?
2340

2441
Windows Azure Web Roles give you a [range of advantages over Windows Azure Web Sites](http://robdmoore.id.au/blog/2012/06/09/windows-azure-web-sites-vs-web-roles/) that, depending on your application, might mean you aren't able to use Web Sites. The particularly important advantages are:
2542

26-
* You can scale to hundreds and thousands of nodes
27-
* You can connect Web Roles to Windows Azure Virtual Network (VPN) to enable hybrid cloud scenarios
28-
* You can use SSL for free
29-
* You can open up non-standard TCP ports
43+
* You can scale to hundreds or even thousands of nodes (note: most subscriptions start with a limit of 20 cores, but you can talk to support to get more enabled; we've seen an [example here in Australia with 500 cores for instance](http://blogs.janison.com.au/janison-blogs/2012/11/essa-in-2012.html))
44+
* You can connect Web Roles to [Windows Azure Virtual Network](http://www.windowsazure.com/en-us/services/virtual-network/) (VPN) to enable hybrid cloud scenarios
45+
* You can use SSL for free (it [costs extra for Web Sites](http://www.windowsazure.com/en-us/pricing/details/web-sites/#ssl-connections))
46+
* You can open up non-standard TCP ports (i.e. anything other than 80 for HTTP and 443 for HTTPS)
3047
* You have full control to configure IIS how you see fit
3148
* You can run/install arbitrary software applications on role startup and if necessary with elevated privileges
3249
* You can mount NTFS volumes from blob storage
@@ -46,26 +63,39 @@ If for one of the reasons above or perhaps one of the [other possible reasons](h
4663
* Scaling Virtual Machines is very difficult and it's impractical to scale more than 10s of nodes (without a lot of automation work and even then the storage costs would start adding up)
4764
* Similarly, if you want to do auto-scaling beyond the basic CPU/memory scaling available in the portal then you need to implement it yourself
4865

49-
**OK, so what are the main disadvantages with Web Roles then - they can't be a silver bullet right?**
66+
**OK, so what are the main disadvantages with Web Roles then - it can't be a silver bullet right?**
5067

5168
It must be said that Web Roles aren't perfect; there are three main disadvantages that we see with Web Roles:
5269

5370
1. The out-of-the-box deployment experience leaves a lot to be desired - it's slow and error-prone
54-
* To clarify: What is happening is *amazing* - within 8-15 minutes a number of customised Virtual Machines are being provisioned for you on a static IP address and those machines can be scaled up or down at any time and they have full health monitoring and diagnostics capabilities built-in!
55-
* The problem lies when you tie that deployment process to the deployment of a software application (like most of the Web Roles tutorials you will read suggest you do) - waiting 8-15 minutes for a VM to be provisioned is amazing, waiting 8-15 minutes for the latest version of your software application to be deployed is unacceptably slow
71+
* To clarify: What is happening is *amazing* - within 8-15 minutes a number of customised, RDP-accessible, Virtual Machines are being provisioned for you on a static IP address and those machines can be scaled up or down at any time and they have health monitoring and diagnostics capabilities built-in as well as a powerful load balancer!
72+
* The problem lies when you tie that deployment process to the deployment of a software application (like most of the Web Roles tutorials you will read suggest you do) - waiting 8-15 minutes for a VM to be provisioned is amazing; waiting 8-15 minutes for the latest version of your software application to be deployed is unacceptably slow
5673
* The way we see it - you should treat a Web Role as infrastructure rather than an application and you should deploy your applications to a farm of Web Roles that have been previously set up
5774
* This leads us to the second disadvantage of Web Roles...
5875
2. If you change state in a role dynamically (e.g. change IIS settings, install a program, deploy some files to IIS, etc.) then as soon as the role is restarted/recycled (e.g. a Windows Update is applied or you change a configuration setting that requires a recycle) you lose that state
5976
* It should be noted that this is also the main advantage of Web Roles in that it's what allows them to be so scalable - each role is treated homogenously with the others and so can be shutdown and spun up as needed - it just requires you to specify everything that is needed for that role in the package (.cspkg) file for the operation and lifetime of that role
6077
* The fact that you can run arbitrary code at startup and shutdown of the role means that you can do *anything you want* though; you just need to work within the bounds of the platform (it is afterall PaaS, not IaaS) - that's what we've taken advantage of to enable this project to be possible
61-
3. Tying your application code to your Web Role increases your solution complexity (you have another project in there and your deployment is more complex because rather than packaging/deploying the site you are deploying the site inside of a Web Role package) and can lead to developers tying the application to the Web Roles development model even though they should be agnostic of that (and leave you with flexibility to deploy them anywhere)
78+
3. Tying your application code to your Web Role:
79+
* Increases your solution complexity - you have another project in your solution and on top of that your deployment is more complex because rather than packaging/deploying the site you are packaging/deploying the site inside of a Web Role package
80+
* Often leads to developers tying the application to the Web Role's development model even though sites should be agnostic of that and leave you with flexibility to deploy it anywhere (e.g. on-premise, AWS, Azure Web Sites, etc.)
6281

6382
**How does AzureWebFarm.OctopusDeploy allow me to use Web Roles without any of the disadvantages?**
6483

6584
1. The first disadvantage above is simply taken care of by how [awesome the deployment experience is with OctopusDeploy](http://octopusdeploy.com/)
66-
2. We've worked with the development model that Windows Azure Web Roles give you to create Web Roles that will automatically:
85+
2. We've worked with the development model that Windows Azure Web Roles gives you so that the roles don't need to be changed dynamically to function as an OctopusDeploy-powered web farm; they will automatically:
6786
* Install an OctopusDeploy tentacle
6887
* Register the tentacle with an OctopusDeploy server in an environment and with a role all specified by you
69-
* Deploy all current applicable applications to the role before it's registered with the load balancer on startup
88+
* Deploy the latest version of all relevant applications to the role before it's registered with the load balancer on startup - when it registers with the load balancer it's good-to-go
89+
* Configure the [IIS App Initialisation Module](http://www.iis.net/learn/get-started/whats-new-in-iis-8/iis-80-application-initialization) for all sites and app pools to improve performance of your applications
7090
* De-register the tentacle from the OctopusDeploy server on shutdown or recycle - thus your OctopusDeploy server will always show the current state of affairs
7191
3. By deploying a web farm separate to your applications and then using OctopusDeploy to deploy your applications to the farm you can develop your applications completely agnostically of the fact you are deploying them to Azure
92+
93+
Contributing
94+
------------
95+
96+
If you would like to contribute to this project then feel free to communicate with us via Twitter [@robdmoore](http://twitter.com/robdmoore) / [@mdaviesnet](http://twitter.com/mdaviesnet) or alternatively send a pull request / issue to this GitHub project.
97+
98+
Stay abreast of the latest changes / releases
99+
---------------------------------------------
100+
101+
Follow the [MRCollective](http://twitter.com/MRCollectiveNet) twitter account.

0 commit comments

Comments
 (0)