We develop a website that our customer is using internally, we host the application in 3 - 10 windows servers for them. If we want to modify the content of our application, we are forced to access all the servers manually and deploy in all of them. We have decided to deploy the files to one location that will be accessible without needing our customer's internal network access(we've asked them to setup a DMZ) and from there synchronize the contents to all servers.
From just browsing through, I've come across IIS Web Farms and Web Deploy which does something similar to this, my question is, we want the deployment so happen to all servers one by one, or all at once and on demand. Is it possible to configure WebFarms/Web Deploy to work like this? Also if synchronize fails, restoring backups, pulling reports. Is this all doable with Web Deploy/WebFarms?
Related
We have several web applications and apis deployed as azure web applications and we would like to automate database changes testing. We are thinking on replicate incoming http traffic towards another instance of the azure service so we will make sure changes are compatible and we are not breaking anything. We saw goreplay, but it is mostly targeted to installation in servers, but we are deploying to the cloud. Is there any other option?
I have an IIS server on VPS.
I'm thinking about switching to Azure, but the problems are:
I have 7-8 old applications (that currently cannot be replaced and using classic asp)
I have many different applications pools
The questions is if there is some tool to move my entire IIS (including all the rules, applications pools and everything) to Azure or my only option is to move the apps one by one?
If you got a VM from Azure, you can move the entire VM.
Otherwise you'll need to move your applications one by one if you are moving to azure Web-Sites. But there is an export tool in IIS with Web-Deploy that can help you with applications settings: http://www.iis.net/learn/publish/using-web-deploy/export-a-package-through-iis-manager
I'm looking to set up two web roles or websites on my Azure Cloud Service.
The websites need to share the same database schema. I use NHibernate ORM, so I have to make sure that both projects are always using the same data model, or else it will cause major problems.
I've researched setting up multiple websites on a single web role (which seems odd to me, can't I just run multiple web roles, each with a single site)?
http://msdn.microsoft.com/en-us/library/windowsazure/gg433110.aspx
Like any good developer, I use a staging server. If I have to manually set the domain name is configuration files, how will azure know not to be sending people who visit that domain to the staging server?! I.E. If they visit blah.foo.com and I have two deployments (staging and production), is IIS going to be able to know only to send people to the production environment?
Please advise on the best way to go about doing this.
First, you can certainly have multiple web roles, each with a single site; however, each role instance will be deployed to different virtual machines. For example, if you do set up two web roles when you deploy this with one instance each then there are two virtual machines you'll be paying for. If you want the SLA to apply to your deployment you'd need to actually set the instance count to 2 for each web role, which now means you have four virtual machines running. By combining web sites onto the same web role you'll cut down on the number of instances you need to run and still get the SLA; however, that option is not without some considersations. The link you provided is how you can set up multiple websites to run on the same virtual machine when deployed. Note that there are some gotchas with using that method. I'd suggest reading Michael Collier's Tips for Publishing Multiple Sites in a Web Role.
Second, if you do NOT need to have a lot of control over the virtual machine (such as registering special components, etc.) you might want to look at Windows Azure Web Sites as an option. You can elect to take one of the paid levels of Web Sites and still have dedicated machines, but you can deploy the websites separately. I will say though, that your requirement of having both sites in lock step because they share the underlying database schema means that it will be less likely you will want to deploy separate changes, but it is still possible.
Finally, regarding the staging server. If you are testing locally you'll want to modify your hosts file to get the host names to point to your local address. Wade Wegner has a post on Running Multiple Websites in a Windows Azure Web Role. Once you deploy to Windows Azure you'd want to change your hosts file back, or comment them out. If you are using the actual idea of the Staging deployment slot you can use the same trick with the hosts file to point to the IP address of the staging deployment when testing.
I am new to Azure and website deployment, and I am trying to make sure I understand how things work. As far as I understand, once I create a website, a web application is created and begins to run in the cloud before publishing my own site even.
I know that the cloud provides scalability, load-balancing (among multiple datacenters), ease of publishing/testing, etc...things that don't exist in traditional web hosting.
So my question is since my website is in the cloud/Azure now, would my website be replicated globally in MS datacenters? If yes, is it something different from load-balancing? in other words, is the idea behind it is to get my site replicated to provide faster access from all over the world. And if all these are correct, I suppose traditional web hosting doesn't support replication.
Sorry for the simple questions, but I really need to understand, and I would appreciate any details you could provide.
Q: So my question is since my website is in the cloud/Azure now, would my website be replicated globally in MS datacenters?
A: Your website won't be automatically replicated globally to all MS datacenters. Each azure service, whether it is an cloud-service, sql-azure, storage, website or VM is located at a location of your choice. Within a location you can scale some of the services to run in multiple instances. If you spawn a new instance your website gets replicated. But it still runs at the same geo-location.
Q: If yes, is it something different from load-balancing?
A: In Azure you need to distinguish between load-balancing and traffic-management. If you run multiple instances within one location, there is only one external URL to reach it. The load-balancer distributes traffic equally to every running service instance.
The Traffic Manager allows you to control the distribution of user traffic to Windows Azure hosted services. The hosted services can be running in the same data center or in different centers across the world. Traffic Manager works by applying an policy engine to the Domain Name Service (DNS) queries on your domain name(s).
So in general, if you want to spread your application all over the world, you have to do it by yourself.
Create your service on all the location of your choice and use Traffic Manager to connect them.
How do you go about creating a web application in a Sharepoint server farm that has multiple Web front ends(identical ones for load balancing), especially if you creating it from command line? When you create it on one web server does it get automatically copied to other servers as well? Or do you have to extend the app to other servers?
As long as you play by SharePoint's rules you don't have to worry about the multiple Web front ends.
SharePoint will automatically make the changes on all of them (including future ones)
BUT if you go and make modifications in IIS manager or the filesystem (could be web.config) then you have to make these modifications to all Web front ends (also the ones you'll add in the future)
So always do all your modifications through Cdentral Admin, STSADM or the object model. And always use wsp packages when adding functionality
It's quite simple (in theory):
Install SharePoint
Add the server to the farm through Central Admin
This goes into a little more detail.
When you deploy new code/solutions to any one server, it will create a timer job that deploys to all servers in the farm. So, to answer your question, applications are deployed to the farm, not to servers.