Provisioning is a very hot topic right now and for good reasons. Our guess forgot to mention that once an environment has been fully configured, that an image of the VM should be taken and stored in the repository for future reuse. This will avoid having to download everything again a second time. The future seems to be around hypervisors. I think Windows 10 will have a client hypervisor (Hyper-V), which will allow creating images and reusing images of a complete environments. Other provisioning tools like Puppet, Chef, Chocolatey should be used for things that the hypervisor images does not do well. These things are few in numbers.
Frankly, I am starting to think of tools like Puppet and Chef as testing tools rather than provisioning tools. They are great at doing testing!
Since Azure Website now supports Java, please profile a dedicated video titled:
"Vertically scaling Apache HTTP Server under Azure"
This video would talk in-depth about the following topics:
How to scale Apache HTTP Server vertically under Azure Website. We know that Azure does the horizontal scaling of instances by manual configuration so no need to talk much about that.
But the Apache HTTP Server has its own vertical scaling apparatus. It's called VirttualHost, which are process instances of the Apache HTTP Server acting has slave child instances. See documentation.
The question for Azure users wanting to use Java / Apache Server in large-scale applications is : How to configure the Apache HTTP Server under Azure so the user has full control over number of VirtualHost(s) in Apache HTTP Server running under Azure and how to configure the IP and port addresses of each VirtualHost.
See documentation for Apache HTTP Server (latest version) for definitions of VirtualHost, IP address, port....etc.